I’m in the process of making a DJ mixing program, and one of the key features is to have a graph that shows the volume of the music being played, so that the user can “see” what will be happening in the next few seconds of the music. I am currently doing this by analysing the FSOUND_Stream_GetSample() function … however, this buffer only holds a very small amount of sound data (like 50ms), and I ideally wanted it to display at least a second’s worth of music…
Is there any way to alter the length of the streaming buffer? Strangely the FSOUND_SetBufferSize() function doesn’t help here..
Is there an easy solution for what I want to do?
Thanks, any help appreciated,
Ok, I went away and wrote a DSP function that buffers up everything that it gets passed…
The result is that when I use FSOUND_SetBufferSize() and use a size of something like 500ms the result is brilliant – a clear graphical display that outlines where beats are displayed very nicely.. there are TWO problems though:
1) MASSIVE latency :S – does anybody know of any hacks to get streams to start/stop with less latency but still buffer up 500ms worth of music beforehand? I was thinking possibly setting the position of the play cursor within the buffer, but there is no function to do this (grrrr)..
2) The DSP unit is specified as a parameter in the FSOUND_Stream_PlayEx() function, because I only want this DSP to be called for a certain stream alone, not in the main DSP chain. It was created normally with the FSOUND_DSP_Create() func. The help file says that you can configure DSPs to only affect some streams, but if I want to enable that DSP the only function I can call is the FSOUND_DSP_SetActive() which enables it in the main DSP chain which defeats the point!! How do I set it to only affect the channel/stream that I want it to?
Thanks a lot, any help appreciated,
Smidge – email@example.com
<font size=-1>[ This Message was edited by: mr_smidge on 2002-01-16 07:48 ]</font>
Thanks, I think I see what I need to do, but I am not particularly familiar with the DSP system. Are there any tutorials floating around on the net specifically for FMOD? .. but don’t worry, if not I’ll be perfectly happy doing things the hard way 😀
Please login first to submit.