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

Reply
 
Thread Tools Display Modes
Old 01-02-2023, 07:26 PM   #21481
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by MixMonkey View Post
That's cool So here's a 32 parameter limit for this method and on a single row device, the three 'hidden' rows will be accessed by Shift, Option and Control but that's as far as the modifier behaviour goes. Can pushes be switches?
Yes, that's the idea, and after that, you can do anything you want manually in the rest of the Zone definition, pushes, compound modifiers (e.g. Shift+Control), other controls, etc.

This is just a quick way to get the most tedious stuff done quickly and easily.

And frequently, that's all a lot of folks will need.
__________________
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 01-02-2023, 07:37 PM   #21482
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
This is just a quick way to get the most tedious stuff done quickly and easily.

And frequently, that's all a lot of folks will need.
Definitely I was losing sight of the "quick" thing..

So we'll have three ways of getting FX parameteres onto a surface- cool
MixMonkey is offline   Reply With Quote
Old 01-03-2023, 08:36 AM   #21483
MT4U
Human being with feelings
 
MT4U's Avatar
 
Join Date: Jan 2022
Location: Unifield
Posts: 397
Default

Wow!

Testing the new TCPFX.

At first, with the latest EXP, Reaper was not recognizing CSI (Win10), then I noticed I was a couple of Reaper builds behind, and after upgrading to 6.73 it all worked just fine.

Still grasping the full extent of the possibilities it opens, but definitely a great addition to CSI.
__________________

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 offline   Reply With Quote
Old 01-03-2023, 04:06 PM   #21484
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by MixMonkey View Post
Sounds good! Build it up row by row. Would it be possible to clear for the next row by removing and re-inserting the plugin?
Looked into this, couldn't find a way to make it work without losing the FX alias.

However, the good news is, you can just hover the mouse over the leftmost, topmost one, hold down Option (Alt), and click until they're all gone.

Now you're ready for the next row.
__________________
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 01-03-2023, 04:42 PM   #21485
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
However, the good news is, you can just hover the mouse over the leftmost, topmost one, hold down Option (Alt), and click until they're all gone.
Just tried this, it's much better than using the list!
MixMonkey is offline   Reply With Quote
Old 01-03-2023, 05:14 PM   #21486
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by MixMonkey View Post
Just tried this, it's much better than using the list!
Kenny Gioia to the rescue, found it in one of his videos
__________________
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 01-03-2023, 05:24 PM   #21487
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
Kenny Gioia to the rescue, found it in one of his videos
He's a helpful chap I confess I'm a stranger to track controls. I kinda pass them by on my way to the envelopes
MixMonkey is offline   Reply With Quote
Old 01-04-2023, 09:15 AM   #21488
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Ok, almost there with the next iteration.

Need some help with saving the row:

Code:
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  GoSelectedTrackTCPFX
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      GoRotaryFXMapTemplate
    Outputs                     SaveFXMapTemplateRow FXRotaries
    Shift+Outputs               SaveFXMapTemplateRow FXRotariesShift
    Alt+Outputs                 SaveFXMapTemplateRow FXRotariesAlt
    User                        BuildSelectedTrackTCPFXZone
It is sooo easy to forget to press a modifier when saving a row.

Then the Zone file is a mess.

I'm thinking it should automatically increment as you save, in order to avoid this problem.

For multi row, it's easy, A, B, C, D.

For singles we need to make a choice on the hardwired order.

My first guess is:

Nothing
Shift
Control
Alt
Option

What do you folks think ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Old 01-04-2023, 09:35 AM   #21489
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

What you're proposing sounds good but I still think it would be best if handled via Reaper's Action List. Might make it easier to not mess it up and if you wanted to map to a surface you still could. I think having these as CSI actions assigned to a surface is going to lead to people pressing those buttons when they don't mean to, or having to go in and add those definitions when they want to map something, then remove them when they're done to get the button back. It doesn't work at all on some surfaces (e.g. MFTWister does not have good buttons to assign to these CSI actions). I really think Reaper actions are the way to go if at all possible.

Bonus points if we could "see" the zone get created in ReaConsole and watch the progress there to know it took.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-04-2023, 09:50 AM   #21490
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
What you're proposing sounds good but I still think it would be best if handled via Reaper's Action List.
Good point, but, as far as I know, not feasible.

Reaper Actions are at a CSI Manager level, not even Page level, let alone Surface level.

I guess it might work if you only had one page and one surface, but I'm not sure.

Quote:
Originally Posted by Funkybot View Post
(e.g. MFTWister does not have good buttons to assign to these CSI actions)
Fair point, hopefully folks have more than just a Twister, then they could use broadcast from another surface.
__________________
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 01-04-2023, 10:47 AM   #21491
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Geoff Waddington View Post
Fair point, hopefully folks have more than just a Twister, then they could use broadcast from another surface.
I'll create a "Create_FX_Mapping" page or something and figure it out. I'll just use the BankA button plus Global modifiers for the saving.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-04-2023, 10:53 AM   #21492
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
I'll create a "Create_FX_Mapping" page or something and figure it out. I'll just use the BankA button plus Global modifiers for the saving.
Cool, still wondering if you or anyone else has a preference for modifier order for the single (MCU) case.

You won't need any modifiers for the multi case, It's just A, then B, then C, then D.
__________________
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; 01-04-2023 at 11:02 AM.
Geoff Waddington is offline   Reply With Quote
Old 01-04-2023, 11:08 AM   #21493
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

OK, folks, maybe I've not been clear enough.

It's a minor point we're talking about here.

When you have a multi row surface and press save, it just increments naturally, A, then B, then C, then D.

When you have a single row surface, the first time you press save you get the unmodified version.

The simple question is, on subsequent saves, in what order do the modifiers get assigned.

Given this list:

Shift
Control
Alt
Option

the second save will generate a Shift version, the third save will generate a Control version, etc.

Does the above order seem like the "natural" way to hardwire it ?
__________________
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 01-04-2023, 11:09 AM   #21494
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Good point. For the twister, I'll just need one button. I'd likely still dedicate a page for it though just because BankA is the only button that kind of works for this and it's GoHome elsewhere.

For modifier order, I'd say follow the MCU order: [nothing], Shift, Option, Control, Alt. Though that might already exceed the 32 param limit being proposed (that's 40 params on an 8 fader surface if we count no modifier).

Just did a quick check of other surfaces: the Faderport8/16 only have Shift. The SSL UF8 doesn't even have that. The X-Touch Universal, MCU, C4 all have those 4 modifiers in that order so makes sense to follow that. C4 users would use RotaryA/B/C/D anyway.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-04-2023, 11:26 AM   #21495
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
Good point. For the twister, I'll just need one button. I'd likely still dedicate a page for it though just because BankA is the only button that kind of works for this and it's GoHome elsewhere.

For modifier order, I'd say follow the MCU order: [nothing], Shift, Option, Control, Alt. Though that might already exceed the 32 param limit being proposed (that's 40 params on an 8 fader surface if we count no modifier).

Just did a quick check of other surfaces: the Faderport8/16 only have Shift. The SSL UF8 doesn't even have that. The X-Touch Universal, MCU, C4 all have those 4 modifiers in that order so makes sense to follow that. C4 users would use RotaryA/B/C/D anyway.
Cool, I was trying to guess what folks would expect based on the most common modifiers present, but yeah, I always use SOCA, since it's the natural on MCU, X-Touch Universal, etc.

It's really not that big a deal I guess, if enough people complain it's easy to change.
__________________
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 01-04-2023, 11:50 AM   #21496
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

In that case, don't let us slow you down!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-04-2023, 05:22 PM   #21497
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

New build is up.

CSI Support Files.zip

CSI Exp.zip

Implemented Build TCP FX Zone changes as discussed.

Code:
Zone Home
    OnInitialization ToggleEnableFocusedFX
    IncludedZones
        Buttons
        Track
        MasterTrack
    IncludedZonesEnd
    AssociatedZones
       SelectedTrackSend
       SelectedTrackReceive
       SelectedTrackFXMenu
       TrackSend
       TrackReceive
       TrackFXMenu
       VCA
       Folder
       SelectedTrackTCPFX
       RotaryFXMapTemplate
    AssociatedZonesEnd
ZoneEnd
Code:
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  GoSelectedTrackTCPFX
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      GoRotaryFXMapTemplate
    Outputs                     SaveFXMapTemplateRow SingleRotaryRow
    User                        BuildSelectedTrackTCPFXZone
Code:
Zone "RotaryFXMapTemplate"
	OnZoneActivation	SetXTouchDisplayColors Cyan
	OnZoneDeactivation	RestoreXTouchDisplayColors

	DisplayUpper1 		TCPFXParamNameDisplay 0
        DisplayLower1       	TCPFXParamValueDisplay 0
        Rotary1             	TCPFXParam 0

	DisplayUpper2 		TCPFXParamNameDisplay 1
        DisplayLower2       	TCPFXParamValueDisplay 1
        Rotary2             	TCPFXParam 1

	DisplayUpper3 		TCPFXParamNameDisplay 2
        DisplayLower3       	TCPFXParamValueDisplay 2
        Rotary3             	TCPFXParam 2

	DisplayUpper4 		TCPFXParamNameDisplay 3
        DisplayLower4       	TCPFXParamValueDisplay 3
        Rotary4             	TCPFXParam 3

	DisplayUpper5 		TCPFXParamNameDisplay 4
        DisplayLower5       	TCPFXParamValueDisplay 4
        Rotary5             	TCPFXParam 4

	DisplayUpper6 		TCPFXParamNameDisplay 5
        DisplayLower6       	TCPFXParamValueDisplay 5
        Rotary6             	TCPFXParam 5

	DisplayUpper7 		TCPFXParamNameDisplay 6
        DisplayLower7       	TCPFXParamValueDisplay 6
        Rotary7             	TCPFXParam 6

	DisplayUpper8 		TCPFXParamNameDisplay 7
        DisplayLower8       	TCPFXParamValueDisplay 7
        Rotary8             	TCPFXParam 7
ZoneEnd
The above is for a single row rotary setup -- e.g. MCU.

If you wanted to use Faders, you would use a FaderFXMapTemplate Zone, replacing Rotary with Fader.

You would also do this:

Code:
     Outputs SaveFXMapTemplateRow SingleFaderRow

Likewise, if you have a multi row surface, you would use these Zones

RotaryAFXMapTemplate
RotaryBFXMapTemplate
RotaryCFXMapTemplate
RotaryDFXMapTemplate

Obviously the Widgets in those Zones would be renamed accordingly.

Here's an example for a multi row setup.

Code:
Zone Home
    OnInitialization ToggleEnableFocusedFX
    IncludedZones
        Buttons
        Track
        MasterTrack
    IncludedZonesEnd
    AssociatedZones
       SelectedTrackSend
       SelectedTrackReceive
       SelectedTrackFXMenu
       TrackSend
       TrackReceive
       TrackFXMenu
       VCA
       Folder
       SelectedTrackTCPFX
       RotaryAFXMapTemplate
       RotaryBFXMapTemplate
       RotaryCFXMapTemplate
       RotaryDFXMapTemplate
    AssociatedZonesEnd
ZoneEnd
Code:
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  GoSelectedTrackTCPFX
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      GoRotaryAFXMapTemplate
    Shift+Busses                GoRotaryBFXMapTemplate
    Option+Busses               GoRotaryCFXMapTemplate
    Control+Busses              GoRotaryDFXMapTemplate
    Outputs                     SaveFXMapTemplateRow MultipleRotaryRows
    User                        BuildSelectedTrackTCPFXZone
The workflow is very similar to the previous workflow, with changes in bold:

Open the Mixer.

Find and select a Track with no FX and insert the one you want to map.

Right click on the FX and at the very bottom of the menu choose Rename FX instance — this will be the alias for the FX.

Close the Mixer.

Resize the Selected Track in the TCP view so you can see what you are doing.

Hit the button mapped to GoRotaryFXMapTemplate.

Add whatever params you wish to map for the FX to the TCPFXParams on the Track, and alias them as needed.

You will see the progress on your surface.


Hit the button mapped to SaveFXMapTemplateRow.

Whilst holding Option(Alt) Click on the TCPFX params to remove them.

If you have a multi row surface, move to the next row of Rotaries
e.g. Shift+Busses GoRotaryBFXMapTemplate.

Add whatever params you wish to map for the FX to the TCPFXParams on the Track, and alias them as needed.

You will see the progress on your surface.

Hit the button mapped to SaveFXMapTemplateRow.

Starting at Whilst holding Option(Alt)... repeat until you have defined the rows you need.


Hit the button mapped to BuildSelectedTrackTCPFXZone.

Check the TCPFXGeneratedZones folder.
__________________
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 01-04-2023, 09:01 PM   #21498
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Gave it a quick go and it works! Mapped two rows on a plugin!

First issue: after I've created the map, if I subsequently activate this zone from an FX Menu...
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB 7
	// "Wet"
ZoneEnd
...RotariesB2-B8 and their displays have nothing assigned to them, so they need to get "NoAction" commands automatically. Right now, that's not happening so prior zone assignments on B2-B7 are bleeding through.

Second issue: when I loaded that FX via the menu, the aliases weren't read from the FXParamAlias.txt file. Example: RotaryA1 was still showing "wetDRY", and "rate" (lowercase), instead of "Mix" and "Rate". The FXParamAlias.txt did have the aliases though.

In terms of feedback, setting this up was a bit tedious, but it does indeed work. Tips for others: when doing multiple rows, it's uber crucial that you clear out the TCP FX Params and start from scratch for each row. You'll also need to keep track of what you assigned in RowA. Otherwise, RowB will be a mess and could include prior assignments, or you could get double assignments because you have no control over the TCP FX order or just forgot that you already mapped a param in RowA. I made both variations on that mistake: first time, I forgot to clear. Second time, I ended up with something I had mapped on Row A already on Row B because I forgot what was in Row A.

It would be nice if a ReaConsole window could show the current state text of the WIP fx.zon just to help keep track.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-04-2023, 09:11 PM   #21499
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Geoff, is there any chance this could be made to work with the AutoGeneratedFX zones? Where it locates the template zones and pre-populates multiple?

Example of how that could work:

1. Look for RotaryFXMapTemplate, if found, auto assign FX Params in order and move to next, if not found, skip and go to next

2. Look for RotaryAFXMapTemplate, if found, auto-assign remaining FX Params in order and move to next, if not found, skip and move to next

3. Look for RotaryBFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

4. Look for RotaryCFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

5. Look for RotaryDFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

6. Look for FaderXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and...

7. When there are no more FX params, or no more zone template files found, write zone file, place in AutoGeneratedFXZones.

This would allow us to leverage these template zones for auto-mapping multiple rows on the C4, SCE24, and Twister.

Gonna hit the hay, but nice work on this!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 12:07 AM   #21500
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
Gave it a quick go and it works! Mapped two rows on a plugin!
Thanks for testing !


Quote:
Originally Posted by Funkybot View Post
First issue: after I've created the map, if I subsequently activate this zone from an FX Menu...
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB 7
	// "Wet"
ZoneEnd
...RotariesB2-B8 and their displays have nothing assigned to them, so they need to get "NoAction" commands automatically. Right now, that's not happening so prior zone assignments on B2-B7 are bleeding through.
Good point, will enhance it based on the Template Zone definitions.


Quote:
Originally Posted by Funkybot View Post
Second issue: when I loaded that FX via the menu, the aliases weren't read from the FXParamAlias.txt file. Example: RotaryA1 was still showing "wetDRY", and "rate" (lowercase), instead of "Mix" and "Rate". The FXParamAlias.txt did have the aliases though.
Do you also have a VST: ValhallaSpaceModulator (Valhalla DSP, LLC) Zone in the main Zone directory ?

I was anticipating possible issues where Zones later alphabetically than TCPFXGeneratedZones could clobber the TCPFXGeneratedZones definitions.

Please let me know, this could be a good test case.


Quote:
Originally Posted by Funkybot View Post
In terms of feedback, setting this up was a bit tedious, but it does indeed work. Tips for others: when doing multiple rows, it's uber crucial that you clear out the TCP FX Params and start from scratch for each row. You'll also need to keep track of what you assigned in RowA. Otherwise, RowB will be a mess and could include prior assignments, or you could get double assignments because you have no control over the TCP FX order or just forgot that you already mapped a param in RowA. I made both variations on that mistake: first time, I forgot to clear. Second time, I ended up with something I had mapped on Row A already on Row B because I forgot what was in Row A.
Yup, made all of those mistakes myself

See next post for a proposed solution.
__________________
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 01-05-2023, 12:28 AM   #21501
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
Geoff, is there any chance this could be made to work with the AutoGeneratedFX zones? Where it locates the template zones and pre-populates multiple?

Example of how that could work:

1. Look for RotaryFXMapTemplate, if found, auto assign FX Params in order and move to next, if not found, skip and go to next

2. Look for RotaryAFXMapTemplate, if found, auto-assign remaining FX Params in order and move to next, if not found, skip and move to next

3. Look for RotaryBFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

4. Look for RotaryCFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

5. Look for RotaryDFXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and move to next

6. Look for FaderXMapTemplate, if found, auto-assign remaining params and move to next, if not found, skip and...

7. When there are no more FX params, or no more zone template files found, write zone file, place in AutoGeneratedFXZones.

This would allow us to leverage these template zones for auto-mapping multiple rows on the C4, SCE24, and Twister.
Great idea, currently AutoGeneratedFX is too primitive.

However, that triggers an idea of how to streamline TCPFXGeneratedZones.

We'll have a 2 button process as opposed to 3.

It will be based on the Associated Zones present in the Home Zone.

I think we can safely say that a given surface would have either modifier based or row based templates, but not both.

So, we just need a Start Action and a Build Action.

Let's use the row based example.

The workflow simplifies to:

Press the Start button -- CSI will load Row A template.

Insert FX and proceed to map row A.

Press the Build button.

CSI will save the generated Zone.
CSI will load row B template.

Aside -- I would love to find a way to clear the TCP FX panel at this point.

Map row B.

Note that Row A will be live at this point, so you will have that reference available.

Press the Build button.

CSI will save the generated Zone.
CSI will load row C template.

Map row C.

Note that Rows A and B will be live at this point, so you will have that reference available.

That's the basic concept.

Much easier.
__________________
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 01-05-2023, 06:57 AM   #21502
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

I agree that's much easier!
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 07:49 AM   #21503
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
I agree that's much easier!
Actually, I think there's an even better way to do it.

We don't really need separate SelectedTrackTCPFX and Template Zones.

For instance, if you had a C4, the SelectedTrackTCPFX Zone could include all 32 positions.

Then, you just select up to 32 Params from the TCP FX list to map and alias, viewing your work in real time.

Then just press build, CSI can sort out where to change from A to B to C to D from the SelectedTrackTCPFX Zone.

Similarly, for single row devices, the Shift, Option, Control, Alt pattern would apply.

So there would be just 2 buttons:

Code:
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  NoAction
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      NoAction
    Outputs                     GoSelectedTrackTCPFX
    User                        BuildSelectedTrackTCPFXZone
No more clearing params, etc.

Now if there were only a way to drag the TCP FX params to reorder them...
__________________
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 01-05-2023, 08:01 AM   #21504
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Geoff Waddington View Post
Actually, I think there's an even better way to do it.

We don't really need separate SelectedTrackTCPFX and Template Zones.

For instance, if you had a C4, the SelectedTrackTCPFX Zone could include all 32 positions.

Then, you just select up to 32 Params from the TCP FX list to map and alias, viewing your work in real time.

Then just press build, CSI can sort out where to change from A to B to C to D from the SelectedTrackTCPFX Zone.

Similarly, for single row devices, the Shift, Option, Control, Alt pattern would apply.

So there would be just 2 buttons:

Code:
//  View Buttons
 
    GlobalView                  Global
    MidiTracks                  NoAction
    Inputs                      NoAction
    AudioTracks                 NoAction
    AudioInstrument             NoAction
    Aux                         NoAction
    Busses                      NoAction
    Outputs                     GoSelectedTrackTCPFX
    User                        BuildSelectedTrackTCPFXZone
No more clearing params, etc.

Now if there were only a way to drag the TCP FX params to reorder them...
That's more in line with my original thinking of just having one zone that acts as an FX Template for others. I dig it. Much, much cleaner (and easier to explain)!

Regarding re-ordering the TCP FX Params, that sounds like a Justin/Schwa request. But it would certainly benefit more than just CSI.

Note: it's not too hard to figure out how to reorder the items yourself based on the .zon contents so I don't see it as a major dealbreaker, especially now that you're working on making it so we can map multiple rows at a time.

Maybe just add the same -1 = NoAction in the .zon files that EZFXZones used. That way this...
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB 7
	// "Wet"
ZoneEnd
...could become this (with manual editing of course - not expecting this to happen within Reaper or CSI's mapping due to the TCP constraints):
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB -1 -1 -1 -1 -1 -1 -1 7
	// NoAction NoAction NoAction NoAction NoAction NoAction "Wet"
ZoneEnd
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 08:04 AM   #21505
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Geoff Waddington View Post
Do you also have a VST: ValhallaSpaceModulator (Valhalla DSP, LLC) Zone in the main Zone directory ?

I was anticipating possible issues where Zones later alphabetically than TCPFXGeneratedZones could clobber the TCPFXGeneratedZones definitions.

Please let me know, this could be a good test case.
To go back to this...I did at some point and removed the old one from the FX Zones folder. But maybe got the order of operations wrong. That would totally explain it.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 08:04 AM   #21506
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
That's more in line with my original thinking of just having one zone that acts as an FX Template for others. I dig it. Much, much cleaner (and easier to explain)!

Regarding re-ordering the TCP FX Params, that sounds like a Justin/Schwa request. But it would certainly benefit more than just CSI.

Note: it's not too hard to figure out how to reorder the items yourself based on the .zon contents so I don't see it as a major dealbreaker, especially now that you're working on making it so we can map multiple rows at a time.

Maybe just add the same -1 = NoAction in the .zon files that EZFXZones used. That way this...
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB 7
	// "Wet"
ZoneEnd
...could become this (with manual editing of course):
Code:
Zone "VST: ValhallaSpaceModulator (Valhalla DSP, LLC)" "SpaceModulator"

	FXRotariesA 0 1 2 3 4 5 6 8
	// "Mix" "Rate" "Depth" "Feedback" "Manual" "Mode" "Bypass" "Delta"

	FXRotariesB -1 -1 -1 -1 -1 -1 -1 7
	// NoAction NoAction NoAction NoAction NoAction NoAction "Wet"
ZoneEnd
Yup, -1 is the ticket
__________________
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 01-05-2023, 08:07 AM   #21507
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by Funkybot View Post
To go back to this...I did at some point and removed the old one from the FX Zones folder. But maybe got the order of operations wrong. That would totally explain it.
Yeah, there were far too many order of operations gotchas with the early drafts, I got bit by them many times
__________________
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 01-05-2023, 08:59 AM   #21508
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 5,003
Default

Could we not just assign the whole lot in one go and let CSI chop it into blocks of eight?
MixMonkey is offline   Reply With Quote
Old 01-05-2023, 09:01 AM   #21509
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by MixMonkey View Post
Could we not just assign the whole lot in one go and let CSI chop it into blocks of eight?
Yes, exactly, that's the plan.

CSI can derive from the SelectedTrackTCPFX Zone how to chop it up.
__________________
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 01-05-2023, 12:33 PM   #21510
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
Given this list:

Shift
Control
Alt
Option

the second save will generate a Shift version, the third save will generate a Control version, etc.

Does the above order seem like the "natural" way to hardwire it ?

I would have thought (looking at how they are laid out on the MCU and Behringer)
Shift
Control
Option
Alt

Then again, the whole TCPFX things goes right over my head, So i'm happily typing away to create my FX Zones.
Although did i not read a while back a possible Auto map for no mapped plugins?

Last edited by Freex; 01-05-2023 at 12:38 PM.
Freex is offline   Reply With Quote
Old 01-05-2023, 12:59 PM   #21511
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Freex View Post
Then again, the whole TCPFX things goes right over my head, So i'm happily typing away to create my FX Zones.
Although did i not read a while back a possible Auto map for no mapped plugins?
Yes, the Auto-mapping is great for plugins with a small number of parameters. No need to do anything special, it "just works". Won't help you with those mega-FX plugins with hundreds of automation params but it's terrific for those small EQs, compressor, chorus, reverb plugins with just a small number of params that you haven't mapped yet. Everything's automatic and transparent.

Same thing for stepped params. No more having to futz around with parameter steps in the fx.zon files, they also "just work" (for the vast majority of plugins anyway).

I'll get all this stuff documented and up on the wiki soon. But great stuff is happening with FX mapping in CSI.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 01:08 PM   #21512
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 923
Default

Quote:
Originally Posted by Funkybot View Post
I'll get all this stuff documented and up on the wiki soon. But great stuff is happening with FX mapping in CSI.
Then hopefully I'll understand... but it might be a big ask. LOL

(I confess, I spent way to long the other night, trying to figure out why an FXZone I'd created a while back didnt work,
turns out,
SubZomeEnd
is hard to notice. LOL
Freex is offline   Reply With Quote
Old 01-05-2023, 01:24 PM   #21513
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

Quote:
Originally Posted by Freex View Post
Then hopefully I'll understand... but it might be a big ask. LOL

(I confess, I spent way to long the other night, trying to figure out why an FXZone I'd created a while back didnt work,
turns out,
SubZomeEnd
is hard to notice. LOL
I had something similar happen recently with a missing ZoneEnd line.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 01:55 PM   #21514
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Been thinking about this all day.

One of the most important challenges, at least to me , is the parameter order.

If I have a C4/SCE24, etc., and want to map a parametric EQ, I always like to have a row for Q, a row for frequency, and a row for boost/cut.

It would be sheer luck if the plugin author laid out the parameter indices that way.

Reaper follows the plugin author, perfectly logical.

For our purposes, I think we can do slightly better than just accepting this, as long as we take a chill approach to our mapping, as opposed to a rush approach

In other words, it would be great to be able to drag the TCP FX params around, rearranging the surface locations incredibly easily.

I won't give up on chasing this, but in the meantime...

I think we can do this to limp along for now.

We'll use the simple MCU row for illustration.

Ok, so you first add the param with index 3, all good.

It shows up on Rotary 1.

Now you add the param with index 2, it shows up on Rotary 1, and the parameter with index 3 shows up on Rotary 2, not what we want.

How about if we ignore the TCP FX order and go by order in which they are added.

So rerunning the above scenario, when the param with index 2 is added, Rotary 1 remains mapped to the parameter with index 3, and Rotary 2 is mapped the param with index 2.

Not really pretty, the order on the surface does not agree with the order on the screen, but at least we get the order we want on the surface.

If we make a mistake on the last one added, it is fairly simple to undo one level.

If we remove a parameter in the middle somewhere, it still holds up reasonably well.

However, it may be difficult to insert a parameter in the middle slot we just removed, they will be in different places on the screen and the surface, tricky but possible.

If we remove more than one in the middle, things get very dark, very quickly

I still think it's worth a shot, I will start thinking about how to code it, unless I get heavy pushback from you folks

So, push away
__________________
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 01-05-2023, 02:44 PM   #21515
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

That actually sounds great to me. No push here at all.

I think we can explain it thusly: the TCPFXParams are being leveraged by CSI to build and map FX.zon files. So it's based on the order added. When you're done, you build the map and you've created an fx.zon specific to that plugin using Reaper as the mapping tool.

If you want the order in the TCPFX, then use the SelectedTrackTCPFX.zon file. That's what it's for.

Seems perfectly logical and it's super annoying when you add something like "Reverb Mode" on your B7 widget, then Reaper decides to put it first and now it's on A1 and moves everything else around. This approach solves that in a very logical way.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 03:15 PM   #21516
leejul
Human being with feelings
 
Join Date: Sep 2021
Location: Quebec, Canada
Posts: 123
Default

Reaper 6.73
Windows 10 Pro
Latest exp version of CSI.
I did several tests with the FollowTCP but it does not work here.
Here is my code.
Zone "Track"

// Uncollapse Track Folder

Hold+Select| Reaper _SWS_SELCHILDREN //SWS: Select only children of selected folders
Hold+Select| Reaper _SWSTL_BOTH // SWS: Show selected track(s) in TCP and MCP
Hold+Selectø Reaper 40297 // Track: Unselect (clear selection of) all tracks
Hold+Select| Reaper _SWS_SELNEARESTPREVFOLDER // SWS: Select nearest previous folder
Hold+Select| Speak "Folder Open"

// Collapse Track Folder

Shift+Hold+Select| Reaper _SWS_SELCHILDREN //SWS: Select only children of selected folders
Shift+Hold+Select| Reaper _SWSTL_HIDE // SWS: Hide selected track(s)
Shift+Hold+Select| Reaper 40297 // Track: Unselect (clear selection of) all tracks
Shift+Hold+Select| Reaper _SWS_SELNEARESTPREVFOLDER // SWS: Select nearest previous folder
Shift+Hold+Select| Speak "Folder Closed"

Zone "Buttons"

// F3, Show All tracks
F3 Reaper _SWS_SELFOLDSTARTS // SWS: Select all folder start tracks
F3 Reaper _SWS_COLLAPSE // SWS: Set selected folder(s) collapsed
F3 Reaper 41594 // Track: Make all tracks visible in TCP and mixer
F3 Reaper _SWS_SEL1 // SWS: Select only track 1
F3 Speak "All Tracks Are Displayed"

// Show Track Folders only

F4 Reaper _SWS_SELFOLDSTARTS // SWS: Select all folder start tracks
F4 Reaper _SWSTL_SHOWEX // SWS: Show selected track(s), hide others
F4 Reaper _SWS_UNCOLLAPSE // SWS: Set selected folder(s) uncollapsed
F4 Reaper _SWS_SEL1 // SWS: Select only track 1
F4 Speak "Only Track Folders Are Displayed"

Everything is displayed perfectly on the X-Touch but in the TCP, the display is completely different.
Is there a problem with the FollowTCP function or is it me doing something wrong?
Thanks guys.
__________________
LeeJul
Reaper FrenchLangPack here:
stash.reaper.fm/v/45280/REAPER_SWS_FRC.ReaperLangPac
leejul is offline   Reply With Quote
Old 01-05-2023, 03:20 PM   #21517
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 6,143
Default

leejul, please post the contents of your csi.ini.
__________________
CSI v3 Wiki
Funkybot is offline   Reply With Quote
Old 01-05-2023, 05:17 PM   #21518
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
I still think it's worth a shot, I will start thinking about how to code it, unless I get heavy pushback from you folks

So, push away
No push back here It's a great idea for reasonably small FX.zon, and to be honest, if the the FX.zon is large, why are you using this method?

I still think it's worth printing the raw FX contents at the end of the created FX.zon, as built-in guide for further editing.
MixMonkey is offline   Reply With Quote
Old 01-05-2023, 05:31 PM   #21519
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,569
Default

Quote:
Originally Posted by MixMonkey View Post
No push back here It's a great idea for reasonably small FX.zon, and to be honest, if the the FX.zon is large, why are you using this method?

I still think it's worth printing the raw FX contents at the end of the created FX.zon, as built-in guide for further editing.
Definitely going to keep that !
__________________
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 01-05-2023, 05:38 PM   #21520
leejul
Human being with feelings
 
Join Date: Sep 2021
Location: Quebec, Canada
Posts: 123
Default

Quote:
Originally Posted by Funkybot View Post
leejul, please post the contents of your csi.ini.
Version 2.0

MidiSurface "X-Touch" 17 19

Page "HomePage" FollowTCP
"X-Touch" 8 0 "X-Touch.mst" "X-Touch"

Thanks for your help.
__________________
LeeJul
Reaper FrenchLangPack here:
stash.reaper.fm/v/45280/REAPER_SWS_FRC.ReaperLangPac
leejul 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 11:07 PM.


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