BASS.dll SetparamEQ also Equalizer nutzbar machen ??
Übersicht BlitzBasic Allgemein
BlitzPureBetreff: BASS.dll SetparamEQ also Equalizer nutzbar machen ?? |
Mi, Okt 28, 2015 21:03 Antworten mit Zitat |
|
---|---|---|
Hallo an alle,
wieder mal die Bass.dll, diesen Code habe ich aus dem Forum, allerdings beherrscht er nur 3 Frequenzen die sich in der Verstärkung um den Faktor verschieben lassen. Auch REVERB ist damit bei, was mich allerdings nicht so Interressiert. Ich versuche nun den Code auf mehrere Frequenzen anzupassen. Allerdings klappt es nicht. Der Code ist lauffähig, wenn man das Blitzbassstudio von Abrexxes verwendet. aber vielleicht ist es ja auch ein Denkfehler von mir ? Scheiter wohl an den Bank Befehlen mit Poke und Peek.... ich weiss es nicht ! würde gerne von den jetzigen 3 Frequenzen auf vielleicht 10 Frequenzen gehen. Aber ein haraufsetzen der DIM Variablen usw. bringen keinen Erfolg. Keine Ahnung warum ! Code: [AUSKLAPPEN] Include "D:\blitzplus\bass.bb";
Include "D:\blitzplus\bass_fx.bb"; Graphics 400,350,32,2 : SetBuffer BackBuffer() AppTitle "FX-Example" : Include "BASS.bb" File$ = "D:\12.mp3" ;File$ = "TITLE.xm" ;File$ = "0.wav" ;hWnd = GetActiveWindow() If Not BASS_Init(-1,44100,0,0,BASS_NULL) Then RuntimeError "Bass not ready"; Fehler Init fehlgeschlagen ;BASS_Init(-1,44100,0,hWnd) Then ;EndIf If Not BASS_Start() Then BASS_Free() RuntimeError "Can't start it!" EndIf Channel = BASS_StreamCreateFile(0,File$,0,0,BASS_SAMPLE_FX) ;If Not Channel Then ;Channel = BASS_MusicLoad(0,File$,0,0,BASS_MUSIC_LOOP Or BASS_MUSIC_RAMP Or BASS_MUSIC_FX) If Not Channel Then BASS_Stop() BASS_Free() RuntimeError "Can't load " + File$ + "!" EndIf Dim ScrollValues(4) : Dim ScrollBarsSet(4); DIM Werte waren vorher 3 jetzt 4 ScrollValues(0) = 10 ScrollValues(1) = 10 ScrollValues(2) = 10 ScrollValues(3) = 00 ScrollValues(4) = 10 ;habe ich eingefügt Dim FX(4) FX(0) = BASS_ChannelSetFX(Channel,BASS_FX_PARAMEQ,10) FX(1) = BASS_ChannelSetFX(Channel,BASS_FX_PARAMEQ,10) FX(2) = BASS_ChannelSetFX(Channel,BASS_FX_PARAMEQ,10) FX(3) = BASS_ChannelSetFX(Channel,BASS_FX_REVERB,10) FX(4) = BASS_ChannelSetFX(Channel,BASS_FX_PARAMEQ,10); habe ich eingefügt BASS_FXPARAMEQ = CreateBank(12) PokeFloat BASS_FXPARAMEQ,08,2.0 ;08 Gain : Verstärkung PokeFloat BASS_FXPARAMEQ,04,10.0 ;04 Bandwidth : Bandbreite ! PokeFloat BASS_FXPARAMEQ,00,125.0 Result = BASS_FXSetParameters(FX(0),BASS_FXPARAMEQ) PokeFloat BASS_FXPARAMEQ,00,1000.0 Result = BASS_FXSetParameters(FX(1),BASS_FXPARAMEQ) PokeFloat BASS_FXPARAMEQ,00,4000.0 Result = BASS_FXSetParameters(FX(2),BASS_FXPARAMEQ) PokeFloat BASS_FXPARAMEQ,00,2000.0 ; habe ich eingefügt 2000 Hz. Result = BASS_FXSetParameters(FX(4),BASS_FXPARAMEQ) ; habe ich eingefügt 2000 Hz. UpdateFX(0) UpdateFX(1) UpdateFX(2) UpdateFX(3) UpdateFX(4); habe ich eingefügt BASS_ChannelPlay(Channel, 0) ;BASS_SAMPLE_LOOP) ;BASS_MusicPlay(Channel) While Not KeyDown(1) Cls ; Q(+) And A(-) | W(+) And S(-) | E(+) And D(-) | R(+) And F(-) H(+) And G(-) If KeyHit(16) And ScrollValues(0) < 20 Then ScrollValues(0) = ScrollValues(0) + 1 : ScrollBarsSet(0) = 1 If KeyHit(30) And ScrollValues(0) > 00 Then ScrollValues(0) = ScrollValues(0) - 1 : ScrollBarsSet(0) = 1 If KeyHit(17) And ScrollValues(1) < 20 Then ScrollValues(1) = ScrollValues(1) + 1 : ScrollBarsSet(1) = 1 If KeyHit(31) And ScrollValues(1) > 00 Then ScrollValues(1) = ScrollValues(1) - 1 : ScrollBarsSet(1) = 1 If KeyHit(18) And ScrollValues(2) < 20 Then ScrollValues(2) = ScrollValues(2) + 1 : ScrollBarsSet(2) = 1 If KeyHit(32) And ScrollValues(2) > 00 Then ScrollValues(2) = ScrollValues(2) - 1 : ScrollBarsSet(2) = 1 If KeyHit(19) And ScrollValues(3) < 20 Then ScrollValues(3) = ScrollValues(3) + 1 : ScrollBarsSet(3) = 1 If KeyHit(33) And ScrollValues(3) > 00 Then ScrollValues(3) = ScrollValues(3) - 1 : ScrollBarsSet(3) = 1 If KeyHit(35) And ScrollValues(4) < 20 Then ScrollValues(4) = ScrollValues(4) + 1 : ScrollBarsSet(4) = 1 ;habe ich eingefügt If KeyHit(34) And ScrollValues(4) > 00 Then ScrollValues(4) = ScrollValues(4) - 1 : ScrollBarsSet(4) = 1 ;habe ich eingefügt For I = 0 To 4 ;war vorher 3 jetzt 4 ? stimmt das so ? If ScrollBarsSet(I) Then UpdateFX(I) ScrollBarsSet(I) = 0 EndIf Next DrawScrollBars() ;DWORD level,Left,Right; level%=BASS_ChannelGetLevel(Channel); ;L=LOwWORD(level); // the left level ;R=HIWORD(level); // the right level ;L = level Shr 16 ;L = level Xor %11111111111111110000000000000000 levleft = level% Shr 16 levright = level% Xor 8 ;%00000000000000000000000011111111 Text 0,0,levleft+" " Line 0,10,levleft,10 Text 0,20,levright+" " Flip Wend BASS_Stop : BASS_StreamFree(Channel) BASS_MusicFree(Channel) : BASS_Free() End Function UpdateFX(ScrollIndex) Local Value,Parameters,Result Value = ScrollValues(ScrollIndex) If ScrollIndex > - 1 And ScrollIndex < 3 ;hier bin ich völlig überfordert also -1 bis <3 index also = 4 ? Parameters = CreateBank(12) ; warum 12 und nicht mehr, hängt das mit den festen Parametern zusammen? also 04 und 08 = 12?? Result = BASS_FXGetParameters(FX(ScrollIndex),Parameters) PokeFloat Parameters,08,10 - (20 - Value) Result = BASS_FXSetParameters(FX(ScrollIndex),Parameters) Else Parameters = CreateBank(16) Result = BASS_FXGetParameters(FX(ScrollIndex),Parameters) PokeFloat Parameters,04,-0.012 * (20 - Value)^3 Result = BASS_FXSetParameters(FX(ScrollIndex),Parameters) EndIf End Function Function DrawScrollBars() Text 000,100,"125-hz" : Text 000,112,Scrollvalues(0) Text 050,100,"1-khz" : Text 050,112,Scrollvalues(1) Text 100,100,"8-khz" : Text 100,112,Scrollvalues(2) Text 200,100,"Reverb" : Text 200,112,Scrollvalues(3) Text 150,100,"64-hz" : Text 150,112,Scrollvalues(4) ;Bargraph zeichnen ! Rect 000,100 - ScrollValues(0) * 5,49,ScrollValues(0) * 5,1 Rect 050,100 - ScrollValues(1) * 5,49,ScrollValues(1) * 5,1 Rect 100,100 - ScrollValues(2) * 5,49,ScrollValues(2) * 5,1 Rect 150,100 - ScrollValues(4) * 5,49,ScrollValues(4) * 5,1 Rect 200,100 - ScrollValues(3) * 5,49,ScrollValues(3) * 5,1 End Function |
||
XeresModerator |
Mi, Okt 28, 2015 21:33 Antworten mit Zitat |
|
---|---|---|
"Kein Erfolg" bedeutet was?
Tippfehler? Code: [AUSKLAPPEN] ScrollValues(3) = 00
Du könntest den Code deutlich eindampfen (und Fehlerquellen reduzieren) wenn du all die magischen Zahlen in Variablen packst und dann Schleifen benutzt, statt X Mal hintereinander zu kopieren. Edit: Code: [AUSKLAPPEN] If ScrollIndex > - 1 And ScrollIndex < 3
Tue etwas wenn ScrollIndex größer ist als negativ 1 (z.B. null) und ScrollIndex kleiner ist als positiv 3 (z.B. 2) Die Bedinung trifft also zu, wenn ScrollIndex die Werte 0, 1, 2 annimmt. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Abrexxes |
Mi, Okt 28, 2015 22:51 Antworten mit Zitat |
|
---|---|---|
Tip: Wen du bassfree benutzt brauchst du vorher nichts anderes mehr zu stoppen oder raus zu schmeisen. Bass räumt denn Speicher selbst auf.
Cu |
||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group