Equaliseur avec Bass

Résolu
Signaler
-
 Utilisateur anonyme -
Salut à tous

J'essaye de faire un équaliseur avec la dll Bass :

J'ai deux forms avec le ptit bout de code suivant :

Form 2 :

Var
  fx: array[1..5] of integer;
  p: BASS_FXPARAMEQ;

procedure TParamForm.Tb_1Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[1], @p);
  p.fCenter := 125-Tb_1.position;
  BASS_FXSetParameters(fx[1], @p);
end;

procedure TParamForm.Tb_2Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[2], @p);
  p.fCenter := 500-Tb_2.position;
  BASS_FXSetParameters(fx[2], @p);
end;

procedure TParamForm.Tb_3Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[3], @p);
  p.fCenter := 1000-Tb_3.position;
  BASS_FXSetParameters(fx[3], @p);
end;

procedure TParamForm.Tb_4Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[4], @p);
  p.fCenter := 2000-Tb_4.position;
  BASS_FXSetParameters(fx[4], @p);
end;

procedure TParamForm.Tb_5Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[5], @p);
  p.fCenter := 8000-Tb_5.position;
  BASS_FXSetParameters(fx[5], @p);
end;

Form 1 :

Var
  chan : HRECORD;
  pchanSing,pchanVoice : HSTREAM;

procedure Form1.PlaySound(Sender:TObject);
Var
Index:Cardinal;
Begin
  BASS_MusicFree(pChanSing);
  BASS_StreamFree(pChanSing);
  pchanSing := BASS_StreamCreateFile(FALSE, PChar('MyFile.mp3'), 0, 0, BASS_SAMPLE_FX);
  fx[1] := BASS_ChannelSetFX(pChanSing, BASS_FX_PARAMEQ, 1);
  fx[2] := BASS_ChannelSetFX(pChanSing, BASS_FX_PARAMEQ, 1);
  fx[3] := BASS_ChannelSetFX(pChanSing, BASS_FX_PARAMEQ, 1);
  fx[4] := BASS_ChannelSetFX(pChanSing, BASS_FX_PARAMEQ, 1);
  fx[5] := BASS_ChannelSetFX(pChanSing, BASS_FX_PARAMEQ, 1);
  p.fGain := 0;
  p.fBandwidth := 18;
  For Index:=0 To (Form2.ComponentCount-1) Do
  If (Form2.Components[Index] is TRadioButton)
  AND (TRadioButton(Form2.Components[Index]).Tag<5)
  AND (TRadioButton(Form2.Components[Index]).Checked)
  then TRadioButton(Form2.Components[Index]).OnClick(Sender);  
  BASS_ChannelPlay(pchanSing, False);
End;

procedure Form1.PlaySound(Sender:TObject);
Begin
PlaySound(Object);
End;

Quand je fais un clicker du bouton, ben le son on l'entend bien (déjà ca sent bon ). Là ou ca sent le mammouth (Qui a montré Cari du doigt ? C'est pas sympas de balancer les copains ), c'est quand on click sur un trackbar : il se passe quoi ? Ben rien du tout et ca c'est pas juste, non Monsieur.

Alors j'ai du louper la bretelle d'autoroute quelque part, alors si quelqu'un avait un plan pour me dire ou ca faute, ca serait cool.

@+ et merci

2 réponses

Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
Salut,
c'est marrant j'en fait un aussi pr le moment ... (normallement il arrivera bientot !)

Si je ne dis pas de connerrie , ton p.fCenter va bouger dans tes frequences (la d accord ) mais tu fais varier le gain nulle part il reste a p.fGain := 0;

donc tu verra jamais la difference

procedure TParamForm.Tb_1Change(Sender: TObject);
begin
  BASS_FXGetParameters(fx[1], @p);
  p.fCenter := 125-Tb_1.position;
   p.fGain:= x ; //varie de -15 a 15
  BASS_FXSetParameters(fx[1], @p);
end;

A priori je dis que c est ca , pas trop regarder le ode mais ca m a choqué ..
Ciao

Merci Nico,

Le coup du p.fGain à la place du p.fCenter, j'avais zappé .

@+