An important question here is why you need to save the files out, if it's possible to do this offline then it would be a lot simpler. If you must record the concatenation of several files (including others played in parallel), it is quite possible with FMOD.
An important question here is why you need to save the files out, if it's possible to do this offline then it would be a lot simpler. If you must record the concatenation of several files (including others played in parallel), it is quite possible with FMOD. One way would be to use wave-writer-nrt output mode, which allows you to output a wav file based on FMOD playsound calls in faster than realtime.
Another way is to use a custom DSP to access the data stream of any submix as it plays, useful if you want other sounds actually playing at the same time. Another is simply create the sound objects, then use Sound::lock to access the PCM data, which you could concatenate yourself to a destination. Keep in mind all the sounds would need to be the same sample rate and channels, otherwise you would need to do processing.
Also keep in mind you cannot do this for parallel sounds unless you want to mix the audio yourself.
Thank you, Mathew. I'll try this out. – Alexander O Sep 30 at 12:17 Regarding the first question - I have a requirement to be able to output a resulting file from the resulting mix without playing it back and I'm looking for a best way to do it.
I understand FMOD is awesome for playback, but can't figure out how good does it fit for saving a mix of arbitrary files specified by application. – Alexander O Sep 30 at 12:25 1 Since FMOD is designed for playback you need to load the sounds, then play them with FMOD. If you want to avoid hearing the result use the no-sound or wav-writer output modes.
If you need to playback faster than realtime use the 'nrt' versions of those output modes. – Mathew Block Oct 2 at 21:53 Thank you Mathew. OUTPUTMODE_WAVWRITER_NRT is what I needed indeed.
If I update very frequently and start playback of other parallel sounds in other channels I will get what I want. Still, too bad FMOD doesn't have global record time tracking facilities, I can get only position within the currently playing sound, but in my case this is ok. – Alexander O Oct 5 at 9:51 1 Actually you can get a global time by using System::getDSPClock, this clock value is incremented for every sample produced by the system.It increments in number of output samples.
So if the system is running at the default rate for Android of 24000, every second the clock will increase by that amount. – Mathew Block Oct 5 at 22:25.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.