On Monday, October 5, 2009, Fons Adriaensen wrote:
On Mon, Oct 05, 2009 at 07:00:40PM +0200, Pedro
Lopez-Cabanillas wrote:
The MMA requires that you use a registered
manufacturer ID, but only for
commercial products. There is a special ID = 0x7D that is intended for
educational or development use only, and should never appear in a
commercial design.
Where it is silently assumed that 'educational' and
'development'
implies 'not distributed', or at least 'never used together with
any other app using the same ID'.
If two or more open source programs use 0x7D and they happen to
see the same MIDI stream then one of them will be screwed.
The only devices or programs that would be screwed are those bad or poorly
designed/written.
In addition to the manufacturer ID, there should be enough additional bytes to
uncertainly identify a particular model among others using the same
manufacturer ID. The device (soft in this case) receiving a message should be
able to distinguish between legitimate and spurious messages using the model
ID bytes, checksums and/or some other mechanism.
Checksums are not always used for simple parameters, I guess they are
used for complete dumps and the model number or device number also could
have a FLOSS-twin. For e.g. the Matrix-1000 you can have several
Oberheim Matrix-1000 and give them device numbers, so that only one
Matrix-1000 will use received data. It would be really good if there
would be a first ID for FLOSS, but there isn't, so it might be the best
way to make this ID changeable by the GUI.