0
0

We want to have a non-real time mixdown function for our little application. By mixdown I mean recording the sound to the disk with the effect applied on it (like Cubase does or Abbleton Live).

I don’t see an easy way of doing that. I know that I can use system::setOutput(FMOD_OUTPUTTYPE_WAVWRITER_NRT), but that needs to be called before system::init() or after system::release().

So I want to create a second system, with the same set-up as the first one, but it takes a lot of work. So I was wondering if anyone has ideas.

Also, I done some testing, and it doesn’t seem possible to pass FMOD::DSP * (pointers) in between systems. It almost works, but the result is not good at all, why there is no function DSP::setSystem() ?

Would it be possible in future release to make the function system::setOuput() accessible after system::init() ? ๐Ÿ˜†

  • You must to post comments
0
0

There wont be any possibility of changing the output after init, that doesnt really make sense. Its part of the initialization.

If you want to do a mix down, just play 2 sounds and capture the result, or use channelgroups or the system object to put the effect on. Have you looked at any of the examples such as submixing?

  • You must to post comments
0
0

Thanks for the fast reply :)

I already had a look at the submixing example. Also, I know that I can place a DSP effect on the system and capture the data from there. That’s easy to do.

The part where it gets interresting is if I don’t want to wait for a whole song to play, that’s why I want to use FMOD_OUTPUTTYPE_WAVWRITER_NRT.

So without changing the output of system, would it be possible to stop the output of the system so the system would behave like FMOD_OUTPUTTYPE_NOSOUND_NRT for a moment. Then do the mixdown in non-real time. Finally, reset the sytem to output data to the sound card.

I know that you have a zillion feature requests per week… but this feature would be really nice for our project. Is is not critical for now, because we can do that stuff in real-time, but I don’t like to make a user wait for 4 minutes, while he could be waiting for only 30 seconds.
๐Ÿ˜‰

  • You must to post comments
0
0

Just use a second system object for non realtime stuff. There is absolutely no chance that the output mode will change mid stream.

  • You must to post comments
0
0

Let say that we have created two system: systemA (real-time), systemB (non-real time). SystemA and systemB have the same format, same bitdepth, same sampling rate…

I tried to create a DSP effect on systemA and then I used it on systemB. It seems to works fine.

To solve my problem I though about disconnecting "master channel group DSPunit" of systemA and plug it in the systemB "system DSPhead". Is it a bad technique?

Otherwise, I would have to copy the whole DSP tree of systemA to systemB to achieve what I want to do.

  • You must to post comments
Showing 4 results
Your Answer

Please first to submit.