BASS.dll SetparamEQ also Equalizer nutzbar machen ??

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BlitzPure

Betreff: BASS.dll SetparamEQ also Equalizer nutzbar machen ??

BeitragMi, Okt 28, 2015 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Xeres

Moderator

BeitragMi, Okt 28, 2015 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
"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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Abrexxes

BeitragMi, Okt 28, 2015 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Tip: Wen du bassfree benutzt brauchst du vorher nichts anderes mehr zu stoppen oder raus zu schmeisen. Bass räumt denn Speicher selbst auf. Smile

Cu

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group