Independent audio recording

I’m thinking about the possibility to record an audio file independently from Clip / Takes etc. My use case is to record an audio file direct to a sampler plugin and play it instantly. Where could be the point to grab the incoming audio input? Maybe with through deviceManager from te::engine?

Suggestions are welcome!

My suggestion is that you let the host / DAW manage the inputs. You could create an instrument that listens to the main input and an additional side chain input.

Sounds good to let the DAW (in my case the tracktion_engine) manage the inputs. I would create a tracktion plugin and listen to the buffer. For better understanding I choose the tracktion plugin “equaliser”. In this plugin I can grab the buffer in the function applyToBuffer.

te::Equaliser::applyToBuffer

I would take the variable fc.destBuffer and write it in a file. For example with juce::AudioFormatWriter::ThreadedWriter

Does it make sense?

You can grab the AudioDeviceManager from the Engine and then add addAudioCallback and get the raw audio coming in. The downside to doing this is the audio won’t be associated with one of the Inputs that the engine creates. This may or may not be an issue for you. Maybe not if you only support stereo in, maybe in your support 10 input channels and you need to figure out which one is which.

It’s not really designed for it, but each input has a RetrospectiveRecordBuffer which holds the last 30 seconds or so of incoming audio, you might be able to grab it from there if you just need a bit of audio.

1 Like

Works for me! I can record audio direct from default audio input. I access to juce::AudioDeviceManager though the engine.

engine.getDeviceManager().deviceManager.addAudioCallback( &audioRecorderCallback );