Using the Record Feature from the DAW in a Plug In

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.

  1. Using the record feature in the DAW but not store it onto the workstation instead store it as a temp in the plugin

  2. 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
  1. 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.

Sorry for no better news…

2 Likes

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.

2 Likes

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.

But would it be impossible to just call the record function from the DAW into the plug in directly?

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.

But the sound recorded also needs to be processed by 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 :wink:

1 Like

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.)

1 Like

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.

sounds like you’re doing sample replacement, like Steven Slate Trigger. yes/no?

1 Like

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.

Yes this is exactly what I am looking for. Thank you for some direction. If you have any info on this I would love to explore this more.

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.

1 Like

Thank you! I will give that a try and test it out with a simple test plugin,