Hello. I am currently working on a plug in for a research project and am struggling to find resources on integrating the DAW’s recording function into the plug in. I have come up with two possible ways to use the record feature in my DAW to be ran through the plug in but with with playback.
Using the record feature in the DAW but not store it onto the workstation instead store it as a temp in the plugin
Have the plugin make a new mute track in the workstation automatically in order to run the recording through the plug in.
Any help getting started on either of these would be very useful. Thank you.
You don’t find resources on recording in a plugin, because it is not the purpose of a plugin to record. The host is responsible for recording and for playing back. The plugins are responsible to filter or interact in any way with the signal flowing through the plugin.
It has advantages:
The host can keep the generated audio synchronised
the plugin has not to deal with the systems resources like drives, performance etc.
you can continue working with the audio by feeding it into the next plugin
this is actually the way to go. Unfortunately usually the user has to create that track and route the plugins output there.
The plugins are not meant to create a custom workflow.
There are some hosts that offer scripting, e.g. Reaper. But I don’t have any experience, how good that works and I don’t know, if that’s an option for you.
Nevertheless, some plugins rely on doing something akin to recording, such as Melodyne (without the ARA support enabled) and GRM Tools Freeze. So implementing some form of record functionality is certainly possible to do.
Thank you for the reply. I will try to see if I can implement this. However a big part of my project in this lab is to try to replace recordings with sounds from a library.
I am not sure what you even mean by that…? Every host implements audio recording in its own way and some don’t maybe even have the concept of recording anything. So plugins can’t reuse those parts of the host.
I guess what I am trying to do is record something into the workstation then select it and swap it out for another sound from a library using the plugin.
Agreed, but it is really the last resort. I also often wished for more offline access to data like audio and automation data… but that’s not the “usual case”, if such thing exists
OK, that certainly isn’t possible with the standard hosts and plugin formats, unfortunately. (Cockos Reaper does have support to do things like that, but it is of course completely specific to Reaper and won’t help you with other hosts.)
Why do you need to have the recording made by a daw and why do you need to have your research done with a plugin? There are examples among the juce extras/demos how to record. Why don’t you just make a stand alone app that does its own recording and incorporate the plugin directly into that app?
That was my original plan but one of the people in charge of my research wondered why I would make my own plugin that recorded audio when the DAW does that for us already.
To be honest, your initially request is still a mystery to me. Why do you have to integrate the recording facility into your plugin? Why not simply do the recording in your daw of choice and play it back through your research plugin? Optionally loop the recording, pre/post filter it with another suitable plugin or doing any other fancy stuff you can do with a daw.
you’re basically reading the audio that’s sent from the daw to the plugin in processBlock(AudioBuffer,MidiBuffer), analyzing it, and replacing the AudioBuffer with your own sample data.