Old 09-18-2018, 05:39 PM   #1
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default (ab)use Monitoring FX as send/receive?

I use multiple project tabs live, with each one holding a song. That means that my live inputs (vocals, guitar) have to be duplicated in each project, and if I change any of their settings (eg. input compression or gate params), I have to update every project's input tracks with those changes. A major pain.

But it's worse for a 'global' effect like a feedback eliminator - there should only be one project-independent instance that can learn the room and then affect every vocal mic input automatically (I couldn't manually copy the learned settings to all the projects' mic input tracks on stage).

The only project-independent fx are the Monitoring FX right? So if I could send audio from a project's input track (say the vocal) to a custom receiver effect in the MonFX chain, run it past (say) the feedback eliminator, and then return the audio back to the project track with another custom plug, that would solve it for every project.

Can that be done with scripting? Or worst-case, C++ (I'm a programmer)? Is global script memory project-independent?

Or another approach?
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-18-2018 at 05:48 PM.
DeBased is offline   Reply With Quote
Old 09-18-2018, 05:58 PM   #2
junh1024
Human being with feelings
 
Join Date: Feb 2014
Posts: 240
Default

DO you NEED to do this? What's the overall aim/intent? Maybe you need to change your workflow, would a single "recording template/project" suffice, and then import recorded files into other projs afterwards?
junh1024 is offline   Reply With Quote
Old 09-18-2018, 06:03 PM   #3
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

Quote:
Originally Posted by junh1024 View Post
DO you NEED to do this? What's the overall aim/intent? Maybe you need to change your workflow
Yep, so I need to keep each song in its own project, as they're complex (tempo automation, lots of song-specific effects and automation on the live inputs etc). So there's no way around having to duplicate all my live input tracks in each project.

If you read above again about a feedback eliminator plugin you'll see the issue. When I'm on stage, I ask it to learn the room and EQ out any feedback. But those settings won't magically ripple down to the mic input tracks in every project. So I need the eliminator plugin to affect the mic input _before_ it is routed into each project's input track. ie. this is a global (project-independent) input effect which Reaper doesn't provide. Or you can think of it as a hardware-input effect (before it hits a track).

The Monitoring FX are project-independent, so they could be abused to solve it.
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-18-2018 at 06:12 PM.
DeBased is offline   Reply With Quote
Old 09-18-2018, 06:08 PM   #4
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

As a concrete example, my 'global' live vocal chain is something like this:

Feedback Eliminator
Noise Gate
Compression
EQ

These are the same for every project/song, so they shouldn't be project-specific but global to the mic input. Right now every project has this plugin chain, and any changes need to be copied into every project (sigh). But the feedback eliminator doesn't work at all, because only one instance can learn the room, and the other instances won't know those settings. So it would only work for one project/song.
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)
DeBased is offline   Reply With Quote
Old 09-18-2018, 06:19 PM   #5
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

Thinking about it, there's another benefit from (ab)using the MonFX rather than having native 'global input' fx:

if you want to record the live show, the global input FX (if they existed) would be baked into the recording, which is not what you'd want.

Whereas if you use send <> receive to the MonFX from an input track's fx chain, you would still be able to record an unprocessed signal for later offline mixing.
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-18-2018 at 07:06 PM.
DeBased is offline   Reply With Quote
Old 09-18-2018, 09:40 PM   #6
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

So I have this working as a proof-of-concept by sending audio via gmem to a Monitoring FX JS, and then returning it via a different gmem address range back to the sending track.

That works (ie. gmem is actually project-independent, cool). The problem is that it's glitchy. The simple case of just sending some test audio to Monitor FX this way for output (no return path), and nothing else going on, slightly glitches like the ASIO buffer size is too small (it isn't for anything else). Not terrible, but unusuable. To check it wasn't my code I tried 'JS gmem Send/Receive' and they're the same.

First guess is that nobody forsaw that scenario and this sneaky audio-path just isn't optimised. But maybe I'm missing something?


EDIT: Yes I was. The audio sent to Monitoring FX is bypassing the render-ahead preference. When set >0ms it arrives _earlier_ than the same audio running through the normal path! If I set render-ahead to 0ms, both audio routes are synced, and the glitches also go away for my track->MonFX route. But I need render-ahead for performance. Thoughts?
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-18-2018 at 09:59 PM.
DeBased is offline   Reply With Quote
Old 09-19-2018, 01:53 AM   #7
sonicowl
Human being with feelings
 
sonicowl's Avatar
 
Join Date: Oct 2015
Posts: 739
Default

Quote:
Originally Posted by DeBased View Post

Or another approach?

Instead of using Monitor FX, you could use dedicated track just for monitoring, and then copy that track between projects, or update it with track template.


Another idea: run second Reaper only as input FX, and setup routing with ReaRoute.
sonicowl is offline   Reply With Quote
Old 09-19-2018, 03:22 AM   #8
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

Quote:
Originally Posted by sonicowl View Post
Instead of using Monitor FX, you could use dedicated track just for monitoring, and then copy that track between projects, or update it with track template.
Right but the problem is that I keep making changes to my live effect chain, so I have to keep copying them amongst 6-10 projects. But also with the feedback eliminator, I don't have time to copy the EQ it learns live on stage to all the projects.

Quote:
Another idea: run second Reaper only as input FX, and setup routing with ReaRoute.
Yes someone else came up with that in another thread. It's a good idea but messy. I'm worried about CPU contention issues possibly, affecting latency, it's more complex to set up and reload in a hurry (if something goes wrong on stage) etc. And then if I also want to send an unprocessed signal from the first 'pre-processing' instance to the 2nd (where the projects live) for recording, I need to send two streams for every input.

All doable but messier. If I can keep it in one instance that's ideal.
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)
DeBased is offline   Reply With Quote
Old 09-19-2018, 06:55 AM   #9
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

I have MonFX send/receive working now without the latency. It was caused by returning the audio from MonFX to a different track then the input. This seems to have confused the internal buffering. Routing it back to the original input track (ie. a true send/receive) works and is simpler to boot.

Will post full details when I've battle tested it with my live setup ...
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)
DeBased is offline   Reply With Quote
Old 09-19-2018, 07:35 AM   #10
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

This is the basic idea (and how my test is set up):




So any MonFX between the JS: Receive and JS: Send pairs there that only process on channels 3+4 are the project-independent send/return effects that a project track can route itself through. The track continues to function as normal, outputting the processed version through the Master and MonFX on channels 1+2 (and it can also record the unprocessed input as usual). The MonFX also function as normal for 1+2.

You have to set up the FX routing a bit, but this currently works in my test. We'll see how a full project with two input tracks handles ...
Attached Images
File Type: gif signal path.gif (45.9 KB, 992 views)
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-19-2018 at 08:18 AM.
DeBased is offline   Reply With Quote
Old 09-19-2018, 09:27 AM   #11
ashcat_lt
Human being with feelings
 
Join Date: Dec 2012
Posts: 7,264
Default

I'm glad you figured it out, and think it's a pretty innovative solution.

This thread raised a couple questions, though:

1) Why do you need "render ahead" in a live situation? Seems like it can't work on anything that might change in realtime during the performance, and anything that won't should probably just be rendered to .wav that is simply played back at gig time.

B) What are you using for a feedback eliminator? Reading your other thread yesterday sent me out googling, but I only really found one plugin out there. It's probably the same thing, and the idea of "learning the room" is not going to work in many situations, but I thought I'd ask.
ashcat_lt is offline   Reply With Quote
Old 09-19-2018, 12:25 PM   #12
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

Quote:
Originally Posted by ashcat_lt View Post
I'm glad you figured it out, and think it's a pretty innovative solution.
Thanks, I'll see tomorrow how it works in a real world scenario.

Quote:
1) Why do you need "render ahead" in a live situation? Seems like it can't work on anything that might change in realtime during the performance, and anything that won't should probably just be rendered to .wav that is simply played back at gig time.
Actually right now that is true, my backing tracks are currently pre-rendered (using sub-projects as they load way faster than just freezing those tracks). But in the longer run I want to be able to tap-tempo each song on the night. Realtime time-stretching the pre-renders might work OK for that, but it probably sounds a bit better and is more flexible to run the backing tracks live (at least the electronic parts).

But I think I was hitting a buffering bug anyway by returning the audio to a new track - when I return it to the sending track (as in the pic above) then there is no latency added.

Quote:
B) What are you using for a feedback eliminator? Reading your other thread yesterday sent me out googling, but I only really found one plugin out there. It's probably the same thing, and the idea of "learning the room" is not going to work in many situations, but I thought I'd ask.
So it's Waves X-FDBK. I haven't actually used it yet, but I will on my next gig. It basically listens for the onset of feedback (ie. resonances), and then notches them out with EQ. That's what I meant by 'learning the room'. It can probably do this during the performance too, but I would like to catch as many problem peaks during the soundcheck as possible for a smoother show (then I don't have to keep actually hitting feedback before it acts).

__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)

Last edited by DeBased; 09-19-2018 at 12:31 PM.
DeBased is offline   Reply With Quote
Old 09-20-2018, 12:38 AM   #13
DeBased
Human being with feelings
 
DeBased's Avatar
 
Join Date: Jun 2010
Location: UK
Posts: 412
Default

I've created a new thread for this project, and will post udpates there soon:

https://forum.cockos.com/showthread....24#post2036724
__________________
Reaper5, Win10Pro, Ryzen 5950x/64GB, RME UFX/BabyFace Pro, Behringer X-Touch
- my true 'global' (project-tab independent) Send/Receive FX
- my Behringer X-touch mods + XCtrl mode for CSI (coloured scribble strips!)
DeBased is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:05 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.