Mixer des HStream avec BassMix

Résolu
Utilisateur anonyme - 20 juil. 2007 à 19:02
cincap
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
- 23 juil. 2007 à 10:13
Salut à tous,

J'essaye désesperement de mixer différents HStream avec la dll BassMix, mais que neni ca mixe rien du tout . Je vous passe un bout de code

Var
  SoundStreams: Array of HSTREAM;
  IndexBand:Cardinal;

Procedure Bands_Mix;
Var
Index:Cardinal;
Begin
  SetLength(SoundStreams,IndexBand+1);
  SoundStreams[IndexBand]:=BASS_Mixer_StreamCreate(44100,2,0);
  BASS_ChannelSetPosition(SoundStreams[IndexBand],0);
  For Index:=0  To (IndexBand-1) Do
    Begin
      BASS_ChannelSetPosition(Chans[Index],0);         BASS_Mixer_StreamAddChannelEx(SoundStreams[IndexBand],Chans[Index],BASS_MIXER_MATRIX,0, 0); //Les HStream jusqu'a IndexBand-1 sont oki. BASS_Mixer_StreamAddChannel ne fonctionne pas non plus, j'ai testé
    End;
  BASS_ChannelSetPosition(SoundStreams[IndexBand],0);
  BASS_ChannelPlay(SoundStreams[IndexBand], False);
End;

En fait SoundStreams[IndexBand] est bien crée mais il est vide.

Si quelqu'un voit ce qui ne vas pas .

Ps : Normal que les tableaux ne sont pas libérés (pour l'instant je précise )

7 réponses

Utilisateur anonyme
21 juil. 2007 à 12:58
Salut,

J'ai trouvé la solution :

procedure TForm1.Button1Click(Sender: TObject);
Var
  mixChannel, Source1, Source2: cardinal;
begin
    mixChannel := BASS_Mixer_StreamCreate(44100, 2,  BASS_SAMPLE_FLOAT);
    Source1:=BASS_StreamCreateFile(FALSE,PChar('C:\1.mp3'),0,0,BASS_STREAM_DECODE OR BASS_SAMPLE_FLOAT);
    Source2:=BASS_StreamCreateFile(FALSE,PChar('C:\2.mp3'),0,0,BASS_STREAM_DECODE OR BASS_SAMPLE_FLOAT);
    BASS_Mixer_StreamAddChannel(mixChannel,Source1,BASS_MIXER_DOWNMIX);
       BASS_Mixer_StreamAddChannel(mixChannel,Source2,BASS_MIXER_DOWNMIX);
      BASS_ChannelPlay(mixChannel,False);
end;
3
WhiteHippo
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
20 juil. 2007 à 20:54
A première vue et à la volée, il me semble que cela devrait plutot ressembler à quelquechose comme :
  Mix := BASS_Mixer_StreamCreate( ...
  Src1 := BASS_StreamCreate( ... 
  Src2 := BASS_StreamCreate( ... 
  BASS_Mixer_StreamAddChannelEx(Mix, Src1,...
  BASS_Mixer_StreamAddChannelEx(Mix, Src2,...

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
Utilisateur anonyme
20 juil. 2007 à 23:52
Salut

Ce bout de code ne fonctionne meme pas :

var
Form1: TForm1;
SoundStreams: HStream;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

 If (HIWORD(BASS_GetVersion) <> BASSVERSION) or (not BASS_Init(-1,44100,0,Application.Handle,nil)) then Halt;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SoundStreams:=BASS_Mixer_StreamCreate(44100,2,0);
     BASS_Mixer_StreamAddChannelEx(SoundStreams,BASS_StreamCreateFile(FALSE,PChar('C:\File1.wav'), 0, 0, BASS_SAMPLE_FX),BASS_STREAM_DECODE ,0, 0);
     BASS_Mixer_StreamAddChannelEx(SoundStreams,BASS_StreamCreateFile(FALSE,PChar('C:\File2.wav'), 0, 0, BASS_SAMPLE_FX),BASS_STREAM_DECODE ,0, 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
BASS_ChannelPlay(SoundStreams,False);
end;
0
Nicolas___
Messages postés
992
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
24 avril 2013
2
21 juil. 2007 à 13:25
Salut Francky , et qu'est ce que cela fait au juste ?

Ca joue les musiques en meme temps , est ce cela ?

Si oui tu peux le faire avec Bass seulement ... je ne connais plus la fonctions au juste mais tu as une commande pour "linker" 2 sons ...

Et ici peux tu le faire avec 3 sons ? ou meme + ?

Merci

Ciao
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 juil. 2007 à 15:40
Salut Nico,

Je viens de regarder la fonction dont tu parles ;
BASS_ChannelSetLink

Pour cette partie là ca va coller. En fait BassMix permet de te créer un HStream qui est un mixage de différent Channels : par exemple ca te permet de créer un fichier wav à partir de plusieurs mais c'est loin d'etre top comme truc

Merci
0
Utilisateur anonyme
21 juil. 2007 à 15:57
En fait le problème que je rencontre avec BasMix c'est que tu dois utiliser le flag BASS_STREAM_DECODE avec la fonction BASS_StreamCreateFile. Cependant je n'arrive pas à jouer un tel HStream avec  BASS_ChannelPlay et le changement de flag ne donne rien : grrrrr.
0
cincap
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
23 juil. 2007 à 10:13
Bonjour à toutes et à tous,

Bravo donc à Withehippo qui reste toujours sur la défensive tous en restant très humble.

@+,

Cincap

[url]mailto:/url
0