Re: [linux-audio-dev] MIDI question

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] MIDI question
From: Adam Zygmunt (azygmun_AT_bgnet.bgsu.edu)
Date: pe elo    13 1999 - 00:45:10 EDT


On Wed, 11 Aug 1999, David Slomin wrote:

> On Wed, 11 Aug 1999, Adam Zygmunt wrote:
>
> What I'm referring to is that there are pairs of controller numbers for
> many of the defined types of controllers. For instance, controller number
> 1 sets the most significant 7 bits for the mod wheel, and controller
> number 0x21 sets the least significant 7 bits for the mod wheel. Older
> and cheaper synthesizers will only send the first, allowing only a course
> level of control, but the standard supports a full 14 bits of resolution,
> spread across two messages. At least, that's what it really looks like
> from the spec; I wanted to make sure what limitations there were in terms
> of order and intervening messages.
>
>
> This seems to coincide with the scattered documentation I found, all
> except the 7 bit limit. To send a value of 1234 (0x4D2) to RPN number
> 5678 (0x162E), I believe the sequence would be:

This is true. I was mistaken here. [N]RPNs ARE 14-bit, with controller 6
being MSB and 26 being LSB. In my keyboard, though (Yamaha CS1x), the only
RPN that actually uses all 14 bits is fine tuning, and none of its NRPNs
do. The fine-tuned mod wheel, though, is currently unofficial in all the
sources I checked (midi.org, harmony-central controller list, and my own
manual). Since all the 14-bit stuff works basically the same, though, it
should be okay to treat controller 21 as "optional" like [N]RPN data 26.

> 1. Can you reverse the order of 1 and 2, likewise 3 and 4, and still have
> it be valid? In other words, does MIDI really have an "endian"
> preference? (Not the IFF based SMF files, which definitely do, but the
> wire messages themselves?)

I would think so (but I'm just guessing here). My keyboard's manual
doesn't seem to be very picky about the order for 1 and 2 (different
orders and different places). It doesn't specifically say about the data
values, which leads me to believe that it's not critical either.
Personally, I would send the MSB first for data, because the LSB is used
so rarely.

> 2. Is a sequence like 1, 2, 3, 4, 3, 4 valid, where you don't repeat the
> RPN number? This seems like it should be valid, because otherwise the
> data increment and decrement controllers (0x60 and 0x61 respectively)
> would be pretty inefficient, but then again I'm not sure.

No idea. I would see about MMA's official printed specs on this one for
the gospel truth, or at least try to find some really good examples
somewhere. Beta testers wouldn't hurt, either.

> 3. Can you leave out 4 so that the RPN number has 14 bits of resolution,
> but the value to which it is set has only 7 bits, like with the "coarse"
> versions of regular controllers?

Yes. (something certain!) The examples in the brief MIDI tutorial at
midi.org don't even mention the LSB data value or controller in the text,
only in the controller list.

> This would be easy to test out if my synth actually sent or recognised
> RPNs and fine-grained regular controllers, but unfortunately it is too old
> for that.
>
> Thanks for your help,
> Div.
>
No problem. Good luck!

Adam Zygmunt


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:25:52 EST