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

Reply
 
Thread Tools Display Modes
Old 03-12-2018, 05:31 AM   #921
petruccigp
Human being with feelings
 
Join Date: Apr 2015
Posts: 7
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   #922
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
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   #923
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-12-2018, 07:44 AM   #924
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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; 03-12-2018 at 07:58 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 07:52 AM   #925
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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; 03-12-2018 at 07:59 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 08:12 AM   #926
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
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

Last edited by mschnell; 03-12-2018 at 08:18 AM.
mschnell is offline   Reply With Quote
Old 03-12-2018, 08:19 AM   #927
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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.
Freex is offline   Reply With Quote
Old 03-12-2018, 08:21 AM   #928
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-12-2018, 08:26 AM   #929
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
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
mschnell is offline   Reply With Quote
Old 03-12-2018, 08:34 AM   #930
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
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
mschnell is offline   Reply With Quote
Old 03-12-2018, 09:35 AM   #931
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,239
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   #932
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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.
Freex is offline   Reply With Quote
Old 03-12-2018, 09:52 AM   #933
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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
Freex is offline   Reply With Quote
Old 03-12-2018, 10:03 AM   #934
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,239
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   #935
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
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   #936
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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
Freex is offline   Reply With Quote
Old 03-12-2018, 10:43 AM   #937
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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; 03-12-2018 at 10:59 AM.
Geoff Waddington is offline   Reply With Quote
Old 03-12-2018, 10:57 AM   #938
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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...
Freex is offline   Reply With Quote
Old 03-12-2018, 11:02 AM   #939
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-12-2018, 11:03 AM   #940
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-13-2018, 01:53 AM   #941
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-13-2018, 12:15 PM   #942
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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 03-13-2018, 01:40 PM   #943
andyp24
Human being with feelings
 
andyp24's Avatar
 
Join Date: Mar 2016
Posts: 1,239
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   #944
Icchan
Human being with feelings
 
Icchan's Avatar
 
Join Date: Dec 2011
Location: Finland
Posts: 792
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   #945
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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; 03-13-2018 at 04:33 PM.
Geoff Waddington is offline   Reply With Quote
Old 03-13-2018, 04:32 PM   #946
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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 03-13-2018, 08:45 PM   #947
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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.
Freex is offline   Reply With Quote
Old 03-13-2018, 11:35 PM   #948
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
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

Last edited by mschnell; 03-14-2018 at 06:37 AM.
mschnell is offline   Reply With Quote
Old 03-14-2018, 02:48 AM   #949
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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
__________________
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 03-14-2018, 02:49 AM   #950
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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 !
__________________
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 03-14-2018, 03:08 AM   #951
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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 !
__________________
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 03-14-2018, 04:39 AM   #952
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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.

Last edited by Freex; 03-14-2018 at 04:53 AM.
Freex is offline   Reply With Quote
Old 03-14-2018, 04:59 AM   #953
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-14-2018, 05:12 AM   #954
Freex
Human being with feelings
 
Freex's Avatar
 
Join Date: Jul 2011
Location: Northern Ireland
Posts: 902
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)
Freex is offline   Reply With Quote
Old 03-14-2018, 05:17 AM   #955
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
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.
__________________
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 03-14-2018, 05:28 AM   #956
MixMonkey
Human being with feelings
 
MixMonkey's Avatar
 
Join Date: Sep 2017
Location: London, England.
Posts: 4,869
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   #957
Diego
Human being with feelings
 
Diego's Avatar
 
Join Date: Jan 2011
Location: Italy and... world
Posts: 131
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   #958
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
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
mschnell is offline   Reply With Quote
Old 03-14-2018, 07:30 AM   #959
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Quote:
Originally Posted by Diego View Post
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....
Yeah, if you turn on Midi In monitor you will see that those controls don't send any midi messages out, so we can't map them.

Looking for some config file / magic Artist boot when holding buttons down sequence or similar to get those buttons and the extra buttons by the encoder to be functional.
__________________
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 03-14-2018, 11:09 AM   #960
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,183
Default

Afternoon blog:

Thinking that it will be valuable to lay out the rest of the controls like the Channels and Matrices.

For instance, the Function buttons, Assignment buttons, Modifier buttons, etc. on an MCU could belong to Groups.

Nested Groups should be possible a la:

Group MCURightButtonsArea

>Group Assignment
>Track
>Send
>...
>GroupEnd

>Group Function
>F1
>F2
>F3
>...
>GroupEnd

GroupEnd

That's the general concept...
__________________
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 06:28 AM.


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