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

Reply
 
Thread Tools Display Modes
Old 08-08-2022, 07:26 PM   #18361
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by Navelpluisje View Post
Hmmm, something with great minds think.........?
This crossed my mind a couple of times.

My add to the discussion. It needs:
  • A navigator to navigate through the pages
  • With the navigator, it's actions to navigate
  • Because the user does not know how many pages there are we need a navigator feedback to display current position like 2/11
  • You can determine if the param is a toggle, so could map these to a button
  • For the toggle skip the first channel, so the display can be used for the navigator feedback

I ended up with a dummy zone that looks like:
Code:
Zone UnmappedFX
  Fader|      FXParam
  Select|     FXToggleParam

  ScribbleLine1_|    FXToggleParamNameDisplay
  ScribbleLine2_|    FXToggleParamValueDisplay
  ScribbleLine3_|    FXParamNameDisplay
  ScribbleLine4_|    FXParamValueDisplay

  NextBank           NextFXParamBank
  PreviousBank       PreviousFXParamBank
ZoneEnd
I think paging actions could be really great if doable. That would certainly eliminate the issue of "only 8 faders but way more FXParams".
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-08-2022, 07:27 PM   #18362
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Additionally, I'd love it if there was some way CSI had actions that could count backwards from the last FXParam and allow us to hardcode the Reaper Wet/Dry mix, Bypass, and Delta Solo.

Here's what I'm thinking...

Code:
   Fader8                FXParamReaperWetDry     // 2nd to last FX Param in list
   RotaryPush8           FXParamReaperBypass     // 3rd to last FX Param in list
   Shift+RotaryPush8     FXParamReaperDeltaSolo  // Last FXParam in list
...paging might get complicated by it like in Navelpluisje's example with the pipe characters, but maybe those params always persist on Fader8/RotaryPush8 in that example. But if there's no paging, the above would be a really good way to get those params assigned to fixed locations regardless of the number of FXParams in a .zon file.
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-08-2022, 11:23 PM   #18363
jakeman19
Human being with feelings
 
Join Date: Jan 2022
Posts: 133
Default

Quote:
Originally Posted by themathpotato View Post
Is it possible to create zones for js plugins? I've tried the same method as with vsts but no luck, the parameters rarely work as intended, instead locking to one value (usually 0 or 1).
I too am having the same issue with JS FX. Is this a JS programming thing?

Jd
jakeman19 is offline   Reply With Quote
Old 08-09-2022, 03:09 AM   #18364
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by jakeman19 View Post
I too am having the same issue with JS FX. Is this a JS programming thing?

Jd
Yes you can. When parameters are outside of the typical 0 to 1 range, as many JSFX params are, you need to define the range like this:

Code:
Filter1Q	FXParam 22 "Filter1 Q"           [ 0.0>100.0 ]
That's from my ReEQ zone (not ReaEQ)

Be warned though, and I know Geoff loves when I point this out, the feedback will not be interpolated. So in OSC land it's easy to make an OSC message that just has the appropriate range, but if you were to use this on a MF Twister, for example, the LED ring wouldn't give you any useful information. It would just go from 0 to 1 100 times.
Puck is offline   Reply With Quote
Old 08-09-2022, 03:18 AM   #18365
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

"bx_"
"SPL "
"Unfiltered Audio "
"Dragonfly "
Puck is offline   Reply With Quote
Old 08-09-2022, 06:41 AM   #18366
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Quote:
Originally Posted by Geoff Waddington View Post
Code:
Zone "VST: UAD Fairchild 660 (Universal Audio, Inc.)" "Fair660"
I would advise against regexing and stripping prefixes and manufacturer names. I'm afraid that's a neverending can of worms. What I would do here would be to accept the number of characters as an input parameter and then to massage the string like this:
- remove all spaces from the string
- remove the rightmost parentheses together with the content
- take X rightmost characters

So, for example, for a 10-digit display, this would show "irchild660", or, for a 7-digit display: "hild660".
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 06:51 AM   #18367
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by AtmanActive View Post
I would advise against regexing and stripping prefixes and manufacturer names. I'm afraid that's a neverending can of worms. What I would do here would be to accept the number of characters as an input parameter and then to massage the string like this:
- remove all spaces from the string
- remove the rightmost parentheses together with the content
- take X rightmost characters

So, for example, for a 10-digit display, this would show "irchild660", or, for a 7-digit display: "hild660".
I like the idea of ditching spaces and text in the parenthesis. But I'd still hope that removing prefixes were an option at least for the most common ones (UAD, T-Racks, TDR, etc.). The trick is to remove them so that removing UAD doesn't also strip the word QUAD, which is why I think the order of operations is important. Replace "VST: UAD " with "" first, then once that's done, remove any remaining "VST: ".

But if what you're proposing could be done (CSI would need to keep track of how many display characters each surface allowed - which sounds like it adds complexity), wouldn't you rather see the X leftmost characters?

8-characters:
UADFairc

10-characters:
UADFairchi

I wouldn't be looking for "hild660".
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-09-2022, 07:27 AM   #18368
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

The same way TrackOutputMeter can accept 0 or 1 (or 2 or 3 or 4?), this function could accept the desired number of characters by the surface/creator.

So, for a 7-digit surface .zon file would be FXMenuNameDisplay 7, and for a 10-digit it would be FXMenuNameDisplay 10, and for TouchOSC implementation it could be FXMenuNameDisplay 32.

In this way, taking rightmost characters, we make sure we always have something unique displayed and we don't really care about the prefixes.
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 08:23 AM   #18369
Navelpluisje
Human being with feelings
 
Navelpluisje's Avatar
 
Join Date: Mar 2020
Location: IJsselstein, Netherlands
Posts: 435
Default

Quote:
Originally Posted by AtmanActive View Post
The same way TrackOutputMeter can accept 0 or 1 (or 2 or 3 or 4?), this function could accept the desired number of characters by the surface/creator.

So, for a 7-digit surface .zon file would be FXMenuNameDisplay 7, and for a 10-digit it would be FXMenuNameDisplay 10, and for TouchOSC implementation it could be FXMenuNameDisplay 32.

In this way, taking rightmost characters, we make sure we always have something unique displayed and we don't really care about the prefixes.
But also for the right most you have to strip the developer from the whole string if I’m correct. So you still need to manipulate it. And reading a string from the start makes some how more sense and quicker to understand what the name is.
__________________
Created ReaSonus FaderPort: Documentation and Download from Github. Report Issues
Created Reapinger BCF2000: Documentation and Download from Reaper Stash
Donations: Buy me a coffee or beer or buy one of my shirts in Europe or North America
Navelpluisje is offline   Reply With Quote
Old 08-09-2022, 08:38 AM   #18370
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Quote:
Originally Posted by Navelpluisje View Post
And reading a string from the start makes some how more sense and quicker to understand what the name is.
Let's examine this situation:



Getting characters from the beginning would yield:
Airwindows
Airwindows
Airwindows
AnalogObse
AnalogObse
AnalogObse
AnalogObse

Doesn't look like anything useful to me.
Now, if we would get the characters from the end, that would yield:
BassAmp
FireAmp
GrindAmp
Amper
BlackShow
BlackVibe
JAMP

Of course, with some weird prefix artifacts, like, for example "BSSIONJAMP". Still, looks much more informative to me.
Attached Images
File Type: png 2022-08-09_16-31-42.png (5.0 KB, 188 views)
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 08:39 AM   #18371
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 AtmanActive View Post
The same way TrackOutputMeter can accept 0 or 1 (or 2 or 3 or 4?), this function could accept the desired number of characters by the surface/creator.

So, for a 7-digit surface .zon file would be FXMenuNameDisplay 7, and for a 10-digit it would be FXMenuNameDisplay 10, and for TouchOSC implementation it could be FXMenuNameDisplay 32.

In this way, taking rightmost characters, we make sure we always have something unique displayed and we don't really care about the prefixes.
I like the concept, but the implementation goes against CSI architecture.

CSI attempts (we don't always succeed ) to keep the Zones surface agnostic, the proposed approach couples the Zone file to a particular surface.

Maybe do something like this instead in the .mst/.ost file:

Current:
Code:
Widget DisplayUpper2
	FB_MCUDisplayUpper 1
WidgetEnd
The 1 means the second channel -- channels are 0-8.

Proposed:
Code:
Widget DisplayUpper2
	FB_MCUDisplayUpper 1 7
WidgetEnd
The 7 represents max characters for this display.

If not present (perhaps in OSC), it would indicate an unlimited number are acceptable, something like that.

That way the Zone logic can query the Widget in realtime and provide the appropriate string, whilst avoiding the unwanted coupling.
__________________
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 08-09-2022, 08:44 AM   #18372
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 AtmanActive View Post
Let's examine this situation:



Getting characters from the beginning would yield:
Airwindows
Airwindows
Airwindows
AnalogObse
AnalogObse
AnalogObse
AnalogObse

Doesn't look like anything useful to me.
Now, if we would get the characters from the end, that would yield:
BassAmp
FireAmp
GrindAmp
Amper
BlackShow
BlackVibe
JAMP

Of course, with some weird prefix artifacts, like, for example "BSSIONJAMP". Still, looks much more informative to me.
Trouble is, sometimes they look like this:

Code:
VST: UAD Fairchild 660 (Universal Audio)
I think this will end up being an empirical solution, lots of trial and error and various strategies employed.
__________________
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 08-09-2022, 08:52 AM   #18373
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by AtmanActive View Post
Let's examine this situation:



Getting characters from the beginning would yield:
Airwindows
Airwindows
Airwindows
AnalogObse
AnalogObse
AnalogObse
AnalogObse

Doesn't look like anything useful to me.
Now, if we would get the characters from the end, that would yield:
BassAmp
FireAmp
GrindAmp
Amper
BlackShow
BlackVibe
JAMP

Of course, with some weird prefix artifacts, like, for example "BSSIONJAMP". Still, looks much more informative to me.
Same result you'd get from regex'ing out the prefix though!

But looking on my own system, Airwindows and Analog Obsession don't suffer from the particular issue we're trying to solve for. The plugin names themselves are not pre-fixed by the developer. If I load the Analog Obsession FRANK VST plugin, the name is...

VST: FRANK (Analog Obsession)

Not...

VST: Analog Obsession FRANK

Same for the Air Windows plugins.

So that would display in the menu as just FRANK. Not as Analog Obsession FRANK. You can see for yourself by loading one of the plugins and reading the floating plugin header in Reaper (or doing a ZoneRAWFX export in CSI).
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-09-2022, 10:56 AM   #18374
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

I meant that as an example, not to be taken literary.
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 11:25 AM   #18375
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by AtmanActive View Post
I meant that as an example, not to be taken literary.
Gotcha. Apologies.

If Geoff does go the route of starting with prefixes, I'd also propose the following additions:
Code:
"Abbey Road "
"The "
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-09-2022, 11:38 AM   #18376
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Quote:
Originally Posted by Geoff Waddington View Post
Proposed:
Code:
Widget DisplayUpper2
	FB_MCUDisplayUpper 1 7
WidgetEnd
The 7 represents max characters for this display.

If not present (perhaps in OSC), it would indicate an unlimited number are acceptable, something like that.

That way the Zone logic can query the Widget in realtime and provide the appropriate string, whilst avoiding the unwanted coupling.
Great!
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 12:13 PM   #18377
jakeman19
Human being with feelings
 
Join Date: Jan 2022
Posts: 133
Default

Quote:
Originally Posted by Puck View Post
Yes you can. When parameters are outside of the typical 0 to 1 range, as many JSFX params are, you need to define the range like this:

Code:
Filter1Q	FXParam 22 "Filter1 Q"           [ 0.0>100.0 ]
That's from my ReEQ zone (not ReaEQ)

Be warned though, and I know Geoff loves when I point this out, the feedback will not be interpolated. So in OSC land it's easy to make an OSC message that just has the appropriate range, but if you were to use this on a MF Twister, for example, the LED ring wouldn't give you any useful information. It would just go from 0 to 1 100 times.
This still doesn't work for me. I'm using a MCU and a simple stripped down .zon file to test.

Code:
Zone "JS: SUM CHANNEL (Tukan)" "SUM Channel"
	
	Select1 			FXParam 21 [ 0.0 1.0 ] // "22 EQ ON"

	Fader8		 			FXParam 62 [ 0.0>100.0 ]		// "Out Gain" "Output"
	DisplayUpper8	 			FXParamNameDisplay	62	"Out Gain" 
	DisplayLower8	 			FXParamValueDisplay	62
	
ZoneEnd
Jd
jakeman19 is offline   Reply With Quote
Old 08-09-2022, 12:40 PM   #18378
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by jakeman19 View Post
This still doesn't work for me. I'm using a MCU and a simple stripped down .zon file to test.

Code:
Zone "JS: SUM CHANNEL (Tukan)" "SUM Channel"
	
	Select1 			FXParam 21 [ 0.0 1.0 ] // "22 EQ ON"

	Fader8		 			FXParam 62 [ 0.0>100.0 ]		// "Out Gain" "Output"
	DisplayUpper8	 			FXParamNameDisplay	62	"Out Gain" 
	DisplayLower8	 			FXParamValueDisplay	62
	
ZoneEnd
Jd
Can you describe what you are seeing?

You have to know what the actual range is of the parameter. 0 to 100 just happened to be what the developer used for that parameter I mentioned. You can pop open the JSFX edit button and look at the parameter definitions at the top. Or automate the param through its full range and look at the automation lane and glean the values from that.

Actually now that I’m thinking about it, the feedback issue I mentioned earlier may make using ranges outside of 0 to 1 on a fader not work…. This is just conjecture on my part though. I’m sure someone will confirm or correct me
Puck is offline   Reply With Quote
Old 08-09-2022, 12:40 PM   #18379
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by jakeman19 View Post
This still doesn't work for me. I'm using a MCU and a simple stripped down .zon file to test.

Code:
Zone "JS: SUM CHANNEL (Tukan)" "SUM Channel"
	
	Select1 			FXParam 21 [ 0.0 1.0 ] // "22 EQ ON"

	Fader8		 			FXParam 62 [ 0.0>100.0 ]		// "Out Gain" "Output"
	DisplayUpper8	 			FXParamNameDisplay	62	"Out Gain" 
	DisplayLower8	 			FXParamValueDisplay	62
	
ZoneEnd
Jd
I wonder if the combo of Fader+FaderFeedback is what's making it not work. Maybe try it on one of the rotary encoders just as a test.

Note: I've never tried to mapping JS plugins and believe they've always been an issue.

EDIT
Puck has the same theory I do on the fader feedback. Cross post.
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-09-2022, 01:01 PM   #18380
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 903
Default

I obviously missed something somewhere, but what is with all the lists of VSTs AU etc?

What did I miss?

Freex is offline   Reply With Quote
Old 08-09-2022, 01:10 PM   #18381
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 5,990
Default

Quote:
Originally Posted by Freex View Post
I obviously missed something somewhere, but what is with all the lists of VSTs AU etc?

What did I miss?

Airon got the ball rolling on a suggestion that might allow users to create their own "Generic_FX.zon" file that could then be used to "auto map" any FX you don't already have mappings for. The FX list part was about trying to come up with a suggested list of prefixes that Geoff might be able to automatically remove so you'd see the unmapped plugins in the FX menu instead of "NoMap".

Geoff seems game, so fingers crossed this will be feasible. Automatic mappings wouldn't be perfect (a button could get assigned to a fader) but would still be a huge improvement and great starting point. Especially for new users.
__________________
CSI v3 Wiki
Funkybot is online now   Reply With Quote
Old 08-09-2022, 03:40 PM   #18382
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

I'm getting weird track color behavior in TouchOSC when tracks have no color defined in Reaper. As long as tracks have some color defined in Reaper it's all working as expected.

My suggestion: CSI should just send { 64, 64, 64 } when there is no color defined in Reaper.
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 03:49 PM   #18383
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 AtmanActive View Post
I'm getting weird track color behavior in TouchOSC when tracks have no color defined in Reaper. As long as tracks have some color defined in Reaper it's all working as expected.

My suggestion: CSI should just send { 64, 64, 64 } when there is no color defined in Reaper.
Thanks for testing.

Recently switched color API's to solve some other issues, this is likely a side effect of the new approach.

As far as I know there is always a color defined.

What are you seeing ?
__________________
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 08-09-2022, 03:54 PM   #18384
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Quote:
Originally Posted by Geoff Waddington View Post
What are you seeing ?
Tracks that have no color defined in Reaper simply do not send any color information to TouchOSC, but then, what happens is that those elements retain old colors from previous runs and, when I save my TouchOSC project the colors are permanently skewed.

When I manually return all of my color indicators in TouchOSC to gray and start Reaper, then it is all working correctly for first few minutes.
Now I'm thinking about using OnInitialization to send gray to all of my track color indicators...
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 04:00 PM   #18385
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 AtmanActive View Post
Tracks that have no color defined in Reaper simply do not send any color information to TouchOSC, but then, what happens is that those elements retain old colors from previous runs and, when I save my TouchOSC project the colors are permanently skewed.
What color are the Tracks in Reaper, they must have a color, unless I'm missing something.

Quote:
Originally Posted by AtmanActive View Post
When I manually return all of my color indicators in TouchOSC to gray and start Reaper, then it is all working correctly for first few minutes.
Now I'm thinking about using OnInitialization to send gray to all of my track color indicators...
Yeah, you shouldn't have to do that workaround, let's try and fix the bug if possible first, then, if that's not possible, then we can use the workaround
__________________
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 08-09-2022, 04:08 PM   #18386
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Quote:
Originally Posted by Geoff Waddington View Post
What color are the Tracks in Reaper, they must have a color, unless I'm missing something.
I have a test project that has color set for some tracks and nothing set for other tracks. In my Reaper (RadoBorn) tracks that have no color set are shown as gray. When I right click on the track and go Track Color -> Set tracks to custom color I can see that Reaper shows the track color values of 192,64,0, but that is NOT what I see on the screen, I see gray. Now, when I assign track color with the values of 192,64,0, then I see a dark red track.
Hence, in my personal experience, with my Reaper, on windows, there is a track-has-no-color defined state. Or, maybe that state does have some color but Reaper is unable to show what it is as it is showing 192,64,0 for every new track (even though track's shown color is nowhere near dark red).
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 04:13 PM   #18387
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

When I go Track Color -> Set tracks to default color then the track visually goes back to gray-looking state, but, when I go to assign color again, then I can see that the current track color is 0,0,0.
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 04:16 PM   #18388
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

This leads me to believe that the default color for Reaper is actually 0,0,0.
Now, for some weird unfathomable reason, TouchOSC+CSI don't really set the color but ADD (?!?) it? It looks like RGB values are added on top of existing colors instead of resetting to that RGB value.
I can't fully grasp it yet, but I will make a video as soon as I get some time.
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 04:19 PM   #18389
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 AtmanActive View Post
I have a test project that has color set for some tracks and nothing set for other tracks. In my Reaper (RadoBorn) tracks that have no color set are shown as gray. When I right click on the track and go Track Color -> Set tracks to custom color I can see that Reaper shows the track color values of 192,64,0, but that is NOT what I see on the screen, I see gray. Now, when I assign track color with the values of 192,64,0, then I see a dark red track.
Hence, in my personal experience, with my Reaper, on windows, there is a track-has-no-color defined state. Or, maybe that state does have some color but Reaper is unable to show what it is as it is showing 192,64,0 for every new track (even though track's shown color is nowhere near dark red).
Yes, that's exactly the reason we just switched API's, we were getting dark red default Tracks.

I just checked here, and a newly inserted Track indeed has its color set to 0.

I suspect Reaper is getting the default gray color from the theme or something.

I like your idea of 64, 64, 64.

When I finish my next bit of EuCon work, I'll circle back to CSI and, if the Track color reports 0, we'll override it and report 64, 64, 64, and see how that works.
__________________
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 08-09-2022, 04:20 PM   #18390
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 AtmanActive View Post
This leads me to believe that the default color for Reaper is actually 0,0,0.
Now, for some weird unfathomable reason, TouchOSC+CSI don't really set the color but ADD (?!?) it? It looks like RGB values are added on top of existing colors instead of resetting to that RGB value.
I can't fully grasp it yet, but I will make a video as soon as I get some time.
No need to go to the trouble of making a video, see previous 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 08-09-2022, 04:23 PM   #18391
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by Funkybot View Post
Airon got the ball rolling on a suggestion that might allow users to create their own "Generic_FX.zon" file that could then be used to "auto map" any FX you don't already have mappings for. The FX list part was about trying to come up with a suggested list of prefixes that Geoff might be able to automatically remove so you'd see the unmapped plugins in the FX menu instead of "NoMap".

Geoff seems game, so fingers crossed this will be feasible. Automatic mappings wouldn't be perfect (a button could get assigned to a fader) but would still be a huge improvement and great starting point. Especially for new users.
I read through all the posts with interest, it's certainly a good idea to have something instead of "NoMap" appear.

I wonder if instead of all the Regex contortions, it might be better to simply inform the user that no map exists for the plugin they just instantiated and ask them if they'd like to input an alias. Presumably the user knows both the plugin they are using and the number of characters available to them on their display and so are well placed to choose an alias (that makes sense to them)

Perhaps the prefs could allow the setting of a default surface for plugin mapping, that would let CSI know the folder in which to deposit the FX.zon file. Then CSI could do a surface initialisation to make the newly created FX.zon active.

As to the contents of the FX.zon file, I think @funkybot's suggestion of mapping the last three Reaper added parameters makes sense and is probably quite easy to do, as they are the same for every plugin.

Beyond that I think it'll be pretty difficult to decide what parameters should be mapped, but perhaps if we can get this going it might form the basis of a system to allow users to choose a parameter on screen and then operate a control to assign it.
MixMonkey is online now   Reply With Quote
Old 08-09-2022, 04:25 PM   #18392
AtmanActive
Human being with feelings
 
AtmanActive's Avatar
 
Join Date: Dec 2009
Location: United Kingdom
Posts: 668
Default

Hmmmm, Reaper is weird like that (or my RadoBorn is weird here).
Even though reset-to-default-color SHOWS that the color is 0,0,0, the visual representation is NOT. The track is gray. Gray as concrete. But, when I do set the custom color to 0,0,0, then, the track is BLACK?!?
What gives?
It looks like Reaper has three possible default track colors
- what I see is gray
- what Reaper shows in the color chooser is 192,64,0 for a new track
- what Reaper shows when reset-to-default is 0,0,0

Haaaa! So which one is it? Is it gray or red or black?!?
AtmanActive is offline   Reply With Quote
Old 08-09-2022, 04:43 PM   #18393
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 AtmanActive View Post
Hmmmm, Reaper is weird like that (or my RadoBorn is weird here).
Even though reset-to-default-color SHOWS that the color is 0,0,0, the visual representation is NOT. The track is gray. Gray as concrete. But, when I do set the custom color to 0,0,0, then, the track is BLACK?!?
What gives?
It looks like Reaper has three possible default track colors
- what I see is gray
- what Reaper shows in the color chooser is 192,64,0 for a new track
- what Reaper shows when reset-to-default is 0,0,0

Haaaa! So which one is it? Is it gray or red or black?!?
We used to use the API for custom color -- that one gives the red as default.

I believe the reset to default (0,0,0) gets overridden by the current Reaper theme or something when it is 0.

When you explicitly set the custom color to something, that overrides the default.

Just perusing the API, looks like it might be possible to query the current theme default Track color.

If so, we can, upon seeing the Track color reporting 0, override it and query the default theme Track color.

My guess is that will put us in synch with what we see in Reaper.
__________________
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 08-09-2022, 04:49 PM   #18394
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 MixMonkey View Post
I read through all the posts with interest, it's certainly a good idea to have something instead of "NoMap" appear.

I wonder if instead of all the Regex contortions, it might be better to simply inform the user that no map exists for the plugin they just instantiated and ask them if they'd like to input an alias. Presumably the user knows both the plugin they are using and the number of characters available to them on their display and so are well placed to choose an alias (that makes sense to them)
Unless they have 5 or 10 plugins on a Track, tricky to remember the sequence, which one is where

Quote:
Originally Posted by MixMonkey View Post
As to the contents of the FX.zon file, I think @funkybot's suggestion of mapping the last three Reaper added parameters makes sense and is probably quite easy to do, as they are the same for every plugin.

Beyond that I think it'll be pretty difficult to decide what parameters should be mapped, but perhaps if we can get this going it might form the basis of a system to allow users to choose a parameter on screen and then operate a control to assign it.
I think we should simply map them all and provide banking, if they want custom, they can then edit the Zone themselves.

Want to avoid being seduced by the midi learn approach here, want this to be a simple default mapper.
__________________
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 08-09-2022, 05:33 PM   #18395
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,870
Default

Quote:
Originally Posted by Geoff Waddington View Post
Unless they have 5 or 10 plugins on a Track, tricky to remember the sequence, which one is where
Except it'll be the one they just instantiated...

Quote:
I think we should simply map them all and provide banking, if they want custom, they can then edit the Zone themselves.
Okay, but I've had a couple of systems that have taken this approach (Logic with the C4 and the initial pairing of ProTools and the Command 8 surface). They only produced instantly usable results when the plugins didn't have many parameters (less than ten or so)

That said, as a way of creating an fx.zon that contains all the available parameters with a view to re-arranging them afterward, maybe it has merit.

Quote:
Want to avoid being seduced by the midi learn approach here, want this to be a simple default mapper.
Fair enough, I just wonder whether your previous idea based around Reaper's "last touched" feature might turn out to be simpler than a "simple default mapper".
MixMonkey is online now   Reply With Quote
Old 08-09-2022, 05:51 PM   #18396
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 MixMonkey View Post
Except it'll be the one they just instantiated...
In one use case, yes.

But consider this.

You already have a bunch of Reaper projects, with lots of plugins on lots of Tracks, and you've just purchased your dream controller, you want to install CSI and get to work immediately, that's what this initiative is all about.

Quote:
Originally Posted by MixMonkey View Post
Okay, but I've had a couple of systems that have taken this approach (Logic with the C4 and the initial pairing of ProTools and the Command 8 surface). They only produced instantly usable results when the plugins didn't have many parameters (less than ten or so)
Agree, I'm generally loathe to do this, you end up with Switch parameters on Faders and all sorts of ugly stuff, but there is a demand, so we're giving it a go


Quote:
Originally Posted by MixMonkey View Post
That said, as a way of creating an fx.zon that contains all the available parameters with a view to re-arranging them afterward, maybe it has merit.
Yes, that is a plus.

Quote:
Originally Posted by MixMonkey View Post
Fair enough, I just wonder whether your previous idea based around Reaper's "last touched" feature might turn out to be simpler than a "simple default mapper".
It might be, not sure.
__________________
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 08-09-2022, 06:26 PM   #18397
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Working on getting the X32 (OSC) to control Reaper transport.
Thought I would start simple with just Play and Stop
But I am not currently unsucessful.

Any ideas?


.ost transport widgets
Code:
Widget Play
    Control    /-stat/userpar/18/value
WidgetEnd

Widget Stop	
    Control    /-stat/userpar/20/value
WidgetEnd
Home.zon
Code:
Zone "Home"
    OnInitialization 		Reaper  "_CSI Toggle Show Raw Input from Surfaces"
    OnInitialization 		Reaper  "_CSI Toggle Show Input from Surfaces"
    OnInitialization 		Reaper  "_CSI Toggle Show Output to Surfaces"

    IncludedZones
        "Transport"
    IncludedZonesEnd
ZoneEnd
Transport.zon
Code:
Zone "Transport"
    Play    Play
    Stop    Stop
ZoneEnd
When I hit Play on the X32, Reaper does not start playing.

Last edited by jacksoonbrowne; 08-09-2022 at 06:34 PM.
jacksoonbrowne is offline   Reply With Quote
Old 08-09-2022, 06:31 PM   #18398
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 jacksoonbrowne View Post
Working on getting the X32 (OSC) to control Reaper transport.
Thought I would start simple with just Play and Stop
But I am not currently unsucessful.

Any ideas?


.ost transport widgets
Code:
Widget Play
    Control    /-stat/userpar/18/value
WidgetEnd

Widget Stop	
    Control    /-stat/userpar/20/value
WidgetEnd
Home.zon
Code:
Zone "Home"
    IncludedZones
        "Transport"
    IncludedZonesEnd
ZoneEnd
Transport.zon
Code:
Zone "Transport"
    Play    Play
    Stop    Stop
ZoneEnd
Been a couple of years since I've messed with OSC but try this:

Code:
Widget Play
    Control    /-stat/userpar/18
WidgetEnd

Widget Stop	
    Control    /-stat/userpar/20
WidgetEnd
__________________
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 08-09-2022, 06:40 PM   #18399
jacksoonbrowne
Human being with feelings
 
jacksoonbrowne's Avatar
 
Join Date: Aug 2017
Location: Ottawa, Canada
Posts: 563
Default

Quote:
Been a couple of years since I've messed with OSC but try this:

Code:
Widget Play
    Control    /-stat/userpar/18
WidgetEnd

Widget Stop	
    Control    /-stat/userpar/20
WidgetEnd
The actual OSC address the X32 sends is "/-stat/userpar/18/value"

Heres the CSI console output when I hit Play on the X32

Code:
IN <- X32-1 Play 127.000000
IN <- X32-1 /-stat/userpar/18/value  127.000000
jacksoonbrowne is offline   Reply With Quote
Old 08-09-2022, 06:45 PM   #18400
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 jacksoonbrowne View Post
The actual OSC address the X32 sends is "/-stat/userpar/18/value"

Heres the CSI console output when I hit Play on the X32

Code:
IN <- X32-1 Play 127.000000
IN <- X32-1 /-stat/userpar/18/value  127.000000
Do you have a phone or tablet that can run TouchOSC ?

If so, it might be worth getting TouchOSC, I think it's around $10.

Then set it up and get it running.

That would give you an OSC baseline to compare to, might make your work a lot easier.

[edit] There are some TouchOSC resources in the support files, and the folks here have done a bunch of TouchOSC work, they will help get you going.
__________________
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; 08-09-2022 at 06:53 PM.
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 01:13 PM.


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