If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
MIDI Event/Status Values
9 posts
• Page 1 of 1
MIDI Event/Status Values
I was searching for what values I'm supposed to put into MIDI Event prims (add it to the list of things missing from the manual!). Luckily I found this post from Nubeat here.
The manual says it's looking for values 0-127 though. So why are these values 128-255?
(Also re-posting for visibility/searchability.)
Nubeat7 wrote: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
The manual says it's looking for values 0-127 though. So why are these values 128-255?
(Also re-posting for visibility/searchability.)
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: MIDI Event/Status Values
The additional link in that thread has a nice layout of the MIDI specification.
Here's the link [for completeness here]
http://www.indiana.edu/~emusic/etext/MIDI/chapter3_MIDI4.shtml
I used Page 6 a lot when assigning [CC] messages.
Here's the link [for completeness here]
http://www.indiana.edu/~emusic/etext/MIDI/chapter3_MIDI4.shtml
I used Page 6 a lot when assigning [CC] messages.
- RJHollins
- Posts: 1571
- Joined: Thu Mar 08, 2012 7:58 pm
Re: MIDI Event/Status Values
Maybe I should have asked a more detailed question.
I don't know what to put into the four inputs. I just know what it says in the manual, which isn't much. http://www.dsprobotics.com/Files/V3/Com ... erence.pdf
It says it's looking for values 0-127 (not binary). It also says the 3rd and 4th values are for pitch and velocity on note events. I just want to trigger note on and note off events, so I was assuming this would go into the first value.
If anyone could explain what exactly I'm supposed to put into this that would be cool.
I don't know what to put into the four inputs. I just know what it says in the manual, which isn't much. http://www.dsprobotics.com/Files/V3/Com ... erence.pdf
It says it's looking for values 0-127 (not binary). It also says the 3rd and 4th values are for pitch and velocity on note events. I just want to trigger note on and note off events, so I was assuming this would go into the first value.
If anyone could explain what exactly I'm supposed to put into this that would be cool.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: MIDI Event/Status Values
I'll try to help what I can. But I'll bet you'll be surprised how easy it really is once getting past the specific things like STATUS #.
My use for MIDI was for [C]ontinuous [C]ontroller messages ... no Midi Notes ... but the concept is similar.
I'm looking, but I don't see an INTEGER values for status, but you could [temporarily] enter the binary into a STRING, and look at the output from one of the converter PRIMS. [just a quick idea].
The MIDI CH is simply an INT from 1 to 16.
The next 2 entries are the MIDI NOTE [pitch], and the MIDI velocity [vol] .. these are just the basic,simple descriptions, as there are other MIDI messages dedicated to this like VOLUME, etc.
So for NOTE .... 0-127(60=middle C)
and v=velocity (0-127)
You could load in one of the MIDI keyboards and view its' MIDI output. There is a Midi Monitor [I think written by TROG] that is a great analysis tool. That should help.
I'm not sure quite where you are at with this, and I don't want to make any assumptions [plus ... one of the FS GURUS might step in and answer any specifics].
Meantime I hope some of this is useful.
My use for MIDI was for [C]ontinuous [C]ontroller messages ... no Midi Notes ... but the concept is similar.
I'm looking, but I don't see an INTEGER values for status, but you could [temporarily] enter the binary into a STRING, and look at the output from one of the converter PRIMS. [just a quick idea].
The MIDI CH is simply an INT from 1 to 16.
The next 2 entries are the MIDI NOTE [pitch], and the MIDI velocity [vol] .. these are just the basic,simple descriptions, as there are other MIDI messages dedicated to this like VOLUME, etc.
So for NOTE .... 0-127(60=middle C)
and v=velocity (0-127)
You could load in one of the MIDI keyboards and view its' MIDI output. There is a Midi Monitor [I think written by TROG] that is a great analysis tool. That should help.
I'm not sure quite where you are at with this, and I don't want to make any assumptions [plus ... one of the FS GURUS might step in and answer any specifics].
Meantime I hope some of this is useful.
- RJHollins
- Posts: 1571
- Joined: Thu Mar 08, 2012 7:58 pm
Re: MIDI Event/Status Values
I tried putting 1001 into the top input, nothing.
I tried putting 9 (1001 converted to decimal) into it, nothing.
Then I tried putting 144 into it, and that gave me a note on.
So I guess I'm back to the original question. Why does the manual say it's supposed to be a value 0-127, and why is Nubeat's list 128-255?
Edit: also what does channel do? It seems I can put any value in there and still turn the note on and off. I expected to have to turn it off with the same channel.
I tried putting 9 (1001 converted to decimal) into it, nothing.
Then I tried putting 144 into it, and that gave me a note on.
So I guess I'm back to the original question. Why does the manual say it's supposed to be a value 0-127, and why is Nubeat's list 128-255?
Edit: also what does channel do? It seems I can put any value in there and still turn the note on and off. I expected to have to turn it off with the same channel.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: MIDI Event/Status Values
Perfect Human Interface wrote:I tried putting 1001 into the top input, nothing.
I tried putting 9 (1001 converted to decimal) into it, nothing.
Then I tried putting 144 into it, and that gave me a note on.
So I guess I'm back to the original question. Why does the manual say it's supposed to be a value 0-127, and why is Nubeat's list 128-255?
Edit: also what does channel do? It seems I can put any value in there and still turn the note on and off. I expected to have to turn it off with the same channel.
Yes ... 144 is the STATUS for NOTE ... now that I see it
The MIDI Channels: Yes, there are 16 of them available. Basically you can have 16 different instruments/synths, each getting its own messages [for example].
- RJHollins
- Posts: 1571
- Joined: Thu Mar 08, 2012 7:58 pm
Re: MIDI Event/Status Values
Quite a few things get mixed up here.
1) All value types are just representations of binary. If something shows you binary data, you have to convert it to the type that your system expects. In case of the midi event prim it's integers.
2) A midi message consits of a status byte, followed by 1 or t2 data bytes. To differentiate between them, a status byte always begins with the msb set to 1, a data byte with the msb set to 0. So there's one bit always in use, which leaves 7 bits for information. That results in 128 possible different values (0-127).
However, and here is the catch, for a status byte there is no 0-127, since the msb is set, thus 128-255 are the integers to be used. Furthermore the status byte is divided into high and low nibble, where the high nibble tells the status and the low nibble the midi channel. Since we would have difficulties to create such a byte, Flowstone converts it for us.
If you enter 144 for status, that's 10010000 in binary. Omitting the low nibble, we get 1001, which is the the status for Note on. The low nibble 0000 tells us that channel 0 (in most applications known as midi channel 1) is to be used. Now if you don't provide a channel number for the prim, but just the status 144, it will send a "note on midi channel 1". To send another channel, use the channel input. With channel input set to 2, Flowstone will send 145, which is "note on midi channel 2", etc.
We can't present you with the midi specification, you have to read it for yourself to know what data bytes you have to use (and what they do). For example, status 144 uses 2 data bytes, which are the note number and the note velocity.
A complete message for the prim to generate a "Note On, midi channel 3, middle C, 120 velocity" would use the following four integers, fed to the prim up to down: 144, 3, 64, 120
3) Midi is a transmission system, it does not interpret data. It is solely your task (or the task of the receiving daw/instrument) to decide to which midi channel to respond to (including the decision to respond to all of them). MIDI just transmits your wish to use midi channel x.
4) Although ist commonly called so, CC does not stand for continious controller, but for Control Change.
5) You have to adapt Nubeat's list (there are more complet ones if you just google for "Midi message table", e.g. http://www.midi.org/techspecs/midimessages.php, scroll to table 2). If you understood my explanation under point 2, you will now know that to send a control change on midi channel 2 you DO NOT use 177 as status byte, but 176, and set the channel to 2.
I strongly recommend to read about the format of midi messages and the meaning of the status bytes.
1) All value types are just representations of binary. If something shows you binary data, you have to convert it to the type that your system expects. In case of the midi event prim it's integers.
2) A midi message consits of a status byte, followed by 1 or t2 data bytes. To differentiate between them, a status byte always begins with the msb set to 1, a data byte with the msb set to 0. So there's one bit always in use, which leaves 7 bits for information. That results in 128 possible different values (0-127).
However, and here is the catch, for a status byte there is no 0-127, since the msb is set, thus 128-255 are the integers to be used. Furthermore the status byte is divided into high and low nibble, where the high nibble tells the status and the low nibble the midi channel. Since we would have difficulties to create such a byte, Flowstone converts it for us.
If you enter 144 for status, that's 10010000 in binary. Omitting the low nibble, we get 1001, which is the the status for Note on. The low nibble 0000 tells us that channel 0 (in most applications known as midi channel 1) is to be used. Now if you don't provide a channel number for the prim, but just the status 144, it will send a "note on midi channel 1". To send another channel, use the channel input. With channel input set to 2, Flowstone will send 145, which is "note on midi channel 2", etc.
We can't present you with the midi specification, you have to read it for yourself to know what data bytes you have to use (and what they do). For example, status 144 uses 2 data bytes, which are the note number and the note velocity.
A complete message for the prim to generate a "Note On, midi channel 3, middle C, 120 velocity" would use the following four integers, fed to the prim up to down: 144, 3, 64, 120
3) Midi is a transmission system, it does not interpret data. It is solely your task (or the task of the receiving daw/instrument) to decide to which midi channel to respond to (including the decision to respond to all of them). MIDI just transmits your wish to use midi channel x.
4) Although ist commonly called so, CC does not stand for continious controller, but for Control Change.
5) You have to adapt Nubeat's list (there are more complet ones if you just google for "Midi message table", e.g. http://www.midi.org/techspecs/midimessages.php, scroll to table 2). If you understood my explanation under point 2, you will now know that to send a control change on midi channel 2 you DO NOT use 177 as status byte, but 176, and set the channel to 2.
I strongly recommend to read about the format of midi messages and the meaning of the status bytes.
"There lies the dog buried" (German saying translated literally)
- tulamide
- Posts: 2714
- Joined: Sat Jun 21, 2014 2:48 pm
- Location: Germany
Re: MIDI Event/Status Values
Thank you for the thorough explanation.
- Perfect Human Interface
- Posts: 643
- Joined: Sun Mar 10, 2013 7:32 pm
Re: MIDI Event/Status Values
To make the debate complete:
midi to poly component completely ignores the channel data and all messages other than note-on and note-off. It will create new voice on any note-on event and release a voice (or schedule a release when some envelope follower is used) on note-off event.
The channel is there, so you can filter midi data (for example via ruby) and send it to different parts of the synth. For example midi file players usually contain 16 synths, each sensitive only to notes from specific channel. In each of the synths you may change the instruments and other settings.
midi to poly component completely ignores the channel data and all messages other than note-on and note-off. It will create new voice on any note-on event and release a voice (or schedule a release when some envelope follower is used) on note-off event.
The channel is there, so you can filter midi data (for example via ruby) and send it to different parts of the synth. For example midi file players usually contain 16 synths, each sensitive only to notes from specific channel. In each of the synths you may change the instruments and other settings.
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
9 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 57 guests