Anhand dieses tut sollte jeder verstehen wie man eine Musik Datei mit der bass.dll abspielt
Dieses Tutorial basiert auf bass.net da ich persönlich es einfacher finde
link dazu : un4seen.com/download.php?z/4/Bass24.Net.zip
Vorbereitung:
nachdem ihr das Sdk installiert habt müsst ihr einen Verweis hinzufügen
und dann die dll importieren
so als nächstes muss im dem formload Event die .dll "konfiguriert" werden
damit kann man festlegen wie viele Lautsprecher ihr zb. habt
Abspielen der Musik Datei:
als erstes muss eine globale Variable vom Typ Integer erstellt werden :
als nächstes wird diese variable mit Informationen gefüttert
nun wird die Musik gestartet
anstatt false kann man auch true einsetzen dann wird die muikdatei immer wieder von vorn abgespielt
so die Musik spielt schon einmal nun kommen wir zum
Peak auslesen
die besten Ergebnisse erzielt ihr wenn ihr die folgenden Zeilen in einen timer packt und den Intervall auf 45 stellt
wir brauchen diesmal ein Array und zwar nenne ich es mal
(die 2 in Klammern MUSS so bleiben wie sie ist)
mit
wird das array mit Informationen gefüttert
und mit 2 weiteren variablen so ausgelesen das sie in einer progressbar oä. angezeigt werden können
anstatt alles Mal 100 zu nehmen kann man auch die Eigenschaft Maximum der progressbar auf 1 Stellen das macht keinen unterschied
und hiermit wird’s angezeigt das brauch ich glaube ich nicht zu erklären
so könnte es dann aussehen
Visualisierung mit Einem Spectrum Analyzer
An dieser Stelle nocheinmal ein Dankeschön an nook
Ein spectrum mit der Bass.dll zu bekommen ist eigendlich sehr Easy was mann dazu braucht sind 2 Zeilen Code und eine Picturebox
das ist die erste zeile
und die zweite zeile
der aufbau ist quasi so
Spectrum.CreateSpectrumLine(der channel,Breite der Visualisirung,Höhe der Visualisirung,Untere farbe des farbverlaufs,Obere Farbe des Farbverlaufs,Hintergrund Farbe,Breite der balken,Entfernung der balken zueinender,False,True,true)
Amplitude von Bestimmten Frequenzen Auslesen
So habe mal beschlossen mein Tutorial zu erweitern
also per ChannelGetData werden die daten in ein Array Geladen
die Richtige Frequenz bekommt man dann mit einer Simplen formel raus
Arraylänge *gesuchte Frequenz / Samplingrate
daraus kommt dann der Arrayindex von Data für die Frequenz
das geht natürlich auch bei jeder anderen Frequenz
(Teile Hiervon sind aus dem programm BassLightYear)
Effekte Hinzuschalten am beispiel von Echo
Und schon kommt ein Echo !
Equalizer
der equalizer ist nun auch ein Bisschen Komplizirter deshalb habe ich dazu einfach ein Beispielprojekt Geschrieben es kann nur Musik abspieln und es hat halt einen 10 Band Equalizer
Beispielprojekt Equalizer(VS 2010 Projektdatein)
Beispiel Projekt (VS 2008 Projektdatein)
ich entschuldige mich für die Rechtsschreibfehler und hoffe dass es manchen hilft
mfg
Dieses Tutorial basiert auf bass.net da ich persönlich es einfacher finde
link dazu : un4seen.com/download.php?z/4/Bass24.Net.zip
Vorbereitung:
nachdem ihr das Sdk installiert habt müsst ihr einen Verweis hinzufügen
und dann die dll importieren
so als nächstes muss im dem formload Event die .dll "konfiguriert" werden
damit kann man festlegen wie viele Lautsprecher ihr zb. habt
Abspielen der Musik Datei:
als erstes muss eine globale Variable vom Typ Integer erstellt werden :
als nächstes wird diese variable mit Informationen gefüttert
nun wird die Musik gestartet
anstatt false kann man auch true einsetzen dann wird die muikdatei immer wieder von vorn abgespielt
so die Musik spielt schon einmal nun kommen wir zum
Peak auslesen
die besten Ergebnisse erzielt ihr wenn ihr die folgenden Zeilen in einen timer packt und den Intervall auf 45 stellt
wir brauchen diesmal ein Array und zwar nenne ich es mal
(die 2 in Klammern MUSS so bleiben wie sie ist)
mit
wird das array mit Informationen gefüttert
und mit 2 weiteren variablen so ausgelesen das sie in einer progressbar oä. angezeigt werden können
anstatt alles Mal 100 zu nehmen kann man auch die Eigenschaft Maximum der progressbar auf 1 Stellen das macht keinen unterschied
und hiermit wird’s angezeigt das brauch ich glaube ich nicht zu erklären
so könnte es dann aussehen
VB.NET-Quellcode
- Imports Un4seen.Bass
- Public Class Form1
- Public stream As Integer
- Public peak(2) As Single
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
- stream = Bass.BASS_StreamCreateFile("F:\Filme&Musik\Musik\Pink Floyd\Pink Floyd-Brick the Wall.mp3", 0, 0, BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_STREAM_PRESCAN)
- Bass.BASS_ChannelPlay(stream, False)
- End Sub
- Private Sub Peak_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
- Bass.BASS_ChannelGetLevel(stream, peak)
- Dim rechts As Integer = (Math.Round(peak(1), 3) * 100)
- Dim links As Integer = (Math.Round(peak(2), 3) * 100)
- Try
- ProgressBar1.Value = rechts
- ProgressBar2.Value = links
- Catch
- End Try
- End Sub
- End Class
Visualisierung mit Einem Spectrum Analyzer
An dieser Stelle nocheinmal ein Dankeschön an nook
Ein spectrum mit der Bass.dll zu bekommen ist eigendlich sehr Easy was mann dazu braucht sind 2 Zeilen Code und eine Picturebox
das ist die erste zeile
und die zweite zeile
der aufbau ist quasi so
Spectrum.CreateSpectrumLine(der channel,Breite der Visualisirung,Höhe der Visualisirung,Untere farbe des farbverlaufs,Obere Farbe des Farbverlaufs,Hintergrund Farbe,Breite der balken,Entfernung der balken zueinender,False,True,true)
Amplitude von Bestimmten Frequenzen Auslesen
So habe mal beschlossen mein Tutorial zu erweitern
also per ChannelGetData werden die daten in ein Array Geladen
die Richtige Frequenz bekommt man dann mit einer Simplen formel raus
Arraylänge *gesuchte Frequenz / Samplingrate
daraus kommt dann der Arrayindex von Data für die Frequenz
das geht natürlich auch bei jeder anderen Frequenz
(Teile Hiervon sind aus dem programm BassLightYear)
Effekte Hinzuschalten am beispiel von Echo
VB.NET-Quellcode
- Dim Echo As Integer
- Dim p As New BASS_DX8_ECHO
- Echo = Bass.BASS_ChannelSetFX(Stream, BASSFXType.BASS_FX_DX8_ECHO, 0) 'Hier wird der effekt Intialisiert
- p.fLeftDelay = 333 ' Hier kann man die länge des echos einstellen
- p.fRightDelay = 333 ' Hier ebenfalls für den rechten Kanal
- p.fFeedback = 50
- p.fWetDryMix = 50
- Bass.BASS_FXSetParameters(Echo, p) ' hier wird der effekt Gesetzt
Und schon kommt ein Echo !
Equalizer
der equalizer ist nun auch ein Bisschen Komplizirter deshalb habe ich dazu einfach ein Beispielprojekt Geschrieben es kann nur Musik abspieln und es hat halt einen 10 Band Equalizer
Beispielprojekt Equalizer(VS 2010 Projektdatein)
Beispiel Projekt (VS 2008 Projektdatein)
ich entschuldige mich für die Rechtsschreibfehler und hoffe dass es manchen hilft
mfg
Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „Kombrinki“ () aus folgendem Grund: Update 3.6.2010