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

Reply
 
Thread Tools Display Modes
Old 09-13-2022, 06:56 PM   #20001
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by jacksoonbrowne View Post
In case anyone is interested in X/MIDAS Console

X32.ost ( TLDR )
Code:
//******************************************************
//******************************************************
// X32 - Widget FILE FOR BEHRINGER X32/MIDAS FAMILY			
//******************************************************
//******************************************************


//------------------------------------------------------
// SELECT  		@@@@ ARGGHHH GET TO THIS LAST			
//------------------------------------------------------

/Widget Widget_Select1	
/	Control								/-stat/selidx
/	FB_IntProcessor						/-stat/selidx
/WidgetEnd
/
/Widget Widget_Select1	
/	Control								/-stat/selidx
/	FB_IntProcessor						/-stat/selidx
/WidgetEnd



//------------------------------------------------------
//------------------------------------------------------
//------------------------------------------------------
//------------------------------------------------------
//------------------------------------------------------
// EVERY THING BELOW IS WORKING							
//------------------------------------------------------
//------------------------------------------------------
//------------------------------------------------------
//------------------------------------------------------



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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Widget Widget_Pan31
	Control								/ch/31/mix/pan
	FB_Processor						/ch/31/mix/pan
WidgetEnd
	
Widget Widget_Pan32
	Control								/ch/32/mix/pan
	FB_Processor						/ch/32/mix/pan
WidgetEnd



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



//------------------------------------------------------
// TRANSPORT - X32 ASSIGNABLE BANK A					
//------------------------------------------------------

/Widget Widget_Assignable_1
/	Control 							/-stat/userpar/1/value
/WidgetEnd
/
/Widget Widget_Assignable_2
/	Control 							/-stat/userpar/2/value
/WidgetEnd
/
/Widget Widget_Assignable_3
/	Control 							/-stat/userpar/3/value
/WidgetEnd
/
/Widget Widget_Assignable_4
/	Control 							/-stat/userpar/4/value
/WidgetEnd
/
/Widget Widget_Assignable_5
/	Control 							/-stat/userpar/5/value
/WidgetEnd
/
/Widget Widget_Assignable_6	
/	Control 							/-stat/userpar/6/value
/WidgetEnd
/
/Widget Widget_Assignable_7
/	Control 							/-stat/userpar/7/value
/WidgetEnd
/
/Widget Widget_Assignable_8
/	Control 							/-stat/userpar/8/value
/WidgetEnd


//------------------------------------------------------
// TRANSPORT - X32 ASSIGNABLE BANK B					
//------------------------------------------------------

/Widget Widget_Assignable_9
/	Control 							/-stat/userpar/9/value
/WidgetEnd
/
/Widget Widget_Assignable_10
/	Control 							/-stat/userpar/10/value
/WidgetEnd
/
/Widget Widget_Assignable_11
/	Control 							/-stat/userpar/11/value
/WidgetEnd
/
/Widget Widget_Assignable_12
/	Control 							/-stat/userpar/12/value
/WidgetEnd
/
/Widget Widget_Assignable_13
/	Control 							/-stat/userpar/13/value
/WidgetEnd
/
/Widget Widget_Assignable_14
/	Control 							/-stat/userpar/14/value
/WidgetEnd
/
/Widget Widget_Assignable_15
/	Control 							/-stat/userpar/15/value
/WidgetEnd
/
/Widget Widget_Assignable_16
/	Control 							/-stat/userpar/16/value
/WidgetEnd


//------------------------------------------------------
// TRANSPORT - X32 ASSIGNABLE BANK C					
//------------------------------------------------------

Widget Widget_Play
	Control 							/-stat/userpar/17/value
WidgetEnd

Widget Widget_Stop	
	Control 							/-stat/userpar/18/value
WidgetEnd

Widget Widget_Rewind
	Control 							/-stat/userpar/19/value
WidgetEnd

Widget Widget_FastForward
	Control 							/-stat/userpar/20/value
WidgetEnd

Widget Widget_GotoStartOfProject
	Control 							/-stat/userpar/21/value
WidgetEnd

Widget Widget_GotoEndOfProject
	Control 							/-stat/userpar/22/value
WidgetEnd

--------------- @@@@ UNUSED ----------------

Widget Widget_23
	Control 							/-stat/userpar/23/value
WidgetEnd

Widget Widget_24
	Control 							/-stat/userpar/24/value
WidgetEnd

Home zon
Code:
Zone "Home"
    IncludedZones
        "MasterTrack"
        "Track" 
        "Transport"
    IncludedZonesEnd
ZoneEnd
MasterTrack zon
Code:
Zone "MasterTrack"
    Widget_MasterFader          TrackVolume		
    InvertFB+Widget_MasterMute  TrackMute
    Widget_MasterPan            TrackPan
ZoneEnd

Track zon
Code:
Zone "Track"
    Widget_Fader|               TrackVolume
    Widget_Pan|                 TrackPan
    InvertFB+Widget_Mute|       TrackMute
    Widget_ScribbleStrip|       TrackNameDisplay  // REAPER TO X32 ONLY
ZoneEnd
Transport zon
Code:
Zone "Transport"
    Widget_Play                 Play              // X32 ASSIGNABLE BANK C-5
    Widget_Stop                 Stop              // X32 ASSIGNABLE BANK C-6
    Widget_FastForward          FastForward       // X32 ASSIGNABLE BANK C-7
    Widget_Rewind               Rewind            // X32 ASSIGNABLE BANK C-8
    Widget_GotoStartOfProject   Reaper 40042      // X32 ASSIGNABLE BANK C-9
    Widget_GotoEndOfProject     Reaper 40043      // X32 ASSIGNABLE BANK C-10
ZoneEnd
Great stuff, finally operational !!

Congrats !!

Just curious about one thing though.

Although there is no enforcement, the ad hoc CSI standard is to name Widgets things like Fader1, Select1, etc.

All CSI files I've seen use this approach.

Wondering why you are prefixing everything with Widget_.

This seems incongruous to me, since CSI Actions do not start with Action_, and in Zone files, the context makes it very clear what's what, since the pattern is extremely simple.

Code:
    Fader1 TrackVolume
instead of:
Code:
    Widget_Fader1 Action_TrackVolume
Once again just curious, perhaps you have a Master plan that requires this convention.
__________________
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-13-2022, 11:59 PM   #20002
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 656
Default

Quote:
Originally Posted by Geoff Waddington View Post
Great stuff, finally operational !!

Congrats !!

Just curious about one thing though.

Although there is no enforcement, the ad hoc CSI standard is to name Widgets things like Fader1, Select1, etc.

All CSI files I've seen use this approach.

Wondering why you are prefixing everything with Widget_.

This seems incongruous to me, since CSI Actions do not start with Action_, and in Zone files, the context makes it very clear what's what, since the pattern is extremely simple.

Code:
    Fader1 TrackVolume
instead of:
Code:
    Widget_Fader1 Action_TrackVolume
Once again just curious, perhaps you have a Master plan that requires this convention.

No Master plan, just makes it easier for me during my X32/MIDAS CSI coding Sojourn .

Now that I have all the basic source code modifications to support the X32/MIDAS done, I am going to edit and repost my .ost and .zon files conforming to the ad hoc CSI style shorty
Stay tuned ....
__________________
AKA: Roy Wallingford

Last edited by jacksoonbrowne; 09-14-2022 at 12:05 AM.
jacksoonbrowne is online now   Reply With Quote
Old 09-14-2022, 12:16 AM   #20003
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by jacksoonbrowne View Post
No Master plan, just makes it easier for me during my X32/MIDAS CSI coding Sojourn .

Now that I have all the basic source code modifications to support the X32/MIDAS done, I am going to edit and repost my .ost and .zon files conforming to the ad hoc CSI style shorty
Stay tuned ....
Cool, just added MotorizedFaderWithoutTouch_CSIMessageGenerator and committed and pushed.
__________________
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-14-2022, 01:44 AM   #20004
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,242
Default

Quote:
Originally Posted by MixMonkey View Post
Anyone using seventeen modifiers at once should not post on the thread and instead seek out professional help
I'm planning to change my setup so that every CSI Action requires at least 15 modifiers, and hire two mix assistants to hold them down for me.
andyp24 is offline   Reply With Quote
Old 09-14-2022, 01:46 AM   #20005
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,242
Default

Quote:
Originally Posted by jacksoonbrowne View Post
No Master plan, just makes it easier for me during my X32/MIDAS CSI coding Sojourn .

Now that I have all the basic source code modifications to support the X32/MIDAS done, I am going to edit and repost my .ost and .zon files conforming to the ad hoc CSI style shorty
Stay tuned ....
Hi Jacksoon/Roy

I have an X32, and would be interested in using it as a fader controller (if nothing else) but I have virtually no understanding of OSC. Is there some documentation on how to set this up, alongside the "usual" MIDI controlled devices?

Thanks
Andy
andyp24 is offline   Reply With Quote
Old 09-14-2022, 01:55 AM   #20006
mat chat
Human being with feelings
 
mat chat's Avatar
 
Join Date: Feb 2021
Location: Paris, France
Posts: 299
Default

Quote:
Originally Posted by MixMonkey View Post
New XTouch Compact .mst. Both layers, channel buttons renamed to A,B,C and D from top to bottom respectively. Rotaries use new Encoder7Bit definition.
Cool thanks very much for this
Do you have any idea xhy the light on every button don't stay light when i use them as tracksolo or track mute?
__________________
Gros bisous
Mat
Reaper Stash
mat chat is offline   Reply With Quote
Old 09-14-2022, 05:56 AM   #20007
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by mat chat View Post
Cool thanks very much for this
Do you have any idea xhy the light on every button don't stay light when i use them as tracksolo or track mute?
ZIP up your CSI folder and I'll take a look
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 06:07 AM   #20008
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Changelog updated to capture the latest Exp changes: https://github.com/GeoffAWaddington/.../CSI-Changelog
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-14-2022, 06:12 AM   #20009
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Funkybot View Post
Changelog updated to capture the latest Exp changes: https://github.com/GeoffAWaddington/.../CSI-Changelog
Thanks FB, I was starting to lose track
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 06:56 AM   #20010
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Quote:
Originally Posted by MixMonkey View Post
Thanks FB, I was starting to lose track
Geoff's been on fire lately, so yes, it's becoming tough to keep up even visiting this thread multiple times a day. Not a complaint though.

But yeah, the wiki updates help me keep up with all the changes too! Note: I still need to incorporate the changes from the last official release, like EZFXZones, into the main wiki (right now they're only in the Change Log page) but will probably get to that over the weekend.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-14-2022, 07:36 AM   #20011
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Funkybot View Post
Geoff's been on fire lately, so yes, it's becoming tough to keep up even visiting this thread multiple times a day. Not a complaint though.

But yeah, the wiki updates help me keep up with all the changes too! Note: I still need to incorporate the changes from the last official release, like EZFXZones, into the main wiki (right now they're only in the Change Log page) but will probably get to that over the weekend.
The running EXP change log is super useful I wouldn’t worry about adding stuff to Wiki too quickly, you know how these things chop and change I think the Wiki should only reflect the standard build. The change log is sufficient for the EXP build.
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 07:48 AM   #20012
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by Funkybot View Post
Changelog updated to capture the latest Exp changes: https://github.com/GeoffAWaddington/.../CSI-Changelog
Great work as usual !!

One thing that should be added, the new modifiers -- Marker, Nudge, Zoom, Scrub -- are radio buttons, unless that's there and I missed it.

Also, purely a matter of taste, but I use this:

Code:
GlobalView                  Global
instead of what's in the example:

Code:
nameValue                    Global
__________________
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-14-2022, 07:49 AM   #20013
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by MixMonkey View Post
The running EXP change log is super useful I wouldn’t worry about adding stuff to Wiki too quickly, you know how these things chop and change I think the Wiki should only reflect the standard build. The change log is sufficient for the EXP build.
Yup, agree 100%.
__________________
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-14-2022, 08:00 AM   #20014
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Quote:
Originally Posted by Geoff Waddington View Post
Great work as usual !!

One thing that should be added, the new modifiers -- Marker, Nudge, Zoom, Scrub -- are radio buttons, unless that's there and I missed it.

Also, purely a matter of taste, but I use this:

Code:
GlobalView                  Global
instead of what's in the example:

Code:
nameValue                    Global
Updates made!

Follow up questions:

1. Is "Global" a radio-button style modifier too or is that a Global Modifier?

2. Does ClearAllModifiers clear all modifiers? Or just Global Modifiers?
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-14-2022, 08:28 AM   #20015
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by Funkybot View Post
Updates made!

Follow up questions:

1. Is "Global" a radio-button style modifier too or is that a Global Modifier?
Global is indeed global, the same as Shift, Alt, Flip, etc.

Quote:
Originally Posted by Funkybot View Post
2. Does ClearAllModifiers clear all modifiers? Or just Global Modifiers?
All, except Toggle and Touch, here's that actual source code:

Code:
    void ClearModifiers()
    {
        isShift_ = false;
        isOption_ = false;
        isControl_ = false;
        isAlt_ = false;
        isFlip_ = false;
        isGlobal_ = false;
        isMarker_ = false;
        isNudge_ = false;
        isZoom_ = false;
        isScrub_ = false;
    }
__________________
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-14-2022, 08:40 AM   #20016
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 394
Default

Quote:
Originally Posted by Geoff Waddington View Post
Global is indeed global, the same as Shift, Alt, Flip, etc.



All, except Toggle and Touch, here's that actual source code:

Code:
    void ClearModifiers()
    {
        isShift_ = false;
        isOption_ = false;
        isControl_ = false;
        isAlt_ = false;
        isFlip_ = false;
        isGlobal_ = false;
        isMarker_ = false;
        isNudge_ = false;
        isZoom_ = false;
        isScrub_ = false;
    }
Sorry if my question denotes not having studied the "Toggle" modifier enough, but I can't figure out why it's not on the ClearModifiers function...
__________________

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

Quote:
Originally Posted by MT4U View Post
Sorry if my question denotes not having studied the "Toggle" modifier enough, but I can't figure out why it's not on the ClearModifiers function...
Possibly we named it poorly

Toggle is typically used with a RotaryPush and could have been called ToggleChannel, but we opted for the shorter keyword

In the same way that we don't clear Touch in ClearModifiers, we don't clear Toggle.
__________________
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-14-2022, 11:22 AM   #20018
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Just a head's up Geoff, the "Buttons.zon" in the X-Touch support files looks like it's missing several sections and still references the Markers.zon even though the Marker button is assigned to the modifier.

If you'd like, I've got this version of a buttons.zon you can use that should be up to date with the latest changes.
Code:
Zone "Buttons"
    
//  Encoder Assign Buttons

    Track                       GoHome
    Track                       Reaper _S&M_WNCLS4          // Closes all(!) FX chain windows
    Track                       Reaper _S&M_WNCLS3          // Closes all(!) floating FX windows  
    Pan                         GoVCA
    EQ                          GoFolder
    Send                        GoSelectedTrackSend
    Global+Send                 GoTrackSend
    Plugin                      GoSelectedTrackFXMenu
    Global+Plugin               GoTrackFXMenu
    Instrument                  GoSelectedTrackReceive
    Global+Instrument           GoTrackReceive


//  Display Section

    nameValue                   NoAction
    AssignmentDisplay           GlobalModeDisplay 
    TimeDisplay                 MCUTimeDisplay
    smpteBeats                  CycleTimeDisplayModes

 
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  NoAction
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      NoAction
    Outputs                     NoAction
    User                        NoAction
           
// Function Buttons

    F1                          ToggleEnableFocusedFXParamMapping
    F2                          ToggleEnableFocusedFXMapping
    F3                          ToggleScrollLink
    F4                          NoAction
    F5                          NoAction
    F6                          NoAction
    F7                          NoAction
    F8                          NoAction
    
//  Modifiers

    Flip                        Flip
    Shift                       Shift
    Option                      Option
    Control                     Control
    Alt                         Alt     

// Automation Buttons

    Read                        TrackAutoMode 1
    Write                       TrackAutoMode 3
    Trim                        TrackAutoMode 0
    Touch                       TrackAutoMode 2
    Latch                       TrackAutoMode 4
    Group                       TrackAutoMode 5
    Global+Read                 GlobalAutoMode 1
    Global+Write                GlobalAutoMode 3
    Global+Trim                 GlobalAutoMode 0
    Global+Touch                GlobalAutoMode 2
    Global+Latch                GlobalAutoMode 4  
    Global+Group                GlobalAutoMode 5   

//  Utility Buttons

    Save                        SaveProject
    Undo                        Undo
    Hold+Undo                   Reaper 40072                // View: Show undo history window
    Shift+Undo                  Redo
    Cancel                      NoAction
    Enter                       NoAction
    
//  Transport Section

    Marker                      Marker
    Nudge                       Nudge
    Cycle                       CycleTimeline
    Drop                        Reaper 1157                 // Toggle snapping
    Replace                     Reaper 1155                 // Cycle ripple editing mode
    Click                       Reaper 40364                // Toggle metronome
    Shift+Click                 Reaper _SWS_AWCOUNTRECTOG   // Toggle count-in before recording
    Hold+Click                  Reaper 40363                // Show metronome settings
    Rewind                      Rewind   
    FastForward                 FastForward
    Stop                        Stop
    Hold+Stop                   Reaper 40042                // Go to start of project
    Play                        Play
    Record                      Record    
    Solo                        ClearAllSolo
    Option+Solo                 Reaper 40745                // Solo in front (dim solo)  

//  Banking 

    BankLeft                    TrackBank -8
    BankRight                   TrackBank 8
    ChannelLeft                 TrackBank -1
    ChannelRight                TrackBank 1

//  Navigation and Zoom
    
    Zoom                        Zoom
    
    Up                          Reaper _XENAKIOS_TVPAGEUP   // Xenakios/SWS: Scroll track view up (page)
    Down                        Reaper _XENAKIOS_TVPAGEDOWN	// Xenakios-SWS: Scroll track view down 
    Left                        Reaper _SWS_SCROLL_L10      // SWS: Scroll left 10%
    Right                       Reaper _SWS_SCROLL_R10      // SWS: Scroll right 10%
    
    Zoom+Up                     Reaper 40111                // Zoom in vertical                                            
    Zoom+Down                   Reaper 40112                // Zoom out vertical                                                       
    Zoom+Right                  Reaper 1012                 // Zoom in horizontal                                      
    Zoom+Left                   Reaper 1011                 // Zoom out horizontal                                     

    Marker+Up                   Reaper 40613                // Delete marker near cursor                                    
    Marker+Down                 Reaper 40157                // Insert marker at current or edit position                                      
    Marker+Right                Reaper 40173                // Go to next marker or project end                                      
    Marker+Left                 Reaper 40172                // Go to previous marker or project start           

    Nudge+Up                    Reaper 41925                // Item: Nudge items volume +1dB
    Nudge+Down                  Reaper 41924                // Item: Nudge items volume -1dB
    Nidge+Left                  Reaper 41279                // Item edit: Nudge left by saved nudge dialog settings 1
    Nudge+Right                 Reaper 41275                // Item edit: Nudge right by saved nudge dialog settings 1

//  JogWheel

    Decrease+JogWheel           Reaper 40840                // Move edit cursor back one measure (no seek)  
    Increase+JogWheel           Reaper 40839                // Move edit cursor forward one measure (no seek)                                          
    Shift+Decrease+JogWheel     Reaper 40286                // Track: Go to previous track       
    Shift+Increase+JogWheel     Reaper 40285                // Track: Go to next track                     
    Option+Decrease+JogWheel    Reaper 40172                // Go to previous marker or project start
    Option+Increase+JogWheel    Reaper 40173                // Go to next marker or project end      
    
ZoneEnd
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-14-2022, 12:00 PM   #20019
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by Funkybot View Post
Just a head's up Geoff, the "Buttons.zon" in the X-Touch support files looks like it's missing several sections and still references the Markers.zon even though the Marker button is assigned to the modifier.

If you'd like, I've got this version of a buttons.zon you can use that should be up to date with the latest changes.
Thanks, I'm struggling to keep up

New CSI Support Files are up

CSI Support Files.zip

Includes the aforementioned changes.
__________________
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-14-2022, 12:44 PM   #20020
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Geoff Waddington View Post
Thanks, I'm struggling to keep up
You need a sherpa with an X-Touch to keep the Zone files updated
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 02:25 PM   #20021
fr33sp1r1t
Human being with feelings
 
Join Date: Apr 2022
Posts: 22
Default

Quote:
Originally Posted by Funkybot View Post
Code:
...                 
    Option+Decrease+JogWheel    Reaper 40172                // Go to previous marker or project start
    Option+Increase+JogWheel    Reaper 40173                // Go to next marker or project end      
    
ZoneEnd
Is there a reason you used Option and not Marker in the JogWheel Section for jumping around markers?
fr33sp1r1t is offline   Reply With Quote
Old 09-14-2022, 02:30 PM   #20022
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Quote:
Originally Posted by fr33sp1r1t View Post
Is there a reason you used Option and not Marker in the JogWheel Section for jumping around markers?
Version control issue! Had that in my X-Touch One zone.

Note: I think this still requires Geoff's next build for Vertical Zoom to work on Jogwheel.
Code:
Zone "Buttons"
    
//  Encoder Assign Buttons

    Track                       GoHome
    Track                       Reaper _S&M_WNCLS4          // Closes all(!) FX chain windows
    Track                       Reaper _S&M_WNCLS3          // Closes all(!) floating FX windows  
    Pan                         GoVCA
    EQ                          GoFolder
    Send                        GoSelectedTrackSend
    Global+Send                 GoTrackSend
    Plugin                      GoSelectedTrackFXMenu
    Global+Plugin               GoTrackFXMenu
    Instrument                  GoSelectedTrackReceive
    Global+Instrument           GoTrackReceive


//  Display Section

    nameValue                   NoAction
    AssignmentDisplay           GlobalModeDisplay 
    TimeDisplay                 MCUTimeDisplay
    smpteBeats                  CycleTimeDisplayModes

 
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  NoAction
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      NoAction
    Outputs                     NoAction
    User                        NoAction
           
// Function Buttons

    F1                          ToggleEnableFocusedFXParamMapping
    F2                          ToggleEnableFocusedFXMapping
    F3                          ToggleScrollLink
    F4                          NoAction
    F5                          NoAction
    F6                          NoAction
    F7                          NoAction
    F8                          NoAction
    
//  Modifiers

    Flip                        Flip
    Shift                       Shift
    Option                      Option
    Control                     Control
    Alt                         Alt     

// Automation Buttons

    Read                        TrackAutoMode 1
    Write                       TrackAutoMode 3
    Trim                        TrackAutoMode 0
    Touch                       TrackAutoMode 2
    Latch                       TrackAutoMode 4
    Group                       TrackAutoMode 5
    Global+Read                 GlobalAutoMode 1
    Global+Write                GlobalAutoMode 3
    Global+Trim                 GlobalAutoMode 0
    Global+Touch                GlobalAutoMode 2
    Global+Latch                GlobalAutoMode 4  
    Global+Group                GlobalAutoMode 5   

//  Utility Buttons

    Save                        SaveProject
    Undo                        Undo
    Hold+Undo                   Reaper 40072                // View: Show undo history window
    Shift+Undo                  Redo
    Cancel                      NoAction
    Enter                       NoAction
    
//  Transport Section

    Marker                      Marker
    Nudge                       Nudge
    Cycle                       CycleTimeline
    Drop                        Reaper 1157                 // Toggle snapping
    Replace                     Reaper 1155                 // Cycle ripple editing mode
    Click                       Reaper 40364                // Toggle metronome
    Shift+Click                 Reaper _SWS_AWCOUNTRECTOG   // Toggle count-in before recording
    Hold+Click                  Reaper 40363                // Show metronome settings
    Rewind                      Rewind   
    FastForward                 FastForward
    Stop                        Stop
    Hold+Stop                   Reaper 40042                // Go to start of project
    Play                        Play
    Record                      Record    
    Solo                        ClearAllSolo
    Option+Solo                 Reaper 40745                // Solo in front (dim solo)  

//  Banking 

    BankLeft                    TrackBank -8
    BankRight                   TrackBank 8
    ChannelLeft                 TrackBank -1
    ChannelRight                TrackBank 1

//  Navigation and Zoom
    
    Zoom                        Zoom
    
    Up                          Reaper _XENAKIOS_TVPAGEUP   // Xenakios/SWS: Scroll track view up (page)
    Down                        Reaper _XENAKIOS_TVPAGEDOWN	// Xenakios-SWS: Scroll track view down 
    Left                        Reaper _SWS_SCROLL_L10      // SWS: Scroll left 10%
    Right                       Reaper _SWS_SCROLL_R10      // SWS: Scroll right 10%
    
    Zoom+Up                     Reaper 40111                // Zoom in vertical                                            
    Zoom+Down                   Reaper 40112                // Zoom out vertical                                                       
    Zoom+Right                  Reaper 1012                 // Zoom in horizontal                                      
    Zoom+Left                   Reaper 1011                 // Zoom out horizontal                                     

    Marker+Up                   Reaper 40613                // Delete marker near cursor                                    
    Marker+Down                 Reaper 40157                // Insert marker at current or edit position                                      
    Marker+Right                Reaper 40173                // Go to next marker or project end                                      
    Marker+Left                 Reaper 40172                // Go to previous marker or project start           

    Nudge+Up                    Reaper 41925                // Item: Nudge items volume +1dB
    Nudge+Down                  Reaper 41924                // Item: Nudge items volume -1dB
    Nidge+Left                  Reaper 41279                // Item edit: Nudge left by saved nudge dialog settings 1
    Nudge+Right                 Reaper 41275                // Item edit: Nudge right by saved nudge dialog settings 1

//  JogWheel

    Decrease+JogWheel           Reaper 40840                // Move edit cursor back one measure (no seek)  
    Increase+JogWheel           Reaper 40839                // Move edit cursor forward one measure (no seek)                                          
    
    Option+Decrease+JogWheel    Reaper 41045                // Move edit cursor back one beat  
    Option+Increase+JogWheel    Reaper 41044                // Move edit cursor forward one beat
    
    Shift+Decrease+JogWheel     Reaper 40286                // Track: Go to previous track       
    Shift+Increase+JogWheel     Reaper 40285                // Track: Go to next track                     

    Marker+Decrease+JogWheel    Reaper 40172                // Go to previous marker or project start
    Marker+Increase+JogWheel    Reaper 40173                // Go to next marker or project end      
 
    Zoom+Increase+JogWheel       Reaper 1012                // Zoom in horizontal   
    Shift+Zoom+Increase+JogWheel Reaper 40111               // Zoom in vertical
    Zoom+Decrease+JogWheel       Reaper 1011                // Zoom out horizontaloneEnd 
    Shift+Zoom+Decrease+JogWheel Reaper 40112               // Zoom out vertical   
    
ZoneEnd
__________________
CSI v3 Wiki

Last edited by Funkybot; 09-14-2022 at 02:38 PM.
Funkybot is offline   Reply With Quote
Old 09-14-2022, 02:41 PM   #20023
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by Funkybot View Post
Version control issue! Had that in my X-Touch One zone.

Note: I think this still requires Geoff's next build for Vertical Zoom to work on Jogwheel.
Correct, the current build is restricted to one modifier, although Decrease and Increase don't count.
__________________
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-14-2022, 02:57 PM   #20024
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 394
Default

Quote:
Originally Posted by Geoff Waddington View Post
Possibly we named it poorly

Toggle is typically used with a RotaryPush and could have been called ToggleChannel, but we opted for the shorter keyword

In the same way that we don't clear Touch in ClearModifiers, we don't clear Toggle.
Understood. Just one more thing:

Code:
    RotaryPush|                 ToggleChannel

    Rotary|                     TrackPan
    Rotary|			WidgetMode Dot
    DisplayLower|      		TrackPanDisplay

    Toggle+Rotary|              TrackPanWidth
    Toggle+Rotary|		WidgetMode BoostCut
    Toggle+DisplayLower| 	TrackPanWidthDisplay
Does this mean that each track's RotaryPush, when pressed, will change de behaviour of the Rotary and DisplayLower exclusively for their own track and the rest will have to be activated individualy if needed be?

If that is the case, can we do that for Rotary1 named expressely and Rotary2 Push do somehing totally different like let's say GoSubZone Whatever?

Thanks!!!
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-01-13)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 09-14-2022, 04:15 PM   #20025
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Quote:
Originally Posted by MT4U View Post
Understood. Just one more thing:

Code:
    RotaryPush|                 ToggleChannel

    Rotary|                     TrackPan
    Rotary|			WidgetMode Dot
    DisplayLower|      		TrackPanDisplay

    Toggle+Rotary|              TrackPanWidth
    Toggle+Rotary|		WidgetMode BoostCut
    Toggle+DisplayLower| 	TrackPanWidthDisplay
Does this mean that each track's RotaryPush, when pressed, will change de behaviour of the Rotary and DisplayLower exclusively for their own track and the rest will have to be activated individualy if needed be?

If that is the case, can we do that for Rotary1 named expressely and Rotary2 Push do somehing totally different like let's say GoSubZone Whatever?

Thanks!!!
No, it just Toggles the Channel.

However, if you are not in the Track Zone, you can do whatever you want.

For instance, when in FXMenu context, RotaryPush does a GoFXSlot.
__________________
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-14-2022, 04:25 PM   #20026
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

Ok, doing some preliminary tests of the new compound modifiers architecture.

If you are going to use a ton of modifiers simultaneously, get some beefy hardware

The good news is, most people don't use that many simultaneously, so everything will be fine.

[edit] Actually, thinking of some optimizations.

I'm sure we are fine with a 64 modifier limit, a lot can be done with bit masks and a 64 bit number

[edit2] We won't need that crazy Fader|Touch construct anymore (although it will still work), Touch will work just as well.
__________________
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-14-2022 at 06:48 PM.
Geoff Waddington is offline   Reply With Quote
Old 09-14-2022, 05:20 PM   #20027
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Geoff Waddington View Post
No, it just Toggles the Channel.

However, if you are not in the Track Zone, you can do whatever you want.

For instance, when in FXMenu context, RotaryPush does a GoFXSlot.

...and then when you're in an FX.zon, you can, for example, toggle a rotary between frequency and Q.
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 05:21 PM   #20028
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Geoff Waddington View Post
If you are going to use a ton of modifiers simultaneously, get some beefy hardware
...and put your shrink on danger money, baby
MixMonkey is offline   Reply With Quote
Old 09-14-2022, 07:05 PM   #20029
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 656
Default

Quote:
Originally Posted by andyp24 View Post
Hi Jacksoon/Roy

I have an X32, and would be interested in using it as a fader controller (if nothing else) but I have virtually no understanding of OSC. Is there some documentation on how to set this up, alongside the "usual" MIDI controlled devices?

Thanks
Andy
Hi Andy,

My X32 specific source code modifications have not yet been merged into Geoff's CSI-exp-2.0 build.

Once it is, the X32 support will easily allow you to to use it as a fader controller as you mentioned above. And will be able to do so much more

Once added to exp2.0, I will provide all documentation needed to get started using the X32 on CSI.

And I will support X32 on CSI for anyone using it

As the saying goes from 20th century TV ---> Stay tuned

Cheers,
Roy
__________________
AKA: Roy Wallingford
jacksoonbrowne is online now   Reply With Quote
Old 09-15-2022, 12:17 AM   #20030
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 656
Default

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.

Here's the spec I put together:

Code:
+-------------------------------------------------+
+                TABLE  1                         +
+---------+---------------------------------------+
|  PARAM  |  FOREGROUND(TEXT)  |  BACKGROUND      |
+---------+--------------------|------------------+
|    0    |  Off               |  Off             |
|    1    |  Bright Red        |  Dim Red         |
|    2    |  Bright Green      |  Dim Green       |
|    3    |  Bright Yellow     |  Dim Yellow      |
|    4    |  Bright Blue       |  Dim Blue        |
|    5    |  Bright Magenta    |  Dim Magenta     |
|    6    |  Bright Cyan       |  Dim Cyan        |
|    7    |  Bright White      |  Dim White       |
+---------+--------------------+------------------+


Bit 4 in the PARAM value if set, will invert foreground and background colors
in the above table yielding:

+-------------------------------------------------+
+                TABLE  2                         +
+---------+--------------------+------------------+
|  PARAM  |  FOREGROUND(TEXT)  |  BACKGROUND      |
+---------+--------------------|------------------+
|    8    |  Off               |  Off             |
|    9    |  Dim Red           |  Bright Red      |
|    10   |  Dim Green         |  Bright Green    |
|    11   |  Dim Yellow        |  Bright Yellow   |
|    12   |  Dim Blue          |  Bright Blue     |
|    13   |  Dim Magenta       |  Bright Magenta  |
|    14   |  Dim Cyan          |  Bright Cyan     |
|    15   |  Dim White         |  Bright White    |
+---------+--------------------+------------------+
I don't think implementing table 2 even needs to be considered at this point.


OSC message sent to X32 format:
Code:
OSC messages sent to X32 to set scribble strip colors follow the following format:
    "/someOscAddress"  with an int32 PARAM for color.
Some examples:
Code:
Set Track 2  Scribble strip text to bright red text on dim red background
    "/ch/2/config/color"  with integer PARAM 1

Set Track 17 Scribble strip text to dim blue on bright blue background
    "/ch/17/config/color"  with integer PARAM 12
__________________
AKA: Roy Wallingford
jacksoonbrowne is online now   Reply With Quote
Old 09-15-2022, 03:31 AM   #20031
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,242
Default

Quote:
Originally Posted by jacksoonbrowne View Post
Hi Andy,

My X32 specific source code modifications have not yet been merged into Geoff's CSI-exp-2.0 build.

Once it is, the X32 support will easily allow you to to use it as a fader controller as you mentioned above. And will be able to do so much more

Once added to exp2.0, I will provide all documentation needed to get started using the X32 on CSI.

And I will support X32 on CSI for anyone using it

As the saying goes from 20th century TV ---> Stay tuned

Cheers,
Roy
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

Last edited by andyp24; 09-15-2022 at 03:48 AM.
andyp24 is offline   Reply With Quote
Old 09-15-2022, 04:31 AM   #20032
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 920
Default

Quote:
Originally Posted by MixMonkey View Post
...and then when you're in an FX.zon, you can, for example, toggle a rotary between frequency and Q.
When you say "Toggle" are we talking about "push" to change the function, or is this like a hold in and wiggle affair?

I must have missed this change in definition or addition?????
Freex is offline   Reply With Quote
Old 09-15-2022, 04:39 AM   #20033
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,926
Default

Quote:
Originally Posted by Freex View Post
When you say "Toggle" are we talking about "push" to change the function, or is this like a hold in and wiggle affair?

I must have missed this change in definition or addition?????
Push to change. There's a lot of things been added recently, @funkybot is keeping a changelog updated.

Here's an example of Toggle, switches between Freq and Q on the rotary.
Code:
Zone "VST: ReaEQ (Cockos)" "ReaEQ"

DisplayUpper1   		FXParamNameDisplay 0 "Frq_1"
DisplayLower1   		FXParamValueDisplay 0
Toggle+DisplayUpper1   	FXParamNameDisplay 2 "Q_1"
Toggle+DisplayLower1   	FXParamValueDisplay 2
Rotary1         		FXParam 0	[ (0.0003,0.0006,0.001,0.002,0.003,0.008,0.04) ]
Toggle+Rotary1         	FXParam 2
RotaryPush1     		ToggleChannel
Record1         		NoAction
Solo1           		NoAction
Mute1           		FXParam 13 [ 0.0 1.0 ]
Select1         		NoAction
Fader1          		NoAction
....
ZoneEnd
MixMonkey is offline   Reply With Quote
Old 09-15-2022, 06:10 AM   #20034
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Quote:
Originally Posted by MixMonkey View Post
Push to change. There's a lot of things been added recently, @funkybot is keeping a changelog updated.

Here's an example of Toggle, switches between Freq and Q on the rotary.
Code:
Zone "VST: ReaEQ (Cockos)" "ReaEQ"

DisplayUpper1   		FXParamNameDisplay 0 "Frq_1"
DisplayLower1   		FXParamValueDisplay 0
Toggle+DisplayUpper1   	FXParamNameDisplay 2 "Q_1"
Toggle+DisplayLower1   	FXParamValueDisplay 2
Rotary1         		FXParam 0	[ (0.0003,0.0006,0.001,0.002,0.003,0.008,0.04) ]
Toggle+Rotary1         	FXParam 2
RotaryPush1     		ToggleChannel
Record1         		NoAction
Solo1           		NoAction
Mute1           		FXParam 13 [ 0.0 1.0 ]
Select1         		NoAction
Fader1          		NoAction
....
ZoneEnd
Added that .zon example to the ToggleChannel section of the Wiki:

https://github.com/GeoffAWaddington/...#togglechannel

Thanks!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-15-2022, 06:34 AM   #20035
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 394
Default

Quote:
Originally Posted by Funkybot View Post
Added that .zon example to the ToggleChannel section of the Wiki:

https://github.com/GeoffAWaddington/...#togglechannel

Thanks!
Remember that WidgetMode should not be used with Toggle+, you gotta keep the WidgetMode defined in the unmodified widget. I got some nice fireworks last night when I forgot that
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-01-13)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI
MT4U is offline   Reply With Quote
Old 09-15-2022, 06:44 AM   #20036
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

Quote:
Originally Posted by MT4U View Post
Remember that WidgetMode should not be used with Toggle+, you gotta keep the WidgetMode defined in the unmodified widget. I got some nice fireworks last night when I forgot that
Is that a rule or a bug?

I thought you could use WidgetMode with Toggle+, I thought the limitation was that that TrackPanAutoRight if set to WidgetMode Dot, would show Dot when using PanWidth and also show Dot on PanRight. It couldn't show Spread on PanWidth and then Dot on PanRight.

I'll happily update the Wiki either way, but just looking for confirmation about what's expected.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-15-2022, 06:59 AM   #20037
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 394
Default

Quote:
Originally Posted by Funkybot View Post
Is that a rule or a bug?

I thought you could use WidgetMode with Toggle+, I thought the limitation was that that TrackPanAutoRight if set to WidgetMode Dot, would show Dot when using PanWidth and also show Dot on PanRight. It couldn't show Spread on PanWidth and then Dot on PanRight.

I'll happily update the Wiki either way, but just looking for confirmation about what's expected.
Maybe I expressed myself incorrectly. That's just as you said, sir. Keep the same, or just don't use the WidgetMode with the Toggle+ Modifier and it will stay put. I tried a Dot with no modifiers and Spread with Toggle+ and when the lights on the encoder went crazy I remembered Geoff's words

Also, I was using ToggleChannel instead of the TrackPanAuto actions, gotta keep in mind the same limitation.
__________________

CSI_FX
: SubZone based GUI/Automapper for CSI.(UPD:2024-01-13)
Video Demo/Tutorial
Scripts for CSI: Reaper EEL2 scripts to use with CSI

Last edited by MT4U; 09-15-2022 at 07:47 AM.
MT4U is offline   Reply With Quote
Old 09-15-2022, 10:27 AM   #20038
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,444
Default

New compound modifier architecture is coming along nicely.

Whilst we were joking around the other day about internal elegance, there are actually some real world consequences.

Not only does the following old code look like shite, if you have GlobalView engaged you can't Shift+Select to select a range of Tracks, amazing there weren't more complaints about the various gotchas imposed by lack of partial fallback.

At any rate the new code is actually faster than the old code by quite a bit, due to some optimizations, even though it searches a maximum of 128 possibilities as opposed to 3-4 for the old code.

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_;
}
Even with the worst case scenario of all modifiers engaged, it takes about 60 microseconds on average to search the 128 possibilities on my M1 Mac mini, just fine.
__________________
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 10:36 AM.
Geoff Waddington is offline   Reply With Quote
Old 09-15-2022, 10:56 AM   #20039
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,068
Default

I can't read code, but the before/after differences are pretty stark. Looking forward to this!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 09-15-2022, 11:52 AM   #20040
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 506
Default

Pardon my language here but that's pretty effing clean!

Well done, Geoff!
Puck 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 04:05 PM.


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