MP3 to MIDI: Why the Modulation Wheel Has No Unit

A transcription that keeps a player's vibrato has one address for it: controller 1. The file format makes that controller mandatory, gives it 128 values, and never says what any of them mean. Whatever plays the file back decides the scale.

Short answer

  • One address per channel. Control Change 1, a seven-bit value, no key number in the message.
  • Nine stars in 128 rows. cc1 is the first controller the table marks as required for General MIDI Level 1.
  • The fine half is unmarked. cc33 has the same name and no star, so 128 steps are required and 16,384 are not.
  • No unit anywhere. The word vibrato occurs zero times in the file-format specification.

One address, sixteen copies

Control Change is 1011nnnn 0ccccccc 0vvvvvvv. Put 1 in the controller field and the message is modulation; the last seven bits are 0 to 127. No key number appears in the message, so the value belongs to the channel: sixteen channels hold sixteen values, and every note on a channel shares one.

Nine stars in a table of 128 rows

Appendix 1.2 lists 128 controller rows, numbered 0 to 127. Nine carry an asterisk, and the footnote reads: "Equipment must respond in order to comply with General MIDI level 1." Row 1 is the first starred row: binary 00000001, hex 01, decimal 1, "Modulation wheel", "MSB", 0-127. The other eight: 7, 10, 11, 64, 100, 101, 121, 123.

That footnote is the only place the obligation appears. General MIDI Level 1's four requirements for an instrument are 24 voices, response to note velocity, all sixteen channels, and polyphony on each channel. None is about a controller.

The fine half of the same knob is not starred

Row 33 carries the identical name and no asterisk: binary 00100001, hex 21, decimal 33, "Modulation wheel", "LSB". Two seven-bit bytes give 128 times 128, or 16,384 positions, the same count as a fourteen-bit pitch wheel. Only the coarse half is mandatory. A file that writes cc33 and never writes cc1 has used the half no compliant device has promised to read.

The table writes a mapping when it has one

Row 64 reads "Damper pedal on/off (Sustain) <63=off >64=on". The threshold sits in the cell, beside the name. Row 1 says "MSB" and stops. Nothing in the row or elsewhere says whether 64 is half depth, a fixed interval, or a rate of wobble. The word vibrato appears zero times in the specification: not in the controller table, not in the message definitions, not in the appendices.

Two documents, two names, and a third that joins them

The General MIDI summary calls the same address "1 Modulation" and lists it first among eleven controllers; the file-format table calls it "Modulation wheel". The two words meet only in the Level 2 summary, in a registered parameter named "5,0 Modulation Depth Range (Vibrato Depth Range)", beside three more controllers: 76 Vibrato Rate, 77 Vibrato Depth, 78 Vibrato Delay. Four numbers describe the shape of the vibrato, and none carries a unit either.

Setting that range is not one message: 101, then 100, then the data on 6 and 38, then 101 and 100 again at 127 to close it. Six Control Change messages, eighteen bytes on the wire. What the range means, in cents or semitones, is not stated where it is introduced.

What this leaves a converted file able to say

The file can say that modulation is present, and how far the wheel was pushed on a scale of 0 to 127. It cannot say how wide the result is. Byte 64 is a shimmer on one device and a wide wobble on another, and both readings answer the requirement. A converter that turns a sung vibrato into a row of short notes has not dropped something the format could have stored in defined terms; one that writes controller 1 has recorded a position on an unnamed scale. songscription's guide names the decision once — "Is that fluctuation a separate note or vibrato on a held one?" — and moves on, because no field would settle it.

Related