I have been trying to work out how to mix individual streams/channels into a mono mix, then apply the result to either the left or right channel.
I’m not sure what the procedure might be – I guess it requires a DSP, but they seem to be for the Overall output, not an individual Stream/Channel.
To date I’ve just used FSOUND_SetPan(n, 0), but that drops the right channel (obviously), and is insufficient.
Can it be done at all?
- ih asked 15 years ago
Hi brett, me again
I have a problem that might be solved with mono streams.
As you know 3d sounds can not be stereo, but I wondered if I couldn’t have 2 mono channels from 1 stream, that I can possition in 3d space myself.
A simple solution would be a FSOUND_MONO_LEFT and FSOUND_MONO_RIGHT flag or something like that, but then I would have to play the stream twice.
no, I know.
I still want to play one stream in stereo, and be able to set it to front speakers or rear speakers.
My current implementation uses one 2D stream that is stereo and heard front and rear.
Then I have a second stream that I syncronize with the first using GetPositionMs and SetFrequency (a bit like your sound recording example, but with smaller changes so you don’t hear it very hard)
This second stream is only played rear and mono.
So I can’t listen to a song solo in the headphones, cause the current playing song is always played in the headphones.
I guess the only real solution will be multiple sound-cards.
I’ve done some playing with FSOUND_FORCEMONO during the FSOUND_Stream_OpenFile() call, followed with a FSOUND_SetPan(), and it appears to mix the channels together into the desired Pan channel. However, the output level seems to be only half level – is that correct? And if so, is there a way to fix it?
A second problem has appeared though (shock a bug!) the FSOUND_Stream_GetLengthMs, now returns a duration 2x too long on some .wav files, as a consequence (Window’s lovely “chimes.wav” is a good example).
I’d still like to know, though, is how to insert a DSP filter, and apply it to only one channel. Perhaps a quick code example?
- ih answered 15 years ago
Please login first to submit.