|
Salvo
Posts: 41
|
 |
« on: 19 May '12 - 18:43 » |
Quote
|
because I can not feel together 2 mp3 files, I have 2 separate channels to mix 2 mp3 files. This is the code that does not work. Why?
------------------------------------------- function AsioProc1(input: BOOL; Channel: DWORD; buffer: Pointer; Length: DWORD; user: Pointer): DWORD; stdcall; var c: DWORD; begin c := Bass_ChannelGetData(DWORD(User), buffer, Length); if (c = -1) then c := 0; Result := c; end; function AsioProc2(input: BOOL; Channel: DWORD; buffer: Pointer; Length: DWORD; user: Pointer): DWORD; stdcall; var c: DWORD; begin c := Bass_ChannelGetData(DWORD(User), buffer, Length); if (c = -1) then c := 0; Result := c; end;
.............................................
BASS_Init(0, 44100, 0, 0, nil); BASS_ASIO_Init(0,0);
BASS_ASIO_ChannelEnable(False, 0, @AsioProc1, Pointer(0)); BASS_ASIO_ChannelJoin(false, 1, 0); BASS_ASIO_ChannelSetFormat(False, 0, BASS_ASIO_FORMAT_Float); BASS_ASIO_ChannelPause(false, 0);
BASS_ASIO_ChannelEnable(False, 2, @AsioProc2, Pointer(2)); BASS_ASIO_ChannelJoin(false, 3, 2); BASS_ASIO_ChannelSetFormat(False, 2, BASS_ASIO_FORMAT_Float); BASS_ASIO_ChannelPause(false, 2);
BASS_ASIO_Start(0);
chan := BASS_StreamCreateFile(false, PChar('Test1.mp3'), 0, 0,BASS_SAMPLE_FLOAT or BASS_STREAM_DECODE or BASS_UNICODE or BASS_SAMPLE_LOOP); chan := BASS_FX_TempoCreate(chan, BASS_FX_FREESOURCE or BASS_STREAM_DECODE);
chan2 := BASS_StreamCreateFile(false, PChar('Test2.mp3'), 0, 0,BASS_SAMPLE_FLOAT or BASS_STREAM_DECODE or BASS_UNICODE or BASS_SAMPLE_LOOP); chan2 := BASS_FX_TempoCreate(chan2, BASS_FX_FREESOURCE or BASS_STREAM_DECODE);
BASS_ASIO_ChannelEnable(False, 0, @AsioProc1, Pointer(chan)); Bass_Asio_ChannelReset(false,0, BASS_ASIO_RESET_PAUSE);
BASS_ASIO_ChannelEnable(False, 2, @AsioProc2, Pointer(chan2)); Bass_Asio_ChannelReset(false,2, BASS_ASIO_RESET_PAUSE);
............................
|