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

Reply
 
Thread Tools Display Modes
Old 03-12-2018, 02:22 AM   #921
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Ok, it's starting to become a bit more clear.

I'll post my thoughts about the re-design process here, blog style, so that people can chime in with good ideas as we go.

The notion of Cluster is cool for things like Channel.

The notion of Bank or Shift is cool for things like Zone.

The notion of Layout is cool for things like Virtual Surface Channel order/placement.

The realization is that Widgets live in a "sea" of contexts, not a nice linear container style hierarchy.

When you ask a question about a Widget's Shift status, you want to ask its current Zone-ness.

When you want to a question about a Widget's Channel position, you want ask its current Layout-ness in the horizontal direction.

So, a Widget ends up with a list of Contexts, and corresponding lists of pertinent questions/operations for each Context.

As far as Virtual Surface Layout, we already have horizontal Layout (Channels), we just have to add vertical for matrix style controllers like the C4, etc.

Now we still have the 3rd dimension, depth.

If you think about it, a Layer and an FX template are really the same thing, they represent a certain mapping of Widgets to Actions/FX parameters.

So, switching Layers, switching FX, etc., is really just a switch in the depth dimension.

Each layer in the depth dimension comes with it's own set of contexts (Zone, Layout, etc.)

Still pondering...
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip

Last edited by Geoff Waddington; 03-12-2018 at 02:28 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 04:56 AM   #922
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

From what I'm reading are we talking about Layers being like pages in a book,
and depth being like the page or page number?

Kinda like with the way they used to make cartoons, on acetates?

Where you could have layer upon layer building the picture?
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 05:31 AM   #923
petruccigp
Human being with feelings
 
Join Date: Apr 2015
Posts: 4
Default

Geoff,

Do you release the source code somewhere? I cannot find any repo in all the thread. I'd love to see the progress and learn with it, I've tried to start adding to Klinke's pluging several times, but I like your approach.

Thanks!
petruccigp is offline   Reply With Quote
Old 03-12-2018, 06:44 AM   #924
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 174
Default

Quote:
Originally Posted by Freex View Post
From what I'm reading are we talking about Layers being like pages in a book,
and depth being like the page or page number?

Kinda like with the way they used to make cartoons, on acetates?

Where you could have layer upon layer building the picture?
I'm understanding it like pages in a book, although your cartoon analogy could suggest that parts of the page are persistent, wheras other parts change. Like a cartoon having a fixed background layer, with characters changing in the foreground.

In CSI speak, could this mean a particular cluster in one zone (that is bankable) sitting alongside others that follow channel selection. For example, on the Mackie C4, rotaries A1-A8 could be sends on channels 1-8 (bankable to 9-16, 17-24 etc) and rotaries B1-D8 be assigned to FX mapping on the selected channel.

Not sure how far away from the usability sweet spot this would take us. Personally I could live with FX on the C4 and channel stuff like sends on the MCU.
MixMonkey is offline   Reply With Quote
Old 03-12-2018, 07:32 AM   #925
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
From what I'm reading are we talking about Layers being like pages in a book,
and depth being like the page or page number?

Kinda like with the way they used to make cartoons, on acetates?

Where you could have layer upon layer building the picture?
Both

See next answer.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 07:44 AM   #926
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by MixMonkey View Post
I'm understanding it like pages in a book, although your cartoon analogy could suggest that parts of the page are persistent, wheras other parts change. Like a cartoon having a fixed background layer, with characters changing in the foreground.

In CSI speak, could this mean a particular cluster in one zone (that is bankable) sitting alongside others that follow channel selection. For example, on the Mackie C4, rotaries A1-A8 could be sends on channels 1-8 (bankable to 9-16, 17-24 etc) and rotaries B1-D8 be assigned to FX mapping on the selected channel.

Not sure how far away from the usability sweet spot this would take us. Personally I could live with FX on the C4 and channel stuff like sends on the MCU.
Yeah, it's kinda both.

Thanks to you and @Freex, maybe a bit of terminology tuneup is warranted.

Let's call a given current configuration a Page.

A Page is composed of Layers.

There are Layers of a Page that move a lot (e.g. the bank Track GUIDs, aka current Channel Layout) and Layers that are relatively stable - like say, the midi message to Widget mapping stated in the .rst file.

So the current Page is the collection of Layers currently active.

As far as the usability sweet spot, hopefully this will have little effect externally, it's more about compact and orthogonal internal representation in the model, which leads to tighter, smaller, more flexible, less error prone code.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip

Last edited by Geoff Waddington; 03-12-2018 at 07:58 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 07:52 AM   #927
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by petruccigp View Post
Geoff,

Do you release the source code somewhere? I cannot find any repo in all the thread. I'd love to see the progress and learn with it, I've tried to start adding to Klinke's pluging several times, but I like your approach.

Thanks!
No, it is closed source donation ware.

Unless you are a VERY seasoned C++ coder and VERY experienced OO modeller, this is probably not a good place to start understanding control surface code, the Reaper SDK, Klinke's, or my old MCU_Wadd are probably better spots to choose as modification jumping off points.

The code in CSI is SO indirected that I constantly have trouble following it myself
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip

Last edited by Geoff Waddington; 03-12-2018 at 07:59 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 08:12 AM   #928
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,156
Default

Quote:
Originally Posted by Geoff Waddington View Post
If you can find/generate the template for the XTouch Compact in native mode that would be a great help.
What do you mean by "a template". I of course do know what the controller sends in Native mode. So if you mean a template file for CSI, I suppose I will need to do it from scratch.

Theoretically we could double the count of control elements by the layer switches,but unfortunately the XTouch does not send anything when switching layers, nor does it accept input for one layer while the other is active. Really annoying !

But supposedly CSI can do this, as well.

-Michael
__________________
www.boa-sorte.de

Last edited by mschnell; 03-12-2018 at 08:18 AM.
mschnell is online now   Reply With Quote
Old 03-12-2018, 08:19 AM   #929
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by mschnell View Post
What do you mean by "a template". I of course do know what the controller sends in Native mode. So if you mean a template filr for your softwaere, I suppose I will need to do it from scratch.

Theoretically e could double the count of control elements by the layer switches,but unfortunately the XTouch does not send anything when switching layers, nor does it accept input for one layer while the other is active. Really annoying !

-Michael
Just map out the controls, as you already did in mackie mode, for it in native mode.
Do it for both layers, if they are different, you should be able to use both, using the "layer button" on your x-control.

The it's just a case of typing them all out in the correct formate, as you will see if you open any of the .rst files within the CSI folder.
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 08:21 AM   #930
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by mschnell View Post
What do you mean by "a template". I of course do know what the controller sends in Native mode. So if you mean a template filr for your softwaere, I suppose I will need to do it from scratch.

Theoretically e could double the count of control elements by the layer switches,but unfortunately the XTouch does not send anything when switching layers, nor does it accept input for one layer while the other is active. Really annoying !

-Michael
Have a look at the MCU.rst file, then turn on Midi In Monitor on CSI, start pushing buttons, moving controls, and you should see how to make a template file for the XTouch Compact in native mode, it's just a simple text file like MCU.rst that maps the midi messages to names.

I would suggest calling it XTouchCompact.rst.

[Edit] Haha @Freex and I just cross-posted.
If we can't switch between layers on the XTouch, don't see any reason for mapping the second layer.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 08:26 AM   #931
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,156
Default

Quote:
Originally Posted by Freex View Post
Just map out the controls, as you already did in mackie mode, for it in native mode.
Easy as I don't need to do any checks. Just open the Editor software and write down the settings (which are straight forward, anyway).

-Michael
__________________
www.boa-sorte.de
mschnell is online now   Reply With Quote
Old 03-12-2018, 08:34 AM   #932
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,156
Default

Quote:
Originally Posted by Geoff Waddington View Post
If we can't switch between layers on the XTouch, don't see any reason for mapping the second layer.
We can detect the layer as soon as any control is touched, as it is set to send different messages with any layer.

But I am not sure that this helps for CSI.

With my current "Stage" Setup, I use one layer to remote-control the multiple sound-patches I use for Live playing, while the other layer is used to remote-control a Rack mixer (The JSFXes sent/receive the Midi messages via LoopMidi to OSCII-Bot and same accesses the Mixer via WLAN). This works fine, as there are not other sources that behind the scenes modify any of the parameters. For starting up I have d a dedicated button on Layer 2 that fetches the current setting from the mixer.

-Michael
__________________
www.boa-sorte.de
mschnell is online now   Reply With Quote
Old 03-12-2018, 09:35 AM   #933
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 550
Default

Hi Geoff

Following this thread with interest (and quite often incomprehension) :-)

I'm still too busy with work to test anything at the moment, but to be honest if I'm going to try and set up anything with my Behringer X32 to see how it works, I'm going to need a much more step-by-step guide for how to create the various maps (lists of physical controls, MIDI messages they spit out etc) and virtual surfaces etc (sorry, I've probably got all the terminology wrong there - I got a bit lost in the descriptions of things, especially when it got 3 dimensional!)

Apologies if this documentation exists and I've missed it....

Andy
andyp24 is offline   Reply With Quote
Old 03-12-2018, 09:38 AM   #934
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by mschnell View Post
We can detect the layer as soon as any control is touched, as it is set to send different messages with any layer.

But I am not sure that this helps for CSI.

With my current "Stage" Setup, I use one layer to remote-control the multiple sound-patches I use for Live playing, while the other layer is used to remote-control a Rack mixer (The JSFXes sent/receive the Midi messages via LoopMidi to OSCII-Bot and same accesses the Mixer via WLAN). This works fine, as there are not other sources that behind the scenes modify any of the parameters. For starting up I have d a dedicated button on Layer 2 that fetches the current setting from the mixer.

-Michael
Form what i understand, if each layer sends unique messages, that are not duplicated in the other layer somewhere, then there would be not cross talk, and you could consider them as two controllers in one.
So you could have one layer set to channels, (faders pan) and the other one set to FX.
Or you could run both as channels, where layer 1 in channels 1-8 and layer 2 is 9-16 or however many strips there are per layer. Although this would be a pain in terms of workflow. But just an example of use.
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 09:52 AM   #935
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by andyp24 View Post
Hi Geoff

Following this thread with interest (and quite often incomprehension) :-)

I'm still too busy with work to test anything at the moment, but to be honest if I'm going to try and set up anything with my Behringer X32 to see how it works, I'm going to need a much more step-by-step guide for how to create the various maps (lists of physical controls, MIDI messages they spit out etc) and virtual surfaces etc (sorry, I've probably got all the terminology wrong there - I got a bit lost in the descriptions of things, especially when it got 3 dimensional!)

Apologies if this documentation exists and I've missed it....

Andy
You are no the only one that was lost, but after a play with the pre-alpha, I got the grasp of things,
Mapping the x32, is basically a case of
Install the CSI as described in the pdf.
Go to Options,preferences,Control/OSC/web in reaper,
then add the Control Surface Intergrator,
Click on Mix1 and set it the midi in/out for your x32,
check the boxe Midi in,
Press OK

Now get an excel page open and make a column with all the names of all the knows and faders, if they have a push and a turn that's 2 different lines.

With each turn twist or fader, you will get a message or you won't,
For a button, it might look like 2 messages like 90 00 7f, 90 00 00.
That is summed up by 90 00 00 7f

Go thru all you controls and if you get stuck, post....we're all in this together.

After that it's just moving all the data to make BehringerX32.rst
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 10:03 AM   #936
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 550
Default

Thanks - I'll have a go when I can. I don't think it's going to be for a few weeks, as I'm snowed under with work right now, but maybe after Easter I'll be able to have a play....

Of course, by then, it'll all be working anyway, right??? :-D

Andy
andyp24 is offline   Reply With Quote
Old 03-12-2018, 10:27 AM   #937
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 174
Default

Quote:
Originally Posted by andyp24 View Post
Of course, by then, it'll all be working anyway, right??? :-D

Andy
Oh I'm pretty sure we'll still all be here discussing clusters, widgets and whatnots

The first step is definitely to create an .rst (real surface template) for your control surface. Freex and me are lucky because we both have Mackie MCUs and the template already exists.

Whether you decide to run your surface in MCU emulation mode (if it has one) or create a native template I guess depends on whether there are a more features available in the native mode.
MixMonkey is offline   Reply With Quote
Old 03-12-2018, 10:32 AM   #938
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by MixMonkey View Post
Oh I'm pretty sure we'll still all be here discussing clusters, widgets and whatnots

The first step is definitely to create an .rst (real surface template) for your control surface. Freex and me are lucky because we both have Mackie MCUs and the template already exists.

Whether you decide to run your surface in MCU emulation mode (if it has one) or create a native template I guess depends on whether there are a more features available in the native mode.
There are whatnot now? When did this happen? Lol
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 10:43 AM   #939
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
From what i understand, if each layer sends unique messages, that are not duplicated in the other layer somewhere, then there would be not cross talk, and you could consider them as two controllers in one.
That is true, but without a "kick" from the surface to tell us to change layers, the values for each Widget would stay on the previous layer, until you touched them.

So, even though the surface can easily push messages to CSI, CSI needs a message to tell it to refresh the layer when it changes.

There appears to be no such feedback mechanism, making the whole thing pretty ineffective.

The key is getting to XTouch to send out a midi message when the Layer buttons are pushed.

[Edit] This is why I LOVE discussion, it almost always leads to a better product.

The reason we need CSI to get kicked is because it's optimized.
There is a setting in Reaper for Control Surface Display Update Frequency.
The default is 15Hz, which means CSI gets a kick 15 times a second to update the Widgets.
If we actually did this we could easily bury the midi stream.
So, instead we keep the last value sent and only send a mdi message if the current value disagrees with the previous value, in other words if it has changed.

OK, so, we want to keep the optimization, but we also want to accommodate situations like the XTouch silent layers.

I believe we should add an option to send out an update every second or so, regardless of the need to.
That way we up the stream traffic slightly, but now you can use both layers
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip

Last edited by Geoff Waddington; 03-12-2018 at 10:59 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 10:57 AM   #940
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by Geoff Waddington View Post
That is true, but without a "kick" from the surface to tell us to change layers, the values for each Widget would stay on the previous layer, until you touched them.

So, even though the surface can easily push messages to CSI, CSI needs a message to tell it to refresh the layer when it changes.

There appears to be no such feedback mechanism, making the whole thing pretty ineffective.

The key is getting to XTouch to send out a midi message when the Layer buttons are pushed.
What about if he dedicated one button other than the layer keys to tell CSI to refresh, would that work, sure it's not automatic, but...
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-12-2018, 11:02 AM   #941
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by mschnell View Post
We can detect the layer as soon as any control is touched, as it is set to send different messages with any layer.

But I am not sure that this helps for CSI.

With my current "Stage" Setup, I use one layer to remote-control the multiple sound-patches I use for Live playing, while the other layer is used to remote-control a Rack mixer (The JSFXes sent/receive the Midi messages via LoopMidi to OSCII-Bot and same accesses the Mixer via WLAN). This works fine, as there are not other sources that behind the scenes modify any of the parameters. For starting up I have d a dedicated button on Layer 2 that fetches the current setting from the mixer.

-Michael
Go ahead and map both layers, we have a way to make it work, even without a message from the XTouch to tell us the layers have switched.

There would be a bit of latency, perhaps a second or so, but I think that would be acceptable.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 11:03 AM   #942
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
What about if he dedicated one button other than the layer keys to tell CSI to refresh, would that work, sure it's not automatic, but...
Please see edit to original post.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 01:53 AM   #943
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Morning blog:

Looks liike OO treatment of video compositing systems and cross-platform GUIs might be good places to steal a few licks, that problem space feels very much like what we're trying to solve here.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 12:15 PM   #944
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Afternoon blog:

Aha, got a part of it at least.

Virtual Surfaces that are within the same Zone, Bank together, Shift together, etc.

WRONG !!

First of all, we have to step down from Virtual Surface level to Widget level, to get the granularity we need.

A Widget can be associated with a Navigator (more generalized concept of Bank), a Modifier(Shift, Alt, etc.), and all sorts of other things that describe containment/membership/aggregation/association/etc. relationships.

In other words we have a model for the Widget interacting with the system in many different contexts simultaneously, just what we are looking for.

Now to come up with a way to express that succinctly in code
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 01:40 PM   #945
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 550
Default

I'm glad you understand what you're talking about Geoff 😁
andyp24 is offline   Reply With Quote
Old 03-13-2018, 02:04 PM   #946
Icchan
Human being with feelings
 
Icchan's Avatar
 
Join Date: Dec 2011
Location: Finland
Posts: 402
Default

Why is it that all the relevant links to the project can't be found from the opening post in orderly fashion?

Do I really, once again, have to scourge the forum trough with a comb to find out everything there is regarding this project? There's a lot of talking about developing, testing and giving feedback but the files are nowhere to be found.

Please?

Or is this a closed source and only those who donate can access the files? If so I doubt it can really go that far...

I really hope I'm not missing something here.
Icchan is offline   Reply With Quote
Old 03-13-2018, 03:08 PM   #947
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Icchan View Post
Do I really, once again, have to scourge the forum trough with a comb to find out everything there is regarding this project?
Yes, because at this point it is a discussion, not software, and it would be preferable that you're up to speed when/if you wish to join the conversation
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip

Last edited by Geoff Waddington; 03-13-2018 at 04:33 PM.
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 04:32 PM   #948
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Evening blog:

Just thought of an improvement that allows for Michael's XTouch layer scenario, but retains the full optimization the original model, actually it's an even better model that uses less storage, and is more efficient and direct, thanks everyone
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 08:45 PM   #949
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Awesome,hope it was a true eureka moment, and you don't have to rethink and rewrite all your hard work again.
It is a true testament to you and your original ethos for this project, that you have not shied away from scrapping and rewriting, When many would have continued down one path to a goal that suited their needs.
The saying "you can't please all of the people, all of the time" comes to mind.
This could be the exception to that.
Thanks for all your continued hard work Geoff.
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-13-2018, 11:35 PM   #950
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,156
Default

Quote:
Originally Posted by Geoff Waddington View Post
Just thought of an improvement that allows for Michael's XTouch layer scenario, but retains the full optimization the original model, actually it's an even better model that uses less storage, and is more efficient and direct, thanks everyone
Awsome. Hopefully I'll be able to provide a map of the two layer native mode later this day. But in fact it's really straight forward. Just using consecutive Note on/off for any touch/push, and consecutive CCs for Fades and Rotaries, using higher numbers for the second layer.

-Michael
__________________
www.boa-sorte.de

Last edited by mschnell; 03-14-2018 at 06:37 AM.
mschnell is online now   Reply With Quote
Old 03-14-2018, 02:48 AM   #951
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
Awesome,hope it was a true eureka moment, and you don't have to rethink and rewrite all your hard work again.
It is a true testament to you and your original ethos for this project, that you have not shied away from scrapping and rewriting, When many would have continued down one path to a goal that suited their needs.
The saying "you can't please all of the people, all of the time" comes to mind.
This could be the exception to that.
Thanks for all your continued hard work Geoff.
Back atcha' !!

Seriously, many thanks for the quality discussion, the whole idea is to come up with something that makes most setups easy and complex ones possible, and your input is invaluable in that regard, thanks again
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-14-2018, 02:49 AM   #952
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by mschnell View Post
Awsome. Hopefully I'll be able to provide a map ogf the two layer native mode later this day. Biut in fact it's really straight forward. Just using consecutive Note on/off for any touch/push, and consecutive CCs for Fades and Rotaries, using higher numbers for the second layer.

-Michael
Cool, thanks for your effort on this !
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-14-2018, 03:08 AM   #953
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Morning blog:

Aha !!

We don't need to alter the .rst file format, we already have a way to input a matrix like a C4.

It's just a Channel, we might add a keyword Matrix, but it work easily since Channel already is a matrix !

It has Widgets in the Y direction and Channels in the X direction.

Recall the MCU.rst channel mapping:

Channel

ChannelDisplayUpper DisplayUpper
ChannelDisplayLower DisplayLower
ChannelRotaryPush ButtonCycler 90 20 00 7f
ChannelRotary Encoder b0 10 00 7f
ChannelRecordArm Button 90 00 00 7f
ChannelSolo Button 90 08 00 7f
ChannelMute Button 90 10 00 7f
ChannelSelect Button 90 18 00 7f
ChannelFader Fader14Bit -72.0 12.0 e0 00 7f 00 7f
ChannelFaderTouch ButtonWithRelease 90 68 00 7f

ChannelEnd

the equivalent C4.rst is simply (leaving out the midi messages) :

Matrix

DisplayUpperA
DisplayLowerA
RotaryA
RotaryPushA

DisplayUpperB
DisplayLowerB
RotaryB
RotaryPushB

DisplayUpperC
DisplayLowerC
Rotary
RotaryPushC

DisplayUpperD
DisplayLowerD
RotaryD
RotaryPushD

EndMatrix

So we have an easy way to get the matrix into CSI, this will expand into Rotary A1, A2, A3, etc., just like Channels do

This isn't enough, we need to think about layout, but at least we can get the data in easily !
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-14-2018, 04:39 AM   #954
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

I take it you'll require a Matrix [] tick box to assign the number of columns, so as not to confuse them with channel [] tick box, and also the midi info as below,

Matrix

DisplayUpperA
DisplayLowerA
RotaryA Encoder b0 00 00 7f
RotaryPushA ButtonCycler 90 20 00 7f

DisplayUpperB
DisplayLowerB
RotaryB Encoder b0 08 00 7f
RotaryPushB ButtonCycler 90 28 00 7f

DisplayUpperC
DisplayLowerC
RotaryC Encoder b0 10 00 7f
RotaryPushC ButtonCycler 90 30 00 7f

DisplayUpperD
DisplayLowerD
RotaryD Encoder b0 18 00 7f
RotaryPushD ButtonCycler 90 38 00 7f

EndMatrix

Would this still allow for inputs, outputs, etc to be displayed on the C4 (and other of the like) as a per channel. Kind of like the routing matrix within reaper.
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel

Last edited by Freex; 03-14-2018 at 04:53 AM.
Freex is offline   Reply With Quote
Old 03-14-2018, 04:59 AM   #955
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
I take it you'll require a Matrix [] tick box to assign the number of columns, so as not to confuse them with channel [] tick box
No, that's the whole point, they're the same thing

If you think about it the Channels ARE columns of Widgets (Rotary, Fader, Mute, etc.)

So the Channel count is actually Column count, they represent the same concept.

The differentiator will be the tag -- Channel/ChannelEnd vs Matrix/MatirxEnd.

Quote:
Originally Posted by Freex View Post
Would this still allow for inputs, outputs, etc to be displayed on the C4 (and other of the like) as a per channel. Kind of like the routing matrix within reaper.
Yes, that's the part alluded to at the end, Layout.

Layout will be described at what we used to call the Virtual Surface level.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-14-2018, 05:12 AM   #956
Freex
Human being with feelings
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 200
Default

Quote:
Originally Posted by Geoff Waddington View Post
No, that's the whole point, they're the same thing

If you think about it the Channels ARE columns of Widgets (Rotary, Fader, Mute, etc.)

So the Channel count is actually Column count, they represent the same concept.

The differentiator will be the tag -- Channel/ChannelEnd vs Matrix/MatirxEnd.



Yes, that's the part alluded to at the end, Layout.

Layout will be described at what we used to call the Virtual Surface level.
Only asked, as you know, I lost the master in the beyond, when the c4 was randomly set to 32 channels and bank.

So I guess as long as bank is not ticked, it wouldn't be a issue,

(I think I'm starting to understand SOME of this)
__________________
Window 7 64bit, Intel i7-3930K @ 3.20GHz, 32GB, On Asus P9X79. RME Raydat, Presonus Firestudio 26x26, Presonus Digimax FS x2. Mackie MCU Pro, XT x2 and C4.
Facebook: As Cities Kneel
Freex is offline   Reply With Quote
Old 03-14-2018, 05:17 AM   #957
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 2,569
Default

Quote:
Originally Posted by Freex View Post
Only asked, as you know, I lost the master in the beyond, when the c4 was randomly set to 32 channels and bank.

So I guess as long as bank is not ticked, it wouldn't be a issue,

(I think I'm starting to understand SOME of this)
Ah, gotcha', should have mentioned that the concept of Banking is now part of Layout, so there will be no Bankable check box in the Config Dialog.
__________________
Groove is the subtle control of chaos -- Control Surface Integrator -- You can donate here: geoffwaddington.ca -- Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143 -- Pre alpha software: https://stash.reaper.fm/v/33037/CSI%20pre%20alpha.zip
Geoff Waddington is offline   Reply With Quote
Old 03-14-2018, 05:28 AM   #958
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 174
Default

This sounds good!

I could definitely see having sends 1-4 on A1, B1, C1, D1 of the C4 and the other 7 x 4 widgets for FX mapping, all called by channel select. The possibilities, as they say, are endless.
MixMonkey is offline   Reply With Quote
Old 03-14-2018, 05:48 AM   #959
Diego
Human being with feelings
 
Diego's Avatar
 
Join Date: Jan 2011
Location: Italy and... world
Posts: 123
Default

Hi Geoff, Avid Artist Mix user here.
I’m trying to make the left side button of the artist mix (shift, pan, eq, ecc) but no luck. Do you try it and do you know if it’s possible?
For example. Using the real surface in Eucon mode if I use shift + record (near the fader) I can select the read/touch/write mode. With the CSI I can not....
__________________
G66 Technical Manager for Italy
Diego is offline   Reply With Quote
Old 03-14-2018, 06:38 AM   #960
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,156
Default

Quote:
Originally Posted by Geoff Waddington View Post
Cool, thanks for your effort on this !
Seems like rather selfish on my site
Thanks to you,
-Michael
__________________
www.boa-sorte.de
mschnell is online now   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:33 PM.


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