Page 1 of 1
midi splitter confusion
Posted: Fri Jun 20, 2014 5:15 am
by Xtinct
Tried to use the midi splitter to extract velocity, easy you say just connect to the velocity output,
works great until you move your modulation wheel or pitch bend then it outputs their values
maybe its just me or the fact that its 5 in the morning but I cannot find a solution anyone have any ideas

Re: Flawed midi splitter
Posted: Fri Jun 20, 2014 5:41 am
by Xtinct
OK found a solution using a filter from the wonderful Trogs tools, but I still consider this a bug

Re: Flawed midi splitter
Posted: Fri Jun 20, 2014 8:09 am
by Nubeat7
like you already found out you need to filter the datatype!
if its anote event, velocity is sent on the second data byte, but if it is not a noteevent some other data is sent on the second databyte, this can be cc controller values or pitchbend like you also found out already!
midi data is structured like this and its not a bug...
this is also the reason why you have an extra trigger output to update the data, like this its easy to trigger only if the status is the kind of midi data you want.
here is a small reference to this:
http://www.indiana.edu/~emusic/etext/MI ... IDI4.shtml
Re: Flawed midi splitter
Posted: Fri Jun 20, 2014 1:40 pm
by Xtinct
My bad

not a bug but a badly worded manual
"Data 2 - (0-127) the second byte of data received (for note events this is the velocity)"
No mention of other controller data being output from Data 2, but then again it doesn't say it isn't.
An extra line or two in the manual would be helpful, or the reinstatement of the wiki where greater explanations of the components could be posted.
Re: midi splitter confusion
Posted: Fri Jun 20, 2014 3:01 pm
by Xtinct
One for the tool box to go with the cc, bend and after touch primitives

- Midi Velocity.png (2.17 KiB) Viewed 21681 times
Re: midi splitter confusion
Posted: Fri Jun 20, 2014 8:15 pm
by Nubeat7
Xtinct wrote:..the reinstatement of the wiki where greater explanations of the components could be posted.
+1
whats also interesting, the numbers like 144 and 128 are representation of the decimal values of the statusbyte
so 144 => 10010000
the 1st part represents the status 1001 = note on
the 2nd part repesents the channel 0000 = channel 1 (it counts from 0 to 15 so 0 = ch 1 ... 15 = ch 16)
so 145 => 10010001
the 1st part represents the status 1001 = note on
the 2nd part repesents the channel 0002 = channel 2
and so on
my question now is, when i want to receive note from another channel then 1, do i need to filter from 128 - 143 for note off and 144 - 159 for note on(176 - 191 for CC)?
because the common version of note on and off events is 144 for note on ans 128 for note off (176 for midi CC) which would be only for midi channel 1? never tried this out in a DAW - somebody did this already?
Re: midi splitter confusion
Posted: Fri Jun 20, 2014 8:27 pm
by trogluddite
Hi Nubeat,
With the MIDI primitives you don't need to worry about it - the 'Status' and 'Channel' connectors will split and combine the two parts as required - so you can safely use just the "channel 1" version of the status code.
Likewise with Ruby - the MIDI objects divide the values four ways into Status, Channel, Data1 and Data2. Makes life a whole lot easier!
Re: midi splitter confusion
Posted: Fri Jun 20, 2014 8:29 pm
by Nubeat7
here the whole list:
128 (- 143) = note off (channel 1-16)
144 (- 159) = note on (channel 1-16)
160 (- 175) = polyphonic aftertouch (channel 1-16)
176 (- 191) = control change (channel 1-16)
192 (- 207) = program change (channel 1-16)
206 (- 223) = aftertouch (channel 1-16)
224 (- 239) = pitchbend (channel 1-16)
240 System Exclusive
241 MIDI Time Code Qtr. Frame
242 Song Position Pointer LSB MSB
243 Song Select (Song #) (0-127)
244 Undefined (Reserved)
245 Undefined (Reserved)
246 Tune request
247 End of SysEx (EOX)
248 Timing clock
249 Undefined (Reserved)
250 Start
251 Continue
252 Stop
253 Undefined (Reserved)
254 Active Sensing
255 System Reset
Re: midi splitter confusion
Posted: Fri Jun 20, 2014 8:33 pm
by Nubeat7
trogluddite wrote:Hi Nubeat,
With the MIDI primitives you don't need to worry about it - the 'Status' and 'Channel' connectors will split and combine the two parts as required - so you can safely use just the "channel 1" version of the status code.
Likewise with Ruby - the MIDI objects divide the values four ways into Status, Channel, Data1 and Data2. Makes life a whole lot easier!
hello trog! first of all great to have you back, hope you`re fine

thx for the fast answer, that´s good to know!