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

Reply
 
Thread Tools Display Modes
Old 04-11-2020, 02:05 AM   #8161
Mike@Ossarium
Human being with feelings
 
Mike@Ossarium's Avatar
 
Join Date: Nov 2012
Location: Munich, Germany
Posts: 111
Default

Hi,

the new version 0.2 for the X-Touch is now available.
Enjoy.

Cheers, Mike

https://stash.reaper.fm/38803/CSI_Be...tender_V02.zip
__________________
Reaper Version: 6.18 with CSI 1.0 and SWS / Audio Interface: Behringer FCA1616 + ADA8000
Band: Ossarium / Last Project: http://ossarium.bandcamp.com/ (Recorded and Mixed with Reaper)
Mike@Ossarium is offline   Reply With Quote
Old 04-11-2020, 03:23 AM   #8162
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
I use exactly that workflow with Console1 as the "Super Channel", just be sure "Auto Map FX" is checked in the surface setup:

(Snip...)

Now when a Track is selected any FX that are mapped (EQ, compressor, etc.) automatically show up on the Console1 -- as shown in the videos.
Wow! Really! So I can grab all the FX Slots of a Selected Channel, and if I had a ZON file that matches the name it will show on the configured surface? Nuts!

A few questions:
1. If I have more than one instance of a particular FX plug-in, does on the first one show or can I somehow initial a toggle?
2. What does the SetShowFXWindows in your Home do? The Wiki sad-fade red for that action.
3. What do the additional arguments here mean? "TrackOutputMeter "0""
tdc is offline   Reply With Quote
Old 04-11-2020, 03:26 AM   #8163
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
The RecordArm light is acting exactly like the Select light because TrackUniqueSelect is providing the appropriate feedback to whatever widget it is mapped to, in this case BOTH the RecordArm and Select buttons.
Ahh thanks! :-) thats clearer.
tdc is offline   Reply With Quote
Old 04-11-2020, 04:21 AM   #8164
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Can we access an FX Plugs Wet/Dry balance and the Bypass state? I have tried a number of syntax's like:

Button FXParam "Bypass"


But i treats this like index [0].

Thanks
tdc is offline   Reply With Quote
Old 04-11-2020, 04:51 AM   #8165
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,687
Default

Quote:
Originally Posted by Mike@Ossarium View Post
the new version 0.2 for the X-Touch is now available.
It would be GREAT if we were able to share such file in ReaPack, which would provide automatic updating !!! (AFAIK not yet possible -> Geoff and CFillion.)

-Michael
mschnell is offline   Reply With Quote
Old 04-11-2020, 04:57 AM   #8166
Mike@Ossarium
Human being with feelings
 
Mike@Ossarium's Avatar
 
Join Date: Nov 2012
Location: Munich, Germany
Posts: 111
Default Hold+Click problem

Hi.
I have the following in my zon file:

Code:
Click Reaper "40364" // Options: Toggle metronome
Hold+Click Reaper "40363" // Options: Show metronome/pre-roll settings
Everytime i press click (short) the metronome settings window show up and sometimes dissapear after 1 second. When i remove the Hold+Click part everything works fine.

Can somebody check this behavior?

Cheers,
Mike
__________________
Reaper Version: 6.18 with CSI 1.0 and SWS / Audio Interface: Behringer FCA1616 + ADA8000
Band: Ossarium / Last Project: http://ossarium.bandcamp.com/ (Recorded and Mixed with Reaper)
Mike@Ossarium is offline   Reply With Quote
Old 04-11-2020, 05:06 AM   #8167
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Mike@Ossarium View Post
Code:
Click Reaper "40364" // Options: Toggle metronome
Hold+Click Reaper "40363" // Options: Show metronome/pre-roll settings
Hi Mike, is "Click" a Widget referencing a button?
tdc is offline   Reply With Quote
Old 04-11-2020, 05:09 AM   #8168
Mike@Ossarium
Human being with feelings
 
Mike@Ossarium's Avatar
 
Join Date: Nov 2012
Location: Munich, Germany
Posts: 111
Default

Quote:
Originally Posted by tdc View Post
Hi Mike, is "Click" a Widget referencing a button?
Yes.

Code:
Widget Click
	Press 90 59 7f
	FB_TwoState 90 59 7f 90 59 00
WidgetEnd
__________________
Reaper Version: 6.18 with CSI 1.0 and SWS / Audio Interface: Behringer FCA1616 + ADA8000
Band: Ossarium / Last Project: http://ossarium.bandcamp.com/ (Recorded and Mixed with Reaper)
Mike@Ossarium is offline   Reply With Quote
Old 04-11-2020, 05:13 AM   #8169
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Ok. Just mapped those codes to a button.

Quick press toggles metronome.
Press and Hold opens the panel as expecte
d.

PS: thanks for teaching me about Hold!

Edit: Looks like your Press isn't defining a release message.
https://github.com/malcolmgroves/reaper_csi/wiki/Press

Last edited by tdc; 04-11-2020 at 05:22 AM.
tdc is offline   Reply With Quote
Old 04-11-2020, 05:23 AM   #8170
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
Wow! Really! So I can grab all the FX Slots of a Selected Channel, and if I had a ZON file that matches the name it will show on the configured surface? Nuts!

A few questions:
1. If I have more than one instance of a particular FX plug-in, does on the first one show or can I somehow initial a toggle?
Right now only one shows - I think it's the last one IIRC.

It's on the to do list


Quote:
Originally Posted by tdc View Post
2. What does the SetShowFXWindows in your Home do? The Wiki sad-fade red for that action.
Sometimes it's helpful to see the FX GUI -- making those little videos is a good example.

SetShowFXWindows tells Reaper whether to automatically show/hide all FX Gui's that are mapped/unmapped.

Quote:
Originally Posted by tdc View Post
3. What do the additional arguments here mean? "TrackOutputMeter "0""
Sometimes Actions take parameters - yeah I know the wiki needs a lot of work in this area

In this case the widget names give it away :

Code:
	OutputMeterLeft 	TrackOutputMeter "0"
	OutputMeterRight	TrackOutputMeter "1"
But in this case who would know that the parameter sets the display mode on the encoder:

Code:
	Control+Volume 		TrackPanWidth	"1"
	Shift+Volume 		TrackPan 	"0"
TrackPanWidth "1" = thermometer fill from centre display style
Shift+Volume TrackPan "0" = - single point display style.

Yup, more wiki work to do.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 05:27 AM   #8171
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
Can we access an FX Plugs Wet/Dry balance and the Bypass state? I have tried a number of syntax's like:

Button FXParam "Bypass"


But i treats this like index [0].

Thanks
Sometimes there are duplicate parameter names so CSI uses index, "Bypass" is simply the name that will display on a device that has scribble strips, you are missing the index parameter, so it simply defaults to 0:

https://github.com/malcolmgroves/rea.../wiki/FX-Zones
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 05:30 AM   #8172
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
Ok. Just mapped those codes to a button.

Quick press toggles metronome.
Press and Hold opens the panel as expecte
d.

PS: thanks for teaching me about Hold!

Edit: Looks like your Press isn't defining a release message.
https://github.com/malcolmgroves/reaper_csi/wiki/Press
You are exactly right and now you have been officially promoted to a support role -- who knew simply answering a question could bring you all these responsibilities and untold riches
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 05:31 AM   #8173
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
Sometimes there are duplicate parameter names so CSI uses index, "Bypass" is simply the name that will display on a device that has scribble strips, you are missing the index parameter, so it simply defaults to 0:
Thanks yes, I felt the syntax was incorrect. The indexing is understood. I was more asking whether we can access the Bypass and Wet/Dry parameters of FX Window?

Interestingly on my "overview" iPad, it shows the name "Bypass" and "Wet" when I touch those parameters with the Mouse. But I can seem to address them through CSI to set them.
tdc is offline   Reply With Quote
Old 04-11-2020, 05:32 AM   #8174
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
You are exactly right and now you have been officially promoted to a support role -- who knew simply answering a question could bring you all these responsibilities and untold riches
Ha! Glad to assist in whatever way I can :-)
tdc is offline   Reply With Quote
Old 04-11-2020, 05:34 AM   #8175
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
Thanks yes, I felt the syntax was incorrect. The indexing is understood. I was more asking whether we can access the Bypass and Wet/Dry parameters of FX Window?

Interestingly on my "overview" iPad, it shows the name "Bypass" and "Wet" when I touch those parameters with the Mouse. But I can seem to address them through CSI to set them.
Ah, gotcha'

Absolutely, do it all the time, they are always the last 2 in the list, so if there are duplicates, Reaper "Bypass" and Reaper "Wet" are always the last 2.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 05:40 AM   #8176
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

I am still stuck on my FocusedFXNavigator issue, but have been doing some more tests to narrow the problem down. And sadly I think its my lack of understanding.

When one of my devices moves from its home to the mapped FX Zone using the FocusedFXNavigator OnFXFocus, all is good. But as soon as I close that FX window, the controller goes dark, but all the home buttons no longer work.

In programming terms I am imagining I have a Home stack, that then has a different stack pushed onto it with OnFXFocus. But then its not being pushed off to reveal the stack underneath.

Where is my flaw?
tdc is offline   Reply With Quote
Old 04-11-2020, 05:46 AM   #8177
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
I am still stuck on my FocusedFXNavigator issue, but have been doing some more tests to narrow the problem down. And sadly I think its my lack of understanding.

When one of my devices moves from its home to the mapped FX Zone using the FocusedFXNavigator OnFXFocus, all is good. But as soon as I close that FX window, the controller goes dark, but all the home buttons no longer work.

In programming terms I am imagining I have a Home stack, that then has a different stack pushed onto it with OnFXFocus. But then its not being pushed off to reveal the stack underneath.

Where is my flaw?
Ah yes, our friend FocusedFXNavigator...

We are all working through this, I have not yet been able to solve it completely.

If my understanding is correct, Reaper does great at signalling FX Focused.

FX unfocused, not so much

So, until you Focus a new FX, FocusedFX means the last Focused FX, even though it has disappeared.

If you can check that this is what you see, you can commiserate with the rest of us until we sort this out
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com

Last edited by Geoff Waddington; 04-11-2020 at 06:03 AM.
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 05:48 AM   #8178
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ah, gotcha'

Absolutely, do it all the time, they are always the last 2 in the list, so if there are duplicates, Reaper "Bypass" and Reaper "Wet" are always the last 2.
:-)

Thank you sir, works just as you say. A bit sloppy though as if the plugin adds further parameters it pushes these up higher and breaks the mapping.
tdc is offline   Reply With Quote
Old 04-11-2020, 05:51 AM   #8179
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
Ah yes, our friend FocusedFXNavigator...
We are all working through this, I have not yet bee able tosolveit completely
If my understanding is correct, Reaper does great at signalling FX Focused.
FX unfocused, not so much
So, until you Focus a new FX, FocusedFX means the last Focused FX, even though it has disappeared.
If you can check that this is what you see, you can commiserate with the rest of us until we sort this out
WooHooo!!!! :-)
Annoying yes, and would be great to solve it. But I had got to the point where this is exactly what I thought. Slowly the understanding of this framework is coming to gather.

The whole way Reaper handles FX windows is a little hinky, so I am not surprised its not reliable in its messaging.
tdc is offline   Reply With Quote
Old 04-11-2020, 06:21 AM   #8180
yardc28
Human being with feelings
 
Join Date: Apr 2020
Posts: 6
Default

First, I wanted to make an account to say how incredible this project is; you guys have done incredible work. I have a LaunchControlXL that I wanted to be able to customize and so far I've tried the demos of all the major DAWs and been seriously disappointed with the customization options of control surfaces. Then I came to Reaper and within 1 day I had everything working exactly how I imagined.

I also came to ask a couple questions:

1: How's the progress on Soft Takeover? I saw Geoff commented on it a while back that it would be a checkbox soon but I may be missing it. I also want to make sure I have its function right since every DAW seems to call it something different...basically if I'm on bank 1 and adjust fader 1, then bank 2 and adjust fader 1, I don't want channel 9 (bank2 fader1) to actually change until it matches its previous value.

2. Is there a way to handle sending SysEx messages? The LCXL seems to play nicer with SysEx rather than note on/off for its lighting scheme. Additionally, I haven't found a way to operate the upper knob LED's through CC on/off, only through SysEx.

PS. If anyone is interested in my LauchControl XL files I can upload them
yardc28 is offline   Reply With Quote
Old 04-11-2020, 07:28 AM   #8181
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by yardc28 View Post
First, I wanted to make an account to say how incredible this project is; you guys have done incredible work. I have a LaunchControlXL that I wanted to be able to customize and so far I've tried the demos of all the major DAWs and been seriously disappointed with the customization options of control surfaces. Then I came to Reaper and within 1 day I had everything working exactly how I imagined.
Thanks from the whole community, that's exactly what CSI is all about, personal customization !

Quote:
Originally Posted by yardc28 View Post
I also came to ask a couple questions:

1: How's the progress on Soft Takeover? I saw Geoff commented on it a while back that it would be a checkbox soon but I may be missing it. I also want to make sure I have its function right since every DAW seems to call it something different...basically if I'm on bank 1 and adjust fader 1, then bank 2 and adjust fader 1, I don't want channel 9 (bank2 fader1) to actually change until it matches its previous value.
Thanks for reminding me, I'll post on this soon

Quote:
Originally Posted by yardc28 View Post
2. Is there a way to handle sending SysEx messages? The LCXL seems to play nicer with SysEx rather than note on/off for its lighting scheme. Additionally, I haven't found a way to operate the upper knob LED's through CC on/off, only through SysEx.
I already have this working on my Novation Launchpad mini mk3, just did a quick search, couldn't find the SysEx spec for the LaunchControlXL.

if you can find that, I'll see if I can mix one up.

Quote:
Originally Posted by yardc28 View Post
PS. If anyone is interested in my LauchControl XL files I can upload them
Always grateful for contributions, thanks !
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 07:41 AM   #8182
yardc28
Human being with feelings
 
Join Date: Apr 2020
Posts: 6
Default

I also love how active this community still is...

Here's my files for the LaunchControl XL. I included a link in both files to the LCXL programmers reference, as well as an archive link for when the link inevitably dies.

That being said, if you just point me in the right direction I can take the work off your hands - I can make LCXL integration my contribution I just installed ReaConsole and was gonna play around with controlling it, but if you just give me the method you use I'll get it going today.
Attached Files
File Type: zip LCXL.zip (3.0 KB, 83 views)
yardc28 is offline   Reply With Quote
Old 04-11-2020, 08:03 AM   #8183
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 252
Default no success yet - but another thought...

No success with this yet if any ideas emerge... ta

"I have all my plugins separated into eq/saturation/comp/sendfx/ - (8 in total) on hotkeys for contextual toolbars.
eg - f15 floats all eq's as buttons in toolbar - mouse select which one, toolbar auto closes.

I would like to:
Press "track" to get fx - as it works at the moment, but then use the 8 rotary's to select which of the toolbars i want by pressing them, then scroll the menu of fx on that toolbar with the rotary and select a plugin."

The idea below would be amazing.. to me anyway

If any of the plugin info using CSI, could, send a bank change message to a surface :

The sl25 - I've been using to control plugins for years, but have to use separate patches per plugin type. The MCU has less controls so don't want to migrate the task to it, or split between) The sl25 have 30 separate fully named patches (or banks) which i'd still like to use (it does still work by plain ol midi, no patch changes though)
If CSI could tell sl25 which bank per individual plugin....

Many thanks!
UNdark is offline   Reply With Quote
Old 04-11-2020, 08:51 AM   #8184
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by MixMonkey View Post
I stuck with Absolute (0-127), because the inc/dec modes didn't seem to allow feedback to the LED encoder ring.

I've attached the BCR2000.mst. It comes with both a sysex file and a .bcr file to load the appropriate settings into the unit (pick a patch you're not using) It looks like you're using BCManager so probably go for the .bcr.

The button LEDs are a problem because there doesn't seem to be a way of stopping the unit controlling the LEDs internally, but see how you get on.
MixMonkey,

Thanks for sending this. I've been playing around with different settings and so far I think that Encoder Plain with relative 2's complement has worked the best. However the resolution is just not fine enough with Fabfilter Pro-Q3. I get much better resolution with REAPER's parameter mapping.

I thought I saw w way to alter the resolution in an older post but I've gone back searching and can't seem to find it. Are we able to tell CSI to use finer step values when we define a widget?
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 09:04 AM   #8185
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by yardc28 View Post
I also love how active this community still is...

Here's my files for the LaunchControl XL. I included a link in both files to the LCXL programmers reference, as well as an archive link for when the link inevitably dies.

That being said, if you just point me in the right direction I can take the work off your hands - I can make LCXL integration my contribution I just installed ReaConsole and was gonna play around with controlling it, but if you just give me the method you use I'll get it going today.
Thanks for files and the link to the programmers reference, I will have a look...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 09:24 AM   #8186
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by rschlierbeck View Post
MixMonkey,

Thanks for sending this. I've been playing around with different settings and so far I think that Encoder Plain with relative 2's complement has worked the best. However the resolution is just not fine enough with Fabfilter Pro-Q3. I get much better resolution with REAPER's parameter mapping.
EncoderPlain intentionally has a coarse resolution. Why not use Encoder? Do you get feedback on the LED ring?
Quote:
I thought I saw w way to alter the resolution in an older post but I've gone back searching and can't seem to find it. Are we able to tell CSI to use finer step values when we define a widget?
You could setup an enormous step table, but this really shouldn't be necessary in the majority of cases. I get ~0.12dB gain resolution in FabFilter on my MackieC4 using Encoder.
MixMonkey is online now   Reply With Quote
Old 04-11-2020, 09:37 AM   #8187
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Let's talk Soft Takeover.

Technically it's easy to do:

If currentSurfaceFaderValue is equal to currentReaperTrackValue -- take over.

As usual the devil is in the details, we'll use a 7 bit fader as an example.

7 bit faders have 128 steps 0/127 - 127/127.

Put another way this is
0/127
2/127
3/127
4/127
5/127
6/127
...
127/127

But what if the currentReaperTrackValue is 3.4/127, Reaper is not restricted to 7 bit values, it is 64 bit floating point.

So we need a "close enough for takeover" equation:

If currentSurfaceFaderValue is close enough to currentReaperTrackValue -- take over.

Let's call "close enough to" "delta"

So if delta is less than !/127, take over.

TADA !!

Works great for 7 bit.

But what about 14 bit faders -- 1/16383, 2/16383....

Well our system will still work but it will be clumsy, it will takeover much sooner than it has to because we have much finer steps with 16383 possible values.

In this case we could say if delta is less than !/16383, take over.

Great, but how about Encoders, etc. ?

So we have:

14 bit delta = 1/16383 = 0.0000610;
7 bit delta = 1/127 = 0.0078740

Basically 2 solutions come to mind:

Code:
// Solution 1

Zone "Channel|"
        Fader14bit| SoftTakeoverTrackVolume 0.0000610
        Fader7bit| SoftTakeoverTrackVolume 0.0078740
        someEncoder| SoftTakeoverTrackVolume 0.000038640 // delta for this encoder
ZoneEnd

// Solution 2

Zone "Channel|"
        [bFader14bit| SoftTakeover14BitTrackVolume
        Fader7bit| SoftTakeover7BitTrackVolume
        someEncoder| SoftTakeoverVariableTrackVolume 0.0078740
ZoneEnd
Note that you can use SoftTakeoverVariableTrackVolume on any widget you wish, not just encoders.

I like solution 2 because it lines up better syntactically with widget definitions, whilst still allowing for custom adjustments, but that's the only reason, what do you think ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 09:39 AM   #8188
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by tdc View Post
:-)

Thank you sir, works just as you say. A bit sloppy though as if the plugin adds further parameters it pushes these up higher and breaks the mapping.
Well, that's the way Reaper hands them out, might have been better if they were always the first two
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 09:55 AM   #8189
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by MixMonkey View Post
EncoderPlain intentionally has a coarse resolution. Why not use Encoder? Do you get feedback on the LED ring?


You could setup an enormous step table, but this really shouldn't be necessary in the majority of cases. I get ~0.12dB gain resolution in FabFilter on my MackieC4 using Encoder.
I have tried both Encoder and Encoder Plain. I do get LED feedback on both. Here is a video showing the odd behavior of Encoder.

https://youtu.be/gAKBIX4SYLw

What happens is I get a nice fine resolution when I turn the encoder clockwise and a drastic jump when I turn it counter-clockwise (anti-clockwise.)

Thanks.
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 10:07 AM   #8190
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by rschlierbeck View Post
I have tried both Encoder and Encoder Plain. I do get LED feedback on both. Here is a video showing the odd behavior of Encoder.

https://youtu.be/gAKBIX4SYLw

What happens is I get a nice fine resolution when I turn the encoder clockwise and a drastic jump when I turn it counter-clockwise (anti-clockwise.)

Thanks.
I see. I've not used EncoderPlain, but I'm not sure why it would differ from Encoder in any way other than resolution. I take it both your examples use the same 2's complement setup?

Have you logged the raw MIDI that's sent from the 2's complement setup in both directions?
MixMonkey is online now   Reply With Quote
Old 04-11-2020, 10:11 AM   #8191
yardc28
Human being with feelings
 
Join Date: Apr 2020
Posts: 6
Default

Quote:
Originally Posted by Geoff Waddington View Post
I like solution 2 because it lines up better syntactically with widget definitions, whilst still allowing for custom adjustments, but that's the only reason, what do you think ?
Alright bear with me here, I've coded in python for a few years but just recently got into C++ and have zero experience with REAPER or any of its programming modalities.

What if we just converted the float to an int? Something like
Code:
currentReaperInt = (int)(currentReaperValue)
if currentSurfaceValue == currentReaperInt ... takeover
Then if we're dealing with different type faders we could just divide the Int by whatever we need.

I'm not sure how CSI "gets" the current value for its faders, but maybe converting it to a float immediately wouldn't be a bad idea? If the best resolution our surfaces can get is an int then it seems like we wouldn't really be losing any granularity.

EDIT: Just had a look at Reaper's SDK...looks like this is how FaderPort is doing it:

Code:
      int volint=volToInt14(volume);
      volint/=16;

      if (m_vol_lastpos!=volint)
      {
        m_vol_lastpos=volint;
        m_midiout->Send(0xb0,0x00,volint>>7,-1);
        m_midiout->Send(0xb0,0x20,volint&127,-1);  
      }
Looks like they convert all of their REAPER volumes and pans to 14 bit ints, and all of their control surface ints to doubles

Last edited by yardc28; 04-11-2020 at 10:18 AM.
yardc28 is offline   Reply With Quote
Old 04-11-2020, 10:20 AM   #8192
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by MixMonkey View Post
I see. I've not used EncoderPlain, but I'm not sure why it would differ from Encoder in any way other than resolution. I take it both your examples use the same 2's complement setup?

Have you logged the raw MIDI that's sent from the 2's complement setup in both directions?
Here is the configuration for those two encoders:

Widget RotaryT3
EncoderPlain b0 53 7f
FB_Encoder b0 53 7f
WidgetEnd

Widget RotaryT4
Encoder b0 54 7f
FB_Encoder b0 54 7f
WidgetEnd

Here is the log when I turn them:

When opening the FX window:
IN <- BCR2000 OnFXFocus 1.000000
OUT -> BCR2000 b0 72 06
OUT -> BCR2000 b0 73 06
OUT -> BCR2000 b0 74 06
OUT -> BCR2000 b0 75 06
OUT -> BCR2000 b0 7b 05
OUT -> BCR2000 b0 7c 05
OUT -> BCR2000 b0 7d 07
OUT -> BCR2000 b0 82 06
OUT -> BCR2000 b0 83 06
OUT -> BCR2000 b0 84 06
OUT -> BCR2000 b0 85 06

Turning Encoder Plain clockwise:
IN <- BCR2000 RotaryT3 0.015625
IN <- BCR2000 RotaryT3 0.015625
IN <- BCR2000 RotaryT3 0.015625
IN <- BCR2000 RotaryT3 0.015625
OUT -> BCR2000 b0 73 07
IN <- BCR2000 RotaryT3 -0.015625
OUT -> BCR2000 b0 73 06

Turning Encoder Plain counter-clockwise:
IN <- BCR2000 RotaryT3 -0.015625
IN <- BCR2000 RotaryT3 -0.015625
IN <- BCR2000 RotaryT3 -0.015625
IN <- BCR2000 RotaryT3 -0.015625
IN <- BCR2000 RotaryT3 -0.015625
IN <- BCR2000 RotaryT3 -0.015625
OUT -> BCR2000 b0 73 05

Turning Encoder clockwise:
IN <- BCR2000 RotaryT4 0.001984
IN <- BCR2000 RotaryT4 0.002976
IN <- BCR2000 RotaryT4 0.001984
IN <- BCR2000 RotaryT4 0.001984
IN <- BCR2000 RotaryT4 0.001984

Turning Encoder counter-clockwise
IN <- BCR2000 RotaryT4 -0.125000
OUT -> BCR2000 b0 74 05
IN <- BCR2000 RotaryT4 -0.125000
OUT -> BCR2000 b0 74 03

That is the output captured in REAPER. I haven't logged the output from something like MIDI-OX but I should do that too.

Edit: this is from MIDI-OX for those two encoders:

From MIDI-OX
00001CC5 2 -- B0 53 01 1 --- Control Change
00001CFF 2 -- B0 53 01 1 --- Control Change
00001D3C 2 -- B0 53 01 1 --- Control Change
00001D7E 2 -- B0 53 01 1 --- Control Change
00001DAE 2 -- B0 53 01 1 --- Control Change
00001DDF 2 -- B0 53 01 1 --- Control Change
00001E2D 2 -- B0 53 01 1 --- Control Change
00001E82 2 -- B0 53 01 1 --- Control Change
00001EB5 2 -- B0 53 01 1 --- Control Change
00001EF4 2 -- B0 53 01 1 --- Control Change
00001F3A 2 -- B0 53 01 1 --- Control Change
00001F85 2 -- B0 53 01 1 --- Control Change
00001FC0 2 -- B0 53 01 1 --- Control Change
0000208D 2 -- B0 53 01 1 --- Control Change
0000273E 2 -- B0 53 7F 1 --- Control Change
00002778 2 -- B0 53 7F 1 --- Control Change
000027A3 2 -- B0 53 7F 1 --- Control Change
000027D8 2 -- B0 53 7F 1 --- Control Change
00002805 2 -- B0 53 7F 1 --- Control Change
00002836 2 -- B0 53 7F 1 --- Control Change
0000285C 2 -- B0 53 7F 1 --- Control Change
0000288E 2 -- B0 53 7F 1 --- Control Change
000028BE 2 -- B0 53 7F 1 --- Control Change
0000291B 2 -- B0 53 7F 1 --- Control Change
000029AA 2 -- B0 53 7F 1 --- Control Change
000029F7 2 -- B0 53 7F 1 --- Control Change
00002A64 2 -- B0 53 7F 1 --- Control Change
000035F4 2 -- B0 54 01 1 --- CC: Portamento Ctrl
0000366A 2 -- B0 54 01 1 --- CC: Portamento Ctrl
000036B3 2 -- B0 54 01 1 --- CC: Portamento Ctrl
0000370E 2 -- B0 54 01 1 --- CC: Portamento Ctrl
0000373D 2 -- B0 54 01 1 --- CC: Portamento Ctrl
000037B4 2 -- B0 54 01 1 --- CC: Portamento Ctrl
000037E4 2 -- B0 54 01 1 --- CC: Portamento Ctrl
0000383F 2 -- B0 54 01 1 --- CC: Portamento Ctrl
00003860 2 -- B0 54 01 1 --- CC: Portamento Ctrl
000038DC 2 -- B0 54 01 1 --- CC: Portamento Ctrl
00003907 2 -- B0 54 01 1 --- CC: Portamento Ctrl
0000420E 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
00004241 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
000042E1 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
0000431E 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
0000438D 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
000043C5 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
00004417 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
00004450 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
000044C4 2 -- B0 54 7F 1 --- CC: Portamento Ctrl
0000458D 2 -- B0 54 7F 1 --- CC: Portamento Ctrl


Both encoders send a 01 when turned clockwise and 7F when turned counter-clockwise.
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 10:31 AM   #8193
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by rschlierbeck View Post
Both encoders send a 01 when turned clockwise and 7F when turned counter-clockwise.
Interesting, so Encoder is behaving differently from EncoderPlain.

For comparison, my C4 sends 01 clockwise and 41 counter-clockwise.
MixMonkey is online now   Reply With Quote
Old 04-11-2020, 10:34 AM   #8194
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

I'm having major new PC issues and not able to double-check right now, but I believe I ran into issues with EncoderPlain and FBEncoder and my MFtwister. I think I just used FBFader7Bit instead for the feedback and everything worked. Might be worth a shot.
Funkybot is online now   Reply With Quote
Old 04-11-2020, 10:45 AM   #8195
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by MixMonkey View Post
Interesting, so Encoder is behaving differently from EncoderPlain.

For comparison, my C4 sends 01 clockwise and 41 counter-clockwise.
In BC Manager I have the ability to edit them but honestly I don't know what should be changed.

the two attachments show the configuration dialog for the encoders in BC Manager. It looks like I could change the max value output to be 41 like you have. I think 41 hex = 65 decimal which is half of 127 (roughly)
Attached Images
File Type: jpg BCR Encoder Options General.JPG (50.2 KB, 81 views)
File Type: jpg BCR Encoder Options Standard.JPG (38.5 KB, 83 views)
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 10:46 AM   #8196
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by Funkybot View Post
I'm having major new PC issues and not able to double-check right now, but I believe I ran into issues with EncoderPlain and FBEncoder and my MFtwister. I think I just used FBFader7Bit instead for the feedback and everything worked. Might be worth a shot.
Let me give that a try.

Nope that definitely does not work. values increase but never decrease. Was worth a try though.
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 10:51 AM   #8197
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by rschlierbeck View Post
In BC Manager I have the ability to edit them but honestly I don't know what should be changed.

the two attachments show the configuration dialog for the encoders in BC Manager. It looks like I could change the max value output to be 41 like you have. I think 41 hex = 65 decimal which is half of 127 (roughly)
I think you may find that the max/min settings only apply to the absolute output, not the relative- but I could be wrong. I seem to remember trying the different relative modes looking for one that that would be the same as Mackie, but didn't find one.

Geoff might be able to help out on this, perhaps we could have an encoder type that worked with the 7F message?
MixMonkey is online now   Reply With Quote
Old 04-11-2020, 12:07 PM   #8198
rschlierbeck
Human being with feelings
 
Join Date: Sep 2014
Posts: 68
Default

Quote:
Originally Posted by MixMonkey View Post
I think you may find that the max/min settings only apply to the absolute output, not the relative- but I could be wrong. I seem to remember trying the different relative modes looking for one that that would be the same as Mackie, but didn't find one.

Geoff might be able to help out on this, perhaps we could have an encoder type that worked with the 7F message?
This works great with REAPERS internal parameter mapping. If you look at the attached you can see that there are several options for interpretting the value sent from the surface. I selected Relative 127=-1, 1=+1. but I see there are options for controllers that send 65 like your's does.
Attached Images
File Type: jpg REAPER Parameter Mapping.JPG (36.5 KB, 78 views)
rschlierbeck is offline   Reply With Quote
Old 04-11-2020, 12:35 PM   #8199
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by yardc28 View Post
I also love how active this community still is...

Here's my files for the LaunchControl XL. I included a link in both files to the LCXL programmers reference, as well as an archive link for when the link inevitably dies.

That being said, if you just point me in the right direction I can take the work off your hands - I can make LCXL integration my contribution I just installed ReaConsole and was gonna play around with controlling it, but if you just give me the method you use I'll get it going today.
According to the document, looks to me like there is zero benefit to using SysEx for colour as there is only 2 bit support for Red, 2 bit support for Green, and no support for Blue, that info is easily carried in less than a byte.

What leads you to believe SysEx is better for this ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 04-11-2020, 12:40 PM   #8200
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by yardc28 View Post
Alright bear with me here, I've coded in python for a few years but just recently got into C++ and have zero experience with REAPER or any of its programming modalities.

What if we just converted the float to an int? Something like
Code:
currentReaperInt = (int)(currentReaperValue)
if currentSurfaceValue == currentReaperInt ... takeover
Then if we're dealing with different type faders we could just divide the Int by whatever we need.

I'm not sure how CSI "gets" the current value for its faders, but maybe converting it to a float immediately wouldn't be a bad idea? If the best resolution our surfaces can get is an int then it seems like we wouldn't really be losing any granularity.

EDIT: Just had a look at Reaper's SDK...looks like this is how FaderPort is doing it:

Code:
      int volint=volToInt14(volume);
      volint/=16;

      if (m_vol_lastpos!=volint)
      {
        m_vol_lastpos=volint;
        m_midiout->Send(0xb0,0x00,volint>>7,-1);
        m_midiout->Send(0xb0,0x20,volint&127,-1);  
      }
Looks like they convert all of their REAPER volumes and pans to 14 bit ints, and all of their control surface ints to doubles
An int will not work in this case, and yes I use all of the things you mentioned every day

That really wasn't the point, it was included to describe the concept of a delta.

The question is which .zon file syntax do you like better, Solution 1 or Solution 2.

Which do you prefer and why ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
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 01:43 PM.


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