Evaluating fmod for our app, I just wanted to ask if it can be used (and how) to process sounds and exports result in sound file (like a post-production process to pre-compute some audio parts). I guess we can accomplished it using NO_SOUND or WAF_WRITER drivers, but I don’t really understood how it works. Is there an easy way to do :
– Setup process (loading sources files, configuring effects, etc.);
– Run process
– get mixed result and exports it to file
Thanks in advance,
- sviannay asked 10 years ago
You would just load and play sounds as normal. If you use FMOD_OUTPUTTYPE_WAVEWRITER_NRT you then use System::update to drive the mixer in a non-realtime fashion.
All it does is dump an fmodoutput.wav in your executable directory, or you can rename it by passing a filename to extradriverdata parameter of System::init if you want.
Thanks for your quick reply, in fact it works well (as well as mixing several sounds, effects and so on).
I now have to control sync during playback (such as starting fades or effects at specific time, etc.). All works well if I do the sync using system time and RT playback , but it’s not really wished to play it in real time while I just want to render my ‘timeline’. So using channels::getPosition() combined to loop count and loop positions (yes, I’ve tried using a looping sample :)), I succeeded to manage it in NRT mode, but this control is done sound by sound, not for the whole timeline.
So first do I manage my problem in the best way ?
Is there a way to get some "position" on the global rendering process (through masterChannelGroup for example) ?
If you’re calling System::update to update the non realtime output, you’re making fmod process a buffer, so just add the dsp block size to a global integer every time you call it. This would be the number of output samples you are processing.
Please login first to submit.