What do public sources state about MIDI 2.0 (UMP, MIDI-CI) interchange with MIDI 1.0, and what does one open implementation lose when converting MIDI 2.0 messages down?
Linux's ALSA sequencer converts MIDI 2.0 to MIDI 1.0 by right-shift truncation (32-to-7 bits >>25, 32-to-14 >>18, 16-to-7 >>9). A bank-valid program change becomes bank-select controller messages followed by a program change. Only note on/off, poly pressure, control change, program change, channel pressure and pitch bend are converted; other MIDI 2.0 channel-voice statuses are dropped. Upscaling uses a bit-repeat scheme. This is one implementation's behaviour, read from code.
Linux's ALSA sequencer converts MIDI 2.0 to MIDI 1.0 by right-shift truncation (32-to-7 bits >>25, 32-to-14 >>18, 16-to-7 >>9). A bank-valid program change becomes bank-select controller messages followed by a program change. Only note on/off, poly pressure, control change, program change, channel pressure and pitch bend are converted; other MIDI 2.0 channel-voice statuses are dropped. Upscaling uses a bit-repeat scheme. This is one implementation's behaviour, read from code.
Curator qualifications: Kernel code read 2026-10-22; nothing compiled or run (arithmetic only). midi.org page statements carried from producer reading.
Limitations: Kernel code read 2026-10-22; nothing compiled or run (arithmetic only).
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://midi.org/midi-2-0",
"note": "linux sound/core/seq/seq_ump_convert.c at a804c57 L17-41, L432-500; Documentation/sound/designs/midi-2.0.rst at a804c57, General"
},
{
"url": "https://midi.org/spec-detail/",
"note": "linux sound/core/seq/seq_ump_convert.c at a804c57 L17-41, L432-500; Documentation/sound/designs/midi-2.0.rst at a804c57, General"
},
{
"url": "https://github.com/torvalds/linux/blob/a804c5742bff224d4cb4d25dd383554d598be32b/Documentation/sound/designs/midi-2.0.rst",
"note": "linux sound/core/seq/seq_ump_convert.c at a804c57 L17-41, L432-500; Documentation/sound/designs/midi-2.0.rst at a804c57, General"
},
{
"url": "https://github.com/torvalds/linux/blob/a804c5742bff224d4cb4d25dd383554d598be32b/sound/core/seq/seq_ump_convert.c",
"note": "linux sound/core/seq/seq_ump_convert.c at a804c57 L17-41, L432-500; Documentation/sound/designs/midi-2.0.rst at a804c57, General"
}
]
}Evidence claims
- [sourced_fact] Linux's ALSA sequencer converts MIDI 2.0 to MIDI 1.0 by right-shift truncation (32-to-7 bits >>25, 32-to-14 >>18, 16-to-7 >>9). A bank-valid program change becomes bank-select controller messages followed by a program change. Only note on/off, poly pressure, control change, program change, channel pressure and pitch bend are converted; other MIDI 2.0 channel-voice statuses are dropped. Upscaling uses a bit-repeat scheme. This is one implementation's behaviour, read from code. · locator: linux sound/core/seq/seq_ump_convert.c at a804c57 L17-41, L432-500; Documentation/sound/designs/midi-2.0.rst at a804c57, General source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://github.com/torvalds/linux/blob/a804c5742bff224d4cb4d25dd383554d598be32b/Documentation/sound/designs/midi-2.0.rst
- cites → https://github.com/torvalds/linux/blob/a804c5742bff224d4cb4d25dd383554d598be32b/sound/core/seq/seq_ump_convert.c
- cites → https://midi.org/midi-2-0
- cites → https://midi.org/spec-detail