SynthMaker

Midi Event - Status Pin?

Archive · 2011 9 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

1-2-Many ·

Status 0-127? trying to reconcile how this gels with the MIDI standard Can anyone translate?

For example, Program change is Cn, where n = MIDI channel, but since the module already has a pin for the MIDI channel would you just hook a 12 (0x0C) to the status pin?

philter5 ·

if i get you right you are looking for this:

Status: Function: 144 Note on 128 Note off 176 Control Change 192 Program Change 208 aftertouch 224 pitchbend

1-2-Many ·

philter5 wrote: if i get you right you are looking for this:

Status: Function: 144 Note on 128 Note off 176 Control Change 192 Program Change 208 aftertouch 224 pitchbend

Yes - but the confusion is in the seperation of the byte. Each of your numbers assume a MIDI channel of 1 when converted to hex (lower nibble = 0), and your numbers are not compatible with the status pin of the midi event primitive.

I'm looking for this (high nibble of the Status Byte) 8 = Note Off 9 = Note On A = AfterTouch (ie, key pressure) B = Control Change C = Program (patch) change D = Channel Pressure E = Pitch Wheel

Midi Messages begin with a Status byte in the range 0x80 to 0xFF, where the upper nibble defines the event type and the lower nibble defines the MIDI channel. The remaining bytes of the message (ie, the data bytes, if any) will be in the range 0x00 to 0x7F. You can always detect the start of a MIDI message because that's when you receive a byte with bit #7 set (0x80 - 0xFF).

But the MIDI Event primitive looks like this

oddson ·

SynthMaker 'simplifies' the status by ignoring/extracting/abstracting the MIDI channel.

Just assume second nibble is zero.

1-2-Many ·

oddson wrote: SynthMaker 'simplifies' the status by ignoring/extracting/abstracting the MIDI channel.

Just assume second nibble is zero.

But doing so makes no sense since the "status pin" is defined for 0-127, 00-7F . . . BUT MIDI Status byte is in the range of 80-FF.

oddson ·

You could argue the OutSim should have made it so Note on status is 8 and Pitch 15 but they didn't.

I do think extracting out the event type from the MIDI channel makes more sense then leaving them together. Otherwise the MIDI event primitive could have a single integer value and leave us with all the integer math.

If you need to convert mixed nibbles I think it would be something like this:

1-2-Many ·

You could argue the OutSim should have made it so Note on status is 8 and Pitch 15 but they didn't.

So what did they make it? That's always been the question.

The component reference states that MIDI Event takes values 0-127 on the Status pin, but there are only 0-15 (0-F) values for midi status messages. So again, if I want to send a program change do I simply put 12 on the status pin?

oddson ·

Make the second hex zero and run it through hex to int.

The component reference is incorrect. I guess that's a big part of the confusion.

1-2-Many ·

OK - good to know. Yes - the major confusion was the "bad" 0-127 info in the component reference. The reference also contains wrong info for the MIDI Splitter Status pin, which made it all the more confusing.

Thanks Oddson

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.