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

Reply
 
Thread Tools Display Modes
Old 11-30-2022, 07:51 PM   #21161
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by Geoff Waddington View Post
Here's an .mst file, don't know if it's up to date, but should provide a decent starting point.
Thanks Geoff,

Have you got zon files and FX zon files too ?

If you do, it would avoid me have to create them from scratch.
And I could mod them to my work flow
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 11-30-2022, 08:26 PM   #21162
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default Widget Alias's anyone :)

Here's a simple thought from a 67 year young senior citizen.

It's my use case so if you can, please bear with me.

When creating .mst or .ost files I find myself naming the widgets to names that reflect the use I will use in my .zon files,
as opposed to the name labeled on the surface.

What I am proposing is that the mst/ost file allows us to add an alias to to widget.

That way we could have the widget name reflect the name on the surface,
and the zon files could use either the widget name of alias if the alias is present.


mst or ost template:
Code:
    Widget <widgetName> [optionlAlias]
        ....
    WidgetEnd
Example:
Code:
    Widget   AssignableButton-C1   Play
        ....
    Widget   AssignableButton-C2   Stop
        ....
.zon could use either of widget name or alias if the mst/ost provided a widget alias.

Without the alias using the above example my zon definition for Transport Play would need to read like this:
Code:
    AssignableButton-C1   Play
As Opposed to using the alias:
Code:
    Play   Play
Thoughts please?
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-01-2022, 10:26 PM   #21163
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Here's a simple thought from a 67 year young senior citizen.

It's my use case so if you can, please bear with me.

When creating .mst or .ost files I find myself naming the widgets to names that reflect the use I will use in my .zon files,
as opposed to the name labeled on the surface.

What I am proposing is that the mst/ost file allows us to add an alias to to widget.

That way we could have the widget name reflect the name on the surface,
and the zon files could use either the widget name of alias if the alias is present.


mst or ost template:
Code:
    Widget <widgetName> [optionlAlias]
        ....
    WidgetEnd
Example:
Code:
    Widget   AssignableButton-C1   Play
        ....
    Widget   AssignableButton-C2   Stop
        ....
.zon could use either of widget name or alias if the mst/ost provided a widget alias.

Without the alias using the above example my zon definition for Transport Play would need to read like this:
Code:
    AssignableButton-C1   Play
As Opposed to using the alias:
Code:
    Play   Play
Thoughts please?
Bump ?
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-02-2022, 06:30 AM   #21164
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Without the alias using the above example my zon definition for Transport Play would need to read like this:
Code:
    AssignableButton-C1   Play
As Opposed to using the alias:
Code:
    Play   Play
Thoughts please?
I find it less confusing to always have the .mst Widget name match the surface legending. Otherwise it's more complicated to re-assign a button.

Say if you want to change the function of a button called "Plugin" ("Plugin" is what is written on the surface) but you've aliased it to be "Click" and that is what you're using in the Zone file, how will you find it on the surface? You would have to look in the .mst to see what the "real" name of the button was. Better to just use the surface legending and be done with it.
MixMonkey is offline   Reply With Quote
Old 12-02-2022, 06:38 AM   #21165
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

I agree with MixMonkey on this, with a slight twist.

I found the Console 1 compressor section woefully short on controls.

I repurposed the Drive, Character, and Pan rotaries, physically relabeled them with stick on labels, and then changed the .mst to reflect those labels.

Much more straightforward that way.
__________________
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 12-02-2022, 06:57 AM   #21166
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

I'm with MixMonkey on this one. How would another X32 user know that AssignableButton-C3 is "Play" without having to go down the rabbit hole of the .mst? Whereas...

Code:
AssignableButton-C3     Play
...removes all doubt. It's a little uglier in the .zon file, but very clear for any other users who may otherwise have a hard time following the mapping in the .zon files.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-02-2022, 07:07 AM   #21167
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
Default

Quote:
Originally Posted by Geoff Waddington View Post
I agree with MixMonkey on this, with a slight twist.

I found the Console 1 compressor section woefully short on controls.

I repurposed the Drive, Character, and Pan rotaries, physically relabeled them with stick on labels, and then changed the .mst to reflect those labels.

Much more straightforward that way.
This, of course, is the gotcha for both sides of the argument When you first start out, it’s much more intuitive for the .mst to match the surface legend. However, once you’ve stuck on the sticky labels, you then need to either rename the Widgets in the .mst or use a “map” of the surface. I’ve stuck on the labels and now have a laminated picture of the MCU so I can see “under” my labels.

If you take the other route and rename the .mst, your .mst file becomes useless to anyone but you. Witness the hassle caused by me renaming those C4 buttons to “SZ1”, “SZ2” etc
MixMonkey is offline   Reply With Quote
Old 12-02-2022, 07:19 AM   #21168
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

That's why I have 2 Console 1 .mst files

A stock one which I gave to jacksoonbrowne, and the one I used for myself.

It's all in how you view the .mst and .zon files, personal vs shareable.
__________________
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 12-02-2022, 07:20 AM   #21169
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Quote:
Originally Posted by Geoff Waddington View Post
That's why I have 2 Console 1 .mst files

A stock one which I gave to jacksoonbrowne, and the one I used for myself.

It's all in how you view the .mst and .zon files, personal vs shareable.
Yeah, that's definitely the way to go IMO. If your files will be shared, use the surface labels. Personal use-only? Do whatever!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-02-2022, 01:33 PM   #21170
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Feature request if I may. "Broadcast All" and "Receive All"

This...
Code:
Zone Home
Broadcast Home SelectedTrackFXMenu TrackFXMenu SelectedTrackSend TrackSend SelectedTrackReceive TrackReceive Folder VCA
Receive Home SelectedTrackFXMenu TrackFXMenu SelectedTrackSend TrackSend SelectedTrackReceive TrackReceive Folder VCA
Becomes this...
Code:
Zone Home
Broadcast All
Receive All
Also, do Folder and VCA broadcast/receive? If not, can they be added? If they already do, I'll update the Wiki.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-02-2022, 06:25 PM   #21171
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by Geoff Waddington View Post
I agree with MixMonkey on this, with a slight twist.

I found the Console 1 compressor section woefully short on controls.

I repurposed the Drive, Character, and Pan rotaries, physically relabeled them with stick on labels, and then changed the .mst to reflect those labels.

Much more straightforward that way.
That's what I was doing for the X32.

I just thought that it would be easier to read both the ost and zon if the ost had the alias, the alias being an option.

For example in my use case for the X32:
---------------------------------------------

Code:
ost:
//     WidgetName           Alias
//     ------------------   -----
Widget AssignableButton_C1  Play
I could then use either the widget name or alias in the zon file
Code:
 Play    Play
If at some time I would prefer to move the Play button to AssignableButton_A1,
I would only need to search the ost for the alias "Play" and remove the alias.
Then search the ost for the widgetName AssignableButton_A1 and add the "Play" alias there.

That's me thinking out loud.



I understand all the points members have made and agree they are valid.
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 12-02-2022 at 07:28 PM.
jacksoonbrowne is offline   Reply With Quote
Old 12-03-2022, 04:55 AM   #21172
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

POSSIBLE BREAKING CHANGES

New build is up.

CSI Exp.zip

Removed EZFX Zones.

Widgets now update all Actions in a given Zone.

If this causes weird flickering, etc. when a Widget is assigned to more than one Action in a Zone, set one or more Actions to Feedback=No.
__________________
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 12-03-2022, 10:11 AM   #21173
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Quote:
Originally Posted by Geoff Waddington View Post
Widgets now update all Actions in a given Zone.
Hi Geoff, can you provide a few more details about what this means (old vs new behavior)?
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-03-2022, 11:13 AM   #21174
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by Funkybot View Post
Hi Geoff, can you provide a few more details about what this means (old vs new behavior)?
You may recall the psychedelic feedback behaviour if you had a Widget assigned to 2 Actions in a Zone file:

Code:
    SomeButton SomeAction
    SomeButton AnotherAction
This caused bizarre results since SomeButton got updated by both SomeAction and AnotherAction.

We hacked it such that only the first Action provided feedback.

While this worked reasonably well, you were screwed if you wanted SomeAction to occur before AnotherAction, but wanted the feedback from AnotherAction.

Now, with feedback available on a per Action basis you can do this:

Code:
    SomeButton SomeAction Feedback=No
    SomeButton AnotherAction
or even something like this:

Code:
    SomeButton SomeAction Feedback=No
    SomeButton AnotherAction 
    SomeButton YetAnotherAction Feedback=No
and get the desired result.
__________________
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 12-03-2022, 12:16 PM   #21175
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Ah, very cool! I vaguely recall that now, though never ran into the issue myself.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-03-2022, 12:46 PM   #21176
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Maybe for Troubleshooting purposes, in one of the CSI actions (or a new one), ReaConsole could show the path to the active zone file being read if a widget is fired...

Example, let's say I press RotaryPushB8 on the MFTwister while the Buttons.zon is active...
Code:
C:\Users\[UserName]\AppData\Roaming\REAPER\CSI\Zones\FXTwisterMenu\Buttons.zon   RotaryPushB8 Reaper 40527
Might help folks troubleshooting why .zon updates they think they're making aren't being reflected in CSI. Maybe call it "CSI toggle show zone path and CSI output". Lord knows I've made mistakes with version control dozens of times and would've benefited from a similar action.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-03-2022, 03:39 PM   #21177
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by Funkybot View Post
Maybe for Troubleshooting purposes, in one of the CSI actions (or a new one), ReaConsole could show the path to the active zone file being read if a widget is fired...

Example, let's say I press RotaryPushB8 on the MFTwister while the Buttons.zon is active...
Code:
C:\Users\[UserName]\AppData\Roaming\REAPER\CSI\Zones\FXTwisterMenu\Buttons.zon   RotaryPushB8 Reaper 40527
Might help folks troubleshooting why .zon updates they think they're making aren't being reflected in CSI. Maybe call it "CSI toggle show zone path and CSI output". Lord knows I've made mistakes with version control dozens of times and would've benefited from a similar action.
+1
That would make my debugging of X24 ost/zones a lot easier.
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-03-2022, 05:08 PM   #21178
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 373
Default

Quote:
Originally Posted by Geoff Waddington View Post
You may recall the psychedelic feedback behaviour if you had a Widget assigned to 2 Actions in a Zone file:

Code:
    SomeButton SomeAction
    SomeButton AnotherAction
This caused bizarre results since SomeButton got updated by both SomeAction and AnotherAction.

We hacked it such that only the first Action provided feedback.

While this worked reasonably well, you were screwed if you wanted SomeAction to occur before AnotherAction, but wanted the feedback from AnotherAction.

Now, with feedback available on a per Action basis you can do this:

Code:
    SomeButton SomeAction Feedback=No
    SomeButton AnotherAction
or even something like this:

Code:
    SomeButton SomeAction Feedback=No
    SomeButton AnotherAction 
    SomeButton YetAnotherAction Feedback=No
and get the desired result.
Superb, Geoff. Great addition!
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-01-13)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 12-03-2022, 08:24 PM   #21179
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Originally Posted by Geoff Waddington View Post
Here's an .mst file, don't know if it's up to date, but should provide a decent starting point.
Hi Geoff,

Any chance you could send me your csi.ini and zone files for your console 1?

Would like to start with a complete config
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-04-2022, 01:11 AM   #21180
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

Any chance you could send me your csi.ini and zone files for your console 1?

Would like to start with a complete config
Here's some Zones, they are quite old, I got rid of the Console 1 a few months ago, so some of the Zone definitions are probably broken.

Don't have a CSI.ini file that contains a Console 1 anymore.
Attached Files
File Type: zip jacksoonbrowne.zip (4.0 KB, 30 views)
__________________
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 12-04-2022, 08:49 AM   #21181
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

New build is up.

CSI Exp.zip

"CSI Toggle Show Input from Surfaces" now shows Zone file path.
__________________
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 12-04-2022, 11:27 AM   #21182
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Quote:
Originally Posted by Geoff Waddington View Post
New build is up.

CSI Exp.zip

"CSI Toggle Show Input from Surfaces" now shows Zone file path.
Very nice, thanks! I think this will be very helpful!

Note: the slash direction changes on Windows...
Code:
IN <- XTouchOne Play 1.000000
Zone -- C:\Users\[UserName]\AppData\Roaming\REAPER/CSI/Zones/X-Touch_One_FB/Buttons.zon
__________________
CSI v3 Wiki

Last edited by Funkybot; 12-04-2022 at 11:38 AM.
Funkybot is offline   Reply With Quote
Old 12-04-2022, 12:03 PM   #21183
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

The Change Log page on the wiki is updated to reflect the latest changes.

https://github.com/GeoffAWaddington/.../CSI-Changelog
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-04-2022, 01:50 PM   #21184
tompad
Human being with feelings
 
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 811
Default

Quote:
Originally Posted by Funkybot View Post
Maybe for Troubleshooting purposes, in one of the CSI actions (or a new one), ReaConsole could show the path to the active zone file being read if a widget is fired...

Example, let's say I press RotaryPushB8 on the MFTwister while the Buttons.zon is active...
Code:
C:\Users\[UserName]\AppData\Roaming\REAPER\CSI\Zones\FXTwisterMenu\Buttons.zon   RotaryPushB8 Reaper 40527
Might help folks troubleshooting why .zon updates they think they're making aren't being reflected in CSI. Maybe call it "CSI toggle show zone path and CSI output".
+1000
__________________
ToDoList Obliques MusicMath Donation Some of mine and my friends music projects on Spotify
tompad is offline   Reply With Quote
Old 12-04-2022, 03:34 PM   #21185
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by Funkybot View Post
The Change Log page on the wiki is updated to reflect the latest changes.

https://github.com/GeoffAWaddington/.../CSI-Changelog
Great work, as always !!
__________________
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 12-04-2022, 03:34 PM   #21186
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by tompad View Post
+1000
Already implemented
__________________
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 12-04-2022, 03:36 PM   #21187
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by Funkybot View Post
Note: the slash direction changes on Windows...
Code:
IN <- XTouchOne Play 1.000000
Zone -- C:\Users\[UserName]\AppData\Roaming\REAPER/CSI/Zones/X-Touch_One_FB/Buttons.zon
Thanks, not going to worry about that

Unbeknownst to most, Windows actually accepts either style, as you can see
__________________
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 12-04-2022, 04:06 PM   #21188
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Quote:
Originally Posted by Geoff Waddington View Post
Thanks, not going to worry about that
I'm good with keeping it as is. Just didn't expect for the style to change in the middle of the path like that.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-04-2022, 04:19 PM   #21189
Westopher6
Human being with feelings
 
Join Date: Jan 2022
Location: Maryland, USA
Posts: 1
Default

I have done a bunch of CSI coding for my Console 1 and Icon QCon G2 and EX.....
I have the Qcon set up how I like for efficiency for recording and mixing other than one thing...
Is there a way to code a certain button to apply my Waves SSL EV2 channel strip with one touch of a button instead of opening the FX window and clicking through my plug-ins?

I saw there is an SWS command of "Open console with 'x' to add track FX" but haven't really figured out what that actually does as I wasn't able to actually add an FX with that command.

Also is there any support for the gate meter on console 1? The compressor meter works for me but i haven't seen anyone code in the gate meter.

If anyone knows, that would be great, if not, I'll keep dreaming!

Last edited by Westopher6; 12-04-2022 at 04:32 PM.
Westopher6 is offline   Reply With Quote
Old 12-04-2022, 06:31 PM   #21190
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default X32 Channel Banking

Hi Geoff,

Found some time to work on the X32 again.

I made a small mod to the code that will select the appropriate fader bank on the X32 when a channel is selected on reaper.

For example,

If I select any channels on reaper between 1 and 16, the X32 will automatically select X32 channel bank 1.
If I select any channels on reaper between 17 and 32, the X32 will automatically select X32 channel bank 2.
etc ... in banks of 16 channels.

Thus any channel selected in Repear will automatically select the approprite channel bank on the X32.

Old Code:
Code:
void OSC_IntFeedbackProcessor::ForceValue(map<string, string> &properties, double value)
{
    lastDoubleValue_ = value;
    
    if (surface_->IsX32() && oscAddress_.find("/-stat/selidx") != string::npos)
    {
        if (value != 0.0)
            surface_->SendOSCMessage(this, "/-stat/selidx", widget_->GetChannelNumber() - 1);
    }
    else
        surface_->SendOSCMessage(this, oscAddress_, (int)value);
}
New channel banking code:
Code:
void OSC_IntFeedbackProcessor::ForceValue(map<string, string> &properties, double value)
{
    lastDoubleValue_ = value;
    
    if (surface_->IsX32() && oscAddress_.find("/-stat/selidx") != string::npos)
    {
        if (value != 0.0)
        {
            surface_->SendOSCMessage(this, "/-stat/selidx",       widget_->GetChannelNumber() -1);
            surface_->SendOSCMessage(this, "/-stat/chfaderbank", (widget_->GetChannelNumber() -1) / 16);
        }
    }
    else
        surface_->SendOSCMessage(this, oscAddress_, (int)value);
}
Could you add this to the next build?
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-04-2022, 08:26 PM   #21191
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

@Funkybot,

I modified the X-Touch .mid surface support file to include generous comments and reordered a few widgets.

No other changes

Makes it easier to distinguish what is what, I think

And may help newbies to better understand.

Please take a look and determine if you want to replace the existing Wiki Support file.

Cheers,
Roy

Code:
//------------------------------------------------//
// "ROTARY AND JOG WHEEL" STEP SIZES              //
//------------------------------------------------//

StepSize
    RotaryWidgetClass      0.003
    JogWheelWidgetClass    0.003
StepSizeEnd


//------------------------------------------------//
// "ROTARY AND JOG WHEEL" ACCELERATION            //
//------------------------------------------------//

AccelerationValues
    RotaryWidgetClass      Dec 41     42    43    44    45    46    47  
    RotaryWidgetClass      Inc 01     02    03    04    05    06    07  
    RotaryWidgetClass      Val 0.0006 0.001 0.002 0.003 0.008 0.04  0.08 

    JogWheelWidgetClass    Dec 41     42    43    44    45    46    47  
    JogWheelWidgetClass    Inc 01     02    03    04    05    06    07  
    JogWheelWidgetClass    Val 0.0006 0.001 0.002 0.003 0.008 0.04  0.08 
AccelerationValuesEnd


//--------------------------------------//
// "TRACK"  BUTTON                      //
//--------------------------------------//

Widget Track
    Press           90 28 7f   90 28 00
    FB_TwoState     90 28 7f   90 28 00
WidgetEnd

//--------------------------------------//
// "PAN/SURROND"  BUTTON                //
//--------------------------------------//

Widget Pan
    Press           90 2a 7f   90 2a 00
    FB_TwoState     90 2a 7f   90 2a 00
WidgetEnd

//--------------------------------------//
// "EQ"  BUTTON                         //
//--------------------------------------//

Widget EQ
    Press           90 2c 7f   90 2c 00
    FB_TwoState     90 2c 7f   90 2c 00
WidgetEnd

//--------------------------------------//
// "SEND"  BUTTON                       //
//--------------------------------------//

Widget Send
    Press           90 29 7f   90 29 00
    FB_TwoState     90 29 7f   90 29 00
WidgetEnd

//--------------------------------------//
// "PLUGIN"  BUTTON                     //
//--------------------------------------//

Widget Plugin
    Press           90 2b 7f   90 2b 00
    FB_TwoState     90 2b 7f   90 2b 00
WidgetEnd

//--------------------------------------//
// "INST"  BUTTON                       //
//--------------------------------------//

Widget Instrument
    Press           90 2d 7f   90 2d 00
    FB_TwoState     90 2d 7f   90 2d 00
WidgetEnd

//--------------------------------------//
// "FADER BANK - LEFT/RIGHT"  BUTTONS   //
//--------------------------------------//

Widget BankLeft
    Press           90 2e 7f 90 2e 00
    FB_TwoState     90 2e 7f   90 2e 00
WidgetEnd

Widget BankRight
    Press           90 2f 7f   90 2f 00
    FB_TwoState     90 2f 7f   90 2f 00
WidgetEnd

//--------------------------------------//
// "CHANNEL BANK - LEFT/RIGHT"  BUTTONS //
//--------------------------------------//

Widget ChannelLeft
    Press           90 30 7f   90 30 00
    FB_TwoState     90 30 7f   90 30 00
WidgetEnd

Widget ChannelRight
    Press           90 31 7f   90 31 00
    FB_TwoState     90 31 7f   90 31 00
WidgetEnd

//--------------------------------------//
// "FLIP"  BUTTON                       //
//--------------------------------------//

Widget Flip
    Press           90 32 7f   90 32 00
    FB_TwoState     90 32 7f   90 32 00
WidgetEnd

//--------------------------------------//
// "GLOBAL VIEW"  BUTTON                //
//--------------------------------------//

Widget GlobalView
    Press           90 33 7f   90 33 00
    FB_TwoState     90 33 7f   90 33 00
WidgetEnd

//--------------------------------------//
// "NAME/VALUE"  BUTTON                 //
//--------------------------------------//

Widget nameValue
    Press           90 34 7f   90 34 00
WidgetEnd

//--------------------------------------//
// "SMPTE/BEATS"  BUTTON                //
//--------------------------------------//

Widget smpteBeats
    Press           90 35 7f   90 35 00
WidgetEnd

//--------------------------------------//
// "LED DISPLAY"                        //
//--------------------------------------//

Widget TimeDisplay
    FB_MCUTimeDisplay
WidgetEnd

Widget AssignmentDisplay
    FB_MCUAssignmentDisplay
WidgetEnd

//--------------------------------------//
// "FUNCTION" BUTTONS                   //
//--------------------------------------//

Widget F1
    Press           90 36 7f   90 36 00
    FB_TwoState     90 36 7f   90 36 00
WidgetEnd

Widget F2
    Press           90 37 7f   90 37 00
    FB_TwoState     90 37 7f   90 37 00
WidgetEnd

Widget F3
    Press           90 38 7f   90 38 00
    FB_TwoState     90 38 7f   90 38 00
WidgetEnd

Widget F4
    Press           90 39 7f   90 39 00
    FB_TwoState     90 39 7f   90 39 00
WidgetEnd

Widget F5
    Press           90 3a 7f   90 3a 00
    FB_TwoState     90 3a 7f   90 3a 00
WidgetEnd

Widget F6
    Press           90 3b 7f   90 3b 00
    FB_TwoState     90 3b 7f   90 3b 00
WidgetEnd

Widget F7
    Press           90 3c 7f   90 3c 00
    FB_TwoState     90 3c 7f   90 3c 00
WidgetEnd

Widget F8
    Press           90 3d 7f   90 3d 00
    FB_TwoState     90 3d 7f   90 3d 00
WidgetEnd

//--------------------------------------//
// "MIDI-TRACKS"  BUTTON                //
//--------------------------------------//

Widget MidiTracks
    Press           90 3E 7f   90 3E 00
    FB_TwoState     90 3E 7f   90 3E 00
WidgetEnd

//--------------------------------------//
// "INPUTS"  BUTTON                     //
//--------------------------------------//

Widget Inputs
    Press           90 3F 7f   90 3F 00
    FB_TwoState     90 3F 7f   90 3F 00
WidgetEnd

//--------------------------------------//
// "AUDIO-TRACKS"  BUTTON               //
//--------------------------------------//

Widget AudioTracks
    Press           90 40 7f   90 40 00
    FB_TwoState     90 40 7f   90 40 00
WidgetEnd

//--------------------------------------//
// "AUDIO-INST"  BUTTON                 //
//--------------------------------------//

Widget AudioInstrument
    Press           90 41 7f   90 41 00
    FB_TwoState     90 41 7f   90 41 00
WidgetEnd

//--------------------------------------//
// "AUX"  BUTTON                        //
//--------------------------------------//

Widget Aux
    Press           90 42 7f   90 42 00
    FB_TwoState     90 42 7f   90 42 00
WidgetEnd

//--------------------------------------//
// "BUSES"  BUTTON                      //
//--------------------------------------//

Widget Busses
    Press           90 43 7f   90 43 00
    FB_TwoState     90 43 7f   90 43 00
WidgetEnd

//--------------------------------------//
// "OUTPUTS"  BUTTON                    //
//--------------------------------------//

Widget Outputs
    Press           90 44 7f   90 44 00
    FB_TwoState     90 44 7f   90 44 00
WidgetEnd

//--------------------------------------//
// "USER"  BUTTON                       //
//--------------------------------------//

Widget User
    Press           90 45 7f   90 45 00
    FB_TwoState     90 45 7f   90 45 00
WidgetEnd

//--------------------------------------//
// "SHIFT"  BUTTON                      //
//--------------------------------------//

Widget Shift
    Press           90 46 7f   90 46 00
    FB_TwoState     90 46 7f   90 46 00
WidgetEnd

//--------------------------------------//
// "OPTION"  BUTTON                     //
//--------------------------------------//

Widget Option
    Press           90 47 7f   90 47 00
    FB_TwoState     90 47 7f   90 47 00
WidgetEnd

//--------------------------------------//
// "CONTROL"  BUTTON                    //
//--------------------------------------//

Widget Control
    Press           90 48 7f   90 48 00
    FB_TwoState     90 48 7f   90 48 00
WidgetEnd

//--------------------------------------//
// "ALT"  BUTTON                        //
//--------------------------------------//

Widget Alt
    Press           90 49 7f   90 49 00
    FB_TwoState     90 49 7f   90 49 00
WidgetEnd

//--------------------------------------//
// "READ/OFF"  BUTTON                   //
//--------------------------------------//

Widget Read
    Press           90 4a 7f   90 4a 00
    FB_TwoState     90 4a 7f   90 4a 00
WidgetEnd

//--------------------------------------//
// "WRITE"  BUTTON                      //
//--------------------------------------//

Widget Write
    Press           90 4b 7f   90 4b 00
    FB_TwoState     90 4b 7f   90 4b 00
WidgetEnd

//--------------------------------------//
// "TRIM"  BUTTON                       //
//--------------------------------------//

Widget Trim
    Press           90 4c 7f   90 4c 00
    FB_TwoState     90 4c 7f   90 4c 00
WidgetEnd

//--------------------------------------//
// "TOUCH"  BUTTON                      //
//--------------------------------------//

Widget Touch
    Press           90 4d 7f   90 4d 00
    FB_TwoState     90 4d 7f   90 4d 00
WidgetEnd

//--------------------------------------//
// "LATCH"  BUTTON                      //
//--------------------------------------//

Widget Latch
    Press           90 4e 7f   90 4e 00
    FB_TwoState     90 4e 7f   90 4e 00
WidgetEnd

//--------------------------------------//
// "GROUP"  BUTTON                      //
//--------------------------------------//

Widget Group
    Press           90 4f 7f   90 4f 00
    FB_TwoState     90 4f 7f   90 4f 00
WidgetEnd

//--------------------------------------//
// "SAVE"  BUTTON                       //
//--------------------------------------//

Widget Save
    Press           90 50 7f   90 50 00
    FB_TwoState     90 50 7f   90 50 00
WidgetEnd

//--------------------------------------//
// "UNDO"  BUTTON                       //
//--------------------------------------//

Widget Undo
    Press           90 51 7f   90 51 00
    FB_TwoState     90 51 7f   90 51 00
WidgetEnd

//--------------------------------------//
// "CANCEL"  BUTTON                     //
//--------------------------------------//

Widget Cancel
    Press           90 52 7f   90 52 00
    FB_TwoState     90 52 7f   90 52 00
WidgetEnd

//--------------------------------------//
// "ENTER"  BUTTON                      //
//--------------------------------------//

Widget Enter
    Press           90 53 7f   90 53 00
    FB_TwoState     90 53 7f   90 53 00
WidgetEnd

//--------------------------------------//
// "MARKER"  BUTTON                     //
//--------------------------------------//

Widget Marker
    Press           90 54 7f   90 54 00
    FB_TwoState     90 54 7f   90 54 00
WidgetEnd

//--------------------------------------//
// "NUDGE"  BUTTON                      //
//--------------------------------------//

Widget Nudge
    Press           90 55 7f   90 55 00
    FB_TwoState     90 55 7f   90 55 00
WidgetEnd

//--------------------------------------//
// "CYCLE"  BUTTON                      //
//--------------------------------------//

Widget Cycle
    Press           90 56 7f   90 56 00
    FB_TwoState     90 56 7f   90 56 00
WidgetEnd

//--------------------------------------//
// "DROP"  BUTTON                       //
//--------------------------------------//

Widget Drop
    Press           90 57 7f   90 57 00
    FB_TwoState     90 57 7f   90 57 00
WidgetEnd

//--------------------------------------//
// "REPLACE"  BUTTON                    //
//--------------------------------------//

Widget Replace
    Press           90 58 7f   90 58 00
    FB_TwoState     90 58 7f   90 58 00
WidgetEnd

//--------------------------------------//
// "CLICK"  BUTTON                      //
//--------------------------------------//

Widget Click
    Press           90 59 7f   90 59 00
    FB_TwoState     90 59 7f   90 59 00
WidgetEnd

//--------------------------------------//
// "SOLO"  BUTTON                       //
//--------------------------------------//

Widget Solo
    Press           90 5a 7f   90 5a 00
    FB_TwoState     90 5a 7f   90 5a 00
WidgetEnd

//--------------------------------------//
// "TRANSPORT" BUTTONS                  //
//--------------------------------------//

Widget Rewind
    Press           90 5b 7f   90 5b 00
    FB_TwoState     90 5b 7f   90 5b 00
WidgetEnd

Widget FastForward
    Press           90 5c 7f   90 5c 00
    FB_TwoState     90 5c 7f   90 5c 00
WidgetEnd

Widget Stop
    Press           90 5d 7f   90 5d 00
    FB_TwoState     90 5d 7f   90 5d 00
WidgetEnd

Widget Play
    Press           90 5e 7f   90 5e 00
    FB_TwoState     90 5e 7f   90 5e 00
WidgetEnd

Widget Record
    Press           90 5f 7f   90 5f 00
    FB_TwoState     90 5f 7f   90 5f 00
WidgetEnd

//--------------------------------------//
// "ARROW" BUTTONS  SECTION             //
//--------------------------------------//

Widget Up
    Press           90 60 7f   90 60 00
    FB_TwoState     90 60 7f   90 60 00
WidgetEnd

Widget Down
    Press           90 61 7f   90 61 00
    FB_TwoState     90 61 7f   90 61 00
WidgetEnd

Widget Left
    Press           90 62 7f   90 62 00
    FB_TwoState     90 62 7f   90 62 00
WidgetEnd

Widget Right
    Press           90 63 7f   90 63 00
    FB_TwoState     90 63 7f   90 63 00
WidgetEnd

Widget Zoom
    Press           90 64 7f   90 64 00
    FB_TwoState     90 64 7f   90 64 00
WidgetEnd

//--------------------------------------//
// "SCRUB"  BUTTON                      //
//--------------------------------------//

Widget Scrub
    Press           90 65 7f   90 65 00
    FB_TwoState     90 65 7f   90 65 00
WidgetEnd

//--------------------------------------//
// "JOG" WHEEL                          //
//--------------------------------------//

Widget JogWheel     JogWheelWidgetClass
    Encoder         b0 3c 7f
WidgetEnd

//--------------------------------------//
// "CHANNEL SCRIBBLE SCRIPTS" UPPER ROW //
//--------------------------------------//

EWidget DisplayUpper1
    FB_XTouchDisplayUpper   0
EWidgetEnd

EWidget DisplayUpper2
    FB_MCUDisplayUpper      1
EWidgetEnd

EWidget DisplayUpper3
    FB_MCUDisplayUpper      2
EWidgetEnd

EWidget DisplayUpper4
    FB_MCUDisplayUpper      3
EWidgetEnd

EWidget DisplayUpper5
    FB_MCUDisplayUpper      4
EWidgetEnd

EWidget DisplayUpper6
    FB_MCUDisplayUpper      5
EWidgetEnd

EWidget DisplayUpper7
    FB_MCUDisplayUpper      6
EWidgetEnd

EWidget DisplayUpper8
    FB_MCUDisplayUpper      7
EWidgetEnd

//--------------------------------------//
// "CHANNEL SCRIBBLE SCRIPTS" LOWER ROW //
//--------------------------------------//

EWidget DisplayLower1
    FB_MCUDisplayLower      0
EWidgetEnd

EWidget DisplayLower2
    FB_MCUDisplayLower      1
EWidgetEnd

EWidget DisplayLower3
    FB_MCUDisplayLower      2
EWidgetEnd

EWidget DisplayLower4
    FB_MCUDisplayLower      3
EWidgetEnd

EWidget DisplayLower5
    FB_MCUDisplayLower      4
EWidgetEnd

EWidget DisplayLower6
    FB_MCUDisplayLower      5
EWidgetEnd

EWidget DisplayLower7
    FB_MCUDisplayLower      6
EWidgetEnd

EWidget DisplayLower8
    FB_MCUDisplayLower      7
EWidgetEnd

//--------------------------------------//
// "MASTER FADER"                       //
//--------------------------------------//

Widget MasterFader
    Fader14Bit     e8 7f 7f
    FB_Fader14Bit  e8 7f 7f
    Touch          90 70 7f   90 70 00
WidgetEnd

//--------------------------------------//
// "CHANNEL FADERS"                     //
//--------------------------------------//

Widget Fader1
    Fader14Bit      e0 7f 7f
    FB_Fader14Bit   e0 7f 7f
    Touch           90 68 7f   90 68 00
WidgetEnd

Widget Fader2
    Fader14Bit     e1 7f 7f
    FB_Fader14Bit  e1 7f 7f
    Touch          90 69 7f   90 69 00
WidgetEnd

Widget Fader3
    Fader14Bit     e2 7f 7f
    FB_Fader14Bit  e2 7f 7f
    Touch          90 6a 7f   90 6a 00
WidgetEnd

Widget Fader4
    Fader14Bit     e3 7f 7f
    FB_Fader14Bit  e3 7f 7f
    Touch          90 6b 7f   90 6b 00
WidgetEnd

Widget Fader5
    Fader14Bit     e4 7f 7f
    FB_Fader14Bit  e4 7f 7f
    Touch          90 6c 7f   90 6c 00
WidgetEnd

Widget Fader6
    Fader14Bit     e5 7f 7f
    FB_Fader14Bit  e5 7f 7f
    Touch          90 6d 7f   90 6d 00
WidgetEnd

Widget Fader7
    Fader14Bit     e6 7f 7f
    FB_Fader14Bit  e6 7f 7f
    Touch          90 6e 7f   90 6e 00
WidgetEnd

Widget Fader8
    Fader14Bit     e7 7f 7f
    FB_Fader14Bit  e7 7f 7f
    Touch          90 6f 7f   90 6f 00
WidgetEnd

//--------------------------------------//
// "CHANNEL ROTARY"  PUSH               //
//--------------------------------------//

EWidget RotaryPush1
    Press          90 20 7f   90 20 00
EWidgetEnd

EWidget RotaryPush2
    Press           90 21 7f   90 21 00
EWidgetEnd

EWidget RotaryPush3
    Press           90 22 7f   90 22 00 
EWidgetEnd

EWidget RotaryPush4
    Press           90 23 7f   90 23 00
EWidgetEnd

EWidget RotaryPush5
    Press           90 24 7f   90 24 00
EWidgetEnd

EWidget RotaryPush6
    Press           90 25 7f   90 25 00
EWidgetEnd

EWidget RotaryPush7
    Press           90 26 7f   90 26 00
EWidgetEnd

EWidget RotaryPush8
    Press           90 27 7f   90 27 00
EWidgetEnd

//--------------------------------------//
// "CHANNEL ROTARY"  TURN               //
//--------------------------------------//

EWidget Rotary1     RotaryWidgetClass
    Encoder         b0 10 7f
    FB_Encoder      b0 10 7f
EWidgetEnd

EWidget Rotary2     RotaryWidgetClass
    Encoder         b0 11 7f
    FB_Encoder      b0 11 7f
EWidgetEnd

EWidget Rotary3     RotaryWidgetClass
    Encoder         b0 12 7f
    FB_Encoder      b0 12 7f
EWidgetEnd

EWidget Rotary4     RotaryWidgetClass
    Encoder         b0 13 7f
    FB_Encoder      b0 13 7f
EWidgetEnd

EWidget Rotary5     RotaryWidgetClass
    Encoder         b0 14 7f
    FB_Encoder      b0 14 7f
EWidgetEnd

EWidget Rotary6     RotaryWidgetClass
    Encoder         b0 15 7f
    FB_Encoder      b0 15 7f
EWidgetEnd

EWidget Rotary7     RotaryWidgetClass
    Encoder         b0 16 7f
    FB_Encoder      b0 16 7f
EWidgetEnd

EWidget Rotary8     RotaryWidgetClass
    Encoder         b0 17 7f
    FB_Encoder      b0 17 7f
EWidgetEnd

//--------------------------------------//
// "CHANNEL RECORD ARM"  BUTTONS        //
//--------------------------------------//

Widget RecordArm1
    Press           90 00 7f   90 00 00
    FB_TwoState     90 00 7f   90 00 00
WidgetEnd

Widget RecordArm2
    Press           90 01 7f   90 01 00
    FB_TwoState     90 01 7f   90 01 00
WidgetEnd

Widget RecordArm3
    Press           90 02 7f   90 02 00
    FB_TwoState     90 02 7f   90 02 00
WidgetEnd

Widget RecordArm4
    Press           90 03 7f   90 03 00
    FB_TwoState     90 03 7f   90 03 00
WidgetEnd

Widget RecordArm5
    Press           90 04 7f   90 04 00
    FB_TwoState     90 04 7f   90 04 00
WidgetEnd

Widget RecordArm6
    Press           90 05 7f   90 05 00
    FB_TwoState     90 05 7f   90 05 00
WidgetEnd

Widget RecordArm7
    Press           90 06 7f   90 06 00
    FB_TwoState     90 06 7f   90 06 00
WidgetEnd

Widget RecordArm8
    Press           90 07 7f   90 07 00
    FB_TwoState     90 07 7f   90 07 00
WidgetEnd

//--------------------------------------//
// "CHANNEL SOLO"  BUTTONS              //
//--------------------------------------//

Widget Solo1
    Press           90 08 7f   90 08 00
    FB_TwoState     90 08 7f   90 08 00
WidgetEnd

Widget Solo2
    Press           90 09 7f   90 09 00
    FB_TwoState     90 09 7f   90 09 00
WidgetEnd

Widget Solo3
    Press           90 0a 7f   90 0a 00
    FB_TwoState     90 0a 7f   90 0a 00
WidgetEnd

Widget Solo4
    Press           90 0b 7f   90 0b 00
    FB_TwoState     90 0b 7f   90 0b 00
WidgetEnd

Widget Solo5
    Press           90 0c 7f   90 0c 00
    FB_TwoState     90 0c 7f   90 0c 00
WidgetEnd

Widget Solo6
    Press           90 0d 7f   90 0d 00
    FB_TwoState     90 0d 7f   90 0d 00
WidgetEnd

Widget Solo7
    Press           90 0e 7f   90 0e 00
    FB_TwoState     90 0e 7f   90 0e 00
WidgetEnd

Widget Solo8
    Press           90 0f 7f   90 0f 00
    FB_TwoState     90 0f 7f   90 0f 00
WidgetEnd

//--------------------------------------//
// "CHANNEL MUTE"  BUTTONS              //
//--------------------------------------//

Widget Mute1
    Press           90 10 7f   90 10 00
    FB_TwoState     90 10 7f   90 10 00
WidgetEnd

Widget Mute2
    Press           90 11 7f   90 11 00
    FB_TwoState     90 11 7f   90 11 00
WidgetEnd

Widget Mute3
    Press           90 12 7f   90 12 00
    FB_TwoState     90 12 7f   90 12 00
WidgetEnd

Widget Mute4
    Press           90 13 7f   90 13 00
    FB_TwoState     90 13 7f   90 13 00
WidgetEnd

Widget Mute5
    Press           90 14 7f   90 14 00
    FB_TwoState     90 14 7f   90 14 00
WidgetEnd

Widget Mute6
    Press           90 15 7f   90 15 00
    FB_TwoState     90 15 7f   90 15 00
WidgetEnd

Widget Mute7
    Press           90 16 7f   90 16 00
    FB_TwoState     90 16 7f   90 16 00
WidgetEnd

Widget Mute8
    Press           90 17 7f   90 17 00
    FB_TwoState     90 17 7f   90 17 00
WidgetEnd

//--------------------------------------//
// "CHANNEL SELECT"  BUTTONS            //
//--------------------------------------//

Widget Select1
    Press           90 18 7f   90 18 00
    FB_TwoState     90 18 7f   90 18 00
WidgetEnd

Widget Select2
    Press           90 19 7f   90 19 00
    FB_TwoState     90 19 7f   90 19 00
WidgetEnd

Widget Select3
    Press           90 1a 7f   90 1a 00
    FB_TwoState     90 1a 7f   90 1a 00
WidgetEnd

Widget Select4
    Press           90 1b 7f   90 1b 00
    FB_TwoState     90 1b 7f   90 1b 00
WidgetEnd

Widget Select5
    Press           90 1c 7f   90 1c 00
    FB_TwoState     90 1c 7f   90 1c 00
WidgetEnd

Widget Select6
    Press           90 1d 7f   90 1d 00
    FB_TwoState     90 1d 7f   90 1d 00
WidgetEnd

Widget Select7
    Press           90 1e 7f   90 1e 00
    FB_TwoState     90 1e 7f   90 1e 00
WidgetEnd

Widget Select8
    Press           90 1f 7f   90 1f 00
    FB_TwoState     90 1f 7f   90 1f 00
WidgetEnd

//--------------------------------------//
// "CHANNEL VU METERS"                  //
//--------------------------------------//

Widget VUMeter1
    FB_MCUVUMeter   0
WidgetEnd

Widget VUMeter2
    FB_MCUVUMeter   1
WidgetEnd

Widget VUMeter3
    FB_MCUVUMeter   2
WidgetEnd

Widget VUMeter4
    FB_MCUVUMeter   3
WidgetEnd

Widget VUMeter5
    FB_MCUVUMeter   4
WidgetEnd

Widget VUMeter6
    FB_MCUVUMeter   5
WidgetEnd

Widget VUMeter7
    FB_MCUVUMeter   6
WidgetEnd

Widget VUMeter8
    FB_MCUVUMeter   7
WidgetEnd
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 12-04-2022 at 09:07 PM.
jacksoonbrowne is offline   Reply With Quote
Old 12-04-2022, 08:55 PM   #21192
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Hi @Funkybot.

In the wiki change log:
Code:
"CSI Toggle Show Input from Surfaces" Action Now Shows Zone File Path


The Action ID shout read:
Code:
"_CSI Toggle Show Input from Surfaces"
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 12-04-2022, 11:14 PM   #21193
RattlesnakeLodge
Human being with feelings
 
Join Date: Jun 2022
Posts: 10
Default Feature requests for users with multiple devices

Greetings all. I'm relatively new to this forum, but have been keeping up with recent conversations.

I have been switching back forth between CSI and ReaLearn, to determine the right fit for my needs. I have an...
- X-Touch Universal (channels 1-8),
- X-Touch Extender (channels 9-16),
- and Midi Fighter Twister (no tracks nor track offset defined, just plugin control).

I have a few feature requests, which I think for users of multiple devices, would dramatically increase CSI's potential.

1. It would be awesome to see Broadcast/Receive functionality for any SubZones, both standard and FX SubZones. Is there any chance this could be done, or is in the pipeline?

2. SelectedTrackFXMenu, SelectedTrackSend, and SelectedTrackReceive would be able to span across any MCU-style extender units. For example, if there are more than 8 FX plugins on a track, SelectedTrackFXMenu for an extender unit could offer functionality for FX slots 9-16. It would just be nice to utilize the available channel real estate and not need to bank to the desired FX slot.

3. Technically, not a request relevant to multiple devices, but an issue I have noticed. Any chance of a MasterTrackFXMenu, or allow the Master track to be included in SelectedTrackFXMenu? Technically, I can select the master track and use SelectedTrackFXMenu, but the display feedback is not provided. In other words, I can activate an FX Slot on the master track, but SelectedTrackFXMenu is not displaying the FX's name on the X-Touch displays.

Cheers!
RattlesnakeLodge is offline   Reply With Quote
Old 12-05-2022, 07:37 AM   #21194
andrewrynhard
Human being with feelings
 
Join Date: Oct 2022
Posts: 4
Default Inconsistent MIDI messages with Platform Nano

When pressing the track right button on my Platform Nano it seems to change the MIDI messages sent from the unit. For example the “normal” (on a fresh boot) message for track left is 90 18 7f. I press the right track button and then the left track button no longer emits 90 18 7f. If I press right track multiple times the message emitted from left track changes each time until eventually it “loops” back around to 90 18 7f. I tried working around it by have a widget for each message (6 in total) but found that eventually track left and right emit the same message. This inconsistent MIDI messages issue occurs on the fader as well. Any help would be much appreciated.
andrewrynhard is offline   Reply With Quote
Old 12-05-2022, 09:22 AM   #21195
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,988
Default

Quote:
Originally Posted by jacksoonbrowne View Post
@Funkybot,

I modified the X-Touch .mid surface support file to include generous comments and reordered a few widgets.

No other changes

Makes it easier to distinguish what is what, I think

And may help newbies to better understand.

Please take a look and determine if you want to replace the existing Wiki Support file.

Cheers,
Roy
Geoff is the keeper of the CSI Support Files, so I leave it up to Mr. Waddington. But regardless of which version of the .mst gets used, we should add the Footswitch definitions.

Code:
Widget Footswitch1
  Press 90 66 7F 90 66 00
WidgetEnd

Widget Footswitch2
  Press 90 67 7F 90 67 00
WidgetEnd
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 12-05-2022, 02:20 PM   #21196
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
Default

Quote:
Originally Posted by andrewrynhard View Post
When pressing the track right button on my Platform Nano it seems to change the MIDI messages sent from the unit. For example the “normal” (on a fresh boot) message for track left is 90 18 7f. I press the right track button and then the left track button no longer emits 90 18 7f. If I press right track multiple times the message emitted from left track changes each time until eventually it “loops” back around to 90 18 7f. I tried working around it by have a widget for each message (6 in total) but found that eventually track left and right emit the same message. This inconsistent MIDI messages issue occurs on the fader as well. Any help would be much appreciated.
I don't have a Platform Nano, but this behaviour is how manufacurers fit a single fader surface into the Mackie MCU protocol, which is designed for eight faders. Each push of track right moves you one fader across the group of eight.

Hopefully another CSI user with a Platform Nano will chime in with a ready made solution, but it's probably worth your while to investigate a user defined mode using the iMap software, although this may have shortcomings of its own.
MixMonkey is offline   Reply With Quote
Old 12-05-2022, 10:25 PM   #21197
diesel
Human being with feelings
 
Join Date: Sep 2022
Location: Australia
Posts: 29
Default

Quote:
Originally Posted by MixMonkey View Post
I don't have a Platform Nano, but this behaviour is how manufacurers fit a single fader surface into the Mackie MCU protocol, which is designed for eight faders. Each push of track right moves you one fader across the group of eight.

Hopefully another CSI user with a Platform Nano will chime in with a ready made solution, but it's probably worth your while to investigate a user defined mode using the iMap software, although this may have shortcomings of its own.
I have an Icon Nano and a Midi Fighter Twister. When I get around to doing a custom user mode on the nano, I'll put in my 20c worth. Just a bit time poor at the moment.
diesel is offline   Reply With Quote
Old 12-06-2022, 02:33 AM   #21198
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

New CSI Support Files are up.

Added foot switch definitions for the X-Touch.
__________________
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 12-06-2022, 02:37 AM   #21199
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by Westopher6 View Post
I have done a bunch of CSI coding for my Console 1 and Icon QCon G2 and EX.....
I have the Qcon set up how I like for efficiency for recording and mixing other than one thing...
Is there a way to code a certain button to apply my Waves SSL EV2 channel strip with one touch of a button instead of opening the FX window and clicking through my plug-ins?

I saw there is an SWS command of "Open console with 'x' to add track FX" but haven't really figured out what that actually does as I wasn't able to actually add an FX with that command.

Also is there any support for the gate meter on console 1? The compressor meter works for me but i haven't seen anyone code in the gate meter.

If anyone knows, that would be great, if not, I'll keep dreaming!
Don't know of a command to open a channel strip with one touch, hopefully someone will chime in.

This is the first request for a Gate meter, will add it to the feature request list, but it will be a very low priority.
__________________
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 12-06-2022, 02:38 AM   #21200
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

Found some time to work on the X32 again.

I made a small mod to the code that will select the appropriate fader bank on the X32 when a channel is selected on reaper.

For example,

If I select any channels on reaper between 1 and 16, the X32 will automatically select X32 channel bank 1.
If I select any channels on reaper between 17 and 32, the X32 will automatically select X32 channel bank 2.
etc ... in banks of 16 channels.

Thus any channel selected in Repear will automatically select the approprite channel bank on the X32.

Old Code:
Code:
void OSC_IntFeedbackProcessor::ForceValue(map<string, string> &properties, double value)
{
    lastDoubleValue_ = value;
    
    if (surface_->IsX32() && oscAddress_.find("/-stat/selidx") != string::npos)
    {
        if (value != 0.0)
            surface_->SendOSCMessage(this, "/-stat/selidx", widget_->GetChannelNumber() - 1);
    }
    else
        surface_->SendOSCMessage(this, oscAddress_, (int)value);
}
New channel banking code:
Code:
void OSC_IntFeedbackProcessor::ForceValue(map<string, string> &properties, double value)
{
    lastDoubleValue_ = value;
    
    if (surface_->IsX32() && oscAddress_.find("/-stat/selidx") != string::npos)
    {
        if (value != 0.0)
        {
            surface_->SendOSCMessage(this, "/-stat/selidx",       widget_->GetChannelNumber() -1);
            surface_->SendOSCMessage(this, "/-stat/chfaderbank", (widget_->GetChannelNumber() -1) / 16);
        }
    }
    else
        surface_->SendOSCMessage(this, oscAddress_, (int)value);
}
Could you add this to the next build?
Cool, will add it in the next few days.
__________________
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 05:00 AM.


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