Old 06-16-2020, 11:30 PM   #1
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default CSI: Technical questions

Hi,

I'm reading up on CSI because I have a Faderport v2 arriving this week and I want to customize it.

I have a background in programming/computer science, and I have experience of scientific writing. Not trying to brag, but letting you know I might be able to contribute to the wiki documentation as I'm trying to wrap my brain around CSI.

I have been in contact with Geoff, who asked me to post my questions here in the forum.

I have jotted down these questions as I have studied the wiki and example files I have found. I'm sure there will be more of them :-)

Thanks for reading!


1. I understand the concept of Pages, and I see the action GoPage. But I can’t find how pages are defined and where. In the Installation notes, I see “HomePage” in the CSI.INI.

2. Is the zone ”Home” pre-defined (like “main” in C), in that this will always be the first set of bindings that CSI will look up and execute?

3. I’m not sure I understand parent vs child zones. If we have a starting/default zone, aren’t ALL other zones child-zones (in the examples I see, all Zones but Home and FX zones have the vertical bar)? How can there be other “stand-alone zones”?

4. In the example .zon files for Faderport 16 and Faderport v2, the Zone Home contains a bunch of included zones. However, I don’t see any GoZone commands. For the Faderport 16, that is probably fine, because bindings defined in all zones can be active simultaneously. But for the Faderport v2, the zones defined cannot be active simultaneously. My conclusion is that a) all zones included by IncludedZones will be active, and b) for Faderport v2, the code has to be ex-changed for a context-switch by a GoZone. Right or wrong?

5. What does the action NextPage do? I guess this will become clear once I understand #1 above :-)

6. Encoders, how can an encoder work without arguments? That is, in the first example on wiki, there’s just “Encoder b0 10 7f” (+ the feedback). How does it distinguish between CW and CCW motions?

7. I see neither the FP16 nor the FPv2 have their larger rotary defined in their .mst. Is there a problem with that particular knob, or is it just that no-one has managed to write it down yet?

8. On the wiki page, TrackAutoMode is described with a single argument. But in the FP16.zon there is a second argument, like “Touch TrackAutoMode "2" { 2 3 0 112 112 00 }”. What is the second argument?

9. In the Action Reference on the wiki page, most actions are red (link to main wiki page). Does that indicate that documentation is missing, or that the action is not implemented?

To be continued ...
cemark is offline   Reply With Quote
Old 06-17-2020, 08:49 AM   #2
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

... continued:

10. With a simple surface, like FPv2, you might have only one single rotary. Let’s say your favorite plugin has five rotary buttons on your screen. Pressing Next/Prev on the surface could then switch between these five rotaries (and map them, in turn, to your single rotary on your surface). Is this possible? Something like “SomeButton FXParam "3" "TapeType" [ 0.0 0.33 0.67 1.0 ] “ but for stepping through the actual FX parameters.

11. Continuing from #10 above: Is there a way to cycle through a plugin’s parameters? Let’s say you are currently on your very last rotary on your plugin, and then press Next (like above), what happens? Can I get it to jump back to rotary 1? (I see this is possible for automation modes with “CycleTrackAutoMode [ 0 1 3 2 4 5 ]” and also for the example with TapeType above, where CSI cycles back to the lowest value. )

12. Are there any explicitly conditional statements (if-then-else) in CSI? (Each binding in a zone can be regarded as a conditional statement: If I press this button, then this happens).

13. I understand we can switch to an FX zone automatically, i.e. when that FX receives focus. But the reverse is not possible? I mean, when the FX loses focus, then automatically fall back to e.g. the Home zone.

Can't wait to get my hands on the FPv2 ...

To be continued ...
cemark is offline   Reply With Quote
Old 06-17-2020, 09:03 AM   #3
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post

1. I understand the concept of Pages, and I see the action GoPage. But I can’t find how pages are defined and where. In the Installation notes, I see “HomePage” in the CSI.INI.
On the config panel you can add Pages.

A Page is a set of surfaces configured by the referenced .mst/.ost/.zon files.

So the same hardware can be configured completely differently -- even unrecognizably -- on another Page.

Switching between Pages is almost instantaneous.

Quote:
Originally Posted by cemark View Post
2. Is the zone ”Home” pre-defined (like “main” in C), in that this will always be the first set of bindings that CSI will look up and execute?
Yes.

Quote:
Originally Posted by cemark View Post
3. I’m not sure I understand parent vs child zones. If we have a starting/default zone, aren’t ALL other zones child-zones (in the examples I see, all Zones but Home and FX zones have the vertical bar)? How can there be other “stand-alone zones”?
These will be gone in the next build.

GoSubZone will replace the parent/child concept.

Sometimes you need extra context -- e.g. which Send number for this Track -- say in this case you want to "drill down" into a new Zone to access some less often used params, then you want to pass the Track and Send number context to the SubZone (child).

That's all it is, a way to add params to GoZone.



Quote:
Originally Posted by cemark View Post
4. In the example .zon files for Faderport 16 and Faderport v2, the Zone Home contains a bunch of included zones. However, I don’t see any GoZone commands. For the Faderport 16, that is probably fine, because bindings defined in all zones can be active simultaneously. But for the Faderport v2, the zones defined cannot be active simultaneously. My conclusion is that a) all zones included by IncludedZones will be active, and b) for Faderport v2, the code has to be ex-changed for a context-switch by a GoZone. Right or wrong?
Correct.

Quote:
Originally Posted by cemark View Post
5. What does the action NextPage do? I guess this will become clear once I understand #1 above :-)


Quote:
Originally Posted by cemark View Post
6. Encoders, how can an encoder work without arguments? That is, in the first example on wiki, there’s just “Encoder b0 10 7f” (+ the feedback). How does it distinguish between CW and CCW motions?
Encoders are very special beasts -- some have just one value for each direction, others have multiple values representing acceleration, smoothing, etc., CSI has a few flavours available.

Quote:
Originally Posted by cemark View Post
7. I see neither the FP16 nor the FPv2 have their larger rotary defined in their .mst. Is there a problem with that particular knob, or is it just that no-one has managed to write it down yet?
Jus not written down I think

Quote:
Originally Posted by cemark View Post
8. On the wiki page, TrackAutoMode is described with a single argument. But in the FP16.zon there is a second argument, like “Touch TrackAutoMode "2" { 2 3 0 112 112 00 }”. What is the second argument?
RGB off/on colour support -- first triplet is off colour, second is on colour.

Quote:
Originally Posted by cemark View Post
9. In the Action Reference on the wiki page, most actions are red (link to main wiki page). Does that indicate that documentation is missing, or that the action is not implemented?
Doc missing (mostly... I 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 06-17-2020, 09:11 AM   #4
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
10. With a simple surface, like FPv2, you might have only one single rotary. Let’s say your favorite plugin has five rotary buttons on your screen. Pressing Next/Prev on the surface could then switch between these five rotaries (and map them, in turn, to your single rotary on your surface). Is this possible? Something like “SomeButton FXParam "3" "TapeType" [ 0.0 0.33 0.67 1.0 ] “ but for stepping through the actual FX parameters.
One way to do it is have a Zone for each parameter -- look at the Pan / Width Zones in the MCU example.


Quote:
Originally Posted by cemark View Post
11. Continuing from #10 above: Is there a way to cycle through a plugin’s parameters? Let’s say you are currently on your very last rotary on your plugin, and then press Next (like above), what happens? Can I get it to jump back to rotary 1? (I see this is possible for automation modes with “CycleTrackAutoMode [ 0 1 3 2 4 5 ]” and also for the example with TapeType above, where CSI cycles back to the lowest value. )
Yup, see above.

Quote:
Originally Posted by cemark View Post
12. Are there any explicitly conditional statements (if-then-else) in CSI? (Each binding in a zone can be regarded as a conditional statement: If I press this button, then this happens).
Not quite sure what you mean here, you mean like in the language syntax -- no.

Quote:
Originally Posted by cemark View Post
13. I understand we can switch to an FX zone automatically, i.e. when that FX receives focus. But the reverse is not possible? I mean, when the FX loses focus, then automatically fall back to e.g. the Home zone.
That's what should happen, working on 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 06-17-2020, 10:40 AM   #5
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Super -- thanks a lot!

Follow up on #3. My impression is that that requires the use of a (local) variable. Will you introduce variables as well, then? (limitations?)

This will help matters when coding your Zones. And I wonder, wouldn't it kinda solve #10? Just keep track of a state variable x, and then pass it to GoSubZone fx_param(x).

I hope I can give something back to the CSI project when I understand it better.
cemark is offline   Reply With Quote
Old 06-17-2020, 10:50 AM   #6
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

More follow up on #3: New build -- new syntax etc. I wonder, as I am about to start working on my incoming FPv2, should I even bother with the current build/syntax? I guess what I'm asking is, when is it reasonable to get one's hands on the new build?

Maybe I can be of help testing the new stuff? (If that phase isn't completed yet)
cemark is offline   Reply With Quote
Old 06-17-2020, 11:02 AM   #7
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
More follow up on #3: New build -- new syntax etc. I wonder, as I am about to start working on my incoming FPv2, should I even bother with the current build/syntax? I guess what I'm asking is, when is it reasonable to get one's hands on the new build?

Maybe I can be of help testing the new stuff? (If that phase isn't completed yet)
Yeah, I keep saying about a week, and reality keeps intruding

Let's just say it's close
__________________
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 06-17-2020, 11:10 AM   #8
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Follow up on #13: Is this future work, or should I consider this when I start hacking away?
cemark is offline   Reply With Quote
Old 06-17-2020, 11:25 AM   #9
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Follow up on #13: Is this future work, or should I consider this when I start hacking away?
Hopefully Focused FX will work properly in the next build.
__________________
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 06-17-2020, 11:32 AM   #10
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Cool! And, wow, you are FAST!

Did you happen to miss my first follow up on #3? (there are two in a row)

I will start pseudo coding my zone files shortly.
cemark is offline   Reply With Quote
Old 06-17-2020, 11:40 AM   #11
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Cool! And, wow, you are FAST!

Did you happen to miss my first follow up on #3? (there are two in a row)

I will start pseudo coding my zone files shortly.
Yeah, I was kinda dodging that one a bit

It doesn't require a local variable that the user needs to worry about, because the context can be automatically discerned.

Seems like a natural step to add user assignable context variables.

Whenever we face something like this in CSI, we pause and evaluate if it is really necessary, can it be done with existing stuff, etc.

We always want to keep CSI as simple as possible, but no simpler
__________________
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 06-17-2020, 11:58 AM   #12
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Quote:
Originally Posted by Geoff Waddington View Post

We always want to keep CSI as simple as possible, but no simpler
Yeah, that Einstein quote applies to much in life (writing for example). I believe Hemmingway said something similar.

What would REALLY help me at this stage, is code examples showing how the new stuff replaces the old.

Who do I have to k... Sorry, new take: Any chance I can get my hands on some? :-)

Another thing (just curious): I thought CSI was a one-man project. But you refer to "we", so it's more like a team effort?

Thanks for all your help!
cemark is offline   Reply With Quote
Old 06-17-2020, 12:16 PM   #13
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Yeah, that Einstein quote applies to much in life (writing for example). I believe Hemmingway said something similar.

What would REALLY help me at this stage, is code examples showing how the new stuff replaces the old.

Who do I have to k... Sorry, new take: Any chance I can get my hands on some? :-)

Another thing (just curious): I thought CSI was a one-man project. But you refer to "we", so it's more like a team effort?

Thanks for all your help!
Very little will change, so go ahead and start.

Other than slight syntax changes (e.g. GoSubZone) the changes are internal improvements/optimizations.

The "we" is the whole community, I'm just the coder.

Thanks for noticing the quote
__________________
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 06-17-2020, 11:13 PM   #14
tdc
Human being with feelings
 
Join Date: Oct 2019
Location: Sydney
Posts: 471
Default

Quote:
Originally Posted by Geoff Waddington View Post
Yeah, I keep saying about a week, and reality keeps intruding
"True art is never finished, only abandoned."

Take your time and do the best you can!
tdc is offline   Reply With Quote
Old 06-18-2020, 12:27 AM   #15
Pompeysie
Human being with feelings
 
Join Date: Aug 2019
Location: UK
Posts: 65
Default

Quote:
Originally Posted by cemark View Post
Yeah, that Einstein quote applies to much in life (writing for example). I believe Hemmingway said something similar.

What would REALLY help me at this stage, is code examples showing how the new stuff replaces the old.

Who do I have to k... Sorry, new take: Any chance I can get my hands on some? :-)

Another thing (just curious): I thought CSI was a one-man project. But you refer to "we", so it's more like a team effort?

Thanks for all your help!
Hi Cemark

I bought a FPV2 last week and have been dabbling with CSI, although work keeps getting in the way.

I’d be keen to see how you are getting on. I have a version I found which is pretty stable, built by someone on here, which means that most of the functions go the v2 work.

I’d like to map some more advanced functionality to it though.

Happy to help if you like.

Simon
Pompeysie is offline   Reply With Quote
Old 06-18-2020, 01:07 AM   #16
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Hi Simon,

Super -- let's help each other and share whatever progress we make!

I found some rudimentary files for the FPv2, but they seemed to need a lot of work.

So, in the end I wrote an entirely new .zon file. I'm still waiting for my surface so I haven't been able to test anything yet.

I would be interested in looking at your .mst though.

Also, feel free to chime in on any questions I have. They will keep on coming :-)

Thanks
cemark is offline   Reply With Quote
Old 06-18-2020, 01:53 AM   #17
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

... continued:

14. I’m planning on using the automatic switch to fx Zone on window focus. But what happens if no zone matches the plugin? (I’ll probably not implement zones for all plugins, duuh  Will the currently active zone stay active, or will we fall back on Home? For example, if the currently active zone is another fx zone, and then focus is changed to a plugin without implemented zone, what happens?

15. Shift: Hmmm … The FPv2 has a shift-button. I wonder, won’t the surface output a different midi msg for e.g. MASTER as compared to SHIFT+MASTER? If so, a) shouldn’t these codes be in the .mst file, and hence b) render the modifier bindings containing Shift in the zone file redundant? (There’s even a separate label for the shifted buttons on the surface).

16. What is the syntax for the new GoSubZone? I noticed you wrote “GoSubZone(child)”. Hence the argument is the zone we switch to. However, I get the impression from your other comments that the argument instead should contain a state, like track number etc.

17. Panning. I don’t understand how I should bind my rotary to panning. Right now I have:
SelectedTrackNavigator
MyRotary TrackPan
But I have no idea what I SHOULD have. I see TrackPan sometimes has the argument “0”.

18. Zooming: Will the following work?
Zone "Zoom"
MyRotary Reaper "990" // Standard Reaper mousewheel zoom
Zoom GoSubZone Home
Zone End


Thanks!
cemark is offline   Reply With Quote
Old 06-18-2020, 03:19 AM   #18
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
14. I’m planning on using the automatic switch to fx Zone on window focus. But what happens if no zone matches the plugin? (I’ll probably not implement zones for all plugins, duuh  Will the currently active zone stay active, or will we fall back on Home? For example, if the currently active zone is another fx zone, and then focus is changed to a plugin without implemented zone, what happens?
The design is this use case:

You have decided to navigate away from an FX.

If there is no map for the now focused FX, you go Home.

You can refocus the previous FX if you wish.

Quote:
Originally Posted by cemark View Post
15. Shift: Hmmm … The FPv2 has a shift-button. I wonder, won’t the surface output a different midi msg for e.g. MASTER as compared to SHIFT+MASTER? If so, a) shouldn’t these codes be in the .mst file, and hence b) render the modifier bindings containing Shift in the zone file redundant? (There’s even a separate label for the shifted buttons on the surface).
Depends on the surface, some put out different messages, some just put out the shift button state, some can be configured by firmware or software.


Quote:
Originally Posted by cemark View Post
16. What is the syntax for the new GoSubZone? I noticed you wrote “GoSubZone(child)”. Hence the argument is the zone we switch to. However, I get the impression from your other comments that the argument instead should contain a state, like track number etc.
Haha, that wasn't a set of parens in the programming sense, but rather to say GoSubZone refers to the child so, more correctly:

Code:
Zone "aZone"
        GoSubZone "aZoneThatNeedsContext"
ZoneEnd
The .zon file does not contain parameters in parens.

CSI invokes "aZoneThatNeedsContext" with the context supplied by "aZone" when you use the GoSubZone syntax.

Quote:
Originally Posted by cemark View Post
17. Panning. I don’t understand how I should bind my rotary to panning. Right now I have:
SelectedTrackNavigator
MyRotary TrackPan
But I have no idea what I SHOULD have. I see TrackPan sometimes has the argument “0”.
The "0" is for the ring display style around the encoder if you have one.


Quote:
Originally Posted by cemark View Post
18. Zooming: Will the following work?
Zone "Zoom"
MyRotary Reaper "990" // Standard Reaper mousewheel zoom
Zoom GoSubZone Home
Zone End
Don't know, try 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 06-18-2020, 08:42 AM   #19
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Is this the way I should implement the FX parameters according to my question #10 above?

Zone "VST: FabFilter Pro-Q 3 (FabFilter)" ProQ
FocusedFXNavigator
IncludedZones
"ProQ Band 1"
IncludedZonesEnd
ZoneEnd

Zone "ProQ Band 1"
Rotary FXParam 2 "Freq band 1"
Fader FXParam 3 "Gain band 1"
Shift+Rotary FXParam 7 "Q band 1"
Next GoZone "ProQ Band 2"
ZoneEnd

Zone "ProQ Band 2"
Rotary FXParam 15 "Freq band 2"
Fader FXParam 16 "Gain band 2"
Shift+Rotary FXParam 20 "Q band 2"
Next GoZone "ProQ Band 3"
Prev GoZone "ProQ Band 1"
ZoneEnd

Zone "ProQ Band 3"
Rotary FXParam 28 "Freq band 3"
Fader FXParam 29 "Gain band 3"
Shift+Rotary FXParam 33 "Q band 3"
Next GoZone "ProQ Band 4"
Prev GoZone "ProQ Band 2"
ZoneEnd


Etc ...
cemark is offline   Reply With Quote
Old 06-18-2020, 09:07 AM   #20
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

... and the syntax for activating my defined FXZones. Would this work?

Zone Home
OnFXFocus GoZone "VST: FabFilter Pro-Q 3 (FabFilter)"
OnFXFocus GoZone "Some other plugin ..."
...
cemark is offline   Reply With Quote
Old 06-18-2020, 10:00 AM   #21
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Is this the way I should implement the FX parameters according to my question #10 above?
Pretty close, any FX Zone needs a Navigator, and you don' t need the included Zones in this case, something more like this:

Code:
Zone "VST: FabFilter Pro-Q 3 (FabFilter)" ProQ
	FocusedFXNavigator
	Rotary		FXParam	2	"Freq band 1"
	Fader		FXParam	3	"Gain band 1"
	Shift+Rotary	FXParam 7	"Q band 1"
	Next		GoSubZone	"ProQ Band 2"
ZoneEnd

Zone "ProQ Band 2"
	FocusedFXNavigator
	Rotary		FXParam	15	"Freq band 2"
	Fader		FXParam	16	"Gain band 2"
	Shift+Rotary	FXParam 20	"Q band 2"
	Next		GoSubZone	"ProQ Band 3"
	Prev		GoSubZone	"VST: FabFilter Pro-Q 3 (FabFilter)"
ZoneEnd

Zone "ProQ Band 3"
	FocusedFXNavigator
	Rotary		FXParam	28	"Freq band 3"
	Fader		FXParam	29	"Gain band 3"
	Shift+Rotary	FXParam 33	"Q band 3"
	Next		GoSubZone	"ProQ Band 4"
	Prev		GoSubZone	"ProQ Band 2"
ZoneEnd
__________________
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 06-18-2020, 10:01 AM   #22
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
... and the syntax for activating my defined FXZones. Would this work?

Zone Home
OnFXFocus GoZone "VST: FabFilter Pro-Q 3 (FabFilter)"
OnFXFocus GoZone "Some other plugin ..."
...
Like this:
Code:
Zone Home
	OnFXFocus MapFocusedFXToWidgets
ZoneEnd
__________________
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 06-18-2020, 11:41 AM   #23
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Big thanks!

I only have one fader. Can I use TrackBank like in this example?

Zone "Track control"
SelectedTrackNavigator
Arm TrackRecordArm
Solo TrackSolo
Mute TrackMute
Fader TrackVolume
FaderTouch TrackTouch
Rotary TrackPan
Prev TrackBank "-1"
Next TrackBank "+1"
Zone end

Sorry, I can't get the TAB to work in my posts.
cemark is offline   Reply With Quote
Old 06-18-2020, 02:07 PM   #24
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Big thanks!

I only have one fader. Can I use TrackBank like in this example?

Zone "Track control"
SelectedTrackNavigator
Arm TrackRecordArm
Solo TrackSolo
Mute TrackMute
Fader TrackVolume
FaderTouch TrackTouch
Rotary TrackPan
Prev TrackBank "-1"
Next TrackBank "+1"
Zone end

Sorry, I can't get the TAB to work in my posts.
Yeah, TAB doesn't work on this forum the way we are used to

The same way you enclose the word "Quote" inside "[" and "]" along with a "/" for ending, you can do with "Code", as illustrated below.

That way the formatting will remain.

Then I just use 8 spaces for TAB.

I use a Console 1 -- the following maps Selected Track FX to the Input/Gate/EQ/Compressor sections on the Console 1 and sets the Console 1 "Channel" controls to the Selected Track, your setup should end up being similar:

Code:
Zone "Home"
	OnTrackSelection	GoZone "Channel"
	OnTrackSelection 	MapSelectedTrackFXToWidgets
	Option+Volume 		FocusedFXParam
ZoneEnd

Zone "Channel"
	SelectedTrackNavigator
	OutputMeterLeft 	TrackOutputMeter "0"
	OutputMeterRight	TrackOutputMeter "1"
	Volume 			TrackVolume
	Shift+Volume 		TrackPan 	"0"
	Control+Volume 		TrackPanWidth	"1"
	Option+Volume 		FocusedFXParam
	Mute 			TrackMute
	Solo 			TrackSolo
ZoneEnd
__________________
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 06-18-2020, 11:32 PM   #25
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

I think I get what you are saying. However, my question was not about FX, but the use of TrackBank. Sorry if I was unclear.

What I need is a way to shift the currently selected track by 1, to the left and right. And I wondered if I could use TrackBank for that, like in this example:

Code:
Zone "Track control"
        SelectedTrackNavigator
        Arm                  TrackRecordArm
        Solo                 TrackSolo
        Mute	             TrackMute
        Fader	             TrackVolume
        FaderTouch           TrackTouch	
        Rotary	             TrackPan
        Prev	             TrackBank  "-1"
        Next	             TrackBank  "+1"
Zone end
cemark is offline   Reply With Quote
Old 06-18-2020, 11:37 PM   #26
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

I'm not clear about TrackPanWidth. It kind of pops up everywhere. How does it differ from TrackPan?

I just need to be able to map my rotary to basic panning. Do I need to bother with TrackPanWidth?
cemark is offline   Reply With Quote
Old 06-19-2020, 02:55 AM   #27
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
I'm not clear about TrackPanWidth. It kind of pops up everywhere. How does it differ from TrackPan?

I just need to be able to map my rotary to basic panning. Do I need to bother with TrackPanWidth?
In Reaper Pan Width controls the Width of the stereo image.

You can also use it to reverse left/right.
__________________
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 06-19-2020, 02:58 AM   #28
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
I think I get what you are saying. However, my question was not about FX, but the use of TrackBank. Sorry if I was unclear.

What I need is a way to shift the currently selected track by 1, to the left and right. And I wondered if I could use TrackBank for that, like in this example:

Code:
Zone "Track control"
        SelectedTrackNavigator
        Arm                  TrackRecordArm
        Solo                 TrackSolo
        Mute	             TrackMute
        Fader	             TrackVolume
        FaderTouch           TrackTouch	
        Rotary	             TrackPan
        Prev	             TrackBank  "-1"
        Next	             TrackBank  "+1"
Zone end
Ah, just use the stock MCU as a starting point and make sure your Home Zone looks something like this:

Code:
Zone Home
	OnTrackSelection MapSelectedTrackSendsToWidgets
	IncludedZones
		"Buttons|"
		"Channel|1-1"
	IncludedZonesEnd
ZoneEnd
I think that will work.

Then just assign a couple of buttons to TrackBank.
__________________
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 06-19-2020, 04:54 AM   #29
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

OK, will do. But I don't understand why channel in this case has to be a template zone, and why there's need to specify that we need exactly one.

I understand this zone needs to operate on _any_ channel. Hence, the mapping needs to be redone when the user changes channel. However, I thought that this re-mapping was taken care of by using SelectedTrackNavigator plus TrackBank. Like so:

Code:
Zone "Channel"
    SelectedTrackNavigator
    Next    TrackBank    "+1"
    Prev    TrackBank    "-1"
    ...
EndZone
I get confused because in the MCU example (and others), the vertical bar clearly refers to the channel number on the hardware unit. That's why we need the template zones. But in the case above, there is only one channel, and here the vertical bar has another meaning: it would correspond to the user-selected track in Reaper.

It hurts my old head :-)

I think I'm not entirely clear on zones vs template zones. I still don't understand why e.g. the zone buttons need to be a template zone. What context does it need?
cemark is offline   Reply With Quote
Old 06-19-2020, 05:14 AM   #30
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
OK, will do. But I don't understand why channel in this case has to be a template zone, and why there's need to specify that we need exactly one.

I understand this zone needs to operate on _any_ channel. Hence, the mapping needs to be redone when the user changes channel. However, I thought that this re-mapping was taken care of by using SelectedTrackNavigator plus TrackBank. Like so:

Code:
Zone "Channel"
    SelectedTrackNavigator
    Next    TrackBank    "+1"
    Prev    TrackBank    "-1"
    ...
EndZone
I get confused because in the MCU example (and others), the vertical bar clearly refers to the channel number on the hardware unit. That's why we need the template zones. But in the case above, there is only one channel, and here the vertical bar has another meaning: it would correspond to the user-selected track in Reaper.

It hurts my old head :-)

I think I'm not entirely clear on zones vs template zones. I still don't understand why e.g. the zone buttons need to be a template zone. What context does it need?
Yeah, this template Zone stuff will all disappear in the next build.

As far as Navigators, you need TrackNavigator not SelectedTrackNavigator:

https://github.com/malcolmgroves/rea...iki/Navigators
__________________
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 06-19-2020, 08:18 AM   #31
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Ah, so my example will work if I exchange SelectedTrackNavigator for TrackNavigator?
cemark is offline   Reply With Quote
Old 06-19-2020, 08:27 AM   #32
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

I do believe you, my new friend, but I purposely chose SelectedTrackNavigator after reading the documentation on the wiki:

About SelectedTrackNavigator: "Using the SelectedTrackNavigator will mean that the actions in that Zone act in the context of the currently selected track. Our Fader will change the selected track’s volume, TrackPan would alter that tracks Pan settings, etc." Sounds like what I need.

About TrackNavigator: "The TrackNavigator is what CSI uses to manage navigation and control of widgets that may impact multiple tracks. Example: you have an 8-fader surface with 8 rotaries, 8 solo, and 8 mute buttons that you'll want assigned to different tracks. This is where TrackNavigator differs from SelectedTrackNavigator - since we have more than one fader, and we will want to assign them to more than the selected track." Sounds like what I don't need.

The plot thickens :-)
cemark is offline   Reply With Quote
Old 06-19-2020, 09:51 AM   #33
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
I do believe you, my new friend, but I purposely chose SelectedTrackNavigator after reading the documentation on the wiki:

About SelectedTrackNavigator: "Using the SelectedTrackNavigator will mean that the actions in that Zone act in the context of the currently selected track. Our Fader will change the selected track’s volume, TrackPan would alter that tracks Pan settings, etc." Sounds like what I need.

About TrackNavigator: "The TrackNavigator is what CSI uses to manage navigation and control of widgets that may impact multiple tracks. Example: you have an 8-fader surface with 8 rotaries, 8 solo, and 8 mute buttons that you'll want assigned to different tracks. This is where TrackNavigator differs from SelectedTrackNavigator - since we have more than one fader, and we will want to assign them to more than the selected track." Sounds like what I don't need.

The plot thickens :-)
Haha, the plot doesn't thicken, the wiki needs a tune up, that's all

The TrackNavigator is the one to use when you want to bank -- think about it for a second -- what does it mean to bank the Selected Track -- it doesn't make any sense, the same as banking the MasterTrack, etc. doesn't make sense
__________________
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 06-19-2020, 10:23 AM   #34
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by Geoff Waddington View Post
Haha, the plot doesn't thicken, the wiki needs a tune up, that's all

The TrackNavigator is the one to use when you want to bank -- think about it for a second -- what does it mean to bank the Selected Track -- it doesn't make any sense, the same as banking the MasterTrack, etc. doesn't make sense
Geoff, I totally get what you're saying and why it makes sense, but I really wish in this instance, CSI was a little less logical and a little more user friendly.

Think of it: I have a one channel surface set to SelectedTrackNavigator. I want navigate to the next track:

TrackBank +1 doesn't work

so I have to use
Code:
	ChannelRight 			Reaper 40285 		//Select next track
Not terrible. Now, let's say I'm on my kick track, which is track 1, and I want to navigate to the Vocals on track 23. How do I get there on the surface? I could press ChannelRight 22 times, but that's going to suck. So I want to simulate banking to cut down on the number of button presses.

My "workaround" was to create a custom reaper action that runs "Repaer 40285" 8 times consecutively. But that's not portable. Someone else won't have that action if they download my .zon. Now I could do this:

Code:
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
	BankRight     Reaper 40285 		//Select next track
...but that's not the prettiest nor most elegant, but it should get the job done.

However, I'd humbly ask you consider us one fader surface folks and allow us to bank.

How would that work? Maybe create a CSI action called SelectTrack. Then we could setup our zones like this:

Code:
     BankLeft     SelectTrack -8
     BankRight    SelectTrack +8
     ChannelLeft  SelectTrack -1
     ChannelRight SelectTrack +1
This way, us one-fader surface folks could use SelectedTrackNavigator and have a CSI action that lets us navigate the project that we could share without cludgy workarounds (custom actions) or just having a messy .zon file. And the best thing, it could be customized. Maybe I want to jump 5 +/- 5 tracks, or +/- 16. Using the above approach, I could set that up easily within the .zon.
Funkybot is offline   Reply With Quote
Old 06-19-2020, 10:27 AM   #35
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Thanks for sticking with me!

Then, the following code should (in principle) work for mapping Reaper tracks to my single fader and some buttons?

Code:
Zone Home
	OnFXFocus MapFocusedFXToWidgets
	Shift 	Shift
	IncludedZones
		"Extended Transport"
		"Track control"
		"My Actions"
		"Markers"
	IncludedZonesEnd
	Master	GoSubZone "Master"
ZoneEnd

/ **********************
/ Track Control handles everything about a track
/ ***********************
Zone "Track control"
	TrackNavigator
	Arm  				TrackRecordArm
	Solo  				TrackSolo
	Mute				TrackMute
	Fader	  			TrackVolume
	FaderTouch  			TrackTouch	
	Rotary				TrackPan
	Prev				TrackBank  "-1"
	Next				TrackBank  "+1"
Zone end
cemark is offline   Reply With Quote
Old 06-19-2020, 10:30 AM   #36
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

... and if the code above should work (in principle, ha ha), then I wonder: What track will initially be mapped to my single fader?
cemark is offline   Reply With Quote
Old 06-19-2020, 11:16 AM   #37
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Thanks for sticking with me!

Then, the following code should (in principle) work for mapping Reaper tracks to my single fader and some buttons?

Code:
Zone Home
	OnFXFocus MapFocusedFXToWidgets
	Shift 	Shift
	IncludedZones
		"Extended Transport"
		"Track control"
		"My Actions"
		"Markers"
	IncludedZonesEnd
	Master	GoSubZone "Master"
ZoneEnd

/ **********************
/ Track Control handles everything about a track
/ ***********************
Zone "Track control"
	TrackNavigator
	Arm  				TrackRecordArm
	Solo  				TrackSolo
	Mute				TrackMute
	Fader	  			TrackVolume
	FaderTouch  			TrackTouch	
	Rotary				TrackPan
	Prev				TrackBank  "-1"
	Next				TrackBank  "+1"
Zone end
Master GoSubZone "Master" makes no sense because "Home" has no context (it has no Navigator) to pass on.

Master GoZone "Master" is what you need here.

Also, not sure if Prev and Next will work inside the "Channel" Zone.

They really don't belong there.

Handy tip about Navigators -- ask about context, here are some examples.

TrackVolume -- does TrackVolume need a context -- sure does -- it needs to know which Track -- that is supplied by the Navigator.

Do Prev and Next need a context -- nope they are fine standalone, they don't need a Track, they inc/dec the Track bank location, but they themselves need no Track context.

Great that you are asking about Navigators, they are key concepts in CSI.
__________________
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 06-19-2020, 11:17 AM   #38
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
... and if the code above should work (in principle, ha ha), then I wonder: What track will initially be mapped to my single fader?
CSI always starts at Track 1.
__________________
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 06-19-2020, 01:14 PM   #39
cemark
Human being with feelings
 
cemark's Avatar
 
Join Date: Jun 2014
Location: Sweden
Posts: 329
Default

Like this?

Code:
Zone Home
	OnFXFocus MapFocusedFXToWidgets
	Shift 	Shift
	Prev	TrackBank  "-1"
	Next	TrackBank  "+1"
	IncludedZones
		"Extended Transport"
		"Track control"
		"My Actions"
		"Markers"
	IncludedZonesEnd
	Master	GoZone "Master"
ZoneEnd

/ **********************
/ Track Control handles everything about a track
/ ***********************
Zone "Track control"
	TrackNavigator
	Arm  			TrackRecordArm
	Solo  			TrackSolo
	Mute			TrackMute
	Fader	  		TrackVolume
	FaderTouch  		TrackTouch	
	Rotary			TrackPan
ZoneEnd
cemark is offline   Reply With Quote
Old 06-19-2020, 02:38 PM   #40
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,184
Default

Quote:
Originally Posted by cemark View Post
Like this?

Code:
Zone Home
	OnFXFocus MapFocusedFXToWidgets
	Shift 	Shift
	Prev	TrackBank  "-1"
	Next	TrackBank  "+1"
	IncludedZones
		"Extended Transport"
		"Track control"
		"My Actions"
		"Markers"
	IncludedZonesEnd
	Master	GoZone "Master"
ZoneEnd

/ **********************
/ Track Control handles everything about a track
/ ***********************
Zone "Track control"
	TrackNavigator
	Arm  			TrackRecordArm
	Solo  			TrackSolo
	Mute			TrackMute
	Fader	  		TrackVolume
	FaderTouch  		TrackTouch	
	Rotary			TrackPan
ZoneEnd
There you go, that's it, nice and clean.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:54 AM.


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