|
|
|
08-23-2009, 11:26 PM
|
#1
|
Human being with feelings
Join Date: Mar 2008
Posts: 168
|
Midi Controllable Sends Tutorial
After trawling through the forum desperately trying to figure out something that should be relatively simple, i have found a workaround that i would like to share with everyone who may find it useful.
.
Controlling sends to effects via midi or a control surface using cc's.
.
The key to this working is the JS: Utility/sender plugin by 'Biloon and Schwa' - http://forum.cockos.com/attachment.p...0&d=1186593070 Thank you ! i don't know what to say !
.
I make a lot of roots dub music and this has been bugging me for quite some time and i have seen countless posts about it.
.
First if someone has already explained how to do this then please add your thread
.
I will try to keep it as simple as possible, so here goes.
You need 2 tracks
One that has your Audio Part ( hotpantz for some reason here lol )
And One to Accommodate the dry signal.
Setup an FX chain on the first track ( hotpantz )that has JS: Utility/sender followed by the effect you wish to send to ( ReaDelay in this case ).
.
Setup the JS: Utility/sender as follows.
The Main Output 1+2 are switched off
And the send is assigned to output pins 3+4
Note: you can also edit the maximum point for the send slider to prevent it from going into clipping by editing the JS file.
Press the edit button and bring up the environment window and click on Open in external editor as follows.
Now change the maximum value for the slider to something that suits, let's say 0 for now .
Then hit save in the text editor and then click on Full recompile/reset and exit the Js environment, you should now see the send sliders maximum value at 0db.
Next setup the ReaDelay as follows.
Note that the input's are set to 3+4 matching the outputs of the JS send plugin. And the outputs are set to 1+2. Also i have removed the dry signal from the delay.
NOTE:If at this time you haven't created another track to put the dry signal now's the time to do so.
Next click on the Track 1's IO button ( hotpantz ) to bring up the routing window
Add a new send to the second track and set it to Pre-fx as follows
Next bring up the routing window for track 2 and set it to recieve from track 1 like this.
You should now have a dry version playing on track 2 and an effected version on track one.
And a midi controllable send !
There is also a multisend version in the download that can be used to send to more effects in the chain Thanks again to Biloon and Schwa for the plugs !
Hope this solves a few peoples headaches pm with any suggestions to improve this tutorial or for anything that maybe unclear etc.
DUB IT CHA !
I made an expanded sender plugin giving 7 inline automatable sends per track https://stash.reaper.fm/v/3534/sender_multi8.zip , for use with the 'Mixer_8xS-1xS' plugin ( put last in the chain ) gives you automatable return levels for each effect in line too much fun ! and you still have your dry version too of course !
Last edited by Reverbio; 08-26-2009 at 11:25 AM.
Reason: add on
|
|
|
08-24-2009, 01:46 AM
|
#2
|
-blänk-
Join Date: Jun 2008
Posts: 11,359
|
Wow, that's a cool workaround . Thanks for pointing to the sender plugs.
You can also do the conventional "send several tracks to a single FX bus track" approach:
* Set the track(s) you want to send from to 4 channels
* insert the JS: sender plugin and set it up just as Reverbio describes above on each of those tracks. They need to send to channels 3/4 and Output 1/2 needs to be off. The "Send Level" fader is the one you want to control via MIDI.
* Create a track to contain the FX you want to send to. Obviously, set the FX to 100% wet.
* Create receives from all tracks that you want to be sended to the FX bus and make them receive from channel 3/4 of those tracks. Decide yourself if you want them pre or post fader, but they need to be post FX. I think it's best to set them to unity gain (zero dB).
Now you can MIDI control the send level faders (of that JS: sender plugin) for each of the sending tracks
good stuff!
Last edited by gofer; 08-26-2009 at 10:19 AM.
Reason: cleaned it up a bit for (hopefully) easier reading
|
|
|
08-24-2009, 05:11 AM
|
#3
|
Human being with feelings
Join Date: Jan 2009
Location: Utrecht, The Netherlands
Posts: 3
|
Great, thanks!
Last edited by timbesamusca; 08-24-2009 at 05:15 AM.
|
|
|
08-26-2009, 06:29 AM
|
#4
|
Human being with feelings
Join Date: Jul 2009
Posts: 44
|
Waay cool! Thanks much...Pia
|
|
|
12-10-2011, 03:12 AM
|
#5
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
So few replies to such a big topic? Interesting. Do we have any maximum limit to how many receives we can add to a track? For example if I have in the project 100 tracks, and 1 Send Delay Bus, and I want to be able to send all those 100 tracks to this delay, then I need to add 100 receives in this Delay Bus. In short, if you have N tracks, you need N receives in all of your SEND BUSSES, if you want to have the freedom of sending any of the N tracks to this SEND BUS.
Last edited by TonE; 12-10-2011 at 03:24 AM.
|
|
|
12-10-2011, 03:54 AM
|
#6
|
Human being with feelings
Join Date: Apr 2009
Location: Bristol uk
Posts: 1,006
|
^^^^^
Yes But watch out it can become cpu hungry.
Quote:
Originally Posted by jedstar2000
Hears a neat little track template that gives you 4 fx buses and 12 tracks all with send that can be controlled via midi using an audio spliter vst.
https://stash.reaper.fm/v/3829/Midi%20Sends.rar
Js version works but bleads signal threw and really power hungry
8 tracks killed my 1.8 centrino lappy
Console version
12 tracks uses 40% cpu with each track using 2 to 3%
60 tracks plus on my main DAW.
There are two vsts in each track.
The first a 4 way splitter for the 4 sends and the second a separate 2 way splitter which could be inserted at any place in the vst chain (pre/post eq .ETC)
Console can be downloaded at http://console.jp/en/download.html
I exspect you could run the installer and just use the vst's needed without needing to purchase a license (Although in my eys its the best modular vst host and worth the dollar ) . If not Maybe someone can write a more efficient 4 way js splitter for reaper
Or the devs could sort out the long awaited FR.
|
|
|
|
12-10-2011, 03:58 AM
|
#7
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
My setup has 36 tracks, and I want 4 sends for each of them. If this does not work well, then I will use only for the FOLDER/BUS tracks the 4 sends. That should be then 8 busses going to 4 sends.
|
|
|
12-10-2011, 05:49 AM
|
#8
|
Human being with feelings
Join Date: Jan 2007
Location: Europe
Posts: 36
|
Thanks a lot Reverbio. I've had the same issue for years. I have tried many work arounds (using convoluted routings based on rederecting to certain tracks and midi control the proxy track's volume fader , vsts like Senderella or Sendreacontrol etc...) but they were all rather cumbersome to use.
I really like that your workaround makes it easy to cap the maximum level of the send.
Now does anyone know how to make the fader range logarithmic or exponential in JS?
I have dug an old thread on the topic, but I'm not sure to fully understand what some of savvy posters suggest there: http://forum.cockos.com/showthread.p...rithmic+slider
cheers,
Julien
|
|
|
12-10-2011, 06:12 AM
|
#9
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by jedstar2000
Yes But watch out it can become cpu hungry.
|
It would be great if it would behave as follows: No audio sent -> 0 CPU consumption. I mean just for the added receives.
|
|
|
12-10-2011, 06:46 AM
|
#10
|
Human being with feelings
Join Date: Jul 2011
Location: The Universe
Posts: 35
|
Oh man....midi controllable sends..........thanks so much, Reverbio, Biloon and Schwa!!!!
This was the only thing i was missing in Reaper. Now i can finally tweak those with parameter modulation....especially powerful when i add the 'linker' utility, which can be found here:
http://forum.cockos.com/showthread.p...ameter+linking
|
|
|
12-10-2011, 07:11 AM
|
#11
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
|
|
|
|
12-10-2011, 08:23 AM
|
#12
|
Human being with feelings
Join Date: Jul 2011
Location: The Universe
Posts: 35
|
Quote:
Originally Posted by nofish
|
Thanks for the links, but unfortunately those are Windows only, and i'm on a Mac...bummer....
|
|
|
01-03-2012, 05:18 PM
|
#13
|
Human being with feelings
Join Date: Sep 2007
Location: Montreal, QC
Posts: 518
|
Did I miss something?
Can't we do that with the action "Adjust track send X volume (MIDI CC Only)"??
|
|
|
01-03-2012, 06:23 PM
|
#14
|
Human being with feelings
Join Date: Jul 2011
Location: The Universe
Posts: 35
|
Quote:
Originally Posted by Jeronimo
Did I miss something?
Can't we do that with the action "Adjust track send X volume (MIDI CC Only)"??
|
Yes, you can. But that way you can't modulate sends with audio, lfo's etc.
|
|
|
01-03-2012, 06:41 PM
|
#15
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Is this data written as automation?
|
|
|
01-03-2012, 08:21 PM
|
#16
|
Human being with feelings
Join Date: Sep 2007
Location: Montreal, QC
Posts: 518
|
oops, my bad!
|
|
|
01-04-2012, 06:03 AM
|
#17
|
Human being with feelings
Join Date: Jul 2011
Location: The Universe
Posts: 35
|
Quote:
Originally Posted by TonE
Is this data written as automation?
|
Yes it is.
|
|
|
01-04-2012, 06:08 AM
|
#18
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by 33tetragammon
Yes it is.
|
Hmm, then we have automatable sends, at least for my manual-use-purposes this would be enough, I just want to be able to modify them over my hardware midi controls, plus recording it as automation to be able to make edits on them, sometimes. Thanks for the hints. No need to do complicated routing then.
|
|
|
01-09-2012, 04:33 AM
|
#19
|
Human being with feelings
Join Date: Dec 2007
Location: Please add midi learn to sends. Nuts and bolts before games!
Posts: 296
|
long ignored send learn
amazing how this isnt addressed still. i just checked in today for the first time in close to a year, and 2 years past the original FR.
there is not even a FR for it anymore.
is this sabotage?
yes im a bit annoyed, but it isnt even addressed.
id quit ever looking or responding if the devs simply reply and say NGH....
for now, the easiest no load workaround is to use the free g free gain plugin which is learnable, per send learn per track, on the track, and route it using an unused internal routing channel to a send set to that channel, turnd up to 0db.
works perfect but requires many clicks and a long stare at the routing channel window.
__________________
"The Hottest places in Hell are reserved for those who, in time of moral crisis, maintain their neutrality." --Dante, "The Inferno"
and: www.larouchepub.com organize to effect change
|
|
|
01-16-2012, 06:16 AM
|
#20
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by evanrabby
for now, the easiest no load workaround is to use the free g free gain plugin which is learnable, per send learn per track, on the track, and route it using an unused internal routing channel to a send set to that channel, turnd up to 0db.
works perfect but requires many clicks and a long stare at the routing channel window.
|
Why not doing as mentioned above instead?
|
|
|
01-16-2012, 07:37 AM
|
#21
|
Human being with feelings
Join Date: Dec 2007
Location: Please add midi learn to sends. Nuts and bolts before games!
Posts: 296
|
to stay totally on point, why cant i do as above?
im saying, all we should be doing now is right click learning the send like any plugin window can.
but otherwise, i do as i said because its actualy the easiest way to get a NO CPU LOAD send automation for a whole set of sends, anywhere on the mixer.
all others are either cpu using, or buggy, or even slower to implement...
__________________
"The Hottest places in Hell are reserved for those who, in time of moral crisis, maintain their neutrality." --Dante, "The Inferno"
and: www.larouchepub.com organize to effect change
|
|
|
01-16-2012, 09:53 AM
|
#22
|
Human being with feelings
Join Date: May 2011
Location: Canada
Posts: 1,371
|
Why don't you just do this?
See attached pic
Asssign key, adjust track send x?
|
|
|
01-16-2012, 10:19 AM
|
#23
|
Human being with feelings
Join Date: Dec 2007
Location: Please add midi learn to sends. Nuts and bolts before games!
Posts: 296
|
each send has to be simultaneously on its own unique, separate knob, ready to be turned along with 2 or even more other sends (2 engineers) simultaneously, in real time, no time for paging or selecting knob functions.
there is a group action:
select action:
'select n channel'
combine with action:
'adjust send #n' (up to 8 tho i have 9 in my board per channel...)
assign multiple action to a midi knob
but alas, it lags, is sluggish and takes up cpu time strangely, and also fails to update send GUI all the time.
also its still a convoluted workaround for any new send learn needed.
btw that pic is too small to see... lol!
__________________
"The Hottest places in Hell are reserved for those who, in time of moral crisis, maintain their neutrality." --Dante, "The Inferno"
and: www.larouchepub.com organize to effect change
|
|
|
01-25-2012, 10:42 AM
|
#24
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by evanrabby
for now, the easiest no load workaround is to use the free g free gain plugin which is learnable, per send learn per track, on the track, and route it using an unused internal routing channel to a send set to that channel, turnd up to 0db.
works perfect...
|
Hmm, why is this better than the utility/sender from above?
|
|
|
02-08-2012, 05:13 AM
|
#25
|
Human being with feelings
Join Date: Jun 2009
Posts: 300
|
Quote:
Originally Posted by nofish
|
I just found out about this cool plugin! Thanx for that!
Though I have to say, it's a shame that we don't have this natively in Reaper now. How many years are gone since this FR came up...?
This plugin is 32bit only, any chance we get this for Reaper4 64?
Jeffos pleeeeeaaaaaseee...?
|
|
|
04-22-2012, 08:50 PM
|
#26
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by Jeronimo
Did I miss something?
Can't we do that with the action "Adjust track send X volume (MIDI CC Only)"??
|
The problem with this approach is you have to select a particular track. I want to do this without having to select anything. Also manipulating multiple sends in parallel up to 100 or more, all in constant movement. When will Reaper leave the current stone-age-state regarding sends midi hardware control? NEVER or at some point in future? This is for sure a showstopper for Reaper live-usage.
|
|
|
04-25-2012, 01:37 PM
|
#27
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
Quote:
Originally Posted by 33tetragammon
Thanks for the links, but unfortunately those are Windows only, and i'm on a Mac...bummer....
|
Quote:
Originally Posted by strinxx
This plugin is 32bit only, any chance we get this for Reaper4 64?
Jeffos pleeeeeaaaaaseee...?
|
haha! yeah, this should come at some point, mac builds too..
@nofish ..and proper doc
|
|
|
04-25-2012, 02:28 PM
|
#28
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Fwiw, imho the OSC<-->MIDI route is the best way to do this. For now, at least.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
04-25-2012, 02:56 PM
|
#29
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
I don't see what you mean banned.. can you elaborate a bit?
(what we need here is to learn routings so that they still work when moving tracks, so that it works even if the track is not selected and to save learn data in project file, SendReaControl does that)
|
|
|
04-25-2012, 03:47 PM
|
#30
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Quote:
Originally Posted by Jeffos
I don't see what you mean banned.. can you elaborate a bit?
(what we need here is to learn routings so that they still work when moving tracks, so that it works even if the track is not selected and to save learn data in project file, SendReaControl does that)
|
Sure Jeffos, will be glad to (and please do tell if you need more).
What I mean is that I use an OSC configuration that allows me to get/set track send levels (like the default one does), and convert OSC<-->MIDI externall, using Pure data, Max, or similar (the possibilities are endless, but the point here is using OSC, not a particular method of doing the conversion). That works absolutely great for me. No need to mess around with plugins on each track, low overhead (compared to audio), works perfectly with high resolution MIDI (I'm using both 7 bit and 14 bit MSB/LSB paired modes, so I can switch between coarse/fine control modes), feedback to the controller works great (especially awesome if you have motorized faders), reconfigurable on-the-fly (unlike compiled code; if I suddenly decide I want to add a VCA style mixing feature to the sends, globally, it takes just a bit of clicking around, while I don't have to skip a beat), and no OS-specific or third party developer dependencies.
I don't see why MIDI controls would *have* to stick to moved tracks, as long as the system works for all track sends without having to select anything. In fact, I think that would be really stupid. Let's say you start with CC# 1 for send 1 on track 1, CC# 2 for send 1 on track 2, etc. Then after a while, having moved a few tracks around, the entire relation between CC# numbers and track numbers is broken. I don't want to clean uop that mess, sorry - workflow killer. And I also don't need 'learn' data in a project, imho it should work for every project as soon as you start one.
And thus, I also have no need to remap such MIDI controls: sends are and will be just that: sends. They don't change. *Ever.* The only thing I have to know about them, is that the master track doesn't have them - they're hardware outputs in that special case.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
04-26-2012, 01:35 AM
|
#31
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Welcome Banned also here with OSC
I would like to know what your concrete made assumptions are for your use case scenario? I suppose this would always make a difference in the used technology. Anyway, I would like to try out also OSC finally, with Reaper, if it can make things easier, e.g. for controling send levels. See my last post and problem definition: http://forum.cockos.com/showthread.php?t=101740
I would of course also like if every new project would have automatically, intelligently, exactly that midi/osc-control-mapping which I would like to have. However, so far, the only method I am aware of is changing the in-project-mapping definitions, by editing the .rpp files PARMLEARN values.
If you say, in a different use-case-scenario it is possible to achieve exactly the same result, without doing all this, and starting with an empty project, I would like to learn more about these possibilities. I can not imagine yet, how this should work?
Something like:
Code:
if (number-of-tracks == 0)
no-midi-mapping
if (number-of-tracks > 0)
for each track do
midi-map parameter1 to ...
midi-map parameter2 to ...
...
midi-map parameterN to ...
So I would NEVER care about midi mapping, just add or remove tracks or sends, and automatically it would auto-add the desired midi mapping to my new setup. I would only need to define somewhere a default midi mapping algorithm for a single tracks parameters, also for a single send tracks parameters.
I want anyway just a fixed structure always, 8 bus tracks, from each outgoing 4 sends A,B,C,D. If they would auto-midi-map always, that would be another bonus.
If you have 1000 additional tracks in your project, you only need to route those into the above 8 bus tracks. 8 * 4 = 32 send levels to play with in real-time should be more than enough.
|
|
|
04-26-2012, 01:55 AM
|
#32
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Banned, did you share your OSC configurations anywhere or not yet?
Quote:
Originally Posted by Banned
What I mean is that I use an OSC configuration that allows me to get/set track send levels (like the default one does), and convert OSC<-->MIDI externall, using Pure data, Max, or similar (the possibilities are endless, but the point here is using OSC...
... And I also don't need 'learn' data in a project, imho it should work for every project as soon as you start one. And thus, I also have no need to remap such MIDI controls: sends are and will be just that: sends. They don't change. *Ever.*
|
|
|
|
04-27-2012, 01:39 AM
|
#33
|
Mortal
Join Date: Dec 2008
Location: France
Posts: 1,969
|
@banned: thanks for the details, I see. I think we are just speaking of different things..
back to the roots: basically, what we want here is to move a send fader and learn it. what you're talking about is great but it won't help here. we also want the learned thing not being tied neither to track numbers nor to track selection, these are the requirements. I understand what you say but it is different, I'd say it is "control surface minded" if I may.
on a side note, changing track numbers, i.e. moving tracks is not stupid, it happens often here and BTW it also means "removing" tracks which happens -all the time- here. "arrgg! wait guys!! my expression pedal now controls the lights! Re-assigning!". There are some use cases where it should still work whatever happens.
EDIT: btw, I also like solutions w/o "third party developer dependencies" that requires "Pure data, Max, or similar" haha ha
|
|
|
04-27-2012, 02:51 AM
|
#34
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Does SendReaControl still work correctly after a track reordering, without any extra work, or not?
|
|
|
04-27-2012, 06:32 AM
|
#35
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Quote:
Originally Posted by TonE
[...] I would like to know what your concrete made assumptions are for your use case scenario? I suppose this would always make a difference in the used technology.
|
I'm not sure what you are getting at. Are there any specific assumptions you'd rather avoid?
I assume having a v4.20+ version of REAPER for OSC control surface support, and having it enabled with some appropriate OSC configuration, i.e. using a message pattern for the send levels. Generally speaking, I'm simply using the default OSC config (with various bits commented out, so nothing special there, but I'll be glad to post an example if that's helpful).
I also assume you have some way of handling OSC<-->MIDI conversion. I don't want to impose any specific choice for that, but I'm currently using mostly Pd for experimenting and prototyping, and discussing and sharing examples, because it's free and multi-platform. As it is just one example out of many, use whatever suits you best.
(Btw, Pd also seems like a good choice for extending/porting a custom system; I will probably try to put my entire custom system into a small and cheap piece of hardware, using Arduino, BeagleBoard or something like that, and then expand it with some custom (DIY) controllers. But that's a different story...)
Quote:
Originally Posted by TonE
I would of course also like if every new project would have automatically, intelligently, exactly that midi/osc-control-mapping which I would like to have. However, so far, the only method I am aware of is changing the in-project-mapping definitions, by editing the .rpp files PARMLEARN values.
If you say, in a different use-case-scenario it is possible to achieve exactly the same result, without doing all this, and starting with an empty project, I would like to learn more about these possibilities. I can not imagine yet, how this should work?
Something like:
Code:
if (number-of-tracks == 0)
no-midi-mapping
if (number-of-tracks > 0)
for each track do
midi-map parameter1 to ...
midi-map parameter2 to ...
...
midi-map parameterN to ...
|
That is how REAPER's OSC support works out-of-the-box.
So the MIDI-->OSC mapping is the only thing left to do (and OSC-->MIDI as well if you require feedback, which I typically assume, so I often just speak of MIDI<--OSC conversion), and you could of course come up with various ways to do that. Simple, complex, clever, stupid, you name it.
Your fixed structure example with 8 'bus tracks' resembles the default OSC specs a lot:
Code:
[...]
DEVICE_TRACK_COUNT 8
DEVICE_SEND_COUNT 4
...]
Assuming those 8 'bus tracks' have adjacent track numbers (that is the type of assumption you were referring to earlier, I guess?), you'd just point a virtual OSC control surface device to the first 'bus track', and be set and done. At least if you either don't change 'bus track' numbers, or update the settings whenever you do. That could be done manually, or if you use some more intelligence in the middleware, you could e.g. parse track names and figure out where the 'bus tracks' are, using a fixed naming scheme (e.g. 'bus track' names have to start with "BUS:") or something similar. For the latter option, you can also drop the assumptions that 'bus tracks' have to be adjacent, and that there is a fixed number of them.
The only other line you'd really need in the OSC config would then be:
Code:
TRACK_SEND_VOLUME n/track/@/send/@/volume
The default OSC config uses a similar line, but also supports a message pattern for controlling the sends of the currently selected track(s):
Code:
TRACK_SEND_VOLUME n/track/send/@/volume n/track/@/send/@/volume
And if you'd want individual controls for the send levels of every track, all of the time, you'd have to raise the value of DEVICE_TRACK_COUNT (which can also be done dynamically) to a suitably high number (NB: the track count number is a maximum: if you set it to 1000, but have only have 3 tracks in your project, no messages are sent for tracks 4 to 1000).
In the latter case, you probably also want to take a good look at what OSC messages you are using, what update frequency, etc., to prevent 'flooding' the system with messages you don't need anyway. I guess we have to worry about the bandwidth / latency / performance limitations of this method just about as much as if we'd be using external MIDI directly: attempting to send 100s of parameters for 100s of tracks 100s times a second is not always the smartest choice. So we need to balance our desire for getting/setting data a bit against our systems' overall performance for optimal results. In practical terms, none of this has been a problem for me yet. But then again, I'm not using 100s of tracks. YMMV.
I could prepare a more extensive demonstration, I guess...
(I'll try to clean up and finish the mixer-related parts of my OSC conversion patches a bit before doing so anyway. Since I'm more interested in other things myself, the support of the mixer functions in my Pd patch is almost permanently in a half-finished state, while I experiment with various approaches for controls on a more general level. For an on-topic example, when I build a MIDI learn feature, it should be useable for any parameter, not merely the track send level controls.)
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Last edited by Banned; 04-27-2012 at 06:58 AM.
|
|
|
04-27-2012, 07:23 AM
|
#36
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Quote:
Originally Posted by Jeffos
@banned: thanks for the details, I see. I think we are just speaking of different things..
back to the roots: basically, what we want here is to move a send fader and learn it. what you're talking about is great but it won't help here. we also want the learned thing not being tied neither to track numbers nor to track selection, these are the requirements. I understand what you say but it is different, I'd say it is "control surface minded" if I may.
on a side note, changing track numbers, i.e. moving tracks is not stupid, it happens often here and BTW it also means "removing" tracks which happens -all the time- here. "arrgg! wait guys!! my expression pedal now controls the lights! Re-assigning!". There are some use cases where it should still work whatever happens.
|
Of course that's what we all want REAPER to provide natively, no argument there.
But I'm not sure that you speak for all of us when it concerns workarounds (at least, not for me, and I do still count myself in the "we" group that wants MIDI controllable sends). The method I'm suggesting is (imho) at least a great workaround for the time being, while for some ("the control surface minded", perhaps, although I am arguably the exact opposite of that - I don't call things like MIDI keyboards "control surfaces", and generally consider products marketed as such to be vastly overpriced and poorly supported proprietary crap which in no way addresses my most important needs), it is arguably a superior approach anyway. But it's not a perfect substitute for native support of MIDI controllable sends. It may reduce my need for it, but not my support for that FR, standing firm as ever.
And I completely respect anyone's requirements or desires; when I say that I think some approach is stupid, I do not mean to imply at all that anyone who thinks differently is stupid - I'm sorry if it read that way and offended anyone. I was merely trying to summarize my own opinion there before providing the underlying arguments. I'm very interested to hear why people would follow different approaches and what *they* think are the merits of the alternatives, and use many different approaches myself for different workflows. For example, when controlling a VSTi/AUi instrument plugin, I'd typically prefer MIDI assignments to 'stick'. But I just don't like that approach *for track send levels* ...
... well, not yet, anyway. I've never tried to control the lights with an expression pedal via track send levels, but it is a *very* interesting suggestion indeed.
Quote:
Originally Posted by Jeffos
EDIT: btw, I also like solutions w/o "third party developer dependencies" that requires "Pure data, Max, or similar" haha ha
|
Touché.
Let me try again: the method I propose (using REAPER's native OSC support, and converting to/from MIDI) does not depend on any particular platform or third party, because it does not rely on any specific solution to the problem of converting OSC<-->MIDI. And, at least theoretically, I can compile something like Pure data myself, if I'd need to. So strictly speaking, I still think it is correct what I said... but I didn't think as hard about the exact formulation as if I'd have been drafting a judicial or legislative document, and still haven't, sorry, busy busy you know.
And, as a distinct discussion from using OSC, it's not so much about Pd (etc.) as well as the patch you use with it, which is pretty user configurable. If you have ever got comfortable with the cable patching system of a (virtual) modular synthesizer or music related apps like Pd, Max, REAKTOR, Numerology, Reason, Bidule, etc., chances are that you'll feel right at home.
And if I compare using something like Pure data with your proposed solution: the last time I checked, it was not available for REAPER users on OS X. (Did I miss it perhaps? If not, I'll be glad to see if my noob-level OS X dev skills can provide any help there, btw.) I'm really interested to experiment with it for myself, which I haven't yet, mainly for that reason, and I hope you do understand that I'm not trying to put down your contributions to this community in any way (to the contrary, much respect and thanks!), but am sincerely interested in discussing the merits of any viable alternative approaches to issues like these.
Still, even if it would be available on all platforms, afaik, it would still require your help whenever the user would like to modify its functionality, or whenever there turns out to be a bug somewhere, unless it's also available as source code. And then that still wouldn't work dynamically (during runtime, not compile time). Of course, to most users, availability on their platform(s) is much more relevant than being able to modify functionality, let alone dynamically, all assuming the user even understands the source code / patch / whatever being used to a sufficient level. Nevertheless, I think those are distinct advantages worth mentioning for the power users - and we have many of those here, right? I still consider myself to be a musician rather than a coder, so I don't want to stop the music nor any creative 'flow' state of mind to get into an engineering/development workflow if I can avoid it. Using a high-level graphical cable-patching system like pd or Max helps me very much in that respect. Again, YMMV, and I'm very much open to discuss the merits of any alternatives, just adding my 2 cents.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
04-27-2012, 07:35 AM
|
#37
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Thanks Banned, for all the great explanations. My exact minimal-fixed-structure would be as follows:
tracks 1..36 are musical tracks
next 8 tracks are bus tracks, where previous 36 tracks are routed through
next 4 tracks are send tracks A,B,C,D, where each of the bus tracks are sent to
summing up everyting: 36 + 8 + 4 = 48 tracks
For those who are interested a little more details about the first 36 tracks, which is not important for the OSC story here, just for completeness of explanation: The 36 tracks are structured as double-dj-deck structure, each consisting of 24 tracks. How can this be? Left deck is first 12 tracks 1..12, right deck is last 12 tracks 25..36. Now we have a two decks as 12 tracks each, yes. To make each deck 24 tracks big, each time the middle 12 tracks are added to it, so we have each time 24 tracks for each deck. The idea is keeping the main musical ideas in the most-left and most-right 12 tracks, and adding supportive material into the middle 12 tracks. If I want to have a transition from deck-left to deck-right, I can always mute the middle 12 tracks, and would still have enough material playing on the most-left 12 tracks, then exchange the right-decks material, then do a transition to it, by fading out slowly the left-deck, bringing in the right deck, also slowly. Then the same game can be done with the oppositie decks. So you can have a live setup with unlimited songs in sequence. The difference to a vinyl dj is, instead of using a vinyl, you are using 24 Reaper tracks for each song.
|
|
|
04-27-2012, 07:49 AM
|
#38
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Quote:
Originally Posted by Banned
...music related apps like Pd, Max, REAKTOR, Numerology, Reason, Bidule...
|
Let me add my favourite tool for doing OSC <--> Midi conversions to your list: Keykit from Tim Thompson. http://nosuch.com/keykit
So I would use either Keykit or pd. I would call Keykit 1000**2 more elegant than anything else. Only lamers use Max for Live.
|
|
|
04-27-2012, 08:07 AM
|
#39
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Quote:
Originally Posted by TonE
Thanks Banned, for all the great explanations. My exact minimal-fixed-structure would be as follows:
tracks 1..36 are musical tracks
next 8 tracks are bus tracks, where previous 36 tracks are routed through
next 4 tracks are send tracks A,B,C,D, where each of the bus tracks are sent to
summing up everyting: 36 + 8 + 4 = 48 tracks[...]
|
You're welcome.
If you can spell out exactly how you'd like a simple MIDI Channel/CC#'s address space to be mapped to those 8x4 track send levels, I can perhaps turn your use case into a little example patch that's slightly more useful than serving as an illustration for discussion only. And, do you require MIDI feedback as well?
(For practical purposes, you may still want to use something much more refined. For example: I want my hardware controls to have a 0dB maximum range whenever they're targeting any track/send/receive volume levels, so I can 'safely' throw them up, while they still have a bigger range in REAPER's UI (e.g. +12dB maximum); I also want to be able to seamlessly switch between 7 and 14 bit resolution, use different curves, acceleration, and smoothing schemes, and send out SysEx to my controller to match such choices per parameter/control pair on-the-fly, but that's all much more complicated or very specific to the controllers you're using, and thus not very suitable for a simple and illustrative example at all).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
04-27-2012, 08:16 AM
|
#40
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Quote:
Originally Posted by TonE
Let me add my favourite tool for doing OSC <--> Midi conversions to your list: Keykit from Tim Thompson. http://nosuch.com/keykit
So I would use either Keykit or pd. I would call Keykit 1000**2 more elegant than anything else. Only lamers use Max for Live.
|
Haven't ever seen or used it before, so thanks for sharing that!
Now let's see you (or anyone else up to the challenge) making it convert REAPER's default OSC config to a usable MIDI address space using it, elegance much appreciated but not strictly required. The screenie of the patch on its homepage sure *looks* about as elegant as something made with Pd rather than with Max though.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:30 AM.
|