This document is my attempt at simplifying and clairifying the MIDI file format.
I've used two primary sources of information:
- Official MIDI specifications
- Real-world MIDI files
I also searched the Internet for random things I found in the files, to hopefully dig up some additional context and information -- specifically, there are points where organizations can extend MIDI with their own codes, so decoding certain messages requires (hopefully) finding information from the appropriate manufacturer.
My intention is to document what a MIDI file should look like (for encoders), but also what real-world data looks like (for lenient decoders).
Thankfully, there exists a large body of real-world MIDI files to inspect:
The Geocities MIDI Collection (2009)
This archive has 48,197 MIDI files, totalling 1.3 GB of data.
The data also happens to be pretty damn dirty too -- which helps us in figuring out good strategies for recovering useful information.
I've also downloaded the entire VGMusic.com website, which provided another 30,687 MIDI files, 886 MB of data.
MIDI is a protocol for transmitting note and controller information across a serial connection. A good mental model is to think of MIDI as the data that comes off a music keyboard before being synthesized into sound. For example, there is a Note On event, which indicates that a key has been pressed, and a Note Off event when it's released.
The MIDI protocol is designed to be used in real-time -- as the musician is generating events with the keyboard, the data is being transmitted over the wire, which a synthesizer can react to in real-time by outputting sound.
In order to store a stream of MIDI events in a file, events are timestamped. This allows a program to "play back" the stream of events at the correct time.
The bulk of the complexity is understanding the events themselves. The MIDI protocol has maintained backwards compatibility, which means it's easy to see the raw bytes that make up a event, but understanding how to unpack and interpret each event is complicated.
General MIDI 2 is an additional layer of requirements on top of the basic MIDI protocol that further specifies the meaning behind events, and systems/devices claiming to support GM 2 are required to support a minimum feature set.
MIDI files consist of a stream of chunks. Each chunk has the format:
Name | Size | Description |
---|---|---|
Chunk Type | 4 bytes | Format of the chunk, typically either 'MThd' or 'MTrk' |
Data Size | 4 bytes (big endian) | Length of the data (not including Chunk Type of Data Size) |
Data | Specified by Data Size | Raw data for the chunk, interpreted based on Chunk Type |
A MIDI file start with a 'MThd'
chunk, followed by one or more 'MTrk'
chunks. I've also
seen 'XFIH'
and 'XFKM'
chunks, which after searching online, shows they are extensions by
Yamaha for karaoke.
Chunks should be immediately one after another, and most files follow that rule -- however, a few
files have junk data between chunks (for example, a string of repeated bytes like 00 00 00 ...
),
or data that looks useful, but I can't figure out how to decode it. The best strategy is probably
to start searching 7 bytes backwards (in case the previous track reported too large a Data Size),
and search forward looking for known Chunk Types until the end of the file.
The chunk stream starts with 'MThd'
, and should only contain 'MThd'
once. In practice, all
MIDI files I've seen start with 'MThd'
, but some also have 'MThd'
chunks in the middle of the
file. I suspect this should be treated like two MIDI files have been concatenated together into
one.
The largest Data Size I've seen is 362,528 bytes (dou_01.mid
), which is 45 minutes of dense piano.
A good sanity check might be to make sure the Data Size isn't larger than, say, 1,000,000 bytes,
otherwise you're probably reading bad data.
Name | Size | Description |
---|---|---|
Chunk Type | 4 bytes | 'MThd' (4D 54 68 64 ) |
Data Size | 4 bytes (big endian) | 6 (00 00 00 06 ) |
Format | 2 bytes (big endian) | 0 , 1 , or 2 , described below |
Track Chunks | 2 bytes (big endian) | Number of track chunks in the file |
Division | 2 bytes (big endian) | Timestamp format, described below |
The Format can either be 00 00
, 00 01
, or 00 02
, each with the following meanings:
Format | Description |
---|---|
00 00 |
The file contains a single multi-channel track (so Track Chunks should be 00 01 ) |
00 01 |
The file contains one or more tracks that should be played simultaneously |
00 02 |
The file contains one or more tracks that are independant of each other |
The Track Chunks should be a count of 'MTrk'
chunks in the file. In practice, this number is
sometimes wrong. A decoder should probably just ignore it, because the 'MTrk'
chunks can be
counted directly.
When multiple 'MThd'
chunks are in a file (which is against the specification), sometimes the
Track Count represents the tracks up until that point, and sometimes they represent the total number
of track chunks in the entire file. And sometimes it's just completely wrong. Yet another reason
to ignore the field.
According to the specification, the division can come in two formats:
- If bit 15 is cleared, then bits 14-0 represent the ticks per quarter-note
- If bit 15 is set, then bits 14-8 represent the negative SMPTE format, and bits 7-0 represent the ticks per frame
In practice, no files have bit 15 set (other than ffmqbatl.mid
which has it set due to a corrupted
header). If someone can find me some test MIDI files that use SMPTE timing, then I would love to
look into it. Otherwise, I will just reject files that have bit 15 set.
Figuring out the timing of the events is, unfortunately, not straight forward. There is an entire section on calculating timing below.
Track chunks consist of a stream of timestamped events.
Name | Size | Description |
---|---|---|
Chunk Type | 4 bytes | 'MTrk' (4D 54 72 6B ) |
Data Size | 4 bytes (big endian) | Length of the data (not including Chunk Type of Data Size) |
MTrk Events | Data Size | One or more MTrk events |
A single MTrk event consists of a delta timestamp and an event:
Name | Size | Description |
---|---|---|
Delta Timestamp <DT> |
Variable Int | Number of ticks this event occurs relative to previous |
Event | Varies according to event | Channel Message, SysEx Event, or Meta Event |
Some MTrk events contain Variable Int quantities, like the Delta Timestamp. This is a 32-bit
integer with a maximum value of 0FFFFFFF
(not FFFFFFFF
). It is encoded 7 bits per byte,
most significant bits first, where the most significant bit of each encoded byte is reserved to
indicate whether more bytes need to be read.
The encoding ranges from 1 to 4 bytes, with the following binary decodings:
Encoding | Decoding |
---|---|
0aaaaaaa |
00000000 00000000 00000000 0aaaaaaa |
1aaaaaaa 0bbbbbbb |
00000000 00000000 00aaaaaa abbbbbbb |
1aaaaaaa 1bbbbbbb 0ccccccc |
00000000 000aaaaa aabbbbbb bccccccc |
1aaaaaaa 1bbbbbbb 1ccccccc 0ddddddd |
0000aaaa aaabbbbb bbcccccc cddddddd |
Examples:
Encoding | Decoding |
---|---|
00 |
00000000 |
67 |
00000067 |
7F |
0000007F |
81 00 |
00000080 |
C6 45 |
00002345 |
FF 7F |
00003FFF |
81 80 00 |
00004000 |
C8 E8 56 |
00123456 |
FF FF 7F |
001FFFFF |
81 80 80 00 |
00200000 |
C4 EA F9 5E |
089ABCDE |
FF FF FF 7F |
0FFFFFFF |
Channel Messages start with a single byte in the range 80
to EF
. The lower 4 bits represent
the channel n
(0-15 are usually displayed as 1-16), and the higher 4 bits represent the message
type. For example, 94
is a Note On message for channel 5.
Type | Parameter 1 | Parameter 2 | Description |
---|---|---|---|
8n |
Note (00 to 7F ) |
Release Velocity (00 to 7F ) |
Note Off |
9n |
Note (00 to 7F ) |
Hit Velocity (00 to 7F ) |
Note On |
An |
Note (00 to 7F ) |
Pressure (00 to 7F ) |
Note Pressure |
Bn |
Control (00 to 7F ) |
Value (00 to 7F ) |
Control Change |
Cn |
Patch (00 to 7F ) |
N/A | Program Change |
Dn |
Pressure (00 to 7F ) |
N/A | Channel Pressure |
En |
Bend Change LSB (00 to 7F ) |
Bend Change MSB (00 to 7F ) |
Pitch Bend |
Running status is based on the fact that it is very common for a string of consecutive Channel Messages to be of the same type. For example, when a chord is played on a keyboard, ten successive Note On messages may be generated.
If a Channel Message is processed (8n
-En
), then the message type should be saved. If a future
sequence is missing a type (detected if the first byte is less than 80
), then it should be
interpretted as the same message type as the previous message.
<DT> 94 45 40 # Note On, note 45, velocity 40
<DT> 49 40 # Note On, note 49, velocity 40
<DT> 4D 40 # Note On, note 4D, velocity 40
<DT> 84 45 40 # Note Off, note 45, release 40
<DT> 49 40 # Note Off, note 49, release 40
<DT> 4D 40 # Note Off, note 4D, release 40
Converting bytes 0-127 to notes is based on the fact that note 69 (45
hex) is A440. Oddly, many
websites report the wrong octave for a given MIDI note value. The table below assigns octaves
based on the fact that Middle C should be Octave 4.
Default tuning will be: Frequency = 440 × 2(Note - 69) / 12
Octave | C | C# | D | D# | E | F | F# | G | G# | A | A# | B |
---|---|---|---|---|---|---|---|---|---|---|---|---|
-1 | 00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
0A |
0B |
0 | 0C |
0D |
0E |
0F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
1 | 18 |
19 |
1A |
1B |
1C |
1D |
1E |
1F |
20 |
21 |
22 |
23 |
2 | 24 |
25 |
26 |
27 |
28 |
29 |
2A |
2B |
2C |
2D |
2E |
2F |
3 | 30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
3A |
3B |
4 | 3C |
3D |
3E |
3F |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
5 | 48 |
49 |
4A |
4B |
4C |
4D |
4E |
4F |
50 |
51 |
52 |
53 |
6 | 54 |
55 |
56 |
57 |
58 |
59 |
5A |
5B |
5C |
5D |
5E |
5F |
7 | 60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
6A |
6B |
8 | 6C |
6D |
6E |
6F |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
9 | 78 |
79 |
7A |
7B |
7C |
7D |
7E |
7F |
N/A | N/A | N/A | N/A |
Different functions have been crammed into Control Change messages, so they are a bit messy to deal with. Some of these functions require more data than what fits in a single Control Change message, so they span multiple Control Change messages.
Generally speaking, there are four different functions:
- Low-resolution Controller (1 message)
- High-resolution Controller (spans 1 or 2 messages)
- Registered/Non-Registered Parameter (spans 3+ messages)
- Channel Mode (1 message)
<DT> Bn NN VV
Low-resolution Controllers are the most simple. The NN
value ranges from 40
to 5F
, and the
7 bit value inside VV
is the new value for that controller. For boolean controllers, values
00
-3F
are considered "off", and 40
-7F
are considered "on". If transmitting, use 00
for
off and 7F
for on.
NN |
Control |
---|---|
40 |
Damper/Sustain Pedal (Hold 1) on/off |
41 |
Portamento on/off |
42 |
Sostenuto on/off |
43 |
Soft Pedal on/off |
44 |
Legato Footswitch |
45 |
Hold 2 |
46 |
Sound Controller 1 (Sound Variation) |
47 |
Sound Controller 2 (Timber/Harmonic Intensity) |
48 |
Sound Controller 3 (Release Time) |
49 |
Sound Controller 4 (Attack Time) |
4A |
Sound Controller 5 (Brightness) |
4B |
Sound Controller 6 (Decay Time) |
4C |
Sound Controller 7 (Vibrato Rate) |
4D |
Sound Controller 8 (Vibrato Depth) |
4E |
Sound Controller 9 (Vibrato Delay) |
4F |
Sound Controller 10 |
50 |
General Purpose 5 |
51 |
General Purpose 6 |
52 |
General Purpose 7 |
53 |
General Purpose 8 |
54 |
Portamento Control |
55 |
Undefined |
56 |
Undefined |
57 |
Undefined |
58 |
High Resolution Velocity LSB (see CA-031) |
59 |
Undefined |
5A |
Undefined |
5B |
Effect 1 Depth (Reverb Send Level) |
5C |
Effect 2 Depth (Tremolo Depth) |
5D |
Effect 3 Depth (Chorus Send Level) |
5E |
Effect 4 Depth (Celeste Detune Depth) |
5F |
Effect 5 Depth (Phaser Depth) |
<DT> Bn NN MM
<DT> Bn NN LL
There are 32 High-resolution Controllers. These controllers have a 14 bit value, which is split
between the 7 most significant bits (MSB MM
), and 7 least significant bits (LSB LL
).
When the MSB is set, the LSB should be cleared to zero. When the LSB is set, it should overwrite any previous LSB. This allows a stream of LSB messages to modify the value a little bit without needing MSB messages (with the sole exception of the Bank Select control).
Setting the MSB/LSB is determined via the value of NN
:
MSB NN |
LSB NN |
Control |
---|---|---|
00 |
20 |
Bank Select (LSB always required) |
01 |
21 |
Modulation Wheel or Lever |
02 |
22 |
Breath Controller |
03 |
23 |
Undefined |
04 |
24 |
Foot Controller |
05 |
25 |
Portamento Time |
06 |
26 |
Data Entry (RPNs/NRPNs) |
07 |
27 |
Channel Volume |
08 |
28 |
Balance |
09 |
29 |
Undefined |
0A |
2A |
Pan |
0B |
2B |
Expression |
0C |
2C |
Effect Control 1 |
0D |
2D |
Effect Control 2 |
0E |
2E |
Undefined |
0F |
2F |
Undefined |
10 |
30 |
General Purpose 1 |
11 |
31 |
General Purpose 2 |
12 |
32 |
General Purpose 3 |
13 |
33 |
General Purpose 4 |
14 |
34 |
Undefined |
15 |
35 |
Undefined |
16 |
36 |
Undefined |
17 |
37 |
Undefined |
18 |
38 |
Undefined |
19 |
39 |
Undefined |
1A |
3A |
Undefined |
1B |
3B |
Undefined |
1C |
3C |
Undefined |
1D |
3D |
Undefined |
1E |
3E |
Undefined |
1F |
3F |
Undefined |
So, for example, setting the General Purpose 2 value to 12 34
on channel 8 (7
) would mean the
sequence:
<DT> B7 11 12 # Set MSB of General Purpose 2 on channel 8 to 12H
<DT> B7 31 34 # Set LSB of General Purpose 2 on channel 8 to 34H
Note that the value of 12 34
is actually the number 2356, not 4660, because 7 bits per byte are
used.
Balance (08
/28
) and Pan (0A
/2A
) values are defined in the specification that 00 00
is
hard-left and 7F 7F
is hard-right.
The default value for Channel Volume should be 64 00
(i.e. 100 / 127).
TODO: Volume + Expression formula (see GM2 docs)
TODO: Panning formula (see GM2 docs)
TODO: Bank Select of 79 XX
corresponds to the GM1 Sound Set
TODO: Bank Select of 78 XX
corresponds to the GM1 Drum Set
TODO: All channels default to 79 00
except Channel 10, which defaults to 78 00
.
Registered Parameter Numbers (RPNs) and Non-Registered Parameter Numbers (NRPNs) expand the space of possible control values that can be changed. RPNs are reserved for official parameters (table below), and NRPNs are reserved for private use.
Each channel has a currently selected RPN/NRPN, which defaults to 7F 7F
(indicating no parameter
is selected).
To change an RPN/NRPN value, first select the parameter using:
<DT> Bn 65 MM # Select RPN MSB
<DT> Bn 64 LL # Select RPN LSB
or:
<DT> Bn 63 MM # Select NRPN MSB
<DT> Bn 62 LL # Select NRPN LSB
(As far as I can tell, the order of the messages selecting the parameter shouldn't matter)
Once a parameter is selected, it can be set using the Data Entry messages under the High-resolution
Controller (06
/26
).
The value can also be incremented or decremented using messages Bn 60 XX
(increment), or
Bn 61 XX
(decrement). The data values (XX
) are ignored. The value is
incremented/decremented differently, based on which RPN selected (explained below).
Once the RPN/NRPN is finished being modified, it's recommended to select the 7F 7F
parameter
again, indicating no parameter is selected.
MSB MM |
LSB LL |
Control | Inc/Dec |
---|---|---|---|
00 |
00 |
Pitch Bend Range (MSB = semitones, LSB = cents) | LSB, wrapping at 100 |
00 |
01 |
Fine Tuning | LSB |
00 |
02 |
Coarse Tuning | MSB |
00 |
03 |
Tuning Program Select | MSB |
00 |
04 |
Tuning Bank Select | MSB |
00 |
05 |
Modulation Depth Range | LSB (?) |
3D |
00 |
Azimuth Angle | LSB (?) |
3D |
01 |
Elevation Angle | LSB (?) |
3D |
02 |
Gain | LSB (?) |
3D |
03 |
Distance Ratio | LSB (?) |
3D |
04 |
Maximum Distance | LSB (?) |
3D |
05 |
Gain at Maximum Distance | LSB (?) |
3D |
06 |
Reference Distance Ratio | LSB (?) |
3D |
07 |
Pan Spread Angle | LSB (?) |
3D |
08 |
Roll Angle | LSB (?) |
7F |
7F |
Deselect RPN | LSB (?) |
Note that increment and decrement commands affect RPNs differently, depending on which RPN is selected. When the LSB over/underflows, the MSB should be affected accordingly. Pitch Bend Range in particular is interesting because the LSB represents cents, which means it should wrap at 100 (not 127). See RP-018.
The default value for Pitch Bend Range is 02 00
, which is 2 semitones (i.e., a Pitch Bend message
should affect the pitch at most ±2 semitones).
<DT> Bn NN VV
Lastly, there are a few Controllers that have special meaning, with NN
ranging from 78
-7F
.
NN |
VV |
Action |
---|---|---|
78 |
00 |
All Sound Off |
79 |
00 |
Reset All Controllers |
7A |
VV |
Local Control (VV = 00 off, 7F on) |
7B |
00 |
All Notes Off |
7C |
00 |
Omni Off |
7D |
00 |
Omni On |
7E |
VV |
Mono On (Poly Off) (VV = number of channels, 00 for all) |
7F |
00 |
Poly On (Mono Off) |
If you've been paying attention, there are a range of controllers that aren't allocated, 66
-77
.
These are reserved as single byte controllers.
System Exclusive (SysEx) Events are used for transfering files/samples, timing information, and tuning.
Name | Size | Description |
---|---|---|
F0 or F7 |
1 byte | Byte indicating a SysEx Event |
Data Size | Variable Int | Length of the data for this event |
Data | Data Size | Raw data associated with SysEx Event |
SysEx data can be broken into packets and sent as multiple SysEx Events, requiring the parser to piece together the parts before processing the entire event. According to the MIDI specification, some systems will send packeted data at certain time intervals -- so the delay between packets could be meaningful too.
In general though, software parsers should probably just ignore SysEx Events that it can't recognize -- it's easy to skip over the data since the length is always known.
There is a SysEx Event for enabling General MIDI or General MIDI 2.
<DT> F0 05 7E TT 09 GG F7
Where TT
is the device target (usually 7F
to mean all devices), and GG
is the General MIDI
command:
GG |
Description |
---|---|
01 |
General MIDI On |
02 |
General MIDI Off |
03 |
General MIDI 2 On |
<DT> F0 07 7F TT 04 01 LL MM F7
Sets the Master Volume, where TT
is the device target (usually 7F
), and LL MM
is the value,
where LL
is the LSB (00
-7F
) and MM
is the MSB (00
-7F
).
<DT> F0 07 7F TT 04 02 LL MM F7
Sets the Master Balance, where TT
is the device target (usually 7F
), and LL MM
is the value,
where LL
is the LSB (00
-7F
) and MM
is the MSB (00
-7F
). Hard-left is 00 00
and
hard-right is 7F 7F
.
Meta Events are always at least 3 bytes in length.
The first byte is FF
which is what identifies the event as a Meta Event.
The second byte determines the type of meta event.
The third byte determines the byte length of the remaining parameters. This is useful because you don't need to understand the meta event type in order to skip over the event.
Any parameters spanning multiple bytes should be interpreted as big endian.
Byte Sequence | Description |
---|---|
FF 00 02 SS SS |
Sequence Number SSSS |
FF 01 LL text |
Generic Text of length LL |
FF 02 LL text |
Copyright Notice of length LL |
FF 03 LL text |
Track Name of length LL |
FF 04 LL text |
Instrument Name of length LL |
FF 05 LL text |
Lyric of length LL |
FF 06 LL text |
Marker of length LL ('First Verse', 'Chrous', etc) |
FF 07 LL text |
Cue Point of length LL ('curtain opens', 'character is slapped', etc) |
FF 08 LL text |
Program Name of length LL (see RP-019) |
FF 09 LL text |
Device Name of length LL (see RP-019) |
FF 20 01 NN |
Channel Prefix, select channel NN (0-15) for future SysEx/Meta events |
FF 21 01 PP |
MIDI Port, select output port PP for MIDI events |
FF 2E ?? ???? |
Track Loop Event (?) |
FF 2F 00 |
End of Track, required as last event in a MTrk chunk |
FF 51 03 TT TT TT |
Set Tempo, in TTTTTT microseconds per MIDI quarter-note |
FF 54 05 HH MM SS RR TT |
SMPTE Offset, hour, minute, second, frame, 1/100th of frame |
FF 58 04 NN MM LL TT |
Time Signature, see below for details |
FF 59 02 SS MM |
Key Signature, see below for details |
FF 7F LL data |
Sequencer-Specific Meta Event, see below for details |
TODO
TODO
The MIDI specification has a lot of ways to represent timing.
The unit of the Delta Timestamps is ticks passed since previous event. But what is a tick? Specifically, we need to calculate samples per tick, so that when we see how many ticks until the next event, we can move forward the appropriate amount of samples.
The unit of the Division parameter in the header is ticks per quarter-note.
The unit of the Set Tempo Meta Event (TTTTTT
) is microseconds per quarter-note. Reminder: there
are 1,000,000 microseconds per second.
If Set Tempo is not set, then the default value is 120 beats per minute.
The Time Signature Meta Event's denominator (MM
) represents quarter-notes per beat in a goofy
way:
MM |
Time Signature Denominator | Quarter-Notes per Beat |
---|---|---|
00 |
1 | 4 |
01 |
2 | 2 |
02 |
4 | 1 |
03 |
8 | 1/2 |
04 |
16 | 1/4 |
MM |
2MM |
22 - MM |
If Time Signature is not set, the denominator defaults to 4, which represents 1 quarter-note per beat.
The MIDI specification also talks about another unit, the MIDI clock, which is simply 1/24th the length of a quarter-note.
Lastly, Sample Rate (samples per second) is provided by the audio output format.
So with all this information, we can calculate the samples per tick:
We start assuming 120 beats per minute and 1 quarter-note per beat, therefore we have 120 quarter-notes per minute, or 2 quarter-notes per second.
When we receive the Division parameter from the header (ticks per quarter-note) and the Sample Rate (samples per second) from the audio device, we can calculate samples per tick via: Sample Rate / (Division × 2)
If we receive a Set Tempo event (TTTTTT
microseconds per quarter-note), we can recalculate
samples per tick to be: (Sample Rate × TTTTTT
) / (1,000,000 × Division)
If a Time Signature Meta Event comes after a Set Tempo event, it can safely be ignored -- it will change the size of a quarter-note, but that doesn't matter because the calculation cancels out the quarter-notes.
However, if a Time Signature Meta Event comes before a Set Tempo event, then that will change the
quarter-notes per beat, which means we'll use the 120 beats per minute default tempo (2 beats per
second) to figure out the samples per tick: Sample Rate /
(Division × 2 × 22 - MM
)
One last note: there needs to be care taken when calculating timing because a MIDI file can change the tempo or time signature during the middle of the song, which will change how ticks map to samples.
Assignment of an ID number requires payment to MIDI.org every year. According to the website, those who stop paying have their ID's rescinded. I'm not sure what that means from a technical standpoint - it doesn't look like the ID numbers are reallocated to new companies. As of 2017, the fee ranges from $500 to $20000 per year, depending on the size of the company.
ID | Company |
---|---|
00 |
Used for extensions, below |
01 |
Sequential |
02 |
IDP |
03 |
Voyetra Turtle Beach, Inc. / Octave-Plateau |
04 |
Moog Music |
05 |
Passport Designs |
06 |
Lexicon Inc. |
07 |
Kurzweil / Young Chang |
08 |
Fender |
09 |
MIDI9 / Gulbransen |
0A |
AKG Acoustics |
0B |
Voyce Music |
0C |
Waveframe Corp (Timeline) |
0D |
ADA Signal Processors, Inc. |
0E |
Garfield Electronics |
0F |
Ensoniq |
10 |
Oberheim / Gibson Labs |
11 |
Apple, Inc. |
12 |
Grey Matter Response |
13 |
Digidesign Inc. (rescinded) |
14 |
Palmtree Instruments |
15 |
JLCooper Electronics |
16 |
Lowrey Organ Company |
17 |
Adams-Smith |
18 |
E-mu / Ensoniq |
19 |
Harmony Systems |
1A |
ART |
1B |
Baldwin |
1C |
Eventide |
1D |
Inventronics |
1E |
Key Concepts (rescinded) |
1F |
Clarity |
20 |
Passac |
21 |
Proel Labs (SIEL) |
22 |
Synthaxe (UK) |
23 |
Stepp (rescinded) |
24 |
Hohner |
25 |
Twister |
26 |
Ketron s.r.l. / Solton |
27 |
Jellinghaus MS |
28 |
Southworth Music Systems |
29 |
PPG (Germany) |
2A |
JEN |
2B |
Solid State Logic Organ Systems / SSL Limited |
2C |
Audio Veritrieb-P. Struven |
2D |
Neve (rescinded) |
2E |
Soundtracs Ltd. (rescinded) |
2F |
Elka |
30 |
Dynacord |
31 |
Viscount International Spa (Intercontinental Electronics) (rescinded) |
32 |
Drawmer (rescinded) |
33 |
Clavia Digital Instruments |
34 |
Audio Architecture |
35 |
GeneralMusic Corp SpA |
36 |
Cheetah Marketing (rescinded) |
37 |
C.T.M. (rescinded) |
38 |
Simmons UK (rescinded) |
39 |
Soundcraft Electronics |
3A |
Steinberg Media Technologies AG (rescinded) |
3B |
Wersi Gmbh |
3C |
AVAB Niethammer AB / Avab Electronik |
3D |
Digigram |
3E |
Waldorf Electronics GmbH |
3F |
Quasimidi |
40 |
Kawai Musical Instruments MFG. Co. Ltd. |
41 |
Roland Corporation |
42 |
Korg Inc. |
43 |
Yamaha Corporation |
44 |
Casio Computer Co. Ltd. |
45 |
? |
46 |
Kamiya Studio Co. Ltd. |
47 |
Akai Electric Co. Ltd. |
48 |
Victor Company of Japan Ltd. |
49 |
Mesosha |
4A |
Hoshino Gakki |
4B |
Fujitsu Elect Ltd. |
4C |
Sony Corporation |
4D |
Nisshin Onpa |
4E |
Teac Corporation |
4F |
? |
50 |
Matsushita Electric Industrial Co. Ltd. |
51 |
Fostex Corporation |
52 |
Zoom Corporation |
53 |
Midori Electronics |
54 |
Matsushita Communication Industrial Co. Ltd. |
55 |
Suzuki Musical Instruments MFG. Co. Ltd. |
56 |
Fuji Sound Corporation Ltd. |
57 |
Acoustic Technical Laboratory Inc. |
58 |
? |
59 |
Faith Inc. |
5A |
Internet Corporation |
5B |
? |
5C |
Seekers Co. Ltd. |
5D |
? |
5E |
? |
5F |
SD Card Association |
60 |
? |
61 |
? |
62 |
? |
63 |
? |
64 |
? |
65 |
? |
66 |
? |
67 |
? |
68 |
? |
69 |
? |
6A |
? |
6B |
? |
6C |
? |
6D |
? |
6E |
? |
6F |
? |
70 |
? |
71 |
? |
72 |
? |
73 |
? |
74 |
? |
75 |
? |
76 |
? |
77 |
? |
78 |
? |
79 |
? |
7A |
? |
7B |
? |
7C |
? |
7D |
? |
7E |
Reserved for Non-Real Time Universal SysEx Messages |
7F |
Reserved for Real Time Universal SysEx Messages |
-- | -- |
00 00 00 |
? |
00 00 01 |
Time/Warner Interactive |
00 00 02 |
Advanced Gravis Comp. Tech Ltd. (rescinded) |
00 00 03 |
Media Vision (rescinded) |
00 00 04 |
Dornes Research Group (rescinded) |
00 00 05 |
K-Muse (rescinded) |
00 00 06 |
Stypher (rescinded) |
00 00 07 |
Digital Music Corp. |
00 00 08 |
IOTA Systems |
00 00 09 |
New England Digital |
00 00 0A |
Artisyn |
00 00 0B |
IVL Technologies Ltd. |
00 00 0C |
Southern Music Systems |
00 00 0D |
Lake Butler Sound Company |
00 00 0E |
Alesis Studio Electronics |
00 00 0F |
Sound Creation (rescinded) |
00 00 10 |
DOD Electronics Corp. |
00 00 11 |
Studer-Editech |
00 00 12 |
Sonus (rescinded) |
00 00 13 |
Temporal Acuity Products (rescinded) |
00 00 14 |
Perfect Fretworks |
00 00 15 |
KAT Inc. |
00 00 16 |
Opcode Systems |
00 00 17 |
Rane Corporation |
00 00 18 |
Anadi Electronique |
00 00 19 |
KMX |
00 00 1A |
Allen & Heath Brenell |
00 00 1B |
Peavey Electronics |
00 00 1C |
360 Systems |
00 00 1D |
Spectrum Design and Development |
00 00 1E |
Marquis Music |
00 00 1F |
Zeta Systems |
00 00 20 |
Axxes (Brian Parsonett) |
00 00 21 |
Orban |
00 00 22 |
Indian Valley Mfg. (rescinded) |
00 00 23 |
Triton (rescinded) |
00 00 24 |
KTI |
00 00 25 |
Breakaway Technologies |
00 00 26 |
Leprecon / CAE Inc. |
00 00 27 |
Harrison Systems Inc. (rescinded) |
00 00 28 |
Future Lab/Mark Kuo (rescinded) |
00 00 29 |
Rocktron Corporation |
00 00 2A |
PianoDisc |
00 00 2B |
Cannon Research Group |
00 00 2C |
? |
00 00 2D |
Rodgers Instrument LLC |
00 00 2E |
Blue Sky Logic |
00 00 2F |
Encore Electronics |
00 00 30 |
Uptown |
00 00 31 |
Voce |
00 00 32 |
CTI Audio, Inc. (Musically Intel. Devs.) |
00 00 33 |
S3 Incorporated |
00 00 34 |
Broderbund / Red Orb |
00 00 35 |
Allen Organ Co. |
00 00 36 |
? |
00 00 37 |
Music Quest (rescinded) |
00 00 38 |
Aphex |
00 00 39 |
Gallien Krueger |
00 00 3A |
IBM |
00 00 3B |
Mark Of The Unicorn |
00 00 3C |
Hotz Corporation |
00 00 3D |
ETA Lighting |
00 00 3E |
NSI Corporation |
00 00 3F |
Ad Lib, Inc. |
00 00 40 |
Richmond Sound Design |
00 00 41 |
Microsoft |
00 00 42 |
Mindscape (Software Toolworks) |
00 00 43 |
Russ Jones Marketing / Niche |
00 00 44 |
Intone |
00 00 45 |
Advanced Remote Technologies (rescinded) |
00 00 46 |
White Instruments (rescinded) |
00 00 47 |
GT Electronics/Groove Tubes |
00 00 48 |
Pacific Research & Engineering (rescinded) |
00 00 49 |
Timeline Vista, Inc. |
00 00 4A |
Mesa Boogie Ltd. |
00 00 4B |
FSLI (rescinded) |
00 00 4C |
Sequoia Development Group |
00 00 4D |
Studio Electronics |
00 00 4E |
Euphonix, Inc |
00 00 4F |
InterMIDI, Inc. |
00 00 50 |
MIDI Solutions Inc. |
00 00 51 |
3DO Company |
00 00 52 |
Lightwave Research / High End Systems |
00 00 53 |
Micro-W Corporation |
00 00 54 |
Spectral Synthesis, Inc. |
00 00 55 |
Lone Wolf |
00 00 56 |
Studio Technologies Inc. |
00 00 57 |
Peterson Electro-Musical Product (EMP), Inc. |
00 00 58 |
Atari Corporation |
00 00 59 |
Marion Systems Corporation |
00 00 5A |
Design Event |
00 00 5B |
Winjammer Software Ltd. |
00 00 5C |
AT&T Bell Laboratories |
00 00 5D |
? |
00 00 5E |
Symetrix |
00 00 5F |
MIDI the World |
00 00 60 |
Spatializer / Desper Products |
00 00 61 |
Micros 'N MIDI |
00 00 62 |
Accordians International |
00 00 63 |
3Com / EuPhonics |
00 00 64 |
Musonix |
00 00 65 |
Turtle Beach Systems (Voyetra) |
00 00 66 |
Loud Technologies / Mackie Designs |
00 00 67 |
Compuserve |
00 00 68 |
BEC Technologies |
00 00 69 |
QRS Music Inc |
00 00 6A |
P.G. Music |
00 00 6B |
Sierra Semiconductor |
00 00 6C |
EpiGraf Audio Visual |
00 00 6D |
Electronics Diversified Inc |
00 00 6E |
Tune 1000 |
00 00 6F |
Advanced Micro Devices |
00 00 70 |
Mediamation |
00 00 71 |
Sabine Musical Mfg. Co. Inc. |
00 00 72 |
Woog Labs |
00 00 73 |
Micropolis Corp |
00 00 74 |
Ta Horng Musical Inst. |
00 00 75 |
eTek Labs / Forte Tech |
00 00 76 |
Electrovoice |
00 00 77 |
Midisoft Corporation |
00 00 78 |
Q-Sound Labs (rescinded) |
00 00 79 |
Westrex |
00 00 7A |
NVidia |
00 00 7B |
ESS Technology |
00 00 7C |
MediaTrix Peripherals |
00 00 7D |
Brooktree Corp |
00 00 7E |
Otari Corp |
00 00 7F |
Key Electronics, Inc. |
00 00 80 |
Crystalake Multimedia |
00 00 81 |
Crystal Semiconductor |
00 00 82 |
Rockwell Semiconductor |
-- | -- |
00 01 00 |
Shure Incorporated |
00 01 01 |
AuraSound |
00 01 02 |
Crystal Semiconductor |
00 01 03 |
Conexant (Rockwell) |
00 01 04 |
Silicon Graphics |
00 01 05 |
M-Audio (Midiman) |
00 01 06 |
PreSonus |
00 01 07 |
? |
00 01 08 |
Topaz Enterprises |
00 01 09 |
Cast Lighting |
00 01 0A |
Microsoft |
00 01 0B |
Sonic Foundry |
00 01 0C |
Line 6 (Fast Forward) (Yamaha) |
00 01 0D |
Beatnik Inc |
00 01 0E |
Van Koevering Company |
00 01 0F |
Altech Systems |
00 01 10 |
S & S Research |
00 01 11 |
VLSI Technology |
00 01 12 |
Chromatic Research |
00 01 13 |
Sapphire |
00 01 14 |
IDRC |
00 01 15 |
Justonic Tuning |
00 01 16 |
TorComp Research Inc. |
00 01 17 |
Newtek Inc. |
00 01 18 |
Sound Sculpture |
00 01 19 |
Walker Technical |
00 01 1A |
Digital Harmony (PAVO) |
00 01 1B |
InVision Interactive |
00 01 1C |
T-Square Design |
00 01 1D |
Nemesys Music Technology |
00 01 1E |
DBX Professional (Harman Intl) |
00 01 1F |
Syndyne Corporation |
00 01 20 |
Bitheadz |
00 01 21 |
Cakewalk Music Software (Gibson) |
00 01 22 |
Analog Devices |
00 01 23 |
National Semiconductor |
00 01 24 |
Boom Theory / Adinolfi Alternative Percussion |
00 01 25 |
Virtual DSP Corporation |
00 01 26 |
Antares Systems |
00 01 27 |
Angel Software |
00 01 28 |
St Louis Music |
00 01 29 |
Passport Music Software LLC (Gvox) (rescinded) |
00 01 2A |
Ashley Audio Inc. |
00 01 2B |
Vari-Lite Inc. |
00 01 2C |
Summit Audio Inc. |
00 01 2D |
Aureal Semiconductor Inc. |
00 01 2E |
SeaSound LLC |
00 01 2F |
U.S. Robotics |
00 01 30 |
Aurisis Research |
00 01 31 |
Nearfield Research |
00 01 32 |
FM7 Inc |
00 01 33 |
Swivel Systems |
00 01 34 |
Hyperactive Audio Systems |
00 01 35 |
MidiLite (Castle Studios Productions) |
00 01 36 |
Radikal Technologies |
00 01 37 |
Roger Linn Design (rescinded) |
00 01 38 |
TC-Helicon Vocal Technologies (rescinded) |
00 01 39 |
Event Electronics (rescinded) |
00 01 3A |
Sonic Network Inc |
00 01 3B |
Realtime Music Solutions (rescinded) |
00 01 3C |
Apogee Digital (rescinded) |
00 01 3D |
Classical Organs, Inc. (rescinded) |
00 01 3E |
Microtools Inc. (rescinded) |
00 01 3F |
Numark Industries |
00 01 40 |
Frontier Design Group, LLC |
00 01 41 |
Recordare LLC |
00 01 42 |
Starr Labs (rescinded) |
00 01 43 |
Voyager Sound Inc. |
00 01 44 |
Manifold Labs (rescinded) |
00 01 45 |
Aviom Inc. (rescinded) |
00 01 46 |
Mixmeister Technology |
00 01 47 |
Notation Software |
00 01 48 |
Mercurial Communications |
00 01 49 |
Wave Arts |
00 01 4A |
Logic Sequencing Devices (rescinded) |
00 01 4B |
Axess Electronics |
00 01 4C |
Muse Research |
00 01 4D |
Open Labs (rescinded) |
00 01 4E |
Guillemot Corp (rescinded) |
00 01 4F |
Samson Technologies (rescinded) |
00 01 50 |
Electronic Theatre Controls |
00 01 51 |
Blackberry (RIM) |
00 01 52 |
Mobileer |
00 01 53 |
Synthogy |
00 01 54 |
Lynx Studio Technology Inc. |
00 01 55 |
Damage Control Engineering LLC |
00 01 56 |
Yost Engineering, Inc. (rescinded) |
00 01 57 |
Brooks & Forsman Designs LLC / DrumLite |
00 01 58 |
Infinite Response |
00 01 59 |
Garritan Corp |
00 01 5A |
Plogue Art et Technologie, Inc (rescinded) |
00 01 5B |
RJM Music Technology |
00 01 5C |
Custom Solutions Software |
00 01 5D |
Sonarcana LLC / Highly Liquid |
00 01 5E |
Centrance (rescinded) |
00 01 5F |
Kesumo LLC |
00 01 60 |
Stanton (Gibson) |
00 01 61 |
Livid Instruments |
00 01 62 |
First Act / 745 Media |
00 01 63 |
Pygraphics, Inc. |
00 01 64 |
Panadigm Innovations Ltd. |
00 01 65 |
Avedis Zildjian Co |
00 01 66 |
Auvital Music Corp (rescinded) |
00 01 67 |
You Rock Guitar / Inspired Instruments (rescinded) |
00 01 68 |
Chris Grigg Designs |
00 01 69 |
Slate Digital LLC |
00 01 6A |
Mixware (rescinded) |
00 01 6B |
Social Entropy |
00 01 6C |
Source Audio LLC |
00 01 6D |
Ernie Ball / Music Man |
00 01 6E |
Fishman |
00 01 6F |
Custom Audio Electronics (rescinded) |
00 01 70 |
American Audio/DJ |
00 01 71 |
Mega Control Systems (rescinded) |
00 01 72 |
Kilpatrick Audio |
00 01 73 |
iConnectivity |
00 01 74 |
Fractal Audio |
00 01 75 |
NetLogic Microsystems |
00 01 76 |
Music Computing |
00 01 77 |
Nektar Technology Inc |
00 01 78 |
Zenph Sound Innovations |
00 01 79 |
DJTechTools.com (rescinded) |
00 01 7A |
Rezonance Labs |
00 01 7B |
Decibel Eleven |
00 01 7C |
CNMAT (rescinded) |
00 01 7D |
Media Overkill |
00 01 7E |
Confusion Studios (rescinded) |
00 01 7F |
moForte Inc |
-- | -- |
00 02 00 |
Miselu Inc |
00 02 01 |
Amelia's Compass LLC |
00 02 02 |
Zivix LLC |
00 02 03 |
Artiphon |
00 02 04 |
Synclavier Digital |
00 02 05 |
Light & Sound Control Devices LLC (rescinded) |
00 02 06 |
Retronyms Inc |
00 02 07 |
JS Technologies |
00 02 08 |
Quicco Sound |
00 02 09 |
A-Designs Audio |
00 02 0A |
McCarthy Music Corp (rescinded) |
00 02 0B |
Denon DJ |
00 02 0C |
Keith Robert Murray |
00 02 0D |
|
00 02 0E |
ISP Technologies |
00 02 0F |
Abstrakt Instruments LLC (rescinded) |
00 02 10 |
Meris LLC |
00 02 11 |
Sensorpoint LLC |
00 02 12 |
Hi-Z Labs |
00 02 13 |
Imitone |
00 02 14 |
Intellijel Designs Inc. |
00 02 15 |
Dasz Instruments Inc. |
00 02 16 |
Remidi |
00 02 17 |
Disaster Area Designs LLC |
00 02 18 |
Universal Audio |
00 02 19 |
Carter Duncan Corp |
00 02 1A |
Essential Technology |
00 02 1B |
Cantux Research LLC |
00 02 1C |
Hummel Technologies |
00 02 1D |
Sensel Inc |
00 02 1E |
DBML Group |
00 02 1F |
Madrona Labs |
-- | -- |
00 20 00 |
Dream SAS |
00 20 01 |
Strand Lighting |
00 20 02 |
Amek Div of Harman Industries |
00 20 03 |
Casa Di Risparmio Di Loreto (rescinded) |
00 20 04 |
Bohm Electronic GmbH |
00 20 05 |
Syntec Digital Audio (rescinded) |
00 20 06 |
Trident Audio Developments |
00 20 07 |
Real World Studio |
00 20 08 |
Evolution Synthesis, Ltd. (rescinded) |
00 20 09 |
Yes Technology |
00 20 0A |
Audiomatica |
00 20 0B |
Bontempi SpA (Sigma) / Farfisa |
00 20 0C |
F.B.T. Elettronica SpA |
00 20 0D |
MidiTemp GmbH |
00 20 0E |
LA Audio (Larking Audio) |
00 20 0F |
Zero 88 Lighting Limited |
00 20 10 |
Micon Audio Electronics GmbH |
00 20 11 |
Forefront Technology |
00 20 12 |
Studio Audio and Video Ltd. (rescinded) |
00 20 13 |
Kenton Electronics |
00 20 14 |
Celco / Electrosonic (rescinded) |
00 20 15 |
ADB |
00 20 16 |
Marshall Products Limited |
00 20 17 |
DDA |
00 20 18 |
BSS Audio Ltd. |
00 20 19 |
MA Lighting Technology |
00 20 1A |
Fatar SRL c/o Music Industries |
00 20 1B |
QSC Audio Products Inc. (rescinded) |
00 20 1C |
Artisan Clasic Organ Inc. |
00 20 1D |
Orla Spa |
00 20 1E |
Pinnacle Audio (Klark Teknik PLC) |
00 20 1F |
TC Electronics |
00 20 20 |
Doepfer Musikelektronik GmbH |
00 20 21 |
Creative ATC / E-mu |
00 20 22 |
Seyddo/Minami |
00 20 23 |
LG Electronics / Goldstar |
00 20 24 |
Midisoft sas di M.Cima & C |
00 20 25 |
Samick Musical Inst. Co. Ltd. |
00 20 26 |
Penny and Giles (Bowthorpe PLC) |
00 20 27 |
Acorn Computer |
00 20 28 |
LSC Electronics Pty. Ltd. |
00 20 29 |
Focusrite / Novation EMS |
00 20 2A |
Samkyung Mechatronics |
00 20 2B |
Medeli Electronics Co. |
00 20 2C |
Charlie Lab SRL |
00 20 2D |
Blue Chip Music Tech |
00 20 2E |
BEE OH Corp |
00 20 2F |
LG Semicon America |
00 20 30 |
TESI |
00 20 31 |
EMAGIC |
00 20 32 |
Behringer GmbH |
00 20 33 |
Access Music Electronics |
00 20 34 |
Synoptic |
00 20 35 |
Hanmesoft |
00 20 36 |
Terratec Electronic GmbH |
00 20 37 |
Proel SpA |
00 20 38 |
IBK MIDI |
00 20 39 |
IRCAM |
00 20 3A |
Propellerhead Software (rescinded) |
00 20 3B |
Red Sound Systems Ltd. |
00 20 3C |
Elektron ESI AB |
00 20 3D |
Sintefex Audio |
00 20 3E |
MAM (Music and More) |
00 20 3F |
Amsaro GmbH |
00 20 40 |
CDS Advanced Technology BV (Lanbox) (rescinded) |
00 20 41 |
Mode Machines (Touched By Sound GmbH) |
00 20 42 |
DSP Arts |
00 20 43 |
Phil Rees Music Tech |
00 20 44 |
Stamer Musikanlagen GmbH (rescinded) |
00 20 45 |
Musical Muntaner S.A. dba Soundart |
00 20 46 |
C-Mexx Software (rescinded) |
00 20 47 |
Klavis Technologies |
00 20 48 |
Noteheads AB (rescinded) |
00 20 49 |
Algorithmix |
00 20 4A |
Skrydstrup R&D (rescinded) |
00 20 4B |
Professional Audio Company |
00 20 4C |
NewWave Labs (MadWaves) |
00 20 4D |
Vermona (rescinded) |
00 20 4E |
Nokia |
00 20 4F |
Wave Idea |
00 20 50 |
Hartmann GmbH |
00 20 51 |
Lion's Tracs (rescinded) |
00 20 52 |
Analogue Systems (rescinded) |
00 20 53 |
Focal-JMlab (rescinded) |
00 20 54 |
Ringway Electronics (Chang-Zhou) Co. Ltd. |
00 20 55 |
Faith Technologies (Digiplug) (rescinded) |
00 20 56 |
Showworks (rescinded) |
00 20 57 |
Manikin Electronic |
00 20 58 |
1 Come Tech |
00 20 59 |
Phonic Corp (rescinded) |
00 20 5A |
Dolby Australia (Lake) |
00 20 5B |
Silansys Technologies (rescinded) |
00 20 5C |
Winbond Electronics (rescinded) |
00 20 5D |
Cinetix Medien und Interface GmbH |
00 20 5E |
A&G Soluzioni Digitali |
00 20 5F |
Sequentix Music Systems |
00 20 60 |
Oram Pro Audio (rescinded) |
00 20 61 |
Be4 Ltd. (rescinded) |
00 20 62 |
Infection Music (rescinded) |
00 20 63 |
Central Music Co. (CME) |
00 20 64 |
genoQs Machines GmbH (rescinded) |
00 20 65 |
Medialon |
00 20 66 |
Waves Audio Ltd. |
00 20 67 |
Jerash Labs (rescinded) |
00 20 68 |
Da Fact |
00 20 69 |
Elby Designs |
00 20 6A |
Spectral Audio (rescinded) |
00 20 6B |
Arturia |
00 20 6C |
Vixid (rescinded) |
00 20 6D |
C-Thru Music |
00 20 6E |
Ya Horng Electronic Co. Ltd. |
00 20 6F |
SM Pro Audio (rescinded) |
00 20 70 |
OTO MACHINES |
00 20 71 |
ELZAB S.A. (G LAB) (rescinded) |
00 20 72 |
Blackstar Amplification Ltd. |
00 20 73 |
M3i Technologies GmbH |
00 20 74 |
Gemalto (from Xiring) (rescinded) |
00 20 75 |
Prostage SL |
00 20 76 |
Teenage Engineering |
00 20 77 |
Tobias Erichsen Consulting (rescinded) |
00 20 78 |
Nixer Ltd. (rescinded) |
00 20 79 |
Hanpin Electron Co. Ltd. |
00 20 7A |
MIDI-hardware R.Sowa |
00 20 7B |
Beyond Music Industrial Ltd. |
00 20 7C |
Kiss Box B.V. |
00 20 7D |
Misa Digital Technologies Ltd. |
00 20 7E |
AI Musics Technology Inc. (rescinded) |
00 20 7F |
Serato Inc. LP |
-- | -- |
00 21 00 |
Limex (rescinded) |
00 21 01 |
Kyodday (Tokai) (rescinded) |
00 21 02 |
Mutable Instruments |
00 21 03 |
PreSonus Software Ltd. |
00 21 04 |
Ingenico / Xiring |
00 21 05 |
Fairlight Instruments Pty Ltd. (rescinded) |
00 21 06 |
Musicom Lab |
00 21 07 |
Modal Electronics (Modulus/VacoLoco) |
00 21 08 |
RWA (Hong Kong) Limited (rescinded) |
00 21 09 |
Native Instruments |
00 21 0A |
Naonext |
00 21 0B |
MFB |
00 21 0C |
Teknel Research |
00 21 0D |
Ploytec GmbH |
00 21 0E |
Surfin Kangaroo Studio |
00 21 0F |
Philips Electronics HK Ltd. (rescinded) |
00 21 10 |
ROLI Ltd. |
00 21 11 |
Panda-Audio Ltd. |
00 21 12 |
BauM Software |
00 21 13 |
Machinewerks Ltd. (rescinded) |
00 21 14 |
Xiamen Elane Electronics (rescinded) |
00 21 15 |
Marshall Amplification PLC |
00 21 16 |
Kiwitechnics Ltd. |
00 21 17 |
Rob Papen |
00 21 18 |
Spicetone OU (rescinded) |
00 21 19 |
V3Sound |
00 21 1A |
IK Multimedia |
00 21 1B |
Novalia Ltd. |
00 21 1C |
Modor Music |
00 21 1D |
Ableton |
00 21 1E |
Dtronics |
00 21 1F |
ZAQ Audio |
00 21 20 |
Muabaobao Education Technology Co. Ltd. |
00 21 21 |
Flux Effects |
00 21 22 |
Audiothingies (MCDA) |
00 21 23 |
Retrokits |
00 21 24 |
Morningstar FX Pte Ltd. |
00 21 25 |
Hotone Audio |
00 21 26 |
Expressive |
00 21 27 |
Expert Sleepers Ltd. |
00 21 28 |
Timecode-Vision Technology |
00 21 29 |
Hornberg Research GbR |
00 21 2A |
Sonic Potions |
00 21 2B |
Audiofront |
00 21 2C |
Fred's Lab |
-- | -- |
00 40 00 |
Crimson Technology Inc. |
00 40 01 |
Audiofront |
00 40 02 |
? |
00 40 03 |
D&M Holdings Inc. |