Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 04-21-2020, 02:12 PM   #8641
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Delta based examples:

Code:
FXParam 0 // default range, no acceleration, use encoder delta
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) ]   // default range, acceleration, use encoder delta
FXParam 0 [ (0.003) ]  // default range, no acceleration, override encoder delta
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) (0.003) ] // default range, acceleration, override encoder delta
FXParam 0 [ 0.0-0.7 (0.1,0.2,0.3,0.4,0.5) (0.003)] // full meal deal
Step based examples:
Code:
FXParam 0 [ 0.1 0.2 0.3 0.4 0.5 ] // default range, no acceleration, default tick count, step values (always required)
FXParam 0 [ (10)  0.1 0.2 0.3 0.4 0.5 ] // default range, no acceleration, override tick count, step values (always required)
FXParam 0 [ (10,5,3,2,1)  0.1 0.2 0.3 0.4 0.5 ] // default range, acceleration, step values (always required)

Last edited by Geoff Waddington; 04-21-2020 at 02:17 PM.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 02:22 PM   #8642
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Geoff Waddington View Post
Yes, it's easier to leave in than program out, so laziness rules here
Understood, no worries
MixMonkey is online now   Reply With Quote
Old 04-21-2020, 02:33 PM   #8643
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Ok...let me see if I can bring this back down to something I understand.

Example 1: Same as current. If widget happens to be an encoder, the default step size is 0.001. No change for anyone.
Code:
FXParam 0
Example 2:If you have an accelerated encoder defined in your mst and want to use acceleration, this is how. The slowest turn would be 0.1 the fastest turn would move at 0.5.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) ]
Example 3: Encoder is now defaulting to moving in 0.003 steps.
Code:
FXParam 0 [ (0.003) ]
Example 4: Acceleration is on (same as yesterday). Default step size for encoder is now 0.003 steps. Combination of 2 and 3.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) (0.003) ]
Example 5: The parameter range is restricted to 0.0 to 0.7, we're using acceleration, and the default encoder tick size is 0.003 instead of 0.001.
Code:
FXParam 0 [ 0.0-0.7 (0.1,0.2,0.3,0.4,0.5) (0.003)]
Example 6: We're just stepping through parameters, stopping only at the designated spots. No change really. Question: will this work for all widgets including fader?
Code:
FXParam 0 [ 0.1 0.2 0.3 0.4 0.5 ]
Example 7:It now takes 10 encoder ticks to step to the next parameter. Question: Is is it 10 consecutive clicks in the same direciton? Let's say I move 9 ticks up, then 9 ticks down, then 1 tick up?
Code:
FXParam 0 [ (10)  0.1 0.2 0.3 0.4 0.5 ]
Example 7: Question:what the heck does 10,5,3,2,1 mean here? I'm lost.
Code:
FXParam 0 [ (10,5,3,2,1)  0.1 0.2 0.3 0.4 0.5 ]
Funkybot is online now   Reply With Quote
Old 04-21-2020, 02:38 PM   #8644
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Funkybot View Post
Ok...let me see if I can bring this back down to something I understand.

Example 1: Same as current. If widget happens to be an encoder, the default step size is 0.001. No change for anyone.
Code:
FXParam 0
Example 2:If you have an accelerated encoder defined in your mst and want to use acceleration, this is how. The slowest turn would be 0.1 the fastest turn would move at 0.5.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) ]
Example 3: Encoder is now defaulting to moving in 0.003 steps.
Code:
FXParam 0 [ (0.003) ]
Example 4: Acceleration is on (same as yesterday). Default step size for encoder is now 0.003 steps. Combination of 2 and 3.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) (0.003) ]
Example 5: The parameter range is restricted to 0.0 to 0.7, we're using acceleration, and the default encoder tick size is 0.003 instead of 0.001.
Code:
FXParam 0 [ 0.0-0.7 (0.1,0.2,0.3,0.4,0.5) (0.003)]
Example 6: We're just stepping through parameters, stopping only at the designated spots. No change really. Question: will this work for all widgets including fader?
Code:
FXParam 0 [ 0.1 0.2 0.3 0.4 0.5 ]
Example 7:It now takes 10 encoder ticks to step to the next parameter. Question: Is is it 10 consecutive clicks in the same direciton? Let's say I move 9 ticks up, then 9 ticks down, then 1 tick up?
Code:
FXParam 0 [ (10)  0.1 0.2 0.3 0.4 0.5 ]
Example 7: Question:what the heck does 10,5,3,2,1 mean here? I'm lost.
Code:
FXParam 0 [ (10,5,3,2,1)  0.1 0.2 0.3 0.4 0.5 ]
Geoff will be along to mark your homework shortly
MixMonkey is online now   Reply With Quote
Old 04-21-2020, 02:44 PM   #8645
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Funkybot View Post

Example 7: Question:what the heck does 10,5,3,2,1 mean here? I'm lost.
Code:
FXParam 0 [ (10,5,3,2,1)  0.1 0.2 0.3 0.4 0.5 ]
I took that to mean an accelerated stepped parameter. At the slowest turn rate: 10 ticks = 1 step, then 5 ticks = 1 step and so on until at the fastest turn rate 1 tick = 1 step.
MixMonkey is online now   Reply With Quote
Old 04-21-2020, 02:52 PM   #8646
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by Funkybot View Post
Ok...let me see if I can bring this back down to something I understand.

Example 1: Same as current. If widget happens to be an encoder, the default step size is 0.001. No change for anyone.
Code:
FXParam 0
Example 2:If you have an accelerated encoder defined in your mst and want to use acceleration, this is how. The slowest turn would be 0.1 the fastest turn would move at 0.5.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) ]
Example 3: Encoder is now defaulting to moving in 0.003 steps.
Code:
FXParam 0 [ (0.003) ]
Example 4: Acceleration is on (same as yesterday). Default step size for encoder is now 0.003 steps. Combination of 2 and 3.
Code:
FXParam 0 [ (0.1,0.2,0.3,0.4,0.5) (0.003) ]
Example 5: The parameter range is restricted to 0.0 to 0.7, we're using acceleration, and the default encoder tick size is 0.003 instead of 0.001.
Code:
FXParam 0 [ 0.0-0.7 (0.1,0.2,0.3,0.4,0.5) (0.003)]
Close enough for rock and roll

Quote:
Originally Posted by Funkybot View Post
Example 6: We're just stepping through parameters, stopping only at the designated spots. No change really. Question: will this work for all widgets including fader?
Code:
FXParam 0 [ 0.1 0.2 0.3 0.4 0.5 ]
Not yet, but on the to do list.

Quote:
Originally Posted by Funkybot View Post
Example 7:It now takes 10 encoder ticks to step to the next parameter. Question: Is is it 10 consecutive clicks in the same direciton? Let's say I move 9 ticks up, then 9 ticks down, then 1 tick up?
Code:
FXParam 0 [ (10)  0.1 0.2 0.3 0.4 0.5 ]
Oh boy, welcome to the world of cheap encoders

Ideally if you moved 9 ticks up then 1 down the up tick count would reset to 0.

In reality the data stream of you turning in one direction only is often sprinkled with spurious opposite motion ticks, so, some data smoothing is required -- thanks for reminding me -- NOT ! -- uggh, not looking forward to coding that

Quote:
Originally Posted by Funkybot View Post
Example 7: Question:what the heck does 10,5,3,2,1 mean here? I'm lost.
Code:
FXParam 0 [ (10,5,3,2,1)  0.1 0.2 0.3 0.4 0.5 ]
@MixMonkey pointed out that stepped value acceleration is simply a reduction in tick count as acceleration increases.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 02:53 PM   #8647
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by MixMonkey View Post
I took that to mean an accelerated stepped parameter. At the slowest turn rate: 10 ticks = 1 step, then 5 ticks = 1 step and so on until at the fastest turn rate 1 tick = 1 step.
Yup, that's it, as you suggested, less mental translation.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 02:53 PM   #8648
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by MixMonkey View Post
I took that to mean an accelerated stepped parameter. At the slowest turn rate: 10 ticks = 1 step, then 5 ticks = 1 step and so on until at the fastest turn rate 1 tick = 1 step.
Thanks, that explains it!
Funkybot is online now   Reply With Quote
Old 04-21-2020, 02:57 PM   #8649
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Will the range feature also work for Fader widgets?

For instance, let's say I have a Fader7Bit and I want to limit the entire range to just the first 30% of the plugin parameter. Could I do this?
Code:
Fader1 FXParam 0 [ 0.0-0.3 ]
Funkybot is online now   Reply With Quote
Old 04-21-2020, 03:03 PM   #8650
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

I should point out: all this sounds good to me. Seems very flexible and only moderately confusing. That's gonna be a fun set of Wiki Pages! Thanks Goeff!
Funkybot is online now   Reply With Quote
Old 04-21-2020, 03:06 PM   #8651
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by Funkybot View Post
Will the range feature also work for Fader widgets?

For instance, let's say I have a Fader7Bit and I want to limit the entire range to just the first 30% of the plugin parameter. Could I do this?
Code:
Fader1 FXParam 0 [ 0.0-0.3 ]
That would restrict the fader to a very small amount of rotational movement to get 0.3.

I think you'd want to also spread out the rotation by decreasing the delta accordingly, something like this:

Code:
Fader1 FXParam 0 [ 0.0-0.3 (0.0003) ]
Now I just have to figure out how to modify CSI to ignore fader values and use deltas if present
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 03:10 PM   #8652
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by Geoff Waddington View Post
That would restrict the fader to a very small amount of rotational movement to get 0.3.

I think you'd want to also spread out the rotation by decreasing the delta accordingly, something like this:

Code:
Fader1 FXParam 0 [ 0.0-0.3 (0.0003) ]
Now I just have to figure out how to modify CSI to ignore fader values and use deltas if present
That would be awesome and would certainly solve for the very common “Reacomp’s attack and release times are unusable as mapped” complaints.
Funkybot is online now   Reply With Quote
Old 04-21-2020, 04:10 PM   #8653
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 555
Default

Very interesting stuff guys...

I'm just popping in to see if my use case is covered in this new encoder adventure.

My rotaries are set up as fader7bit's at the moment. That's just how funkybot had them set up at first.

Changing them to encoders, it looks like I could potentially have 2 or even 3 levels of granularity with using different deltas , right? (when this all gets sorted out, anyways) That is VERY appealing to me. Using that setup as a legit mixing surface just got a whole lot more real.

Now in Zone land, I can just add those delta values after TrackVolume right?

So I could have

Rotary| TrackVolume ... and whatever syntax i need here
Shift+Rotary| TrackVolume ... Finer level of control syntax here

Am I sniffing in the right direction? Or is there some limitation like TrackVolume has to be a fader?
cjewellstudios is online now   Reply With Quote
Old 04-21-2020, 04:14 PM   #8654
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by cjewellstudios View Post
Very interesting stuff guys...

I'm just popping in to see if my use case is covered in this new encoder adventure.

My rotaries are set up as fader7bit's at the moment. That's just how funkybot had them set up at first.

Changing them to encoders, it looks like I could potentially have 2 or even 3 levels of granularity with using different deltas , right? (when this all gets sorted out, anyways) That is VERY appealing to me. Using that setup as a legit mixing surface just got a whole lot more real.

Now in Zone land, I can just add those delta values after TrackVolume right?

So I could have

Rotary| TrackVolume ... and whatever syntax i need here
Shift+Rotary| TrackVolume ... Finer level of control syntax here

Am I sniffing in the right direction? Or is there some limitation like TrackVolume has to be a fader?
Yes, although we are just at the baby steps stage right now.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 04:17 PM   #8655
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

OK, trying to wrap my head around this, helps to write it down.

Might as well put it out there for discussion

In building the parser some things pretty directly map to the use cases you folks will come up with.


Rules

These are strictly for encoder type operations so they do not wrap.

Stepped Values
If there are stepped values they are used over anything else.
The delta value from the encoder is discarded, it’s the tick that counts - pun intended , along with the acceleration value.
If there is acceleration, it is applied.
If there are range constraints, they are respected.

Simple Delta
This is the standard encoder we have been using since day 1.
Delta value is supplied directly by hardware encoder.
If there is acceleration, it is applied.
If there are range constraints, they are respected.

Override Delta
Delta value is supplied by CSI Action delta.
If there is acceleration, it is applied.
If there are range constraints, they are respected.

The accelerated values supplied to CSI by the encoder will be simple index numbers, one for each accelerator value - [ > 01 03 05 07 ] - in this case index will be one of 0, 1, 2, 3.

At the Action end the acceleration index gets used to directly index into the delta values list, if the encoder acceleration index is higher than the top delta values list index, the top delta values list index gets used — conversely for lower.

[edit] One more constraint -- if you use acceleration with deltas CSI automatically uses the CSI delta - if you don’t supply an accelerated values list, delta will default to 0.001. This will prevent double accelerations, where the delta value supplied by the encoder is already accelerated and CSI then applies acceleration on top of that -- not good

Last edited by Geoff Waddington; 04-23-2020 at 07:40 AM.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 05:32 PM   #8656
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Geoff Waddington View Post
OK, trying to wrap my head around this, helps to write it down.

Might as well put it out there for discussion

In building the parser some things pretty directly map to the use cases you folks will come up with.


Rules

These are strictly for encoder type operations so they do not wrap.

Stepped Values
If there are stepped values they are used over anything else.
The value from the encoder is discarded, it’s the tick that counts - pun intended
If there is acceleration, it is applied.
If there are range constraints, they are respected.

Simple Delta
This is the standard encoder we have been using since day 1.
Delta value is supplied directly by hardware encoder.
If there is acceleration, it is applied.
If there are range constraints, they are respected.

Override Delta
As above, except CSI supplies delta.
If there is acceleration, it is applied.
If there are range constraints, they are respected.

The accelerated values supplied to CSI by the encoder will be simple index numbers — recall the earlier example where we attempted to map 4 step widget acceleration values to 5 step CSI Action acceleration deltas - ugly.
So now a simple index will be sent, one for each accelerator value - [ > 01 03 05 07 ], in this case index will be one of 0, 1, 2, 3.

At the Action end the index gets used directly in the delta values list, if the encoder acceleration index is higher than the top CSI index, the top CSI index gets used — conversely for lower.
Sounds good

Only thing that came to mind was in the stepped values rule, if the encoder values are ignored, how does it know what acceleration (ticks per step) to apply?
MixMonkey is online now   Reply With Quote
Old 04-21-2020, 05:43 PM   #8657
Cragster
Human being with feelings
 
Join Date: Apr 2019
Location: Quakertown PA USA
Posts: 575
Default

Quote:
Originally Posted by Funkybot View Post
I should point out: all this sounds good to me. Seems very flexible and only moderately confusing. That's gonna be a fun set of Wiki Pages! Thanks Goeff!
Wow. Im definitely going to be counting on that wiki page to be understandable and thorough on this one lol. No pressure. But this encoder/acceleration/step/i dontknow stuff is wayyyyyy over head. Ive read over this discussion a few times and it gets more confusing each time. Counting on you funkybot to bring it to life in the wiki or my csi updating days are over haha.
Cragster is offline   Reply With Quote
Old 04-21-2020, 05:52 PM   #8658
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by Cragster View Post
Wow. Im definitely going to be counting on that wiki page to be understandable and thorough on this one lol. No pressure. But this encoder/acceleration/step/i dontknow stuff is wayyyyyy over head. Ive read over this discussion a few times and it gets more confusing each time. Counting on you funkybot to bring it to life in the wiki or my csi updating days are over haha.
We covered a whole lot in a short time. We’ll figure out the documentation. Nice thing about that is we can continuously improve upon it if something isn’t clear the first, second, or even third time. If you take this in small chunks it’s actually not too bad.
Funkybot is online now   Reply With Quote
Old 04-21-2020, 06:07 PM   #8659
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by MixMonkey View Post
Sounds good

Only thing that came to mind was in the stepped values rule, if the encoder values are ignored, how does it know what acceleration (ticks per step) to apply?
In the case of accelerated encoders the value is actually the acceleration index.

I just edited the previous post to indicate that this has implications -- accelerated values must use local CSI delta values because we lose the ability to transmit deltas from the encoder - this is a good thing -- see post.

In the case of stepped values, the message from the encoder does 2 things:
It adds a tick in a direction (up/down)
It uses it's current acceleration value to look up whether the tick count has now been reached and if it has, it inc/decs accordingly -- and resets accordingly too of course

Last edited by Geoff Waddington; 04-21-2020 at 06:15 PM.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 06:15 PM   #8660
Cragster
Human being with feelings
 
Join Date: Apr 2019
Location: Quakertown PA USA
Posts: 575
Default

Quote:
Originally Posted by Funkybot View Post
We covered a whole lot in a short time. We’ll figure out the documentation. Nice thing about that is we can continuously improve upon it if something isn’t clear the first, second, or even third time. If you take this in small chunks it’s actually not too bad.
Thanks. Well im sure ill be leaning on you guys alot on this one once it comes to pass. Hope u wont mind. Thank you in advance
Cragster is offline   Reply With Quote
Old 04-21-2020, 06:29 PM   #8661
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Geoff Waddington View Post
In the case of accelerated encoders the value is actually the acceleration index.

I just edited the previous post to indicate that this has implications -- accelerated values must use local CSI delta values because we lose the ability to transmit deltas from the encoder - this is a good thing -- see post.

In the case of stepped values, the message from the encoder does 2 things:
It adds a tick in a direction (up/down)
It uses it's current acceleration value to look up whether the tick count has now been reached and if it has, it inc/decs accordingly -- and resets accordingly too of course
Ok, got it, I think

When you said it ignores the encoder values I thought you meant the ones that determine the acceleration index, but you meant deltas from the surface. Is that right?
MixMonkey is online now   Reply With Quote
Old 04-21-2020, 07:10 PM   #8662
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by MixMonkey View Post
Ok, got it, I think

When you said it ignores the encoder values I thought you meant the ones that determine the acceleration index, but you meant deltas from the surface. Is that right?
Yes, exactly, the encoder transmits acceleration indices instead of deltas in this case - that's why we need to use Action based deltas if we use acceleration, there is no room to transmit the delta value, that seat is already taken by the acceleration value.

Last edited by Geoff Waddington; 04-22-2020 at 02:23 AM.
Geoff Waddington is offline   Reply With Quote
Old 04-21-2020, 10:00 PM   #8663
barbaroja
Human being with feelings
 
barbaroja's Avatar
 
Join Date: Jul 2009
Posts: 359
Default

Quote:
Originally Posted by mschnell View Post
I suppose this is growing. And some day hopefully supported in ReaPack.

But you not only need to specify the hardware but also the intended workflow.

-Michael
Yes, I think of mapped list of hardware and a graphical UI to be able to program it. Should not be so complicated to map plugins graphically, tho. Something like you move the control and then map whatever plugin control, initially with basic feedback. The CSI remembers that.

Killer stuff.
barbaroja is offline   Reply With Quote
Old 04-22-2020, 02:29 AM   #8664
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by barbaroja View Post
Yes, I think of mapped list of hardware and a graphical UI to be able to program it. Should not be so complicated to map plugins graphically, tho. Something like you move the control and then map whatever plugin control, initially with basic feedback. The CSI remembers that.

Killer stuff.
Yes, that's the last thing to do before we go beta.

You can get a sneak peak by running the reaper action "CSI Edit Mode"

You can also control the midi-ox like monitoring and FX param list generation on this panel.
Geoff Waddington is offline   Reply With Quote
Old 04-22-2020, 06:27 AM   #8665
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Haha, and sometimes, I'm a user too

Picked up this nice little freebie https://sampleson.com/collab3-free-tonewheel-organ.html

Dug out my trusty old Roland A800 keyboard and commenced to mapping.

In no time at all, had all the parameters and drawbars working just fine.

The A800 is nice in that it has separate Midi ports for the Midi keyboard and the control section (which you must disable in Reaper Midi I/O, in order to use the control section as a control surface).

Used the new auto FX .zon file content generator, works great.

Kind of fun to actually use this stuff, instead of just coding it
Geoff Waddington is offline   Reply With Quote
Old 04-22-2020, 06:42 AM   #8666
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Geoff Waddington View Post
Haha, and sometimes, I'm a user too

Picked up this nice little freebie https://sampleson.com/collab3-free-tonewheel-organ.html

Dug out my trusty old Roland A800 keyboard and commenced to mapping.

In no time at all, had all the parameters and drawbars working just fine.

The A800 is nice in that it has separate Midi ports for the Midi keyboard and the control section (which you must disable in Reaper Midi I/O, in order to use the control section as a control surface).

Used the new auto FX .zon file content generator, works great.

Kind of fun to actually use this stuff, instead of just coding it
Excellent! Fun, isn't it?
MixMonkey is online now   Reply With Quote
Old 04-22-2020, 07:29 AM   #8667
Cragster
Human being with feelings
 
Join Date: Apr 2019
Location: Quakertown PA USA
Posts: 575
Default

Quote:
Originally Posted by MixMonkey View Post
Sure

For the main surface, Auto Map Sends is disabled, but Sends are available on a button (ToggleMapSelectedTrackSends) This maps the selected track Sends to the faders (for finer control and automation if needed)

Synch Zones Across Surfaces is disabled.
hey mixmonkey and all.Im really having alot trouble setting up these 2 surfaces (one for main mixing 1 for just fx ) i dont know what im doing wrong i cant get both surfaces to work at the same time. i tried checking and unchecking all the CSI setup boxes..like sync pages and sync zones across surfaces and auto map fx . no matter what i do its either one surface or the other.so i have 2 pages set up in csi..one for the prox for main surface and one for the platform m which is what i want to use for fx. can anyone help me set this up ? what boxes do i check and uncheck for each ?? what should i have in each zone file and what shouldnt i have in each zone? i tried gopage but again its either one surface or the other. can 2 surfaces work together at the same time ? i know this is alot to ask im sry but ill include zones for each

Prox main zone - i took out the FX menu Zone from this and put it in the zone file for the platform
Code:
Zone Home
OnTrackSelection MapSelectedTrackSendsToWidgets
IncludedZones
"Buttons|"
"Channel|1-8"
"MasterChannel|"
IncludedZonesEnd
ZoneEnd

Zone "Buttons|"
Shift Shift 
Option Option 
Control Control 
Alt Alt 
Blank1 Reaper "_S&M_SHOWNOTESHELP" // NOTES WINDOW
Blank2 Reaper "40016" // PREFERENCES
Blank3 Reaper "40605" // ACTION LIST
Blank4 Reaper "40454" // EDIT VIEW
Blank5 Reaper "40455" // MIXER VIEW
Send ToggleMapSelectedTrackSends
Send Reaper "40293"
Pan Reaper "_dc1079a3ffd4a1438942a677566f9ed3" // FOLDER/CHILDRE
/Plugin ToggleMapSelectedTrackFXMenu
/Plugin Reaper "_S&M_TOGLFXCHAIN"
Shift+Plugin GoZone FocusedFXParameter
Option+Plugin GoPage FX
EQ GoPage Edit
ChannelLeft TrackBank "-1"
ChannelRight TrackBank "1"
BankLeft TrackBank "-8"
BankRight TrackBank "8"
TimeDisplay TimeDisplay
smpteBeats CycleTimeDisplayModes
Rewind Rewind
FastForward FastForward
Stop Stop
Play Play
Record Reaper "1013"
F1 Reaper "40495" // RECORD MONITOR MODE
F2 Reaper "40702" // CREATE NEW TRACK  
F3 Reaper "40701" // CREATE NEW TRACK/INSERT VIRTUAL INSTRU
F4 Reaper "40005" // REMOVE TRACK 
F5 Reaper "40062" // DUPLICATE TRACK 
F6 Reaper "41817" // CONTINUOUS SCROLLING
F7 Reaper "40042" // GO TO START
F8 Reaper "40296" // SELECT ALL TRACKS
F1L2 Reaper "40293" // VIEW ROUTING/SENDS FOR SEL TRACK
F2L2 Reaper "1042" // FOLDER COLLAPSE STATE
F3L2 Reaper "_S&M_TOGLFXCHAIN" // SHOW FX WINDOW FOR SEL TRACK
F4L2 Reaper "_S&M_FXBYPSEL" // BYPASS FX FOR SEL TRACK
F5L2 Reaper "_S&M_SELFXNEXT" // NEXT FX FOR SEL TRACK
F6L2 Reaper "40344" // BYPASS FX FOR ALL TRACKS
F7L2 Reaper "40549" // SHOW FX ABOVE MIXER
F8L2 Reaper "_BR_NORMALIZE_LOUDNESS_ITEMS" // NORMALIZE  
Read TrackAutoMode "1"
Shift+Read GlobalAutoMode "1"
Write TrackAutoMode "3"
Shift+Write GlobalAutoMode "3"
Trim TrackAutoMode "0"
Shift+Trim GlobalAutoMode "0"
Touch TrackAutoMode "2"
Shift+Touch GlobalAutoMode "2"
Latch TrackAutoMode "4"
Shift+Latch GlobalAutoMode "4"
Save Reaper "40026" 
Shift+Save Reaper "40022" // SAVE PROJECT AS 
Undo Reaper "40029"
Shift+Undo Reaper "40030" // REDO
Flip Reaper "40346"
Normal Reaper "40173" // GO TO NEXT MARKER
Marker Reaper "40157" // INSERT MARKER
Loop CycleTimeline
nameValue GoZone Home
Shift+nameValue GoPage Home
Click Reaper "40364" METRONOME
Solo Reaper "40340" // UNSOLO ALL TRACKS
Mode ToggleScrollLink 4
Zoom Reaper "40113" // ZOOM SEL TRACK
Up Reaper "40111" // ZOOM IN VERTICAL
Down Reaper "40112" // ZOOM OUT VERTICAL
Left Reaper "1011" // ZOOM OUT HORIZONTAL
Right Reaper "1012" // ZOOM IN HORIZONTAL
JogWheelRotaryCW Reaper "41667" // NORMAL JOG RIGHT
JogWheelRotaryCCW Reaper "41666" // NORMAL JOG LEFT
Shift+JogWheelRotaryCW Reaper "_SWS_MOVECUR5MSRIGHT" // SLOW JOG
Shift+JogWheelRotaryCCW Reaper "_SWS_MOVECUR5MSLEFT" // SLOW JOG
Control+JogWheelRotaryCW Reaper "40103" // CREATE JOG TIMESEL R
Control+JogWheelRotaryCCW Reaper "40102" // CREATE JOG TIMESEL L
/MasterFader MasterTrackVolume
ZoneEnd

Zone "Channel|"
	TrackNavigator
	VUMeter|  TrackOutputMeterMaxPeakLR
	/VUMeter|  TrackOutputMeterAverageLR
	DisplayUpper|  TrackNameDisplay
	DisplayLower|  TrackPanDisplay
	TrackTouch+DisplayLower|  TrackVolumeDisplay
	RotaryPush| GoZone PanWidth|
	Rotary| TrackPan "0"
	RecordArm|  TrackRecordArm
	Solo|  TrackSolo
	Mute| TrackMute
	Select|  TrackUniqueSelect
	Shift+Select|  TrackRangeSelect
	Control+Select|  TrackSelect
	Shift+Control+Select| TogglePin
	Option+Select| TrackFolderDive
     Alt+Select| TrackUniqueSelect
     Alt+Select| Reaper "41665"
	Fader|  TrackVolume
	TrackTouch+Fader|  TrackVolume
	FaderTouch|  TrackTouch
ZoneEnd

Zone "Pan|1-8"
	TrackNavigator
	Rotary| TrackPan "0"
	RotaryPush| GoZone PanWidth|
ZoneEnd

Zone "PanWidth|1-8"
	TrackNavigator
	Rotary| TrackPanWidth "1"
	RotaryPush| GoZone Pan|
ZoneEnd

Zone "Send|1-8"
      SelectedTrackNavigator
      DisplayUpper| TrackSendNameDisplay
      TrackTouch+DisplayUpper| TrackSendVolumeDisplay
      Mute| TrackSendMute
      Fader| TrackSendVolume
      Rotary| TrackSendPan
      RotaryPush| NoAction
      TrackTouch+Fader| TrackSendVolume
      FaderTouch| TrackTouch
ZoneEnd

Zone "MasterChannel|"
	MasterTrackNavigator
     MasterChannelMeterLeft MasterTrackOutputMeter 0
     MasterChannelMeterRight MasterTrackOutputMeter 1
	MasterFader TrackVolume
	MasterFaderTouch TrackTouch
ZoneEnd
And here is the platform M zone (this is the surface i want to use strictly for fx) in this one I took out the channel zone because i just want this for fx (and possibly sends) is this the right way ? and i dont know what boxes to check or uncheck on each page of the CSI setup.
Code:
Zone Home
OnTrackSelection MapSelectedTrackSendsToWidgets
OnTrackSelection MapSelectedTrackFXToMenu
IncludedZones
"Buttons|"
"MasterChannel|"
IncludedZonesEnd
ZoneEnd

Zone "Buttons|"
ChannelLeft TrackBank "-1"
ChannelRight TrackBank "1"
BankLeft TrackBank "-8"
BankRight TrackBank "8"
Read MapSelectedTrackFXMenu
Read Reaper "_S&M_TOGLFXCHAIN"
Write ToggleMapSelectedTrackSends
Write Reaper "40293" 
Mixer GoPage Home
Loop NoAction
Rewind NoAction
FastForward NoAction
Stop NoAction
Play NoAction
Record NoAction
Zoom NoAction
JogWheelRotaryCW Reaper "41667" // NORMAL JOG RIGHT
JogWheelRotaryCCW Reaper "41666" // NORMAL JOG LEFT
Shift+JogWheelRotaryCW Reaper "_SWS_MOVECUR5MSRIGHT" // SLOW JO
Shift+JogWheelRotaryCCW Reaper "_SWS_MOVECUR5MSLEFT" // SLOW JO
Control+JogWheelRotaryCW Reaper "40103" // CREATE JOG TIMESEL R
Control+JogWheelRotaryCCW Reaper "40102" // CREATE JOG TIMESEL 
/MasterFader MasterTrackVolume
ZoneEnd

Zone "Send|1-8"
      SelectedTrackNavigator
      DisplayUpper| TrackSendNameDisplay
      TrackTouch+DisplayUpper| TrackSendVolumeDisplay
      Mute| TrackSendMute
      Fader| TrackSendVolume
      Rotary| TrackSendPan
      RotaryPush| NoAction
      TrackTouch+Fader| TrackSendVolume
      FaderTouch| TrackTouch
ZoneEnd

Zone "MasterChannel|"
	MasterTrackNavigator
     MasterChannelMeterLeft MasterTrackOutputMeter 0
     MasterChannelMeterRight MasterTrackOutputMeter 1
	MasterFader TrackVolume
	MasterFaderTouch TrackTouch
ZoneEnd

Zone "FXMenu|1-8"
      SelectedTrackNavigator
      DisplayUpper| FXNameDisplay |
      DisplayLower| NoAction
      Rotary| NoAction
      RotaryPush| GoFXSlot |
      RotaryPush| Reaper "_S&M_SHOWFXCHAIN|"
ZoneEnd
I know its alot but im just hoping for any help or if someone sees something obvious that im missing and the various CSI setup boxes that need to be checked or not checked. ughh i got my zone files all in disarray for this lol
Thanks evryone
Cragster is offline   Reply With Quote
Old 04-22-2020, 07:34 AM   #8668
rothchild
Human being with feelings
 
Join Date: Oct 2007
Posts: 673
Default

Afternoon,

I've set the 'Solo' button to toggle off all solos (Like Klinke) but with Klinke the red light above the button only comes on when there is a solo active, now I've added the item in 'Buttons' the light stays on all the time (regardless of solo state), can I make it go out if there are no solos active?
rothchild is offline   Reply With Quote
Old 04-22-2020, 09:04 AM   #8669
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by rothchild View Post
Afternoon,

I've set the 'Solo' button to toggle off all solos (Like Klinke) but with Klinke the red light above the button only comes on when there is a solo active, now I've added the item in 'Buttons' the light stays on all the time (regardless of solo state), can I make it go out if there are no solos active?
Which Reaper or CSI action are you using in your .zon file? Does it report the state? Can we see the relevant section of the .zon?

Also, what's the solo widget you're using look like in the .mst (including the FB processor)?
Funkybot is online now   Reply With Quote
Old 04-22-2020, 10:05 AM   #8670
rothchild
Human being with feelings
 
Join Date: Oct 2007
Posts: 673
Default

Quote:
Originally Posted by Funkybot View Post
Which Reaper or CSI action are you using in your .zon file? Does it report the state? Can we see the relevant section of the .zon?

Also, what's the solo widget you're using look like in the .mst (including the FB processor)?
I put this under 'Buttons' in the MCU.zon

Code:
Solo	Reaper 40340 //Toggle Off All Solos
My MCU.mst is stock (I'm just trying to find my way in to CSI)

I guess this is the relevant part?

Code:
Widget Solo
	Press 90 5a 7f
	FB_TwoState 90 5a 7f 90 5a 00
WidgetEnd
rothchild is offline   Reply With Quote
Old 04-22-2020, 10:18 AM   #8671
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by rothchild View Post
Code:
Solo	Reaper 40340 //Toggle Off All Solos
Unfortunately, this action isn't a Toggle, it's actually "unsolo all tracks"

As a rule of thumb, the LED feedback will only work with a Reaper Action if there is an off/on entry in the "state" column in the Actions window.
MixMonkey is online now   Reply With Quote
Old 04-22-2020, 10:24 AM   #8672
rothchild
Human being with feelings
 
Join Date: Oct 2007
Posts: 673
Default

Ok, but would the channel solo state be enough to control the light?

How do I tell CSI to only put the light on if any channel's solo status is 'on'? (I only want the 'solo' button to turn them all off again)
rothchild is offline   Reply With Quote
Old 04-22-2020, 10:30 AM   #8673
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by rothchild View Post
How do I tell CSI to only put the light on if any channel's solo status is 'on'? (I only want the 'solo' button to turn them all off again)
Sorry, no idea on that one.
MixMonkey is online now   Reply With Quote
Old 04-22-2020, 10:59 AM   #8674
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by rothchild View Post
Ok, but would the channel solo state be enough to control the light?

How do I tell CSI to only put the light on if any channel's solo status is 'on'? (I only want the 'solo' button to turn them all off again)
That honestly sounds a bit like a square peg/round hole situation. If you want to know if the selected channel is solo'd, makes sense. If you want to know, which channels are soloed across a multi-fader surface, makes sense. Asking to have a light come on if any channel is solo'd sounds vague and very non-standard (to me at least). It's not telling you which channel is solo'd, or how many, so not helpful there.

Now...in a more general sense, I could tell you how you can cheat to make Unsolo All a toggle that reports it state, but the downside is, the state may not be accurate. If you have SWS Extensions installed you can create a Cycle Action for Unsolo All, then set that Cycle Action to Toggle. That will allow it to report a state (at least works for Reaper's toolbar). If you assign that to a CSI widget, maybe then you can get a state out of it.

What's the problem with that approach? The light on version of the state would be after you press unsolo all, and soloing a channel wouldn't actually turn the light off without you toggling the button again anyway.
Funkybot is online now   Reply With Quote
Old 04-22-2020, 11:59 AM   #8675
rothchild
Human being with feelings
 
Join Date: Oct 2007
Posts: 673
Default

I'm not sure I've made myself understood (or perhaps we just need to set aside the peg shapes).

There's a button marked solo on the transport section of my mcu. In my normal setup any time there's a channel that's soloed the little red led above it lights up and when I press it it unsolos all channels and the light goes out (and equally if I unsolo the channel using the channel solo button, so that there are no solos active, the light goes out).

That channel solo could be burried under multiple layers of folders, or may not be on the contoller page at that moment, I may have built up a quick solo mix of some parts for someone to do a take to and now we want to drop the whole mix.

Notwithstanding that, I also can't think of a better way of using the transport solo button and I'm used to and like the function it performs. Yes the light state is trivial in the scheme of things and yes the button works as expected but still...
rothchild is offline   Reply With Quote
Old 04-22-2020, 12:05 PM   #8676
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by rothchild View Post
I'm not sure I've made myself understood (or perhaps we just need to set aside the peg shapes).

There's a button marked solo on the transport section of my mcu. In my normal setup any time there's a channel that's soloed the little red led above it lights up and when I press it it unsolos all channels and the light goes out (and equally if I unsolo the channel using the channel solo button, so that there are no solos active, the light goes out).

That channel solo could be burried under multiple layers of folders, or may not be on the contoller page at that moment, I may have built up a quick solo mix of some parts for someone to do a take to and now we want to drop the whole mix.

Notwithstanding that, I also can't think of a better way of using the transport solo button and I'm used to and like the function it performs. Yes the light state is trivial in the scheme of things and yes the button works as expected but still...
Yeah, we're all totally at the mercy of the action developers whether state is reported.

Are you talking about the rude solo light ?
Geoff Waddington is offline   Reply With Quote
Old 04-22-2020, 12:07 PM   #8677
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by Funkybot View Post
That honestly sounds a bit like a square peg/round hole situation. If you want to know if the selected channel is solo'd, makes sense. If you want to know, which channels are soloed across a multi-fader surface, makes sense. Asking to have a light come on if any channel is solo'd sounds vague and very non-standard (to me at least). It's not telling you which channel is solo'd, or how many, so not helpful there.
Standard issue on an MCU

It's there because things soloed may not be visible.
Geoff Waddington is offline   Reply With Quote
Old 04-22-2020, 12:09 PM   #8678
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 1,856
Default

Quote:
Originally Posted by Geoff Waddington View Post
Standard issue on an MCU
...and a Mackie 8-Buss
MixMonkey is online now   Reply With Quote
Old 04-22-2020, 12:22 PM   #8679
Funkybot
Human being with feelings
 
Join Date: Jul 2007
Posts: 2,011
Default

Quote:
Originally Posted by Geoff Waddington View Post
Standard issue on an MCU

It's there because things soloed may not be visible.
Learned something new. I still maintain it's a strange design choice on Mackie's part though. My ears tell me something's been solo'd (where are all the missing instruments). What's way less obvious is when you accidentally have something muted and it only appears in a particular section of the song. I'd find much more value in a "hey, don't forget about that shaker you muted on track 33 during the bridge" button.

Apologies to Rothchild for running off at the mouth about a standard MCU feature (even if I think it's superfluous).
Funkybot is online now   Reply With Quote
Old 04-22-2020, 12:27 PM   #8680
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 5,818
Default

Quote:
Originally Posted by Funkybot View Post
Learned something new. I still maintain it's a strange design choice on Mackie's part though. My ears tell me something's been solo'd (where are all the missing instruments). What's way less obvious is when you accidentally have something muted and it only appears in a particular section of the song. I'd find much more value in a "hey, don't forget about that thing you muted during the bridge" button.

Apologies to Rothchild for running off at the mouth about a standard MCU feature (even if I think it's superfluous).
Depends on what shape one is in when (attempting to ) operate the console.

I know for me it's come in handy, when, after about the 4th time of hitting play and having nothing happen, I realize, oh, the transport was engaging, but that track WAAAY down there was soloed
Geoff Waddington 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 10:27 AM.


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