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

Reply
 
Thread Tools Display Modes
Old 01-24-2018, 01:14 PM   #561
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by _Stevie_ View Post
Hey Geoff!

As I mentioned some months ago, I'm using the Steinberg CMC-series.
For basic stuff like action list commands they work pretty well.
One of the downsides is: I don't get visual feedback (e.g. bypassing the insert FX for example does not light up the LED on the device). However, I think the sysex commands, that trigger the LED are documented. Does it make sense to wait for the pre-alpha or would I be covered by coding something in OSCIIBot?
(I'm only talking about basic stuff like open VSTi, bypass FX, pan, etc...)
I'd say go ahead and code away, OSC is off in the future and custom SysEx will not be there at the beginning...
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-24-2018, 01:43 PM   #562
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Posts: 2,799
Default

Alright, will dig into OSCIIBOT, then
__________________
My Reascripts forum thread | My Reascripts on GitHub | Stephan Römer - film composer
If you wish to donate for my scripts: please consider an organization like: animal shelter, doctors without borders, UNICEF, etc...
_Stevie_ is offline   Reply With Quote
Old 01-24-2018, 02:14 PM   #563
shortyedwards
Human being with feelings
 
Join Date: Jan 2018
Posts: 11
Default vs-700 !

Hey now! This is absolutely great news that poetnprophet (Dave) and Geoff are working on this control surface. I'm totally code illiterate but will be happy to help with the Mac side of things, when it gets there (he said optimistically).

I'll be following this but in the meantime many thanks and let me know if I can be of any assistance. Carry on!

-Doug
shortyedwards is offline   Reply With Quote
Old 01-24-2018, 02:39 PM   #564
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
becomes:

Gain2 B0 19 01-41
What about high resolution Midi CC ?
This would be very appropriate for a high quality controller box. (Alas the XTouch Compact does not featurfe HR Midi.)

-Michael

Last edited by mschnell; 01-24-2018 at 02:44 PM.
mschnell is online now   Reply With Quote
Old 01-24-2018, 02:42 PM   #565
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
I'd say go ahead and code away, OSC is off in the future and custom SysEx will not be there at the beginning...
I don't understand your wording. OSCII-Bot does support SysEx since some months.

-Michael
mschnell is online now   Reply With Quote
Old 01-24-2018, 02:46 PM   #566
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
What about high resolution Midi CC ?
This would be very appropriate for a high quality controller box. (Alas the XTouch Compact does not featurfe HR Midi.)

-Michael
That's the Fader "Touch" switch.

The Fader is E0 00-7f 00-7f which translates into a range of 0-16383, plenty high resolution.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-24-2018, 02:47 PM   #567
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
I don't understand your wording. OSCII-Bot does support SysEx since some months.

-Michael
i'm talking about this project supporting OSC and SysEx natively.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-24-2018, 02:53 PM   #568
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
What about high resolution Midi CC ?
This would be very appropriate for a high quality controller box. (Alas the XTouch Compact does not featurfe HR Midi.)

-Michael
Haha, you edited your earlier post whilst I was typing

If you have a high resolution control, the system handles up to 14 bit (16384 resolution).
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-24-2018, 04:34 PM   #569
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
That's the Fader "Touch" switch.
Seemingly you answered before I edited to "...Gain2 B0 19 01-41..."
Quote:
Originally Posted by Geoff Waddington View Post
The Fader is E0 00-7f 00-7f which translates into a range of 0-16383, plenty high resolution.
I don't understand this notation yet. But I don't see how a Midi controller board can send more resolution than 128 by other messages than high "resolution CC" (Pitch bend is 14 bits, but just a single controller).

-Michael
mschnell is online now   Reply With Quote
Old 01-24-2018, 05:08 PM   #570
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
I don't understand this notation yet. But I don't see how a Midi controller board can send more resolution than 128 by other messages than high "resolution CC" (Pitch bend is 14 bits, but just a single controller).

-Michael
The most important thing to do when thinking control surfaces is to forget about normal musical midi.

CC, Pitch bend, simply have no semantic meaning here.

In MCU dialect a fader starts with 'e'.

e0 = fader 1
e1 = fader 2
e2 = fader 3
...
ef = fader 16

So if we accept a limitation of 16 faders we are free to use the other 2 bytes for high resolution data -- 14 bits.

e.g.
e0 00 00 -- lowest value
e0 7f 7f -- highest value
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 06:20 AM   #571
azslow3
Human being with feelings
 
Join Date: Nov 2017
Location: Heidelberg, Germany
Posts: 713
Default

Quote:
Originally Posted by Geoff Waddington View Post
e0 00 00 -- lowest value
e0 7f 7f -- highest value
Not important for the mission, but I want to mention:

Hardware controllers do not send 7f 7f since none of them have real 14 bit resolution. Best faders are 10bit and the highest value they send is 7f 70.

That can sound not important, but some parameters have hi native resolution. When controlled from such faders without software correction for 10bit, they can not be set to "max" (the max value requested will be 0,9991, not 1,0).
The problem even more noticeable when the controller is just "Mackie compatible" but has 7bit faders. In that case the maximum it sends is 7f 00. Without correction, that produce 0,9922. MIDI resolution is very close to that (126 - 0,9921) and most parameters see such difference to 1. as significant.

In my software, I detect real resolution from 14bit controllers (PB, CC14, (N)RPN) "on the fly" by checking the presence of low order bits.
azslow3 is offline   Reply With Quote
Old 01-25-2018, 07:44 AM   #572
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
The most important thing to do when thinking control surfaces is to forget about normal musical midi.

CC, Pitch bend, simply have no semantic meaning here.

In MCU dialect a fader starts with 'e'.
...
I see. But I do suppose this is just a Mackie speciality (Weirdness).

OTOH my XTouch Compact sends rather standard Midi messages:
Note on / Note off for button push and release (including rotary top).
Note on / Note off for Fader touch
CC for fader or rotary move (send and receive)

Seems like rather appropriate, and high resolution CC would be a logical extension.

Hence the Mackie way should not be the (only) basis of your file format, but HR CC should be definable as well.

-Michael
mschnell is online now   Reply With Quote
Old 01-25-2018, 08:41 AM   #573
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by azslow3 View Post
Not important for the mission, but I want to mention:

Hardware controllers do not send 7f 7f since none of them have real 14 bit resolution. Best faders are 10bit and the highest value they send is 7f 70.

That can sound not important, but some parameters have hi native resolution. When controlled from such faders without software correction for 10bit, they can not be set to "max" (the max value requested will be 0,9991, not 1,0).
The problem even more noticeable when the controller is just "Mackie compatible" but has 7bit faders. In that case the maximum it sends is 7f 00. Without correction, that produce 0,9922. MIDI resolution is very close to that (126 - 0,9921) and most parameters see such difference to 1. as significant.

In my software, I detect real resolution from 14bit controllers (PB, CC14, (N)RPN) "on the fly" by checking the presence of low order bits.
Yes, thanks for reminding me, although I will not be as heroic as you and detect bit depth on the fly, since this only matters at the extremes, because controllers may not be able to generate the final few bits.

I'll just add simple corrections for 14 bit faders:
if value is within .001 of 1.0 it equals 1.0.
if value is within .001 of 0.0 it equals 0.0.

As far as 7 bit, should be fine, since we do not use the 2 byte approach you show, but rather convert to normalized directly from the byte of interest.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 08:49 AM   #574
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
I see. But I do suppose this is just a Mackie speciality (Weirdness).

OTOH my XTouch Compact sends rather standard Midi messages:
Note on / Note off for button push and release (including rotary top).
Note on / Note off for Fader touch
CC for fader or rotary move (send and receive)

Seems like rather appropriate, and high resolution CC would be a logical extension.

Hence the Mackie way should not be the (only) basis of your file format, but HR CC should be definable as well.

-Michael
Hmmm...

Note on is the same thing as 90 in hex.

So the Mackie is not strange at all, the X Touch mimics most of the Mackie dialect.

I'm just saying do not think of these numbers as Note On, CC, PB, etc.

There is no C#3 on an X Touch, there is a Mute button.
Now C#3 and Mute button may both be 90 34, but they have a totally different meaning.

To me at least using midi note terminology is confusing and inaccurate when talking about control surfaces.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 09:46 AM   #575
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 684
Default

How far down the line do you think OSC is Geoff? (As you reckoned my X32 was a candidate for that)

Just roughly... a few months? Years?

Andy
andyp24 is offline   Reply With Quote
Old 01-25-2018, 10:29 AM   #576
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 906
Default

Mschnell,
To get 14 bit precision you send/receive 2 7 bit messages. You don't give midi a fair shake sometimes IMHO. First control surface ever worked like that. Were you born then?:-) the hui.
LugNut is offline   Reply With Quote
Old 01-25-2018, 11:11 AM   #577
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by andyp24 View Post
How far down the line do you think OSC is Geoff? (As you reckoned my X32 was a candidate for that)

Just roughly... a few months? Years?

Andy
I would say (famous last words about software) more like months than years.

I expect to have a pre alpha of what we have so far in midi out sometime in February, then as users begin to use the software, future plans will become more clear.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 11:12 AM   #578
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by LugNut View Post
Mschnell,
To get 14 bit precision you send/receive 2 7 bit messages. You don't give midi a fair shake sometimes IMHO. First control surface ever worked like that. Were you born then?:-) the hui.
Yup, or you can use MCU protocol and use 2 of the 3 bytes for data values, then you can get by with one message.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 11:48 AM   #579
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 906
Default

Quote:
Originally Posted by Geoff Waddington View Post
Yup, or you can use MCU protocol and use 2 of the 3 bytes for data values, then you can get by with one message.
Hi,
Really? I didn't know that. Thanks.
LugNut is offline   Reply With Quote
Old 01-25-2018, 12:03 PM   #580
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 684
Default

Quote:
Originally Posted by Geoff Waddington View Post
I would say (famous last words about software) more like months than years.

I expect to have a pre alpha of what we have so far in midi out sometime in February, then as users begin to use the software, future plans will become more clear.
Good to know Geoff, thanks, although obviously I won't hold you to it!

Cheers
andyp24 is offline   Reply With Quote
Old 01-25-2018, 01:53 PM   #581
azslow3
Human being with feelings
 
Join Date: Nov 2017
Location: Heidelberg, Germany
Posts: 713
Default

Quote:
Originally Posted by LugNut View Post
Mschnell,
To get 14 bit precision you send/receive 2 7 bit messages. You don't give midi a fair shake sometimes IMHO. First control surface ever worked like that. Were you born then?:-) the hui.
HUI use 14bitCC and 7bitCC in parallel, in addition ignoring MIDI recommendations.
Peavey StudioMix works solely on NRPNS (6x CC pro parameter!).
I guess that is why Logic Control / Mackie Protocol, with single PitchBend message pro fader is more popular.
azslow3 is offline   Reply With Quote
Old 01-25-2018, 02:21 PM   #582
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 906
Default

Hi,
Hui s commands are all most all 2 three byte messages. Except for the sys ex it uses for display and handshaking. It doesnt always use the whole resolution ,obviously.
LugNut is offline   Reply With Quote
Old 01-25-2018, 03:16 PM   #583
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
So the Mackie is not strange at all, the X Touch mimics most of the Mackie dialect.
Of course it does (or tries to). So I need to rephrase: " But I do suppose this is just a Mackie specialty (Weirdness), implemented by Macie themselves and the devices that mimic Mackie behavior. "

Any "independant" devices (such as XControl in other modes) supposedly will adhere more closely to "standard" Midi messages (with more "compatible" behavior) - including HiRes CC when appropriate.

Quote:
Originally Posted by Geoff Waddington View Post
There is no C#3 on an X Touch, there is a Mute button.
Of course you are right. But the Mute button only exists in Mackie Mode. in other modes, there are just "buttons". The software to be controlled (i.e. you) defines the meaning of each of them.

-Michael

Last edited by mschnell; 01-25-2018 at 10:58 PM.
mschnell is online now   Reply With Quote
Old 01-25-2018, 03:27 PM   #584
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by LugNut View Post
To get 14 bit precision you send/receive 2 7 bit messages.
IMOH, This is no problem at all. Just a little bit of overhead that could be avoided in a better tailored protocol. But when using USB this does no harm at all.

But when defining a mapping definition format, it needs to be considered that a single value might be defined by a pair of CC messages.

Quote:
Originally Posted by LugNut View Post
You don't give midi a fair shake sometimes IMHO. First control surface ever worked like that. Were you born then?:-) the hui.
I don't understand your meaning. Anyway, I am many years older than Midi .Being a software engineer, I do know lots of different data protocols, and there is a lot stuff out there that is much worse than Midi. And since Midi nowadays is done via USB (or LAN, or WiFi, ... ) instead of via plain old 5-pin connections, speed is no problem any more.

-Michael

Last edited by mschnell; 01-25-2018 at 11:00 PM.
mschnell is online now   Reply With Quote
Old 01-25-2018, 03:33 PM   #585
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
Yup, or you can use MCU protocol
In fact I would not like to be forced to use MCU protocol, if my controller provides others.

OTOH my XTouch Compact does not feature more than 7 bits (in non MCU mode) anyway. I don't know if it provides more than 7 relevant bits in MCU mode.

-Michael
mschnell is online now   Reply With Quote
Old 01-25-2018, 03:56 PM   #586
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
In fact I would not like to be forced to use MCU protocol, if my controller provides others.

OTOH my XTouch Compact does not feature more than 7 bits (in non MCU mode) anyway. I don't know if it provides more than 7 relevant bits in MCU mode.

-Michael
You definitely will not be forced to use MCU protocol

I see from an earlier post you are a software engineer.

Following is the ACTUAL (well, the currently proposed) template format.

Check out the real surface template closely, there is nothing that prevents us from adding a second midi message for surfaces that need that capability.

If you really want to get deep into it, download, understand, and compile the software yourself, it's Open Source, the GitHub link is in my sig.

Here's the latest format candidate, please study it carefully and please feel free to ask any questions, note this is NOT pseudo format it's the real thing:

//////////////////////////////////////////////////////////////////////
CSI.ini // main ini file

MidiInMonitor=Off
MidiOutMonitor=Off
VSTMonitor=Off

// real surfaces
// name // number of bankable faders // midi channel in // midi channel out // real surface template filename
“Mix1" 8 1 1 “McuX"
“Control" 4 3 3 “C1"
“Console1” 0 8 7 “Mcu"
“Mix2" 8 2 2 “McuX"

// logical surfaces //

///////////////////////////
Logical Surface “aLogicalSurfaceName"

SurfaceGroup “surfaceGroupName"
// real surface name // action templates directory // FX templates directory
“Mix1” “StdMcuX” “StdMcuFX"
“Mix2” “StdMcuX” “StdMcuFX"

SurfaceGroup “surfaceGroupName2"
“Console” “StdC1” “StdC1"
“Control” "SpecialMcu" "StdMcuFX"

///////////////////////////
Logical Surface “anotherLogicalSurfaceName"

SurfaceGroup “surfaceGroupName"
“Mix1” “SpecialMcuX” “StdMcuFX"
“Mix2” “SpecialMcuX” “StdMcuFX"

SurfaceGroup “surfaceGroupName2"
“Console1" “StdC1” "Special/C1"
“Control” “StdMcu” “StdMcuFX"

//////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////
// real surface template -- ties widgets to widget names

// name // optional param(s) // widget type // midi message (3 bytes)
“Play" _PushButton 90 5e 00-7f
“Record" _PushButton 90 5f 00-7f


Channels 1-8
“Fader" -72.0 12.0 _Fader e0+ 00-7f 00-7f
“Solo" _PushButton 90 08+ 00-7f
“Mute" _PushButton 90 10+ 00-7f
...
//////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////
// action template - ties widget names to actions

// widget // action
“Fader" _TrackVolume
“Mute" _TrackMute
“Play" _Play
...
//////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////
// FX template - ties widget names to FX param names

VST: ReaComp (Cockos)

// widget name // FX param name
“Threshold" “Thresh"
“Character" “Gain"
“Attack” “Attack"
“Release” “Release”
"Ratio" “Ratio"
“Compressor” “Bypass"
“Parallel” “Wet"
"CompressorMeter” “GainReduction_dB"
//////////////////////////////////////////////////////////////////////
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 05:17 PM   #587
kgarello
Human being with feelings
 
Join Date: Jan 2009
Posts: 309
Default

Hi Geoff,

Thanks for attacking this and providing us with insight on how this type of project can be engineered. Its been really helpful to me as a hobbiest programmer.

I am confused as to where we are from a testing perspective.

If I download and compile the code and install the dll, will it allow me to experiment with the mapping format with our own devices?

I read above that you did some work on a GUI in your code. Is that something testable also?


Thanks,

Ken
kgarello is offline   Reply With Quote
Old 01-25-2018, 05:32 PM   #588
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by kgarello View Post
Hi Geoff,

Thanks for attacking this and providing us with insight on how this type of project can be engineered. Its been really helpful to me as a hobbiest programmer.

I am confused as to where we are from a testing perspective.

If I download and compile the code and install the dll, will it allow me to experiment with the mapping format with our own devices?

I read above that you did some work on a GUI in your code. Is that something testable also?


Thanks,

Ken
If you download the code now, you will find that the "mapping" is hardwired.

Just finalizing the GUI and the mapping/parsing and then we'll be ready to test the pre-alpha.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-25-2018, 11:02 PM   #589
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
You definitely will not be forced to use MCU protocol
That is great, as, AFAIK, on XTouch Compact, MC mode does not cover all hardware controls the device provides.

I'm going to take a closer look at the information you provided lather this day.

I just wanted to point out that (in some final version) for receiving and sending greater than 7 Bit values, the format would need to be able to cover both the "Mackie standard" (supposedly four byte) messages, as the "Midi HiRes standard" (combination of two three byte messages).

Please keep in mind that the Midi HiRes standard does not force to sent the two messages together. You can send (and need to be able to receive) just one of them while the other 7 bits are stored and the full value is combined from the local memory.

Hence for a slider move you will receive the high bits (e.g. CC #3) only sporadicly, while you'll see many low bit messages (here: CC #35). (Considering this, HiRes Midi is even more efficient than MCP. )

Thanks for listening
-Michael

Last edited by mschnell; 01-25-2018 at 11:22 PM.
mschnell is online now   Reply With Quote
Old 01-25-2018, 11:11 PM   #590
poetnprophet
Human being with feelings
 
poetnprophet's Avatar
 
Join Date: Jan 2018
Posts: 954
Default

Hey Geoff, how's this?
Attached Files
File Type: txt Access Panel button map short.txt.txt (504 Bytes, 30 views)
poetnprophet is offline   Reply With Quote
Old 01-26-2018, 02:49 AM   #591
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by poetnprophet View Post
Hey Geoff, how's this?
Excellent, but for the following 2 nitpicks:

When we decided to use the naming convention we gained a LOT in the way of versatility, and also made sharing templates (maps) much easier.

However there is now a burden on the template maker -- You

In order to share templates, we must establish standards -- Yucchhh !!!

But wait, it's not so bad, there is ONLY one requirement, we need to agree on what to call the surface widget.

Hmmmm....

Aha !

Let's just agree that we name the widget EXACTLY the same as is printed on the surface.

I'm sure this is not perfect, but it will be very useful most of the time -- perfection is the enemy of good enough

The other thing concerns the concept of ranges.

Instead of:

clipMute 90 3D 00 7F

use:

"CLIP MUTE" 90 3D 00-7F

Notice that CLIP MUTE (which is in quotes) is all caps and has a space, EXACTLY like the printing on the surface.

Just think of everything between the quotes as an exact copy of what you see on the surface.

00-7F tells the file reader to treat this as a low-high range.

In the simple case of a switch, it is just on (7F) or off (00), but for rotaries, faders, etc, it is a continuous range.

Sorry to be so tough, but that's the way to success here, great work so far, thanks for your effort !!
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143

Last edited by Geoff Waddington; 01-26-2018 at 03:03 AM.
Geoff Waddington is offline   Reply With Quote
Old 01-26-2018, 06:12 AM   #592
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by mschnell View Post
"Mackie standard" (supposedly four byte) messages,
Seemingly (after taking a look at your example) four byte messages is not true, but (if I understand you format ("0+") correctly) they use three bytes and abused the Channel bits for denoting the fader number with Ex ... messages.

Seems like rather silly as this would prevent using multiple in one midi stream such devices ecah using a dedicated Midi channel.

-Michael
mschnell is online now   Reply With Quote
Old 01-26-2018, 06:25 AM   #593
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
Let's just agree that we name the widget EXACTLY the same as is printed on the surface.
Dud you take a look at the XControl compact ?

Faders have just numbers 1 .. 9.

Rotaries also have just numbers (1 .. 16)

Most buttons have no names.

some have unprintable symbols.

I suggest using

F1 ... F9 for Faders
FP1 ... FP9 for Fader Touch
R1 ... R15 for Rotaries
RP1 ... RP15 for rotary Push
BA1 ... BA8, BB1 ... BB8, BC1 ... BC8, BD1 ... BD9, BE1 ... BE2, BF1 ... BF2, BG1 ... BG2, BH1 ... BH2 for Buttons (the two "H" buttons are not accessible in the current firmware release - they are assigned in Mackie Mode)

-Michael

Last edited by mschnell; 01-26-2018 at 01:19 PM.
mschnell is online now   Reply With Quote
Old 01-26-2018, 08:47 AM   #594
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
Seemingly (after taking a look at your example) four byte messages is not true, but (if I understand you format ("0+") correctly) they use three bytes and abused the Channel bits for denoting the fader number with Ex ... messages.

Seems like rather silly as this would prevent using multiple in one midi stream such devices ecah using a dedicated Midi channel.

-Michael
Once again the folly of thinking of this as midi data.

You are saying they "abused" the channel bits by using them to represent fader number.

How then, are they not "abusing" the E, is a fader a pitch bend ?

I would argue, no, it is a fader.

So all the control surface protocols I know of re-purpose the midi protocol -- 8 bits -- 7 bits -- 7 bits, and use it in an entirely different way.

There is no problem because there is no C#3 on a control surface

For instance most of them use 90 for Switch
So 90 03 00-7f -- switch 03

Most use B0 for Rotary
B0 07 00-7f -- rotary 07

As far as more midi channels, more complex surfaces just add midi ports instead, scales real well...
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-26-2018, 09:01 AM   #595
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
Dud you take a look at the XControl compact ?

Faders have just numbers 1 .. 9.

Rotaries also have just numbers (1 .. 16)

Most buttons have no names.

some have unprintable symbols.

I suggest using

F1 ... F9 for Faders
FP1 ... FP9 for Fader Touch
R1 ... R15 for Rotaries
RP1 ... RP15 for rotary Push
BA1 ... BA8, BB1 ... BB8, BC1 ... BC8, BD1 ... BD9, BE1 ... BE2, BF1 ... BF2, BG1 ... BG2, BH1 ... BH2 for Buttons (the two "H" buttons are not accessible in the current firmware release)

-Michael
Yeah, that one does require some thinking

Of course you are free to map any way you wish with any widget, anytime.

However, the new design requires naming conventions to facilitate sharing templates.

Yes, it is not perfect.

Yes, there will be issues.

The hope is overall we do OK.

So, in that vain, I would do the following:

I would just take a stock MCUStrip.rst template, automatically giving you:
Rotary
RotaryPush
RecArm
Solo
Mute
Select
Fader
FaderTouch

I would then add an MCUTransport.rst giving you:
Rew
FF
Stop
Play
Rec

To complete your setup you would have to manually map:
Loop

and the Rotaries, which I would name:
RotaryA1
RotaryA2
RotaryB1
RotaryB2
RotaryC1
RotaryC2
RotaryD1
RotaryD2

and:
RotaryA1Push
RotaryA2Push
RotaryB1Push
RotaryB2Push
RotaryC1Push
RotaryC2Push
RotaryD1Push
RotaryD2Push

Voila, you're up and running, now you can take time, get used to using it, and change whatever you want, as you incorporate it into your workflow.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143

Last edited by Geoff Waddington; 01-26-2018 at 09:09 AM.
Geoff Waddington is offline   Reply With Quote
Old 01-26-2018, 11:18 AM   #596
poetnprophet
Human being with feelings
 
poetnprophet's Avatar
 
Join Date: Jan 2018
Posts: 954
Default

Hi Geoff, thanks and don't worry, no burden at all. If anything I'm trying to take burden off of you, and still get my wish

So yes I can change the format of the button title to caps etc as printed on the control surface.

Ok to be clear, when there is a range, I would notate as: 00-7F. dash indicating "this through that".

Then if I have on off, no dash? 00 7F...?
poetnprophet is offline   Reply With Quote
Old 01-26-2018, 12:02 PM   #597
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by poetnprophet View Post
So yes I can change the format of the button title to caps etc as printed on the control surface.

Ok to be clear, when there is a range, I would notate as: 00-7F. dash indicating "this through that".

Then if I have on off, no dash? 00 7F...?
Cool, don't forget to put the names in quotes.

On/off is a range too, just the smallest range possible, 2 values, off and on, or 00-7f.

So, any value that changes is a range.

So a typical switch definition would be 90 10 00-7f.
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
Geoff Waddington is offline   Reply With Quote
Old 01-26-2018, 01:26 PM   #598
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,900
Default

Quote:
Originally Posted by Geoff Waddington View Post
You are saying they "abused" the channel bits by using them to represent fader number.
Nope. For my mind, this is a different layer of information transport. In close to any appropriate computer communication protocols "address" and "information" are clearly separated.

The midi channel is a low level, that should be adhered to just for transporting any any information independently of the interpretation of the content.

The Midi spec on that layer is is (in my interpretation):

A block starts with a byte with bit 7 set. Bit 6,5,4 define the basic kind of data to be sent, bits 3,2,1,0 define the target address.

Another layer would define the interpretation of the message.

A target device functionality would only "receive" the message if the address ("channel") matches that it is configured to listen to.

Any appropriate target device functionality should take the same (or appropriately similar) action on receiving a message that only differs in the address (Channel).

-Michael

Last edited by mschnell; 01-26-2018 at 01:38 PM.
mschnell is online now   Reply With Quote
Old 01-26-2018, 02:03 PM   #599
andyp24
Human being with feelings
 
Join Date: Mar 2016
Posts: 684
Default

Blimey, who knew MIDI was so complicated?

Perhaps it'd be easier to start with OSC instead Geoff....? 😀😁
andyp24 is offline   Reply With Quote
Old 01-26-2018, 02:03 PM   #600
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 3,679
Default

Quote:
Originally Posted by mschnell View Post
Nope. For my mind, this is a different layer of information transport. In close to any appropriate computer communication protocols "address" and "information" are clearly separated.

The midi channel is a low level, that should be adhered to just for transporting any any information independently of the interpretation of the content.

The Midi spec on that layer is is (in my interpretation):

A block starts with a byte with bit 7 set. Bit 6,5,4 define the basic kind of data to be sent, bits 3,2,1,0 define the target address.

Another layer would define the interpretation of the message.

A target device functionality would only "receive" the message if the address ("channel") matches that it is configured to listen to.

Any appropriate target device functionality should take the same (or appropriately similar) action on receiving a message that only differs in the address (Channel).

-Michael
You're talkin' "appropriate computer communication protocols" to a bunch of musicians ?

Good luck with that, but I do see your point
__________________
CSI - You can donate here: geoffwaddington.ca
Alpha software: https://stash.reaper.fm/v/36903/CSI%20alpha.zip
Reaper forum thread: https://forum.cockos.com/showthread.php?t=183143
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 10:21 PM.


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