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

Reply
 
Thread Tools Display Modes
Old 09-15-2022, 12:07 PM   #20041
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

It doesn't even have scroll bars!
MixMonkey is offline   Reply With Quote
Old 09-15-2022, 12:09 PM   #20042
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

Quote:
Originally Posted by Geoff Waddington View Post
New compound modifier architecture is coming along nicely.

You don't have to be a coder to guess that the first block is the old mess and the second is the new elegant way

Old
Code:
vector<shared_ptr<ActionContext>> &Zone::GetActionContexts(Widget* widget)
{
    string widgetName = widget->GetName();
    bool isToggled = widget->GetSurface()->GetIsChannelToggled(widget->GetChannelNumber());
    
    vector<string> modifiers = widget->GetSurface()->GetPage()->GetModifiers();
    
    for(auto modifier : modifiers)
    {
        if(isToggled && (touchIds_.count(widgetName) > 0 && activeTouchIds_.count(touchIds_[widgetName]) > 0 && activeTouchIds_[touchIds_[widgetName]] == true && actionContextDictionary_[widget].count(touchIds_[widgetName] + "+" + modifier + "Toggle+")) > 0)
            return actionContextDictionary_[widget][touchIds_[widgetName] + "+" + modifier + "Toggle+"];
        
        if(touchIds_.count(widgetName) > 0 && activeTouchIds_.count(touchIds_[widgetName]) > 0 && activeTouchIds_[touchIds_[widgetName]] == true && actionContextDictionary_[widget].count(touchIds_[widgetName] + "+" + modifier) > 0)
            return actionContextDictionary_[widget][touchIds_[widgetName] + "+" + modifier];
        
        else if(isToggled && actionContextDictionary_[widget].count(modifier + "Toggle+") > 0)
            return actionContextDictionary_[widget][modifier + "Toggle+"];
        
        else if(actionContextDictionary_[widget].count(modifier) > 0)
            return actionContextDictionary_[widget][modifier];
    }
    
    if(isToggled && actionContextDictionary_[widget].count("Toggle+") > 0)
        return actionContextDictionary_[widget]["Toggle+"];

    else if(actionContextDictionary_[widget].count("") > 0)
        return actionContextDictionary_[widget][""];
    if(widget->GetSurface()->GetIsChannelToggled(widget->GetChannelNumber()))
       modifiers[7] = ToggleToken;
    
    if(touchIds_.count(widgetName) > 0 && activeTouchIds_.count(touchIds_[widgetName]) > 0 && activeTouchIds_[touchIds_[widgetName]] == true)
        modifiers[8] = touchIds_[widgetName];
        
    if(actionContextDictionary_[widget].count(modifiers) > 0)
        return actionContextDictionary_[widget][modifiers];
    else
        return defaultContexts_;
}
New
Code:
vector<shared_ptr<ActionContext>> &Zone::GetActionContexts(Widget* widget)
{   
    int modifierBias = 0;

    if(GetNavigator()->GetIsNavigatorTouched())
        modifierBias += 1;

    if(widget->GetSurface()->GetIsChannelToggled(widget->GetChannelNumber()))
        modifierBias += 2;
            
    for(auto modifier : widget->GetSurface()->GetPage()->GetModifiers())
    {
        modifier += modifierBias;
        
        if(actionContextDictionary_[widget].count(modifier) > 0)
            return actionContextDictionary_[widget][modifier];
    }
        
    return defaultContexts_;
}

It's like a hoarders house has been clean and organised by a minimalist. Fine work.
Freex is offline   Reply With Quote
Old 09-15-2022, 03:42 PM   #20043
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

New build is up.

CSI Exp.zip

Added MotorizedFaderWithoutTouch for OSC, X32 in particular.

You won't need that crazy Fader|Touch construct anymore (although it will still work), Touch will work just as well.

Preliminary compound modifiers implementation.

Did some measurements on my M1 Mac mini.

With no modifiers, it was about 1-2 milliseconds per pass.

However...

If you crank the modifiers, and you have every one engaged...
Code:
Shift
Option
Control
Alt
Flip
Global
Zoom
Touch
Toggle
With this configuration, there are 512 possible choices per Widget.

The update pass jumps to about 14 milliseconds, and that's on a really fast machine !

Just be aware of that, and adjust your use of simultaneously engaged modifiers accordingly, based on your hardware
__________________
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 09-15-2022, 03:57 PM   #20044
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Quote:
Originally Posted by Geoff Waddington View Post

The update pass jumps to about 14 milliseconds, and that's on a really fast machine !

Just be aware of that, and adjust your use of simultaneously engaged modifiers accordingly, based on your hardware
Is the speed of the update pass proportional to the number of channels defined across the surfaces?
MixMonkey is offline   Reply With Quote
Old 09-15-2022, 04:18 PM   #20045
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MixMonkey View Post
Is the speed of the update pass proportional to the number of channels defined across the surfaces?
Yes, exactly !

It's the total number of Widgets that must be updated.

So Buttons count, Tracks count, and, of course, Extenders count too.

My tests were with the X-Touch Universal, each pass would have taken longer if there were extenders and/or if I were to include OSC surfaces, the SCE24, etc.

It's always been the case with CSI, that's how the Displays/LED Rotary rings/motorized Faders/Button lights, etc. are kept current.

It's just that now that we allow partial fallback for compound modifiers, the whole groove is taken more up a few notches, if you have a large number of modifiers engaged, because there are so many combinations of partial modifier matches that must be tried

[edit] I'm still trying to think of ways to optimize further...

Matter of fact, just typing this has caused me to think of a killer one...

Will have to ponder how hard it is to implement...
__________________
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; 09-15-2022 at 04:27 PM.
Geoff Waddington is offline   Reply With Quote
Old 09-15-2022, 04:52 PM   #20046
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Quote:
Originally Posted by andyp24 View Post
That's great to hear, thank you

EDIT - are you able to elaborate on "so much more"? I'm using an SCE24 for FX control, and have previously borrowed (and am about to do so again to try with v2) an X-Touch Universal. Would the X32 be able to replace most/all of the functionality of the X-Touch?

Andy
Hi Andy,

I don't have an X-Touch so I can't comment on a comparison, but if I speculate; it would be "almost all"

Since you have an X32/MIDAS I know will understand all the physical buttons, faders, rotaries, etc, that the console has.

With proper widget file (.ost) and zone definitions (.zon) any of these physicals can be assigned to practically any CSI action.

Cheers,
Roy
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 09-15-2022, 04:52 PM   #20047
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 506
Default

I’ll really be able to your new arch to the test soon. Almost finished with a 64 channel osc surface (a la eucon Track List)

I’m going to try and put metering/mute/solo/volume etc in there and I’ll probably use modifiers to do some of the grunt work.
Puck is offline   Reply With Quote
Old 09-15-2022, 05:06 PM   #20048
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MixMonkey View Post
Is the speed of the update pass proportional to the number of channels defined across the surfaces?
Wow, thanks again for making me think about this !

We can now revisit an idea from about 3-5 years ago that will give us near constant update times, regardless of how many modifiers are engaged !!

That also opens the door to adding as many modifiers as we wish (up to 64), all the while incurring zero update time penalty

This actually builds on the re-arch we just completed, so, as usual, there is benefit to clean code in and of itself, it allows clear thinking about the next challenge
__________________
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 09-15-2022, 05:08 PM   #20049
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by Puck View Post
I’ll really be able to your new arch to the test soon. Almost finished with a 64 channel osc surface (a la eucon Track List)

I’m going to try and put metering/mute/solo/volume etc in there and I’ll probably use modifiers to do some of the grunt work.
I'd wait until the next optimization is completed, as per the previous post, it's a good one

Probably sometime tomorrow...
__________________
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 09-15-2022, 05:11 PM   #20050
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Quote:
Originally Posted by Geoff Waddington View Post
Wow, thanks again for making me think about this !
Well you know me, nag nag nag
MixMonkey is offline   Reply With Quote
Old 09-15-2022, 05:12 PM   #20051
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Andy,

I don't have an X-Touch so I can't comment on a comparison, but if I speculate; it would be "almost all"

Since you have an X32/MIDAS I know will understand all the physical buttons, faders, rotaries, etc, that the console has.

With proper widget file (.ost) and zone definitions (.zon) any of these physicals can be assigned to practically any CSI action.

Cheers,
Roy
Do you have color displays available on the X32 ?

How about lights for every button ?

I think you said there are no Touch messages, yes ?
That makes automation tricky.

That's about the only things I can think of that would push me toward the X-Touch.

Well, maybe physical size, if that matters for your installation.
__________________
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 09-15-2022, 05:12 PM   #20052
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by MixMonkey View Post
Well you know me, nag nag nag
Don't ever stop nagging
__________________
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 09-15-2022, 05:51 PM   #20053
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Quote:
Originally Posted by Geoff Waddington View Post
Do you have color displays available on the X32 ?

How about lights for every button ?

I think you said there are no Touch messages, yes ?
That makes automation tricky.

That's about the only things I can think of that would push me toward the X-Touch.

Well, maybe physical size, if that matters for your installation.
Yes colored scribble strips (I posted about this earlier, need some bread crumbs to implement colored scribble stripts ala X32 OSC messages).

No lamps/lights, that can be independently set via feed back.

No Touch, on anything physical. So agreed automation is going to be X32 exempt (maybe later if I can figure a way to do it).
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 09-15-2022, 05:59 PM   #20054
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Yes colored scribble strips (I posted about this earlier, need some bread crumbs to implement colored scribble stripts ala X32 OSC messages).

No lamps/lights, that can be independently set via feed back.

No Touch, on anything physical. So agreed automation is going to be X32 exempt (maybe later if I can figure a way to do it).
Oops, right, colored strip breadcrumbs, hot on the trail of an important optimization right now, bug me if I let it slide too long.

Yeah, automation will be challenging.
__________________
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 09-15-2022, 08:36 PM   #20055
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Wow,

X32 .ost file taking shape.
Widget names primarily reflect the X32 physicals.

Around 1400 lines right no, more to come

This is TLDR (TooLongDontRead)

Code:
//******************************************************
//******************************************************
// X32 - Widget FILE FOR BEHRINGER X32/MIDAS FAMILY			
//******************************************************
//******************************************************



//----------------------------------------------------------------
// MASTER 												
//----------------------------------------------------------------

Widget MasterFader	
	MotorizedFaderWithoutTouch			/main/st/mix/fader
	FB_Processor						/main/st/mix/fader
WidgetEnd

Widget MasterMute
	AnyPress							/main/st/mix/on
	FB_IntProcessor						/main/st/mix/on
WidgetEnd

Widget MasterPan
	Control								/main/st/mix/pan
	FB_Processor						/main/st/mix/opann
WidgetEnd



//----------------------------------------------------------------
// TRACK - FADERS										
//----------------------------------------------------------------

Widget Fader1
	MotorizedFaderWithoutTouch			/ch/01/mix/fader
	FB_Processor						/ch/01/mix/fader
WidgetEnd

Widget Fader2
	MotorizedFaderWithoutTouch			/ch/02/mix/fader
	FB_Processor						/ch/02/mix/fader
WidgetEnd

Widget Fader3
	MotorizedFaderWithoutTouch			/ch/03/mix/fader
	FB_Processor						/ch/03/mix/fader
WidgetEnd

Widget Fader4
	MotorizedFaderWithoutTouch			/ch/04/mix/fader
	FB_Processor						/ch/04/mix/fader
WidgetEnd

Widget Fader5
	MotorizedFaderWithoutTouch			/ch/05/mix/fader
	FB_Processor						/ch/05/mix/fader
WidgetEnd

Widget Fader6
	MotorizedFaderWithoutTouch			/ch/06/mix/fader
	FB_Processor						/ch/06/mix/fader
WidgetEnd

Widget Fader7
	MotorizedFaderWithoutTouch			/ch/07/mix/fader
	FB_Processor						/ch/07/mix/fader
WidgetEnd

Widget Fader8
	MotorizedFaderWithoutTouch			/ch/08/mix/fader
	FB_Processor						/ch/08/mix/fader
WidgetEnd

Widget Fader9
	MotorizedFaderWithoutTouch			/ch/09/mix/fader
	FB_Processor						/ch/09/mix/fader
WidgetEnd

Widget Fader10
	MotorizedFaderWithoutTouch			/ch/10/mix/fader
	FB_Processor						/ch/10/mix/fader
WidgetEnd

Widget Fader11
	MotorizedFaderWithoutTouch			/ch/11/mix/fader
	FB_Processor						/ch/11/mix/fader
WidgetEnd

Widget Fader12
	MotorizedFaderWithoutTouch			/ch/12/mix/fader
	FB_Processor						/ch/12/mix/fader
WidgetEnd

Widget Fader13
	MotorizedFaderWithoutTouch			/ch/13/mix/fader
	FB_Processor						/ch/13/mix/fader
WidgetEnd

Widget Fader14
	MotorizedFaderWithoutTouch			/ch/14/mix/fader
	FB_Processor						/ch/14/mix/fader
WidgetEnd

Widget Fader15
	MotorizedFaderWithoutTouch			/ch/15/mix/fader
	FB_Processor						/ch/15/mix/fader
WidgetEnd

Widget Fader16
	MotorizedFaderWithoutTouch			/ch/16/mix/fader
	FB_Processor						/ch/16/mix/fader
WidgetEnd

Widget Fader17
	MotorizedFaderWithoutTouch			/ch/17/mix/fader
	FB_Processor						/ch/17/mix/fader
WidgetEnd

Widget Fader18
	MotorizedFaderWithoutTouch			/ch/18/mix/fader
	FB_Processor						/ch/18/mix/fader
WidgetEnd

Widget Fader19
	MotorizedFaderWithoutTouch			/ch/19/mix/fader
	FB_Processor						/ch/19/mix/fader
WidgetEnd

Widget Fader20
	MotorizedFaderWithoutTouch			/ch/20/mix/fader
	FB_Processor						/ch/20/mix/fader
WidgetEnd

Widget Fader21
	MotorizedFaderWithoutTouch			/ch/21/mix/fader
	FB_Processor						/ch/21/mix/fader
WidgetEnd

Widget Fader22
	MotorizedFaderWithoutTouch			/ch/22/mix/fader
	FB_Processor						/ch/22/mix/fader
WidgetEnd

Widget Fader23
	MotorizedFaderWithoutTouch			/ch/23/mix/fader
	FB_Processor						/ch/23/mix/fader
WidgetEnd

Widget Fader24
	MotorizedFaderWithoutTouch			/ch/24/mix/fader
	FB_Processor						/ch/24/mix/fader
WidgetEnd

Widget Fader25
	MotorizedFaderWithoutTouch			/ch/25/mix/fader
	FB_Processor						/ch/25/mix/fader
WidgetEnd

Widget Fader26
	MotorizedFaderWithoutTouch			/ch/26/mix/fader
	FB_Processor						/ch/26/mix/fader
WidgetEnd

Widget Fader27
	MotorizedFaderWithoutTouch			/ch/27/mix/fader
	FB_Processor						/ch/27/mix/fader
WidgetEnd

Widget Fader28
	MotorizedFaderWithoutTouch			/ch/28/mix/fader
	FB_Processor						/ch/28/mix/fader
WidgetEnd

Widget Fader29
	MotorizedFaderWithoutTouch			/ch/29/mix/fader
	FB_Processor						/ch/29/mix/fader
WidgetEnd

Widget Fader30
	MotorizedFaderWithoutTouch			/ch/30/mix/fader
	FB_Processor						/ch/30/mix/fader
WidgetEnd

Widget Fader31
	MotorizedFaderWithoutTouch			/ch/31/mix/fader
	FB_Processor						/ch/31/mix/fader
WidgetEnd

Widget Fader32
	MotorizedFaderWithoutTouch			/ch/32/mix/fader
	FB_Processor						/ch/32/mix/fader
WidgetEnd



//----------------------------------------------------------------
// TRACK - PAN									
//----------------------------------------------------------------

Widget Pan1
	Control								/ch/01/mix/pan
	FB_Processor						/ch/01/mix/pan
WidgetEnd

Widget Pan2
	Control								/ch/02/mix/pan
	FB_Processor						/ch/02/mix/pan
WidgetEnd

Widget Pan3
	Control								/ch/03/mix/pan
	FB_Processor						/ch/03/mix/pan
WidgetEnd

Widget Pan4
	Control								/ch/04/mix/pan
	FB_Processor						/ch/04/mix/pan
WidgetEnd

Widget Pan5
	Control								/ch/05/mix/pan
	FB_Processor						/ch/05/mix/pan
WidgetEnd

Widget Pan6
	Control								/ch/06/mix/pan
	FB_Processor						/ch/06/mix/pan
WidgetEnd

Widget Pan7
	Control								/ch/07/mix/pan
	FB_Processor						/ch/07/mix/pan
WidgetEnd

Widget Pan8
	Control								/ch/08/mix/pan
	FB_Processor						/ch/08/mix/pan
WidgetEnd

Widget Pan9
	Control								/ch/09/mix/pan
	FB_Processor						/ch/09/mix/pan
WidgetEnd

Widget Pan10
	Control								/ch/10/mix/pan
	FB_Processor						/ch/10/mix/pan
WidgetEnd

Widget Pan11
	Control								/ch/11/mix/pan
	FB_Processor						/ch/11/mix/pan
WidgetEnd

Widget Pan12
	Control								/ch/12/mix/pan
	FB_Processor						/ch/12/mix/pan
WidgetEnd

Widget Pan13
	Control								/ch/13/mix/pan
	FB_Processor						/ch/13/mix/pan
WidgetEnd

Widget Pan14
	Control								/ch/14/mix/pan
	FB_Processor						/ch/14/mix/pan
WidgetEnd

Widget Pan15
	Control								/ch/15/mix/pan
	FB_Processor						/ch/15/mix/pan
WidgetEnd

Widget Pan16
	Control								/ch/16/mix/pan
	FB_Processor						/ch/16/mix/pan
WidgetEnd

Widget Pan17
	Control								/ch/17/mix/pan
	FB_Processor						/ch/17/mix/pan
WidgetEnd

Widget Pan18
	Control								/ch/18/mix/pan
	FB_Processor						/ch/18/mix/pan
WidgetEnd

Widget Pan19
	Control								/ch/19/mix/pan
	FB_Processor						/ch/19/mix/pan
WidgetEnd

Widget Pan20
	Control								/ch/20/mix/pan
	FB_Processor						/ch/20/mix/pan
WidgetEnd

Widget Pan21
	Control								/ch/21/mix/pan
	FB_Processor						/ch/21/mix/pan
WidgetEnd

Widget Pan22
	Control								/ch/22/mix/pan
	FB_Processor						/ch/22/mix/pan
WidgetEnd

Widget Pan23
	Control								/ch/23/mix/pan
	FB_Processor						/ch/23/mix/pan
WidgetEnd

Widget Pan24
	Control								/ch/24/mix/pan
	FB_Processor						/ch/24/mix/pan
WidgetEnd

Widget Pan25
	Control								/ch/25/mix/pan
	FB_Processor						/ch/25/mix/pan
WidgetEnd

Widget Pan26
	Control								/ch/26/mix/pan
	FB_Processor						/ch/26/mix/pan
WidgetEnd

Widget Pan27
	Control								/ch/27/mix/pan
	FB_Processor						/ch/27/mix/pan
WidgetEnd

Widget Pan28
	Control								/ch/28/mix/pan
	FB_Processor						/ch/28/mix/pan
WidgetEnd

Widget Pan29
	Control								/ch/29/mix/pan
	FB_Processor						/ch/29/mix/pan
WidgetEnd

Widget Pan30
	Control								/ch/30/mix/pan
	FB_Processor						/ch/30/mix/pan
WidgetEnd

Widget Pan31
	Control								/ch/31/mix/pan
	FB_Processor						/ch/31/mix/pan
WidgetEnd
	
Widget Pan32
	Control								/ch/32/mix/pan
	FB_Processor						/ch/32/mix/pan
WidgetEnd



//----------------------------------------------------------------
// TRACK - SOLO 										
//----------------------------------------------------------------

Widget Solo1
	AnyPress							/-stat/solosw/01
	FB_IntProcessor						/-stat/solosw/01
WidgetEnd

Widget Solo2
	AnyPress							/-stat/solosw/02
	FB_IntProcessor						/-stat/solosw/02
WidgetEnd

Widget Solo3
	AnyPress							/-stat/solosw/03
	FB_IntProcessor						/-stat/solosw/03
WidgetEnd

Widget Solo4
	AnyPress							/-stat/solosw/04
	FB_IntProcessor						/-stat/solosw/04
WidgetEnd

Widget Solo5
	AnyPress							/-stat/solosw/05
	FB_IntProcessor						/-stat/solosw/05
WidgetEnd

Widget Solo6
	AnyPress							/-stat/solosw/06
	FB_IntProcessor						/-stat/solosw/06
WidgetEnd

Widget Solo7
	AnyPress							/-stat/solosw/07
	FB_IntProcessor						/-stat/solosw/07
WidgetEnd

Widget Solo8
	AnyPress							/-stat/solosw/08
	FB_IntProcessor						/-stat/solosw/08
WidgetEnd

Widget Solo9
	AnyPress							/-stat/solosw/09
	FB_IntProcessor						/-stat/solosw/09
WidgetEnd

Widget Solo10
	AnyPress							/-stat/solosw/10
	FB_IntProcessor						/-stat/solosw/10
WidgetEnd

Widget Solo11
	AnyPress							/-stat/solosw/11
	FB_IntProcessor						/-stat/solosw/11
WidgetEnd

Widget Solo12
	AnyPress							/-stat/solosw/12
	FB_IntProcessor						/-stat/solosw/12
WidgetEnd

Widget Solo13
	AnyPress							/-stat/solosw/13
	FB_IntProcessor						/-stat/solosw/13
WidgetEnd

Widget Solo14
	AnyPress							/-stat/solosw/14
	FB_IntProcessor						/-stat/solosw/14
WidgetEnd

Widget Solo15
	AnyPress							/-stat/solosw/15
	FB_IntProcessor						/-stat/solosw/15
WidgetEnd

Widget Solo16
	AnyPress							/-stat/solosw/16
	FB_IntProcessor						/-stat/solosw/16
WidgetEnd

Widget Solo17
	AnyPress							/-stat/solosw/17
	FB_IntProcessor						/-stat/solosw/17
WidgetEnd

Widget Solo18
	AnyPress							/-stat/solosw/18
	FB_IntProcessor						/-stat/solosw/18
WidgetEnd

Widget Solo19
	AnyPress							/-stat/solosw/19
	FB_IntProcessor						/-stat/solosw/19
WidgetEnd

Widget Solo20
	AnyPress							/-stat/solosw/20
	FB_IntProcessor						/-stat/solosw/20
WidgetEnd

Widget Solo21
	AnyPress							/-stat/solosw/21
	FB_IntProcessor						/-stat/solosw/21
WidgetEnd

Widget Solo22
	AnyPress							/-stat/solosw/22
	FB_IntProcessor						/-stat/solosw/22
WidgetEnd

Widget Solo23
	AnyPress							/-stat/solosw/23
	FB_IntProcessor						/-stat/solosw/23
WidgetEnd

Widget Solo24
	AnyPress							/-stat/solosw/24
	FB_IntProcessor						/-stat/solosw/24
WidgetEnd

Widget Solo25
	AnyPress							/-stat/solosw/25
	FB_IntProcessor						/-stat/solosw/25
WidgetEnd

Widget Solo26
	AnyPress							/-stat/solosw/26
	FB_IntProcessor						/-stat/solosw/26
WidgetEnd

Widget Solo27
	AnyPress							/-stat/solosw/27
	FB_IntProcessor						/-stat/solosw/27
WidgetEnd

Widget Solo28
	AnyPress							/-stat/solosw/28
	FB_IntProcessor						/-stat/solosw/28
WidgetEnd

Widget Solo29
	AnyPress							/-stat/solosw/29
	FB_IntProcessor						/-stat/solosw/29
WidgetEnd

Widget Solo30
	AnyPress							/-stat/solosw/30
	FB_IntProcessor						/-stat/solosw/30
WidgetEnd

Widget Solo31
	AnyPress							/-stat/solosw/31
	FB_IntProcessor						/-stat/solosw/31
WidgetEnd

Widget Solo32
	AnyPress							/-stat/solosw/32
	FB_IntProcessor						/-stat/solosw/32
WidgetEnd



//----------------------------------------------------------------
// TRACK - MUTES										
//----------------------------------------------------------------

Widget Mute1
	AnyPress							/ch/01/mix/on
	FB_IntProcessor						/ch/01/mix/on
WidgetEnd

Widget Mute2
	AnyPress							/ch/02/mix/on
	FB_IntProcessor						/ch/02/mix/on
WidgetEnd

Widget Mute3
	AnyPress							/ch/03/mix/on
	FB_IntProcessor						/ch/03/mix/on
WidgetEnd

Widget Mute4
	AnyPress							/ch/04/mix/on
	FB_IntProcessor						/ch/04/mix/on
WidgetEnd

Widget Mute5
	AnyPress							/ch/05/mix/on
	FB_IntProcessor						/ch/05/mix/on
WidgetEnd

Widget Mute6
	AnyPress							/ch/06/mix/on
	FB_IntProcessor						/ch/06/mix/on
WidgetEnd

Widget Mute7
	AnyPress							/ch/07/mix/on
	FB_IntProcessor						/ch/07/mix/on
WidgetEnd

Widget Mute8
	AnyPress							/ch/08/mix/on
	FB_IntProcessor						/ch/08/mix/on
WidgetEnd

Widget Mute9
	AnyPress							/ch/09/mix/on
	FB_IntProcessor						/ch/09/mix/on
WidgetEnd

Widget Mute10
	AnyPress							/ch/10/mix/on
	FB_IntProcessor						/ch/10/mix/on
WidgetEnd

Widget Mute11
	AnyPress							/ch/11/mix/on
	FB_IntProcessor						/ch/11/mix/on
WidgetEnd

Widget Mute12
	AnyPress							/ch/12/mix/on
	FB_IntProcessor						/ch/12/mix/on
WidgetEnd

Widget Mute13
	AnyPress							/ch/13/mix/on
	FB_IntProcessor						/ch/13/mix/on
WidgetEnd

Widget Mute14
	AnyPress							/ch/14/mix/on
	FB_IntProcessor						/ch/14/mix/on
WidgetEnd

Widget Mute15
	AnyPress							/ch/15/mix/on
	FB_IntProcessor						/ch/15/mix/on
WidgetEnd

Widget Mute16
	AnyPress							/ch/16/mix/on
	FB_IntProcessor						/ch/16/mix/on
WidgetEnd

Widget Mute17
	AnyPress							/ch/17/mix/on
	FB_IntProcessor						/ch/17/mix/on
WidgetEnd

Widget Mute18
	AnyPress							/ch/18/mix/on
	FB_IntProcessor						/ch/18/mix/on
WidgetEnd

Widget Mute19
	AnyPress							/ch/19/mix/on
	FB_IntProcessor						/ch/19/mix/on
WidgetEnd

Widget Mute20
	AnyPress							/ch/20/mix/on
	FB_IntProcessor						/ch/20/mix/on
WidgetEnd

Widget Mute21
	AnyPress							/ch/21/mix/on
	FB_IntProcessor						/ch/21/mix/on
WidgetEnd

Widget Mute22
	AnyPress							/ch/22/mix/on
	FB_IntProcessor						/ch/22/mix/on
WidgetEnd

Widget Mute23
	AnyPress							/ch/23/mix/on
	FB_IntProcessor						/ch/23/mix/on
WidgetEnd

Widget Mute24
	AnyPress							/ch/24/mix/on
	FB_IntProcessor						/ch/24/mix/on
WidgetEnd

Widget Mute25
	AnyPress							/ch/25/mix/on
	FB_IntProcessor						/ch/25/mix/on
WidgetEnd

Widget Mute26
	AnyPress							/ch/26/mix/on
	FB_IntProcessor						/ch/26/mix/on
WidgetEnd

Widget Mute27
	AnyPress							/ch/27/mix/on
	FB_IntProcessor						/ch/27/mix/on
WidgetEnd

Widget Mute28
	AnyPress							/ch/28/mix/on
	FB_IntProcessor						/ch/28/mix/on
WidgetEnd

Widget Mute29
	AnyPress							/ch/29/mix/on
	FB_IntProcessor						/ch/29/mix/on
WidgetEnd

Widget Mute30
	AnyPress							/ch/30/mix/on
	FB_IntProcessor						/ch/30/mix/on
WidgetEnd

Widget Mute31
	AnyPress							/ch/31/mix/on
	FB_IntProcessor						/ch/31/mix/on
WidgetEnd

Widget Mute32
	AnyPress							/ch/32/mix/on
	FB_IntProcessor						/ch/32/mix/on
WidgetEnd



//----------------------------------------------------------------
// TRACK - SCRIBBLE STRIPS								
// 		REAPER TO X32	ONLY  (FOR NOW)	 			
//----------------------------------------------------------------

Widget ScribbleStrip1
	FB_Processor						/ch/01/config/name
WidgetEnd

Widget ScribbleStrip2
	FB_Processor						/ch/02/config/name
WidgetEnd

Widget ScribbleStrip3
	FB_Processor						/ch/03/config/name
WidgetEnd

Widget ScribbleStrip4
	FB_Processor						/ch/04/config/name
WidgetEnd

Widget ScribbleStrip5
	FB_Processor						/ch/05/config/name
WidgetEnd

Widget ScribbleStrip6
	FB_Processor						/ch/06/config/name
WidgetEnd

Widget ScribbleStrip7
	FB_Processor						/ch/07/config/name
WidgetEnd

Widget ScribbleStrip8
	FB_Processor						/ch/08/config/name
WidgetEnd

Widget ScribbleStrip9
	FB_Processor						/ch/09/config/name
WidgetEnd

Widget ScribbleStrip10
	FB_Processor						/ch/10/config/name
WidgetEnd

Widget ScribbleStrip11
	FB_Processor						/ch/11/config/name
WidgetEnd

Widget ScribbleStrip12
	FB_Processor						/ch/12/config/name
WidgetEnd

Widget ScribbleStrip13
	FB_Processor						/ch/13/config/name
WidgetEnd

Widget ScribbleStrip14
	FB_Processor						/ch/14/config/name
WidgetEnd

Widget ScribbleStrip15
	FB_Processor						/ch/15/config/name
WidgetEnd

Widget ScribbleStrip16
	FB_Processor						/ch/16/config/name
WidgetEnd

Widget ScribbleStrip17
	FB_Processor						/ch/17/config/name
WidgetEnd

Widget ScribbleStrip18
	FB_Processor						/ch/18/config/name
WidgetEnd

Widget ScribbleStrip19
	FB_Processor						/ch/19/config/name
WidgetEnd

Widget ScribbleStrip20
	FB_Processor						/ch/20/config/name
WidgetEnd

Widget ScribbleStrip21
	FB_Processor						/ch/21/config/name
WidgetEnd

Widget ScribbleStrip22
	FB_Processor						/ch/22/config/name
WidgetEnd

Widget ScribbleStrip23
	FB_Processor						/ch/23/config/name
WidgetEnd

Widget ScribbleStrip24
	FB_Processor						/ch/24/config/name
WidgetEnd

Widget ScribbleStrip25
	FB_Processor						/ch/25/config/name
WidgetEnd

Widget ScribbleStrip26
	FB_Processor						/ch/26/config/name
WidgetEnd

Widget ScribbleStrip27
	FB_Processor						/ch/27/config/name
WidgetEnd

Widget ScribbleStrip28
	FB_Processor						/ch/28/config/name
WidgetEnd

Widget ScribbleStrip29
	FB_Processor						/ch/29/config/name
WidgetEnd

Widget ScribbleStrip30
	FB_Processor						/ch/30/config/name
WidgetEnd

Widget ScribbleStrip31
	FB_Processor						/ch/31/config/name
WidgetEnd

Widget ScribbleStrip32
	FB_Processor						/ch/32/config/name
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE BUTTONS BANK A					
//----------------------------------------------------------------

Widget UserAssignableButton_A5
    Control 							/-stat/userpar/1/value		// BANK A - Button 5
WidgetEnd

Widget UserAssignableButton_A6
    Control 							/-stat/userpar/2/value		// BANK A - Button 6
WidgetEnd

Widget UserAssignableButton_A7
    Control 							/-stat/userpar/3/value		// BANK A - Button 7
WidgetEnd

Widget UserAssignableButton_A8
    Control 							/-stat/userpar/4/value		// BANK A - Button 8
WidgetEnd

Widget UserAssignableButton_A9
    Control 							/-stat/userpar/5/value		// BANK A - Button 9
WidgetEnd

Widget UserAssignable_ButtonA10	
    Control 							/-stat/userpar/6/value		// BANK A - Button 10
WidgetEnd

Widget UserAssignable_ButtonA11
    Control 							/-stat/userpar/7/value		// BANK A - Button 11
WidgetEnd

Widget UserAssignable_ButtonA12
    Control 							/-stat/userpar/8/value		// BANK A - Button 12
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE  BUTTONS BANK B					
//----------------------------------------------------------------

Widget UserAssignable_ButtonB5
	Control 							/-stat/userpar/9/value		// BANK B - Button 5
WidgetEnd

Widget UserAssignable_ButtonB6
	Control 							/-stat/userpar/10/value		// BANK B - Button 6
WidgetEnd

Widget UserAssignable_ButtonB7
	Control 							/-stat/userpar/11/value		// BANK B - Button 7
WidgetEnd

Widget UserAssignable_ButtonB8
	Control 							/-stat/userpar/12/value		// BANK B - Button 8
WidgetEnd

Widget UserAssignable_ButtonB9
	Control 							/-stat/userpar/13/value		// BANK B - Button 9
WidgetEnd

Widget UserAssignable_ButtonB10
	Control 							/-stat/userpar/14/value		// BANK B - Button 10
WidgetEnd

Widget UserAssignable_ButtonB11
	Control 							/-stat/userpar/15/value		// BANK B - Button 11
WidgetEnd

Widget UserAssignable_B12
	Control 							/-stat/userpar/16/value		// BANK B - Button 12
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE  BUTTONS BANK C					
//----------------------------------------------------------------

Widget Play
	Control 							/-stat/userpar/17/value		// BANK C - Button 5
WidgetEnd

Widget Stop	
	Control 							/-stat/userpar/18/value		// BANK C - Button 6
WidgetEnd

Widget Rewind
	Control 							/-stat/userpar/19/value		// BANK C - Button 7
WidgetEnd

Widget FastForward
	Control 							/-stat/userpar/20/value		// BANK C - Button 8
WidgetEnd

Widget GotoStartOfProject
	Control 							/-stat/userpar/21/value		// BANK C - Button 9
WidgetEnd

Widget GotoEndOfProject
	Control 							/-stat/userpar/22/value		// BANK C - Button 10
WidgetEnd

--------------- MODIFIERS ----------------

Widget Shift
	Control 							/-stat/userpar/23/value		// BANK C - Button 11
WidgetEnd

Widget Control
	Control 							/-stat/userpar/24/value		// BANK C - Button 12
WidgetEnd
 


//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANKS	A				
//----------------------------------------------------------------

Widget UserAssignable_RotaryA1
    Control                             /-stat/userpar/25/value    // BANK A - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/25/value
WidgetEnd

Widget UserAssignable_RotaryA2
    Control                             /-stat/userpar/26/value    // BANK A - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/26/value
WidgetEnd

Widget UserAssignable_RotaryA3
    Control                             /-stat/userpar/27/value    // BANK A - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/27/value
WidgetEnd

Widget UserAssignable_RotaryA5
    Control                             /-stat/userpar/28/value    // BANK A - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/28/value
WidgetEnd



//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANK B		
//----------------------------------------------------------------

Widget UserAssignable_RotaryB1
    Control                             /-stat/userpar/29/value    // BANK B - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/29/value
WidgetEnd

Widget UserAssignable_RotaryB2
    Control                             /-stat/userpar/30/value    // BANK B - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/30/value
WidgetEnd

Widget UserAssignable_RotaryB3
    Control                             /-stat/userpar/31/value    // BANK B - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/31/value
WidgetEnd

Widget UserAssignable_RotaryB4
    Control                             /-stat/userpar/32/value    // BANK B - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/32/value
WidgetEnd



//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANKS	C				
//----------------------------------------------------------------

Widget UserAssignable_RotaryC1
    Control                             /-stat/userpar/33/value    // BANK C - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/33/value
WidgetEnd

Widget UserAssignable_RotaryC2
    Control                             /-stat/userpar/34/value    // BANK C - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/34/value
WidgetEnd

Widget UserAssignable_RotaryC3
    Control                             /-stat/userpar/35/value    // BANK C - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/35/value
WidgetEnd

Widget UserAssignable_RotaryC4
    Control                             /-stat/userpar/36/value    // BANK C - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/36/value
WidgetEnd



//----------------------------------------------------------------
// DCA FADERS		
//----------------------------------------------------------------

Widget DCA_Fader1
    Control                             /dca/1/fader
    FB_Processor 					    /dca/1/fader
WidgetEnd

Widget DCA_Fader2
    Control                             /dca/2/fader
    FB_Processor 					    /dca/2/fader
WidgetEnd

Widget DCA_Fader3
    Control                             /dca/3/fader
    FB_Processor 				    	/dca/3/fader
WidgetEnd

Widget DCA_Fader4
    Control                             /dca/4/fader
    FB_Processor 				    	/dca/4/fader
WidgetEnd

Widget DCA_Fader5
    Control                             /dca/5/fader
    FB_Processor 					    /dca/5/fader
WidgetEnd

Widget DCA_Fader6
    Control                             /dca/6/fader
    FB_Processor 					    /dca/6/fader
WidgetEnd

Widget DCA_Fader7
    Control                             /dca/7/fader
    FB_IntProcessor 					/dca/7/fader
WidgetEnd

Widget DCA_Fader7
    Control                             /dca/7/fader
    FB_Processor 					    /dca/8/fader
WidgetEnd




//----------------------------------------------------------------
// DCA MUTES -  @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER
//----------------------------------------------------------------

Widget DCA_Mute1
    Control                             /dca/1/on
    FB_IntProcessor 					/dca/1/on
WidgetEnd

Widget DCA_Mute2
    Control                             /dca/2/on
    FB_IntProcessor 					/dca/2/on
WidgetEnd

Widget DCA_Mute3
    Control                             /dca/3/on
    FB_IntProcessor 					/dca/3/on
WidgetEnd

Widget DCA_Mute4
    Control                             /dca/4/on
    FB_IntProcessor 					/dca/4/on
WidgetEnd

Widget DCA_Mute5
    Control                             /dca/5/on
    FB_IntProcessor 					/dca/5/on
WidgetEnd

Widget DCA_Mute6
    Control                             /dca/6/on
    FB_IntProcessor 					/dca/6/on
WidgetEnd

Widget DCA_Mute7
    Control                             /dca/7/on
    FB_IntProcessor 					/dca/7/on
WidgetEnd

Widget DCA_Mute8
    Control                             /dca/8/on
    FB_IntProcessor 					/dca/8/on
WidgetEnd





//----------------------------------------------------------------
// MIXBUS FADERS				
//----------------------------------------------------------------

Widget Mixbus_Fader1
    Control                             /bus/01/mix/fader
    FB_Processor 					    /bus/01/mix/fader
WidgetEnd

Widget Mixbus_Fader2
    Control                             /bus/02/mix/fader
    FB_Processor 					    /bus/02/mix/fader
WidgetEnd

Widget Mixbus_Fader3
    Control                             /bus/03/mix/fader
    FB_Processor 					    /bus/03/mix/fader
WidgetEnd

Widget Mixbus_Fader4
    Control                             /bus/04/mix/fader
    FB_Processor 					    /bus/04/mix/fader
WidgetEnd

Widget Mixbus_Fader5
    Control                             /bus/05/mix/fader
    FB_Processor 					    /bus/05/mix/fader
WidgetEnd

Widget Mixbus_Fader6
    Control                             /bus/06/mix/fader
    FB_Processor 					    /bus/06/mix/fader
WidgetEnd

Widget Mixbus_Fader7
    Control                             /bus/07/mix/fader
    FB_Processor 					    /bus/07/mix/fader
WidgetEnd

Widget Mixbus_Fader8
    Control                             /bus/08/mix/fader
    FB_Processor 					    /bus/08/mix/fader
WidgetEnd

Widget Mixbus_Fader9
    Control                             /bus/09/mix/fader
    FB_Processor 					    /bus/09/mix/fader
WidgetEnd

Widget Mixbus_Fader110
    Control                             /bus/10/mix/fader
    FB_Processor 					    /bus/10/mix/fader
WidgetEnd

Widget Mixbus_Fader11
    Control                             /bus/11/mix/fader
    FB_Processor 					    /bus/11/mix/fader
WidgetEnd

Widget Mixbus_Fader12
    Control                             /bus/12/mix/fader
    FB_Processor 					    /bus/12/mix/fader
WidgetEnd

Widget Mixbus_Fader13
    Control                             /bus/13/mix/fader
    FB_Processor 					    /bus/13/mix/fader
WidgetEnd

Widget Mixbus_Fader14
    Control                            /bus/14/mix/fader
    FB_Processor 					   /bus/14/mix/fader
WidgtEnd

Widget Mixbus_Fader15
    Control                            /bus/15/mix/fader
    FB_Processor 					   /bus/15/mix/fader
WidgetEnd

Widget Mixbus_Fader16
    Control                            /bus/16/mix/fader
    FB_Processor 					   /bus/16/mix/fader
WidgetEnd


//----------------------------------------------------------------
// MIXBUS MUTES	   @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER	
//----------------------------------------------------------------

Widget Mixbus_Mute1
    Control                             /bus/01/mix/on
    FB_IntProcessor 					/bus/01/mix/on
WidgetEnd

Widget Mixbus_Mute2
    Control                             /bus/02/mix/on
    FB_IntProcessor 					/bus/03/mix/on
WidgetEnd

Widget Mixbus_Mute3
    Control                             /bus/04/mix/on
    FB_IntProcessor 					/bus/04/mix/on
WidgetEnd

Widget Mixbus_Mute4
    Control                             /bus/04/mix/on
    FB_IntProcessor 					/bus/04/mix/on
WidgetEnd

Widget Mixbus_Mute5
    Control                             /bus/05/mix/on
    FB_IntProcessor 					/bus/05/mix/on
WidgetEnd

Widget Mixbus_Mute6
    Control                             /bus/06/mix/on
    FB_IntProcessor 					/bus/06/mix/on
WidgetEnd

Widget Mixbus_Mute7
    Control                             /bus/07/mix/on
    FB_IntProcessor 					/bus/07/mix/on
WidgetEnd

Widget Mixbus_Mute8
    Control                             /bus/08/mix/on
    FB_IntProcessor 					/bus/08/mix/on
WidgetEnd

Widget Mixbus_Mute9
    Control                             /bus/09/mix/on
    FB_IntProcessor 					/bus/09/mix/on
WidgetEnd

Widget Mixbus_Mute10
    Control                             /bus/10/mix/on
    FB_IntProcessor 					/bus/10/mix/on
WidgetEnd

Widget Mixbus_Mute11
    Control                             /bus/11/mix/on
    FB_IntProcessor 					/bus/11/mix/on
WidgetEnd

Widget Mixbus_Mute12
    Control                             /bus/12/mix/on
    FB_IntProcessor 					/bus/12/mix/on
WidgetEnd

Widget Mixbus_Mute13
    Control                             /bus/13/mix/on
    FB_IntProcessor 					/bus/13/mix/on
WidgetEnd

Widget Mixbus_Mute14
    Control                             /bus/14/mix/on
    FB_IntProcessor 					/bus/14/mix/onn
WidgetEnd

Widget Mixbus_Mute15
    Control                             /bus/15/mix/on
    FB_IntProcessor 					/bus/15/mix/on
WidgetEnd

Widget Mixbus_Mute16
    Control                             /bus/16/mix/onn
    FB_IntProcessor 					/bus/16/mix/on
WidgetEnd




//----------------------------------------------------------------
// MATRIX FADERS	 (1-6)			
//----------------------------------------------------------------

Widget Matrix_Fader1
    Control                             /mtx/01/mix/fader
    FB_Processor 					    /mtx/01/mix/fader
WidgetEnd

Widget Matrix_Fader2
    Control                             /mtx/02/mix/fader
    FB_Processor 					    /mtx/02/mix/fader
WidgetEnd

Widget Matrix_Fader3
    Control                             /mtx/03/mix/fader
    FB_Processor 					    /mtx/03/mix/fader
WidgetEnd

Widget Matrix_Fader4
    Control                             /mtx/04/mix/fader
    FB_Processor 					    /mtx/04/mix/fader
WidgetEnd

Widget Matrix_Fader5
    Control                             /mtx/05/mix/fader
    FB_Processor 					    /mtx/05/mix/fader
WidgetEnd

Widget Matrix_Fader6
    Control                             /mtx/06/mix/fader
    FB_Processor 					    /mtx/06/mix/fader
WidgetEnd


//----------------------------------------------------------------
// MATRIX MUTES	   @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER	
//----------------------------------------------------------------

Widget Matrix_Mute1
    Control                             /mtx/01/mix/on
    FB_Processor 					    /mtx/01/mix/on
WidgetEnd

Widget Matrix_Mute2
    Control                             /mtx/02/mix/on
    FB_Processor 					    /mtx/02/mix/on
WidgetEnd

Widget Matrix_Mute3
    Control                             /mtx/03/mix/on
    FB_Processor 					    /mtx/03/mix/on
WidgetEnd

Widget Matrix_Mute4
    Control                             /mtx/04/mix/on
    FB_Processor 					    /mtx/04/mix/on
WidgetEnd

Widget Matrix_Mute5
    Control                             /mtx/05/mix/on
    FB_Processor 					    /mtx/05/mix/on
WidgetEnd

Widget Matrix_Mute6
    Control                             /mtx/06/mix/on
    FB_Processor 					    /mtx/06/mix/on
WidgetEnd






//----------------------------------------------------------------
// SELECT  		@@@@ ARGGHHH STILL AINT WORKING
//              @@@@ LAST THING TO CODE EVENTUALLY :)			
//----------------------------------------------------------------

/Widget Select
/	Control								/-stat/selidx  //@@@@ WITH int32 PARAM FOR TRACK NUMBER (Starting from index 0 !!!!)
/	FB_IntProcessor						/-stat/selidx
/WidgetEnd
__________________
AKA: Roy Wallingford
jacksoonbrowne is offline   Reply With Quote
Old 09-15-2022, 10:59 PM   #20056
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default toggle zones

I'm just trying to get my head round the value of toggling in and out of zones.
As each zone can be selected by a dedicated button and globalview is the general return zone , it feels like options are lost for the zone buttons not gained..
"Hold+Send" to give a different view of send envelopes/parameters/anything/ is not possible as it doubles up as essentially, pressing GlobalView.
Hold+any zone change button isn't possible, as far as i can work, maybe i'm missing it.
To quote Winston Churchill "'Never, have so many features, been crammed onto so few... buttons"
Yep, that's what he said. Would have said.. if there wasn't a war... and he was working on CSI.
Please correct me if i'm overlooking the relevance of toggling these, compared to simply switching by using the next zone's button. Maybe it opens other features i'm not seeing - If not, Winston and myself, really think we should be maximising our assets..
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-15-2022, 11:15 PM   #20057
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Wow,

X32 .ost file taking shape.
Widget names primarily reflect the X32 physicals.

Around 1400 lines right no, more to come

This is TLDR (TooLongDontRead)

Code:
//******************************************************
//******************************************************
// X32 - Widget FILE FOR BEHRINGER X32/MIDAS FAMILY			
//******************************************************
//******************************************************



//----------------------------------------------------------------
// MASTER 												
//----------------------------------------------------------------

Widget MasterFader	
	MotorizedFaderWithoutTouch			/main/st/mix/fader
	FB_Processor						/main/st/mix/fader
WidgetEnd

Widget MasterMute
	AnyPress							/main/st/mix/on
	FB_IntProcessor						/main/st/mix/on
WidgetEnd

Widget MasterPan
	Control								/main/st/mix/pan
	FB_Processor						/main/st/mix/opann
WidgetEnd



//----------------------------------------------------------------
// TRACK - FADERS										
//----------------------------------------------------------------

Widget Fader1
	MotorizedFaderWithoutTouch			/ch/01/mix/fader
	FB_Processor						/ch/01/mix/fader
WidgetEnd

Widget Fader2
	MotorizedFaderWithoutTouch			/ch/02/mix/fader
	FB_Processor						/ch/02/mix/fader
WidgetEnd

Widget Fader3
	MotorizedFaderWithoutTouch			/ch/03/mix/fader
	FB_Processor						/ch/03/mix/fader
WidgetEnd

Widget Fader4
	MotorizedFaderWithoutTouch			/ch/04/mix/fader
	FB_Processor						/ch/04/mix/fader
WidgetEnd

Widget Fader5
	MotorizedFaderWithoutTouch			/ch/05/mix/fader
	FB_Processor						/ch/05/mix/fader
WidgetEnd

Widget Fader6
	MotorizedFaderWithoutTouch			/ch/06/mix/fader
	FB_Processor						/ch/06/mix/fader
WidgetEnd

Widget Fader7
	MotorizedFaderWithoutTouch			/ch/07/mix/fader
	FB_Processor						/ch/07/mix/fader
WidgetEnd

Widget Fader8
	MotorizedFaderWithoutTouch			/ch/08/mix/fader
	FB_Processor						/ch/08/mix/fader
WidgetEnd

Widget Fader9
	MotorizedFaderWithoutTouch			/ch/09/mix/fader
	FB_Processor						/ch/09/mix/fader
WidgetEnd

Widget Fader10
	MotorizedFaderWithoutTouch			/ch/10/mix/fader
	FB_Processor						/ch/10/mix/fader
WidgetEnd

Widget Fader11
	MotorizedFaderWithoutTouch			/ch/11/mix/fader
	FB_Processor						/ch/11/mix/fader
WidgetEnd

Widget Fader12
	MotorizedFaderWithoutTouch			/ch/12/mix/fader
	FB_Processor						/ch/12/mix/fader
WidgetEnd

Widget Fader13
	MotorizedFaderWithoutTouch			/ch/13/mix/fader
	FB_Processor						/ch/13/mix/fader
WidgetEnd

Widget Fader14
	MotorizedFaderWithoutTouch			/ch/14/mix/fader
	FB_Processor						/ch/14/mix/fader
WidgetEnd

Widget Fader15
	MotorizedFaderWithoutTouch			/ch/15/mix/fader
	FB_Processor						/ch/15/mix/fader
WidgetEnd

Widget Fader16
	MotorizedFaderWithoutTouch			/ch/16/mix/fader
	FB_Processor						/ch/16/mix/fader
WidgetEnd

Widget Fader17
	MotorizedFaderWithoutTouch			/ch/17/mix/fader
	FB_Processor						/ch/17/mix/fader
WidgetEnd

Widget Fader18
	MotorizedFaderWithoutTouch			/ch/18/mix/fader
	FB_Processor						/ch/18/mix/fader
WidgetEnd

Widget Fader19
	MotorizedFaderWithoutTouch			/ch/19/mix/fader
	FB_Processor						/ch/19/mix/fader
WidgetEnd

Widget Fader20
	MotorizedFaderWithoutTouch			/ch/20/mix/fader
	FB_Processor						/ch/20/mix/fader
WidgetEnd

Widget Fader21
	MotorizedFaderWithoutTouch			/ch/21/mix/fader
	FB_Processor						/ch/21/mix/fader
WidgetEnd

Widget Fader22
	MotorizedFaderWithoutTouch			/ch/22/mix/fader
	FB_Processor						/ch/22/mix/fader
WidgetEnd

Widget Fader23
	MotorizedFaderWithoutTouch			/ch/23/mix/fader
	FB_Processor						/ch/23/mix/fader
WidgetEnd

Widget Fader24
	MotorizedFaderWithoutTouch			/ch/24/mix/fader
	FB_Processor						/ch/24/mix/fader
WidgetEnd

Widget Fader25
	MotorizedFaderWithoutTouch			/ch/25/mix/fader
	FB_Processor						/ch/25/mix/fader
WidgetEnd

Widget Fader26
	MotorizedFaderWithoutTouch			/ch/26/mix/fader
	FB_Processor						/ch/26/mix/fader
WidgetEnd

Widget Fader27
	MotorizedFaderWithoutTouch			/ch/27/mix/fader
	FB_Processor						/ch/27/mix/fader
WidgetEnd

Widget Fader28
	MotorizedFaderWithoutTouch			/ch/28/mix/fader
	FB_Processor						/ch/28/mix/fader
WidgetEnd

Widget Fader29
	MotorizedFaderWithoutTouch			/ch/29/mix/fader
	FB_Processor						/ch/29/mix/fader
WidgetEnd

Widget Fader30
	MotorizedFaderWithoutTouch			/ch/30/mix/fader
	FB_Processor						/ch/30/mix/fader
WidgetEnd

Widget Fader31
	MotorizedFaderWithoutTouch			/ch/31/mix/fader
	FB_Processor						/ch/31/mix/fader
WidgetEnd

Widget Fader32
	MotorizedFaderWithoutTouch			/ch/32/mix/fader
	FB_Processor						/ch/32/mix/fader
WidgetEnd



//----------------------------------------------------------------
// TRACK - PAN									
//----------------------------------------------------------------

Widget Pan1
	Control								/ch/01/mix/pan
	FB_Processor						/ch/01/mix/pan
WidgetEnd

Widget Pan2
	Control								/ch/02/mix/pan
	FB_Processor						/ch/02/mix/pan
WidgetEnd

Widget Pan3
	Control								/ch/03/mix/pan
	FB_Processor						/ch/03/mix/pan
WidgetEnd

Widget Pan4
	Control								/ch/04/mix/pan
	FB_Processor						/ch/04/mix/pan
WidgetEnd

Widget Pan5
	Control								/ch/05/mix/pan
	FB_Processor						/ch/05/mix/pan
WidgetEnd

Widget Pan6
	Control								/ch/06/mix/pan
	FB_Processor						/ch/06/mix/pan
WidgetEnd

Widget Pan7
	Control								/ch/07/mix/pan
	FB_Processor						/ch/07/mix/pan
WidgetEnd

Widget Pan8
	Control								/ch/08/mix/pan
	FB_Processor						/ch/08/mix/pan
WidgetEnd

Widget Pan9
	Control								/ch/09/mix/pan
	FB_Processor						/ch/09/mix/pan
WidgetEnd

Widget Pan10
	Control								/ch/10/mix/pan
	FB_Processor						/ch/10/mix/pan
WidgetEnd

Widget Pan11
	Control								/ch/11/mix/pan
	FB_Processor						/ch/11/mix/pan
WidgetEnd

Widget Pan12
	Control								/ch/12/mix/pan
	FB_Processor						/ch/12/mix/pan
WidgetEnd

Widget Pan13
	Control								/ch/13/mix/pan
	FB_Processor						/ch/13/mix/pan
WidgetEnd

Widget Pan14
	Control								/ch/14/mix/pan
	FB_Processor						/ch/14/mix/pan
WidgetEnd

Widget Pan15
	Control								/ch/15/mix/pan
	FB_Processor						/ch/15/mix/pan
WidgetEnd

Widget Pan16
	Control								/ch/16/mix/pan
	FB_Processor						/ch/16/mix/pan
WidgetEnd

Widget Pan17
	Control								/ch/17/mix/pan
	FB_Processor						/ch/17/mix/pan
WidgetEnd

Widget Pan18
	Control								/ch/18/mix/pan
	FB_Processor						/ch/18/mix/pan
WidgetEnd

Widget Pan19
	Control								/ch/19/mix/pan
	FB_Processor						/ch/19/mix/pan
WidgetEnd

Widget Pan20
	Control								/ch/20/mix/pan
	FB_Processor						/ch/20/mix/pan
WidgetEnd

Widget Pan21
	Control								/ch/21/mix/pan
	FB_Processor						/ch/21/mix/pan
WidgetEnd

Widget Pan22
	Control								/ch/22/mix/pan
	FB_Processor						/ch/22/mix/pan
WidgetEnd

Widget Pan23
	Control								/ch/23/mix/pan
	FB_Processor						/ch/23/mix/pan
WidgetEnd

Widget Pan24
	Control								/ch/24/mix/pan
	FB_Processor						/ch/24/mix/pan
WidgetEnd

Widget Pan25
	Control								/ch/25/mix/pan
	FB_Processor						/ch/25/mix/pan
WidgetEnd

Widget Pan26
	Control								/ch/26/mix/pan
	FB_Processor						/ch/26/mix/pan
WidgetEnd

Widget Pan27
	Control								/ch/27/mix/pan
	FB_Processor						/ch/27/mix/pan
WidgetEnd

Widget Pan28
	Control								/ch/28/mix/pan
	FB_Processor						/ch/28/mix/pan
WidgetEnd

Widget Pan29
	Control								/ch/29/mix/pan
	FB_Processor						/ch/29/mix/pan
WidgetEnd

Widget Pan30
	Control								/ch/30/mix/pan
	FB_Processor						/ch/30/mix/pan
WidgetEnd

Widget Pan31
	Control								/ch/31/mix/pan
	FB_Processor						/ch/31/mix/pan
WidgetEnd
	
Widget Pan32
	Control								/ch/32/mix/pan
	FB_Processor						/ch/32/mix/pan
WidgetEnd



//----------------------------------------------------------------
// TRACK - SOLO 										
//----------------------------------------------------------------

Widget Solo1
	AnyPress							/-stat/solosw/01
	FB_IntProcessor						/-stat/solosw/01
WidgetEnd

Widget Solo2
	AnyPress							/-stat/solosw/02
	FB_IntProcessor						/-stat/solosw/02
WidgetEnd

Widget Solo3
	AnyPress							/-stat/solosw/03
	FB_IntProcessor						/-stat/solosw/03
WidgetEnd

Widget Solo4
	AnyPress							/-stat/solosw/04
	FB_IntProcessor						/-stat/solosw/04
WidgetEnd

Widget Solo5
	AnyPress							/-stat/solosw/05
	FB_IntProcessor						/-stat/solosw/05
WidgetEnd

Widget Solo6
	AnyPress							/-stat/solosw/06
	FB_IntProcessor						/-stat/solosw/06
WidgetEnd

Widget Solo7
	AnyPress							/-stat/solosw/07
	FB_IntProcessor						/-stat/solosw/07
WidgetEnd

Widget Solo8
	AnyPress							/-stat/solosw/08
	FB_IntProcessor						/-stat/solosw/08
WidgetEnd

Widget Solo9
	AnyPress							/-stat/solosw/09
	FB_IntProcessor						/-stat/solosw/09
WidgetEnd

Widget Solo10
	AnyPress							/-stat/solosw/10
	FB_IntProcessor						/-stat/solosw/10
WidgetEnd

Widget Solo11
	AnyPress							/-stat/solosw/11
	FB_IntProcessor						/-stat/solosw/11
WidgetEnd

Widget Solo12
	AnyPress							/-stat/solosw/12
	FB_IntProcessor						/-stat/solosw/12
WidgetEnd

Widget Solo13
	AnyPress							/-stat/solosw/13
	FB_IntProcessor						/-stat/solosw/13
WidgetEnd

Widget Solo14
	AnyPress							/-stat/solosw/14
	FB_IntProcessor						/-stat/solosw/14
WidgetEnd

Widget Solo15
	AnyPress							/-stat/solosw/15
	FB_IntProcessor						/-stat/solosw/15
WidgetEnd

Widget Solo16
	AnyPress							/-stat/solosw/16
	FB_IntProcessor						/-stat/solosw/16
WidgetEnd

Widget Solo17
	AnyPress							/-stat/solosw/17
	FB_IntProcessor						/-stat/solosw/17
WidgetEnd

Widget Solo18
	AnyPress							/-stat/solosw/18
	FB_IntProcessor						/-stat/solosw/18
WidgetEnd

Widget Solo19
	AnyPress							/-stat/solosw/19
	FB_IntProcessor						/-stat/solosw/19
WidgetEnd

Widget Solo20
	AnyPress							/-stat/solosw/20
	FB_IntProcessor						/-stat/solosw/20
WidgetEnd

Widget Solo21
	AnyPress							/-stat/solosw/21
	FB_IntProcessor						/-stat/solosw/21
WidgetEnd

Widget Solo22
	AnyPress							/-stat/solosw/22
	FB_IntProcessor						/-stat/solosw/22
WidgetEnd

Widget Solo23
	AnyPress							/-stat/solosw/23
	FB_IntProcessor						/-stat/solosw/23
WidgetEnd

Widget Solo24
	AnyPress							/-stat/solosw/24
	FB_IntProcessor						/-stat/solosw/24
WidgetEnd

Widget Solo25
	AnyPress							/-stat/solosw/25
	FB_IntProcessor						/-stat/solosw/25
WidgetEnd

Widget Solo26
	AnyPress							/-stat/solosw/26
	FB_IntProcessor						/-stat/solosw/26
WidgetEnd

Widget Solo27
	AnyPress							/-stat/solosw/27
	FB_IntProcessor						/-stat/solosw/27
WidgetEnd

Widget Solo28
	AnyPress							/-stat/solosw/28
	FB_IntProcessor						/-stat/solosw/28
WidgetEnd

Widget Solo29
	AnyPress							/-stat/solosw/29
	FB_IntProcessor						/-stat/solosw/29
WidgetEnd

Widget Solo30
	AnyPress							/-stat/solosw/30
	FB_IntProcessor						/-stat/solosw/30
WidgetEnd

Widget Solo31
	AnyPress							/-stat/solosw/31
	FB_IntProcessor						/-stat/solosw/31
WidgetEnd

Widget Solo32
	AnyPress							/-stat/solosw/32
	FB_IntProcessor						/-stat/solosw/32
WidgetEnd



//----------------------------------------------------------------
// TRACK - MUTES										
//----------------------------------------------------------------

Widget Mute1
	AnyPress							/ch/01/mix/on
	FB_IntProcessor						/ch/01/mix/on
WidgetEnd

Widget Mute2
	AnyPress							/ch/02/mix/on
	FB_IntProcessor						/ch/02/mix/on
WidgetEnd

Widget Mute3
	AnyPress							/ch/03/mix/on
	FB_IntProcessor						/ch/03/mix/on
WidgetEnd

Widget Mute4
	AnyPress							/ch/04/mix/on
	FB_IntProcessor						/ch/04/mix/on
WidgetEnd

Widget Mute5
	AnyPress							/ch/05/mix/on
	FB_IntProcessor						/ch/05/mix/on
WidgetEnd

Widget Mute6
	AnyPress							/ch/06/mix/on
	FB_IntProcessor						/ch/06/mix/on
WidgetEnd

Widget Mute7
	AnyPress							/ch/07/mix/on
	FB_IntProcessor						/ch/07/mix/on
WidgetEnd

Widget Mute8
	AnyPress							/ch/08/mix/on
	FB_IntProcessor						/ch/08/mix/on
WidgetEnd

Widget Mute9
	AnyPress							/ch/09/mix/on
	FB_IntProcessor						/ch/09/mix/on
WidgetEnd

Widget Mute10
	AnyPress							/ch/10/mix/on
	FB_IntProcessor						/ch/10/mix/on
WidgetEnd

Widget Mute11
	AnyPress							/ch/11/mix/on
	FB_IntProcessor						/ch/11/mix/on
WidgetEnd

Widget Mute12
	AnyPress							/ch/12/mix/on
	FB_IntProcessor						/ch/12/mix/on
WidgetEnd

Widget Mute13
	AnyPress							/ch/13/mix/on
	FB_IntProcessor						/ch/13/mix/on
WidgetEnd

Widget Mute14
	AnyPress							/ch/14/mix/on
	FB_IntProcessor						/ch/14/mix/on
WidgetEnd

Widget Mute15
	AnyPress							/ch/15/mix/on
	FB_IntProcessor						/ch/15/mix/on
WidgetEnd

Widget Mute16
	AnyPress							/ch/16/mix/on
	FB_IntProcessor						/ch/16/mix/on
WidgetEnd

Widget Mute17
	AnyPress							/ch/17/mix/on
	FB_IntProcessor						/ch/17/mix/on
WidgetEnd

Widget Mute18
	AnyPress							/ch/18/mix/on
	FB_IntProcessor						/ch/18/mix/on
WidgetEnd

Widget Mute19
	AnyPress							/ch/19/mix/on
	FB_IntProcessor						/ch/19/mix/on
WidgetEnd

Widget Mute20
	AnyPress							/ch/20/mix/on
	FB_IntProcessor						/ch/20/mix/on
WidgetEnd

Widget Mute21
	AnyPress							/ch/21/mix/on
	FB_IntProcessor						/ch/21/mix/on
WidgetEnd

Widget Mute22
	AnyPress							/ch/22/mix/on
	FB_IntProcessor						/ch/22/mix/on
WidgetEnd

Widget Mute23
	AnyPress							/ch/23/mix/on
	FB_IntProcessor						/ch/23/mix/on
WidgetEnd

Widget Mute24
	AnyPress							/ch/24/mix/on
	FB_IntProcessor						/ch/24/mix/on
WidgetEnd

Widget Mute25
	AnyPress							/ch/25/mix/on
	FB_IntProcessor						/ch/25/mix/on
WidgetEnd

Widget Mute26
	AnyPress							/ch/26/mix/on
	FB_IntProcessor						/ch/26/mix/on
WidgetEnd

Widget Mute27
	AnyPress							/ch/27/mix/on
	FB_IntProcessor						/ch/27/mix/on
WidgetEnd

Widget Mute28
	AnyPress							/ch/28/mix/on
	FB_IntProcessor						/ch/28/mix/on
WidgetEnd

Widget Mute29
	AnyPress							/ch/29/mix/on
	FB_IntProcessor						/ch/29/mix/on
WidgetEnd

Widget Mute30
	AnyPress							/ch/30/mix/on
	FB_IntProcessor						/ch/30/mix/on
WidgetEnd

Widget Mute31
	AnyPress							/ch/31/mix/on
	FB_IntProcessor						/ch/31/mix/on
WidgetEnd

Widget Mute32
	AnyPress							/ch/32/mix/on
	FB_IntProcessor						/ch/32/mix/on
WidgetEnd



//----------------------------------------------------------------
// TRACK - SCRIBBLE STRIPS								
// 		REAPER TO X32	ONLY  (FOR NOW)	 			
//----------------------------------------------------------------

Widget ScribbleStrip1
	FB_Processor						/ch/01/config/name
WidgetEnd

Widget ScribbleStrip2
	FB_Processor						/ch/02/config/name
WidgetEnd

Widget ScribbleStrip3
	FB_Processor						/ch/03/config/name
WidgetEnd

Widget ScribbleStrip4
	FB_Processor						/ch/04/config/name
WidgetEnd

Widget ScribbleStrip5
	FB_Processor						/ch/05/config/name
WidgetEnd

Widget ScribbleStrip6
	FB_Processor						/ch/06/config/name
WidgetEnd

Widget ScribbleStrip7
	FB_Processor						/ch/07/config/name
WidgetEnd

Widget ScribbleStrip8
	FB_Processor						/ch/08/config/name
WidgetEnd

Widget ScribbleStrip9
	FB_Processor						/ch/09/config/name
WidgetEnd

Widget ScribbleStrip10
	FB_Processor						/ch/10/config/name
WidgetEnd

Widget ScribbleStrip11
	FB_Processor						/ch/11/config/name
WidgetEnd

Widget ScribbleStrip12
	FB_Processor						/ch/12/config/name
WidgetEnd

Widget ScribbleStrip13
	FB_Processor						/ch/13/config/name
WidgetEnd

Widget ScribbleStrip14
	FB_Processor						/ch/14/config/name
WidgetEnd

Widget ScribbleStrip15
	FB_Processor						/ch/15/config/name
WidgetEnd

Widget ScribbleStrip16
	FB_Processor						/ch/16/config/name
WidgetEnd

Widget ScribbleStrip17
	FB_Processor						/ch/17/config/name
WidgetEnd

Widget ScribbleStrip18
	FB_Processor						/ch/18/config/name
WidgetEnd

Widget ScribbleStrip19
	FB_Processor						/ch/19/config/name
WidgetEnd

Widget ScribbleStrip20
	FB_Processor						/ch/20/config/name
WidgetEnd

Widget ScribbleStrip21
	FB_Processor						/ch/21/config/name
WidgetEnd

Widget ScribbleStrip22
	FB_Processor						/ch/22/config/name
WidgetEnd

Widget ScribbleStrip23
	FB_Processor						/ch/23/config/name
WidgetEnd

Widget ScribbleStrip24
	FB_Processor						/ch/24/config/name
WidgetEnd

Widget ScribbleStrip25
	FB_Processor						/ch/25/config/name
WidgetEnd

Widget ScribbleStrip26
	FB_Processor						/ch/26/config/name
WidgetEnd

Widget ScribbleStrip27
	FB_Processor						/ch/27/config/name
WidgetEnd

Widget ScribbleStrip28
	FB_Processor						/ch/28/config/name
WidgetEnd

Widget ScribbleStrip29
	FB_Processor						/ch/29/config/name
WidgetEnd

Widget ScribbleStrip30
	FB_Processor						/ch/30/config/name
WidgetEnd

Widget ScribbleStrip31
	FB_Processor						/ch/31/config/name
WidgetEnd

Widget ScribbleStrip32
	FB_Processor						/ch/32/config/name
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE BUTTONS BANK A					
//----------------------------------------------------------------

Widget UserAssignableButton_A5
    Control 							/-stat/userpar/1/value		// BANK A - Button 5
WidgetEnd

Widget UserAssignableButton_A6
    Control 							/-stat/userpar/2/value		// BANK A - Button 6
WidgetEnd

Widget UserAssignableButton_A7
    Control 							/-stat/userpar/3/value		// BANK A - Button 7
WidgetEnd

Widget UserAssignableButton_A8
    Control 							/-stat/userpar/4/value		// BANK A - Button 8
WidgetEnd

Widget UserAssignableButton_A9
    Control 							/-stat/userpar/5/value		// BANK A - Button 9
WidgetEnd

Widget UserAssignable_ButtonA10	
    Control 							/-stat/userpar/6/value		// BANK A - Button 10
WidgetEnd

Widget UserAssignable_ButtonA11
    Control 							/-stat/userpar/7/value		// BANK A - Button 11
WidgetEnd

Widget UserAssignable_ButtonA12
    Control 							/-stat/userpar/8/value		// BANK A - Button 12
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE  BUTTONS BANK B					
//----------------------------------------------------------------

Widget UserAssignable_ButtonB5
	Control 							/-stat/userpar/9/value		// BANK B - Button 5
WidgetEnd

Widget UserAssignable_ButtonB6
	Control 							/-stat/userpar/10/value		// BANK B - Button 6
WidgetEnd

Widget UserAssignable_ButtonB7
	Control 							/-stat/userpar/11/value		// BANK B - Button 7
WidgetEnd

Widget UserAssignable_ButtonB8
	Control 							/-stat/userpar/12/value		// BANK B - Button 8
WidgetEnd

Widget UserAssignable_ButtonB9
	Control 							/-stat/userpar/13/value		// BANK B - Button 9
WidgetEnd

Widget UserAssignable_ButtonB10
	Control 							/-stat/userpar/14/value		// BANK B - Button 10
WidgetEnd

Widget UserAssignable_ButtonB11
	Control 							/-stat/userpar/15/value		// BANK B - Button 11
WidgetEnd

Widget UserAssignable_B12
	Control 							/-stat/userpar/16/value		// BANK B - Button 12
WidgetEnd



//----------------------------------------------------------------
// TRANSPORT - X32 USER ASSIGNABLE  BUTTONS BANK C					
//----------------------------------------------------------------

Widget Play
	Control 							/-stat/userpar/17/value		// BANK C - Button 5
WidgetEnd

Widget Stop	
	Control 							/-stat/userpar/18/value		// BANK C - Button 6
WidgetEnd

Widget Rewind
	Control 							/-stat/userpar/19/value		// BANK C - Button 7
WidgetEnd

Widget FastForward
	Control 							/-stat/userpar/20/value		// BANK C - Button 8
WidgetEnd

Widget GotoStartOfProject
	Control 							/-stat/userpar/21/value		// BANK C - Button 9
WidgetEnd

Widget GotoEndOfProject
	Control 							/-stat/userpar/22/value		// BANK C - Button 10
WidgetEnd

--------------- MODIFIERS ----------------

Widget Shift
	Control 							/-stat/userpar/23/value		// BANK C - Button 11
WidgetEnd

Widget Control
	Control 							/-stat/userpar/24/value		// BANK C - Button 12
WidgetEnd
 


//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANKS	A				
//----------------------------------------------------------------

Widget UserAssignable_RotaryA1
    Control                             /-stat/userpar/25/value    // BANK A - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/25/value
WidgetEnd

Widget UserAssignable_RotaryA2
    Control                             /-stat/userpar/26/value    // BANK A - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/26/value
WidgetEnd

Widget UserAssignable_RotaryA3
    Control                             /-stat/userpar/27/value    // BANK A - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/27/value
WidgetEnd

Widget UserAssignable_RotaryA5
    Control                             /-stat/userpar/28/value    // BANK A - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/28/value
WidgetEnd



//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANK B		
//----------------------------------------------------------------

Widget UserAssignable_RotaryB1
    Control                             /-stat/userpar/29/value    // BANK B - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/29/value
WidgetEnd

Widget UserAssignable_RotaryB2
    Control                             /-stat/userpar/30/value    // BANK B - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/30/value
WidgetEnd

Widget UserAssignable_RotaryB3
    Control                             /-stat/userpar/31/value    // BANK B - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/31/value
WidgetEnd

Widget UserAssignable_RotaryB4
    Control                             /-stat/userpar/32/value    // BANK B - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/32/value
WidgetEnd



//----------------------------------------------------------------
// ROTARIES - X32 USER ASSIGNABLE ROTARYS BANKS	C				
//----------------------------------------------------------------

Widget UserAssignable_RotaryC1
    Control                             /-stat/userpar/33/value    // BANK C - ROTARY 1
    FB_IntProcessor 					/-stat/userpar/33/value
WidgetEnd

Widget UserAssignable_RotaryC2
    Control                             /-stat/userpar/34/value    // BANK C - ROTARY 2
    FB_IntProcessor 					/-stat/userpar/34/value
WidgetEnd

Widget UserAssignable_RotaryC3
    Control                             /-stat/userpar/35/value    // BANK C - ROTARY 3
    FB_IntProcessor 					/-stat/userpar/35/value
WidgetEnd

Widget UserAssignable_RotaryC4
    Control                             /-stat/userpar/36/value    // BANK C - ROTARY 4
    FB_IntProcessor 					/-stat/userpar/36/value
WidgetEnd



//----------------------------------------------------------------
// DCA FADERS		
//----------------------------------------------------------------

Widget DCA_Fader1
    Control                             /dca/1/fader
    FB_Processor 					    /dca/1/fader
WidgetEnd

Widget DCA_Fader2
    Control                             /dca/2/fader
    FB_Processor 					    /dca/2/fader
WidgetEnd

Widget DCA_Fader3
    Control                             /dca/3/fader
    FB_Processor 				    	/dca/3/fader
WidgetEnd

Widget DCA_Fader4
    Control                             /dca/4/fader
    FB_Processor 				    	/dca/4/fader
WidgetEnd

Widget DCA_Fader5
    Control                             /dca/5/fader
    FB_Processor 					    /dca/5/fader
WidgetEnd

Widget DCA_Fader6
    Control                             /dca/6/fader
    FB_Processor 					    /dca/6/fader
WidgetEnd

Widget DCA_Fader7
    Control                             /dca/7/fader
    FB_IntProcessor 					/dca/7/fader
WidgetEnd

Widget DCA_Fader7
    Control                             /dca/7/fader
    FB_Processor 					    /dca/8/fader
WidgetEnd




//----------------------------------------------------------------
// DCA MUTES -  @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER
//----------------------------------------------------------------

Widget DCA_Mute1
    Control                             /dca/1/on
    FB_IntProcessor 					/dca/1/on
WidgetEnd

Widget DCA_Mute2
    Control                             /dca/2/on
    FB_IntProcessor 					/dca/2/on
WidgetEnd

Widget DCA_Mute3
    Control                             /dca/3/on
    FB_IntProcessor 					/dca/3/on
WidgetEnd

Widget DCA_Mute4
    Control                             /dca/4/on
    FB_IntProcessor 					/dca/4/on
WidgetEnd

Widget DCA_Mute5
    Control                             /dca/5/on
    FB_IntProcessor 					/dca/5/on
WidgetEnd

Widget DCA_Mute6
    Control                             /dca/6/on
    FB_IntProcessor 					/dca/6/on
WidgetEnd

Widget DCA_Mute7
    Control                             /dca/7/on
    FB_IntProcessor 					/dca/7/on
WidgetEnd

Widget DCA_Mute8
    Control                             /dca/8/on
    FB_IntProcessor 					/dca/8/on
WidgetEnd





//----------------------------------------------------------------
// MIXBUS FADERS				
//----------------------------------------------------------------

Widget Mixbus_Fader1
    Control                             /bus/01/mix/fader
    FB_Processor 					    /bus/01/mix/fader
WidgetEnd

Widget Mixbus_Fader2
    Control                             /bus/02/mix/fader
    FB_Processor 					    /bus/02/mix/fader
WidgetEnd

Widget Mixbus_Fader3
    Control                             /bus/03/mix/fader
    FB_Processor 					    /bus/03/mix/fader
WidgetEnd

Widget Mixbus_Fader4
    Control                             /bus/04/mix/fader
    FB_Processor 					    /bus/04/mix/fader
WidgetEnd

Widget Mixbus_Fader5
    Control                             /bus/05/mix/fader
    FB_Processor 					    /bus/05/mix/fader
WidgetEnd

Widget Mixbus_Fader6
    Control                             /bus/06/mix/fader
    FB_Processor 					    /bus/06/mix/fader
WidgetEnd

Widget Mixbus_Fader7
    Control                             /bus/07/mix/fader
    FB_Processor 					    /bus/07/mix/fader
WidgetEnd

Widget Mixbus_Fader8
    Control                             /bus/08/mix/fader
    FB_Processor 					    /bus/08/mix/fader
WidgetEnd

Widget Mixbus_Fader9
    Control                             /bus/09/mix/fader
    FB_Processor 					    /bus/09/mix/fader
WidgetEnd

Widget Mixbus_Fader110
    Control                             /bus/10/mix/fader
    FB_Processor 					    /bus/10/mix/fader
WidgetEnd

Widget Mixbus_Fader11
    Control                             /bus/11/mix/fader
    FB_Processor 					    /bus/11/mix/fader
WidgetEnd

Widget Mixbus_Fader12
    Control                             /bus/12/mix/fader
    FB_Processor 					    /bus/12/mix/fader
WidgetEnd

Widget Mixbus_Fader13
    Control                             /bus/13/mix/fader
    FB_Processor 					    /bus/13/mix/fader
WidgetEnd

Widget Mixbus_Fader14
    Control                            /bus/14/mix/fader
    FB_Processor 					   /bus/14/mix/fader
WidgtEnd

Widget Mixbus_Fader15
    Control                            /bus/15/mix/fader
    FB_Processor 					   /bus/15/mix/fader
WidgetEnd

Widget Mixbus_Fader16
    Control                            /bus/16/mix/fader
    FB_Processor 					   /bus/16/mix/fader
WidgetEnd


//----------------------------------------------------------------
// MIXBUS MUTES	   @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER	
//----------------------------------------------------------------

Widget Mixbus_Mute1
    Control                             /bus/01/mix/on
    FB_IntProcessor 					/bus/01/mix/on
WidgetEnd

Widget Mixbus_Mute2
    Control                             /bus/02/mix/on
    FB_IntProcessor 					/bus/03/mix/on
WidgetEnd

Widget Mixbus_Mute3
    Control                             /bus/04/mix/on
    FB_IntProcessor 					/bus/04/mix/on
WidgetEnd

Widget Mixbus_Mute4
    Control                             /bus/04/mix/on
    FB_IntProcessor 					/bus/04/mix/on
WidgetEnd

Widget Mixbus_Mute5
    Control                             /bus/05/mix/on
    FB_IntProcessor 					/bus/05/mix/on
WidgetEnd

Widget Mixbus_Mute6
    Control                             /bus/06/mix/on
    FB_IntProcessor 					/bus/06/mix/on
WidgetEnd

Widget Mixbus_Mute7
    Control                             /bus/07/mix/on
    FB_IntProcessor 					/bus/07/mix/on
WidgetEnd

Widget Mixbus_Mute8
    Control                             /bus/08/mix/on
    FB_IntProcessor 					/bus/08/mix/on
WidgetEnd

Widget Mixbus_Mute9
    Control                             /bus/09/mix/on
    FB_IntProcessor 					/bus/09/mix/on
WidgetEnd

Widget Mixbus_Mute10
    Control                             /bus/10/mix/on
    FB_IntProcessor 					/bus/10/mix/on
WidgetEnd

Widget Mixbus_Mute11
    Control                             /bus/11/mix/on
    FB_IntProcessor 					/bus/11/mix/on
WidgetEnd

Widget Mixbus_Mute12
    Control                             /bus/12/mix/on
    FB_IntProcessor 					/bus/12/mix/on
WidgetEnd

Widget Mixbus_Mute13
    Control                             /bus/13/mix/on
    FB_IntProcessor 					/bus/13/mix/on
WidgetEnd

Widget Mixbus_Mute14
    Control                             /bus/14/mix/on
    FB_IntProcessor 					/bus/14/mix/onn
WidgetEnd

Widget Mixbus_Mute15
    Control                             /bus/15/mix/on
    FB_IntProcessor 					/bus/15/mix/on
WidgetEnd

Widget Mixbus_Mute16
    Control                             /bus/16/mix/onn
    FB_IntProcessor 					/bus/16/mix/on
WidgetEnd




//----------------------------------------------------------------
// MATRIX FADERS	 (1-6)			
//----------------------------------------------------------------

Widget Matrix_Fader1
    Control                             /mtx/01/mix/fader
    FB_Processor 					    /mtx/01/mix/fader
WidgetEnd

Widget Matrix_Fader2
    Control                             /mtx/02/mix/fader
    FB_Processor 					    /mtx/02/mix/fader
WidgetEnd

Widget Matrix_Fader3
    Control                             /mtx/03/mix/fader
    FB_Processor 					    /mtx/03/mix/fader
WidgetEnd

Widget Matrix_Fader4
    Control                             /mtx/04/mix/fader
    FB_Processor 					    /mtx/04/mix/fader
WidgetEnd

Widget Matrix_Fader5
    Control                             /mtx/05/mix/fader
    FB_Processor 					    /mtx/05/mix/fader
WidgetEnd

Widget Matrix_Fader6
    Control                             /mtx/06/mix/fader
    FB_Processor 					    /mtx/06/mix/fader
WidgetEnd


//----------------------------------------------------------------
// MATRIX MUTES	   @@@@ NB: .zon FILES REQUIRE "InvertFB" MODIFIER	
//----------------------------------------------------------------

Widget Matrix_Mute1
    Control                             /mtx/01/mix/on
    FB_Processor 					    /mtx/01/mix/on
WidgetEnd

Widget Matrix_Mute2
    Control                             /mtx/02/mix/on
    FB_Processor 					    /mtx/02/mix/on
WidgetEnd

Widget Matrix_Mute3
    Control                             /mtx/03/mix/on
    FB_Processor 					    /mtx/03/mix/on
WidgetEnd

Widget Matrix_Mute4
    Control                             /mtx/04/mix/on
    FB_Processor 					    /mtx/04/mix/on
WidgetEnd

Widget Matrix_Mute5
    Control                             /mtx/05/mix/on
    FB_Processor 					    /mtx/05/mix/on
WidgetEnd

Widget Matrix_Mute6
    Control                             /mtx/06/mix/on
    FB_Processor 					    /mtx/06/mix/on
WidgetEnd






//----------------------------------------------------------------
// SELECT  		@@@@ ARGGHHH STILL AINT WORKING
//              @@@@ LAST THING TO CODE EVENTUALLY :)			
//----------------------------------------------------------------

/Widget Select
/	Control								/-stat/selidx  //@@@@ WITH int32 PARAM FOR TRACK NUMBER (Starting from index 0 !!!!)
/	FB_IntProcessor						/-stat/selidx
/WidgetEnd
Wow, amazing how, once things start to come together, it really snowballs !
__________________
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 09-15-2022, 11:23 PM   #20058
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by UNdark View Post
I'm just trying to get my head round the value of toggling in and out of zones.
As each zone can be selected by a dedicated button and globalview is the general return zone , it feels like options are lost for the zone buttons not gained..
"Hold+Send" to give a different view of send envelopes/parameters/anything/ is not possible as it doubles up as essentially, pressing GlobalView.
Hold+any zone change button isn't possible, as far as i can work, maybe i'm missing it.
To quote Winston Churchill "'Never, have so many features, been crammed onto so few... buttons"
Yep, that's what he said. Would have said.. if there wasn't a war... and he was working on CSI.
Please correct me if i'm overlooking the relevance of toggling these, compared to simply switching by using the next zone's button. Maybe it opens other features i'm not seeing - If not, Winston and myself, really think we should be maximising our assets..
Well, a lot of folks like the press to enter, press to leave paradigm.

However, I certainly see things from your perspective too !

Maybe we should add another "hidden" option, like AutoScan, to do what you want:

Code:
Version 2.0

//AutoScan

NoToggleZones

MidiSurface "XTouch Universal" 12 11 
MidiSurface "SCE24" 11 10 
OSCSurface "iPhone" 8000 9000 168.192.2.1

Page "HomePage"
"XTouch Universal" 8 0 "X-Touch.mst" "X-Touch"
perhaps with a better name, but you get the idea.
__________________
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 09-15-2022, 11:49 PM   #20059
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by Geoff Waddington View Post
Well, a lot of folks like the press to enter, press to leave paradigm.

However, I certainly see things from your perspective too !

Maybe we should add another "hidden" option, like AutoScan, to do what you want:

Code:
Version 2.0

//AutoScan

NoToggleZones

MidiSurface "XTouch Universal" 12 11 
MidiSurface "SCE24" 11 10 
OSCSurface "iPhone" 8000 9000 168.192.2.1

Page "HomePage"
"XTouch Universal" 8 0 "X-Touch.mst" "X-Touch"
perhaps with a better name, but you get the idea.
That sounds good thanks Geoff. I have been moving further this morning with emulating the V1.1 i had on V2. One strange thing, i guess because they are toggles, but non of the zone buttons comply with certain reaper actions..hoping i'm just being oblivious to something, but :
Code:
    Send      Reaper  40400                                                       // TRIM/READ        
    Send      Reaper  41150                                                       // Hide envelopes ALL tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK 
    Send      Reaper  _SWSTL_SHOWALL                                              // SWS: Show all tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK                             // SWS/BR: Show volume send envelopes for selected tracks
    Send      //Reaper  _RS442c61972c3d71aaa886a5a47d809df69645bffa               // Script: cfillion_Select destination tracks of selected tracks sends recursively.lua
    Send      Reaper  //_SWSTL_HIDEUNSEL                                          // SWS: Hide unselected track(s)
    Send      Reaper  40723                                                       // 	View: Expand selected track height, minimize others
    Send      Reaper  _SWS_VZOOMFITMIN                                            // SWS: Vertical zoom to selected tracks, minimize others
    Send      Reaper  _BR_UNSEL_ENV                                               // SWS/BR: Unselect envelope
Once i have the send envelope tracks "shown" via the send button, when going to the FX/GlobalView/Receive/ I would use an action to hide the send envelopes. As with going to the FX zone, show all fx envelopes, GlobalView - hide all envelopes. Oddly the envelopes won't clear - the sends will show, but not hide when going to the fx zone or Globalview. The action is correct:
Code:
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
I even repeat it at the end but it doesn't function - can't work out why though..
Should i post this sort of thing to the other thread? I don't want to obstruct the printing press!
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-15-2022, 11:59 PM   #20060
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by UNdark View Post
That sounds good thanks Geoff. I have been moving further this morning with emulating the V1.1 i had on V2. One strange thing, i guess because they are toggles, but non of the zone buttons comply with certain reaper actions..hoping i'm just being oblivious to something, but :
Code:
    Send      Reaper  40400                                                       // TRIM/READ        
    Send      Reaper  41150                                                       // Hide envelopes ALL tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK 
    Send      Reaper  _SWSTL_SHOWALL                                              // SWS: Show all tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK                             // SWS/BR: Show volume send envelopes for selected tracks
    Send      //Reaper  _RS442c61972c3d71aaa886a5a47d809df69645bffa               // Script: cfillion_Select destination tracks of selected tracks sends recursively.lua
    Send      Reaper  //_SWSTL_HIDEUNSEL                                          // SWS: Hide unselected track(s)
    Send      Reaper  40723                                                       // 	View: Expand selected track height, minimize others
    Send      Reaper  _SWS_VZOOMFITMIN                                            // SWS: Vertical zoom to selected tracks, minimize others
    Send      Reaper  _BR_UNSEL_ENV                                               // SWS/BR: Unselect envelope
Once i have the send envelope tracks "shown" via the send button, when going to the FX/GlobalView/Receive/ I would use an action to hide the send envelopes. As with going to the FX zone, show all fx envelopes, GlobalView - hide all envelopes. Oddly the envelopes won't clear - the sends will show, but not hide when going to the fx zone or Globalview. The action is correct:
Code:
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
I even repeat it at the end but it doesn't function - can't work out why though..
Should i post this sort of thing to the other thread? I don't want to obstruct the printing press!
Perhaps MixMonkey and/or Funkybot will have some thoughts on that, I will investigate as well.

Posting in this thread is entirely appropriate, your use cases often lead to design consideration discussions.

BTW, my very favourite Winston Churchill-ism:

"When Winston Churchill was chastised for ending a sentence with a preposition, he wittily responded. 'This is the type of arrant pedantry up with which I will not put.' Churchill's retort illustrates that attempts to avoid ending a sentence with a preposition can be laboured and ludicrous."
__________________
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 09-16-2022, 03:20 AM   #20061
Navelpluisje
Human being with feelings
 
Navelpluisje's Avatar
 
Join Date: Mar 2020
Location: IJsselstein, Netherlands
Posts: 435
Default

Quote:
Originally Posted by UNdark View Post
That sounds good thanks Geoff. I have been moving further this morning with emulating the V1.1 i had on V2. One strange thing, i guess because they are toggles, but non of the zone buttons comply with certain reaper actions..hoping i'm just being oblivious to something, but :
Code:
    Send      Reaper  40400                                                       // TRIM/READ        
    Send      Reaper  41150                                                       // Hide envelopes ALL tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK 
    Send      Reaper  _SWSTL_SHOWALL                                              // SWS: Show all tracks
    Send      Reaper  _BR_SHOW_SEND_ENV_VOL_SEL_TRACK                             // SWS/BR: Show volume send envelopes for selected tracks
    Send      //Reaper  _RS442c61972c3d71aaa886a5a47d809df69645bffa               // Script: cfillion_Select destination tracks of selected tracks sends recursively.lua
    Send      Reaper  //_SWSTL_HIDEUNSEL                                          // SWS: Hide unselected track(s)
    Send      Reaper  40723                                                       // 	View: Expand selected track height, minimize others
    Send      Reaper  _SWS_VZOOMFITMIN                                            // SWS: Vertical zoom to selected tracks, minimize others
    Send      Reaper  _BR_UNSEL_ENV                                               // SWS/BR: Unselect envelope
Once i have the send envelope tracks "shown" via the send button, when going to the FX/GlobalView/Receive/ I would use an action to hide the send envelopes. As with going to the FX zone, show all fx envelopes, GlobalView - hide all envelopes. Oddly the envelopes won't clear - the sends will show, but not hide when going to the fx zone or Globalview. The action is correct:
Code:
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
I even repeat it at the end but it doesn't function - can't work out why though..
Should i post this sort of thing to the other thread? I don't want to obstruct the printing press!
Don't you need to add the Reaper action?
Code:
Plugin      Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
__________________
Created ReaSonus FaderPort: Documentation and Download from Github. Report Issues
Created Reapinger BCF2000: Documentation and Download from Reaper Stash
Donations: Buy me a coffee or beer or buy one of my shirts in Europe or North America

Last edited by Navelpluisje; 09-16-2022 at 06:01 AM.
Navelpluisje is offline   Reply With Quote
Old 09-16-2022, 05:22 AM   #20062
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by Navelpluisje View Post
Don't you need to add the Reaper action?
Code:
Plugin      Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK

As in : Plugin Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK

That hides the send envelopes in v1.1...
I didn't expand/add to much of the programming for the other zone buttons above. Initially , i'm finding I can't close the send envelopes, but this behaviour continues in other zones as i try to close other envelopes.
All the programming worked correctly in 1.1 - which reaper action do you mean please?
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-16-2022, 05:25 AM   #20063
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by UNdark View Post
As in : Plugin Reaper _BR_HIDE_SEND_ENV_SEL_ALL_TRACK

That hides the send envelopes in v1.1...
I didn't expand/add to much of the programming for the other zone buttons above. Initially , i'm finding I can't close the send envelopes, but this behaviour continues in other zones as i try to close other envelopes.
All the programming worked correctly in 1.1 - which reaper action do you mean please?
Also to test more simply, i used
Plugin Reaper //_BR_SHOW_FX_ENV_SEL_TRACK
to negate the fx envelopes, i know i should use "/" but thats a bit of a bad habit... still works though. Maybe you mean that?
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-16-2022, 05:25 AM   #20064
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Quote:
Originally Posted by UNdark View Post
which reaper action do you mean please?
I think he means add the word "Reaper" to the Action.
MixMonkey is offline   Reply With Quote
Old 09-16-2022, 06:01 AM   #20065
Navelpluisje
Human being with feelings
 
Navelpluisje's Avatar
 
Join Date: Mar 2020
Location: IJsselstein, Netherlands
Posts: 435
Default

Quote:
Originally Posted by MixMonkey View Post
I think he means add the word "Reaper" to the Action.
That's exactly what I meant. I edited the post and highlighted the missing actions
__________________
Created ReaSonus FaderPort: Documentation and Download from Github. Report Issues
Created Reapinger BCF2000: Documentation and Download from Reaper Stash
Donations: Buy me a coffee or beer or buy one of my shirts in Europe or North America
Navelpluisje is offline   Reply With Quote
Old 09-16-2022, 06:21 AM   #20066
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by Navelpluisje View Post
That's exactly what I meant. I edited the post and highlighted the missing actions
Oh God.
Must have forgotten the tablets this morning.
Thanks!
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-16-2022, 06:26 AM   #20067
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by MixMonkey View Post
I think he means add the word "Reaper" to the Action.
Thank - i looked into the v1.1 and the "reaper" is in that one. must have done that while trying to get similar behaviour in 2. It's on another drive and o/s -
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-16-2022, 06:29 AM   #20068
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Quote:
Originally Posted by UNdark View Post
Oh God.
Must have forgotten the tablets this morning.
Thanks!
Stare at Zone files for long enough, you will eventually go blind...

I'd delete these two lines as well:
Code:
Plugin      Reaper  _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
MixMonkey is offline   Reply With Quote
Old 09-16-2022, 06:32 AM   #20069
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,246
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Yes colored scribble strips (I posted about this earlier, need some bread crumbs to implement colored scribble stripts ala X32 OSC messages).

No lamps/lights, that can be independently set via feed back.

No Touch, on anything physical. So agreed automation is going to be X32 exempt (maybe later if I can figure a way to do it).
Thanks Roy and Geoff

I wondered whether bringing my rarely used X32 up into my mix/edit room would save me having to buy another controller. But if Automation won't work well (due to lack of Fader/Encoder Touch messages) then it's not going to be ideal.
Add to that the fact it would have to sit on a desk to my side, whereas there's space to fit an X Touch in front of me, that probably seals the deal in favour of getting the X Touch.

Cheers
Andy
andyp24 is offline   Reply With Quote
Old 09-16-2022, 08:35 AM   #20070
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

New build is up.

CSI Exp.zip

Compound modifiers now fully optimized.

Engage none, engage all 9, its the same -- about 2 milliseconds per pass for the X-Touch Universal on the Mac M1 mini, pretty much the same as we've always had, except we now have full support for partial modifiers.

Now we can state the rules.

CSI searches for the most complex modifier combo first, so if you have these engaged:

Code:
Shift
Alt
Global
and you have a Zone with these:

Code:
    Shift+SomeWidget
    Alt+SomeWidget
    Shift+Alt+SomeWidget
this gets executed:

Code:
    Shift+Alt+SomeWidget
and in this example Zone, partial fallback means this:

Code:
    Global
is ignored.

Of course, Global is likely used in another Zone, that's the point of partial fallback, after all
__________________
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; 09-16-2022 at 08:48 AM.
Geoff Waddington is offline   Reply With Quote
Old 09-16-2022, 08:38 AM   #20071
UNdark
Human being with feelings
 
Join Date: Jan 2017
Posts: 280
Default

Quote:
Originally Posted by MixMonkey View Post
Stare at Zone files for long enough, you will eventually go blind...

I'd delete these two lines as well:
Code:
Plugin      Reaper  _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
Plugin      Reaper  _RSb99f87139af47dddf76c07d082d80e52ef6d5be4 //close 2
Plugin      Reaper  _RS6c41418cc3cc9330a343a990490ef047fe454f2f //close 13
Plugin      Reaper  _RSca2132256be5f19d0e04fc859b9b37142f7711c6 //close 14
Plugin      Reaper  _RSe0a554412a0609812cb56675ff3b76dad2519c52 //close 11
Plugin      Reaper  _RS9010160f3074cf193454c5cbf63f65a1df49cfc3 //close 3
Plugin      Reaper  _RSaae7c5ebca8dfb04689a5ef10ab5ecaa365825f6 //CLOSE 15
Plugin      Reaper  _RSfd6d1d6ef2f457ae409b977a52c7a883a131644b // archie close toolbar 16
Plugin      Reaper  40456                                       // Screenset: Load window set #03
Plugin      Reaper  _S&M_WNCLS3                                 // SWS/S&M: Close all floating FX windows               
Plugin      Reaper  40150                                       // play cursor
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK                    // SWS/BR: Show all FX envelopes for selected tracks
Plugin      Reaper  40031                                       // View: Zoom time selection
Plugin      GoTrackFXMenu  
Plugin      _BR_HIDE_SEND_ENV_SEL_ALL_TRACK
mm - i'll actually just remove the forward slashes. - the idea of that one is to take into the fxzone / hide send envelopes and show all fx envelopes - i did that to remove another parameter so see what the problem was. As the problem was me, i'll re instate it
__________________
Mac Mini 2.3 quad 16gb ram os x - High Sierra + Catalina.... sort of.... nearly....
UNdark is offline   Reply With Quote
Old 09-16-2022, 08:51 AM   #20072
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by UNdark View Post
mm - i'll actually just remove the forward slashes. - the idea of that one is to take into the fxzone / hide send envelopes and show all fx envelopes - i did that to remove another parameter so see what the problem was. As the problem was me, i'll re instate it
Sorry, I admit, I'm not following this closely enough, as I'm working on compound modifiers, does that mean you can still live with press in/press out behaviour, or do you still need to be able to opt 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
Geoff Waddington is offline   Reply With Quote
Old 09-16-2022, 09:13 AM   #20073
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,144
Default

Quote:
Originally Posted by UNdark View Post
mm - i'll actually just remove the forward slashes. - the idea of that one is to take into the fxzone / hide send envelopes and show all fx envelopes - i did that to remove another parameter so see what the problem was. As the problem was me, i'll re instate it
This is one of the things I called out in our PM's, but this line in particular sticks out to me as being potentially problematic.
Code:
Plugin      Reaper //_BR_SHOW_FX_ENV_SEL_TRACK       // SWS/BR: Show...
You're telling CSI "hey, there's a Reaper action coming" then there's a set of slashes before the action name "_BR_SHOW_FX_ENV_SEL_TRACK". So you left it kind of open. The action isn't commented out, because the parser will expect a Reaper action, but that action is not actually defined.

If you meant to comment out the whole line, then comment out the whole line by putting a single forward slash at the start like this.

Code:
/ Plugin      Reaper _BR_SHOW_FX_ENV_SEL_TRACK       // SWS/BR: Show...
I would advise strongly against commenting out the line halfway through. That's not the correct syntax for commenting. Might not even do any harm, but it's definitely not helping from a troubleshooting perspective.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-16-2022, 10:12 AM   #20074
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 397
Default

Quote:
Originally Posted by Funkybot View Post
I would advise strongly against commenting out the line halfway through. That's not the correct syntax for commenting. Might not even do any harm, but it's definitely not helping from a troubleshooting perspective.
Definitely something to steer clear of.
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-09-04)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is online now   Reply With Quote
Old 09-16-2022, 11:18 AM   #20075
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

I have been following the posts for MCU Midi display color stuff.

Since I already have Reaper track names ---> X32 scribble strips working,
I would like next to add X32 scribble strip colors to follow the track coloring in Reaper project.

Bread crumbs it you please, when you have a chance.
Have a look at OSC_FeedbackProcessor.

Then, create a subclass -- maybe call it OSC_X32FeedbackProcessor, and override the SetColorValue method:

Code:
class OSC_X32FeedbackProcessor : public OSC_FeedbackProcessor
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
    OSC_X32FeedbackProcessor(OSC_ControlSurface* surface, Widget* widget, string oscAddress) : FeedbackProcessor(widget), surface_(surface), oscAddress_(oscAddress) {}
    ~OSC_X32FeedbackProcessor() {}

    virtual string GetName() override { return "OSC_X32FeedbackProcessor"; }

    virtual void SetColorValue(rgba_color color) override;
};
Here's the one from OSC_FeedbackProcessor:

Code:
void OSC_FeedbackProcessor::SetColorValue(rgba_color color)
{
    if(lastColor_.r != color.r)
        surface_->SendOSCMessage(this, oscAddress_ + "/rColor", (double)color.r);
    
    if(lastColor_.g != color.g)
        surface_->SendOSCMessage(this, oscAddress_ + "/gColor", (double)color.g);
    
    if(lastColor_.b != color.b)
        surface_->SendOSCMessage(this, oscAddress_ + "/bColor", (double)color.b);
    
    if(lastColor_.a != color.a)
        surface_->SendOSCMessage(this, oscAddress_ + "/aColor", (double)color.a);

    lastColor_ = color;
}
you will need something along these lines:

Code:
void OSC_X32FeedbackProcessor::SetColorValue(rgba_color color)
{

 // code here converts from rgba to your required value and
 // calls surface_->SendOSCMessage() with appropriate value
 // See the midi widgets for some examples of how to 
 // convert colors from rgba to other formats


 int convertedValue == algo to convert from rgba.

 // comparing with double is fine here 
 // since the convertedValue numbers are low single digits
 if(lastDoubleValue_ != convertedValue) 
 {
    lastDoubleValue_ = convertedValue;
    surface_->SendOSCMessage(this, oscAddress_, convertedValue);
 }
}
__________________
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 09-16-2022, 11:21 AM   #20076
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by andyp24 View Post
Thanks Roy and Geoff

I wondered whether bringing my rarely used X32 up into my mix/edit room would save me having to buy another controller. But if Automation won't work well (due to lack of Fader/Encoder Touch messages) then it's not going to be ideal.
Add to that the fact it would have to sit on a desk to my side, whereas there's space to fit an X Touch in front of me, that probably seals the deal in favour of getting the X Touch.

Cheers
Andy
Very happy with my X-touch Universal !
__________________
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 09-16-2022, 11:43 AM   #20077
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Geoff,

I would like to merge some of my source code modifications for the X32 with CSI source.

Spceifically there are a few areas that should be merged.

But, baby steps first....I would like to start with:


The code I have implemented for this may not be most elegant, but it does work.
You may find a simpler way to achieve the same

So here goes: in "control_surface_integrator.cpp"

Code:
....
if(tokens.size() > 1) // ignore comment lines and blank lines
{
    if (tokens[0] == MidiSurfaceToken && tokens.size() == 4)
        midiSurfaces[tokens[1]] = new Midi_ControlSurfaceIO(tokens[1], GetMidiInputForPort(atoi(tokens[2].c_str())), GetMidiOutputForPort(atoi(tokens[3].c_str())));
    else if (tokens[0] == OSCSurfaceToken && tokens.size() == 5)
    {
        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        // START: MODIFICATION
        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        shared_ptr<oscpkt::UdpSocket> inputSocket = GetInputSocketForPort(tokens[1], stoi(tokens[2]));
        shared_ptr<oscpkt::UdpSocket> outputSocket;
        if (tokens[2] != tokens[3])
            outputSocket = GetOutputSocketForAddressAndPort(tokens[1], tokens[4], stoi(tokens[3]));
        else
            outputSocket = GetOutputSocketFromInputSocket(tokens[1], tokens[4], stoi(tokens[3]));
        oscSurfaces[tokens[1]] = new OSC_ControlSurfaceIO(tokens[1], inputSocket, outputSocket);
        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        // END: MODIFICATION
        //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    }
....
}
Code:
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@ START: MODIFICATION
//@@@@        SINGLE SOCKET - USED WHEN SEND AND RECEIVE PORTS ARE THE SAME
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
shared_ptr<oscpkt::UdpSocket> GetOutputSocketFromInputSocket(string surfaceName, string surfaceAddress, int surfacePort)
{
    // INPUT SOCKET MUST BE CREATED FIRST
    if (inputSockets_.count(surfaceName) == 0)
    {
        OutputDebugString(" GetOutputSocketFromInputSocket() -> input socket must be created first");
        return nullptr;
    }

    // WHEN OUTPUT SOCKET ALREADY CREATED - DONE ....
    if (outputSockets_.count(surfaceName) > 0)
    {
        OutputDebugString(" GetOutputSocketFromInputSocket() -> output socket already defined");
        return outputSockets_[surfaceName];
    }

    // GET INPUT SOCKET
    shared_ptr<oscpkt::UdpSocket> inputSocket = inputSockets_[surfaceName];

    // ADD TARGET SURFACE IP TO INPUT's remote_addr
    struct addrinfo hints;
    struct addrinfo* ptr;
    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_INET;      // IPV4
    hints.ai_socktype = SOCK_DGRAM; // UDP
    hints.ai_flags = 0x00000001;    // socket address is intended for bind
    int err = getaddrinfo(surfaceAddress.c_str(), to_string(surfacePort).c_str(), &hints, &ptr);
    if (err != 0)
    {
        OutputDebugString(" GetOutputSocketFromInputSocket() -> getaddrinfo() returned an error");
        return nullptr;
    }
    memcpy(&(inputSocket->remote_addr), (void*)(ptr->ai_addr), ptr->ai_addrlen);

    // DUPLICATE INPUT SOCKET TO OUTPUT SOCKET
    shared_ptr<oscpkt::UdpSocket> outputSocket = * new shared_ptr<oscpkt::UdpSocket>;
    memcpy((void*)&outputSocket, (void*)&inputSocket, sizeof(oscpkt::UdpSocket));

    // SUCCESS
    outputSockets_[surfaceName] = outputSocket;
    return outputSocket;
}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@ END: MODIFICATION
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Thoughts?

The next step would be to use Run() and about every eight seconds Run() would send OSC "/xremote" to the X32
My current source code mods for this works perfectly, but is X32/MIDAS specific and needs to be more agnostic.
Anyhoo this second step can wait until you are satisfied with implementing baby step 1.
Now I see why I was having so much trouble understanding this.

Please change this:

Code:
new OSC_ControlSurfaceIO(tokens[1], GetInputSocketForPort(tokens[1], atoi(tokens[2].c_str())), GetOutputSocketForAddressAndPort(tokens[1], tokens[4], atoi(tokens[3].c_str())));
to this:

Code:
new OSC_ControlSurfaceIO(tokens[1], atoi(tokens[2].c_str(), atoi(tokens[3].c_str(), tokens[4]);
Then handle everything in the constructor, much more properly encapsulated.
__________________
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 09-16-2022, 06:19 PM   #20078
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 665
Default

Quote:
Originally Posted by Geoff Waddington View Post
Now I see why I was having so much trouble understanding this.

Please change this:

Code:
new OSC_ControlSurfaceIO(tokens[1], GetInputSocketForPort(tokens[1], atoi(tokens[2].c_str())), GetOutputSocketForAddressAndPort(tokens[1], tokens[4], atoi(tokens[3].c_str())));
to this:

Code:
new OSC_ControlSurfaceIO(tokens[1], atoi(tokens[2].c_str(), atoi(tokens[3].c_str(), tokens[4]);
Then handle everything in the constructor, much more properly encapsulated.
Thanks Geoff,

My previously posted code was quick and dirty - coded about 8 months ago -and was proof of concept - it worked.

Starting to clean that up tonight, now that I have gained so much more knowledge of the source code

I think you will be pleased enough with the result to merge into 2.0 exp build for baby step 1

Cheers,
Roy
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 09-16-2022 at 08:44 PM.
jacksoonbrowne is offline   Reply With Quote
Old 09-17-2022, 02:07 AM   #20079
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Thanks Geoff,

My previously posted code was quick and dirty - coded about 8 months ago -and was proof of concept - it worked.

Starting to clean that up tonight, now that I have gained so much more knowledge of the source code

I think you will be pleased enough with the result to merge into 2.0 exp build for baby step 1

Cheers,
Roy
Cool, looking forward to it, X32 support is coming along nicely !
__________________
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 09-17-2022, 02:27 AM   #20080
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,570
Default

New build is up.

CSI Support Files.zip

CSI Exp.zip

Added support for .mst Step Size, Encoder Steps, and Acceleration Values.

To use these optional items you need to state a Widget class for the Widget.

If found, it will use the value(s) for that class:

Code:
StepSize
    Rotary 0.003
    JogWheel 0.003
StepSizeEnd

EncoderSteps
    Rotary   [ < 41-47 > 01-07 ]
    JogWheel [ < 41-47 > 01-07 ]
EncoderStepsEnd

AccelerationValues
    Rotary   0.0006 0.001 0.002 0.003 0.008 0.04 0.08
    JogWheel 0.0006 0.001 0.002 0.003 0.008 0.04 0.08
AccelerationValuesEnd

    ...

Widget Rotary2 Rotary
	Encoder b0 11 7f
	FB_Encoder b0 11 7f
WidgetEnd

    ...
[edit] Only Rotary supported for now, will add others if this works out

This is particularly useful for EZFXZones.

If there is a step size defined for the parameter, it will be used.
If not, CSI will attempt to obtain the step size from the Widget.

If there are acceleration values for the parameter, they will be used.
If not, and there are default acceleration values defined, they will be used.
If not, CSI will attempt to obtain the acceleration values from the Widget.

If there are step sizes for the parameter, they will be used.
If not, CSI will attempt to obtain the step sizes from the ZoneStepSizes folder.

Now, if we can come up with a way to calculate a reasonable Tick Count value from step size, acceleration values, and step sizes, we would only have to manually define range and colors for a parameter.

Well on our way to auto mapping for FX !
__________________
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 07:57 PM.


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