back to list

Mu explained

🔗pitchcolor@aol.com

7/6/2003 3:46:42 PM

Hi everybody,

I have been trying to upload a webpage explaining MIDI pitch bend, but the
server won't let me do it, so I'm sending it in text version here. I'll send the
web address as soon as I can upload the page.

Aaron
--------

MIDI PITCH BEND

There is some confusion surrounding MIDI pitch bend units and how pitch bend
units translate into equal divisions of an octave. The following is given in
order to clear up this confusion.

What is the industry standard for pitch bend?

There really is no industry standard for pitch bend. MIDI Tuning Standard
(MTS) specifies 14 bit precision for pitch bend messages, which are to be sent in
two bytes having 7 data bits and one data flag bit; however, the majority of
manufacturers have not implemented 14 bit protocol in their MIDI equipment.
Although some companies use fewer than 7 bits and some use a slightly greater
number, the majority of units send pitch bend data in one byte having 7 data
bits, so this is a good number to use as the industry default value.

How does pitch bend operate?

MIDI defaults to 12 tone equal temperament for MIDI notes. The default pitch
bend range is +/- a WHOLESTEP from a given MIDI note. The smallest rage that
can be set by the user is +/- a HALFSTEP. The smaller the subdivisions the
better, so we are discussing pitch bend where the range has been set to +/- a
halfstep. Keep in mind that this +/- range SPANS A WHOLESTEP. As you will see
below, this last statement is basically true but not entirely accurate.
The industry standard MIDI pitch bend gives 7 bits, so we have 128 values
0-127 for pitch bend for each MIDI note. A total absence of pitch bend for a
given MIDI note is the data value 64. This is similar to the center detent balance
or fader potentiometer on a home or car stereo, where the center is the
default position. Take a look at the joystick or pitch wheel on your synth and
notice that it springs back to the center. The center data value is 64, and at 64
there is no pitch bend. Greater than 64 is bending upwards, and less than 64
is bending downwards. This is how a range above and below a MIDI note is
covered using only positive data values.

65-127 = bend up from the MIDI note
64 = MIDI note with no bend
0-63 = bend down from the MIDI note

At data 64 there is no pitch bend.

Now, something that is vexing is that given 128 values there is no ‘center’;
the center is 63.5, not 64.

So why are there 64 values (0-63) below the MIDI note and 63 values (65-127)
above the MIDI note? We are told that at the extremes we end up at exactly a
halfstep below or above, respectively:

127 = halfstep above the MIDI note
64 = MIDI note with no bend
0 = halfstep below the MIDI note

THIS IS FALSE!

A bend of 0 reaches the halfstep below; however, A BEND VALUE OF 127 DOES NOT
REACH THE HALFSTEP ABOVE THE MIDI NOTE; it is one unit below it. If this does
not make sense, imagine stepping up a twelve tone equal tempered scale on a
piano. When you reach the 12th key, you have not completed an octave; you are
one step below an octave. If you started counting with ZERO, that last step
would be ELEVEN. The same thing is happening here. We start counting with ZERO,
and reach our last step at 127, but this does not reach our destination, it is
one unit below our destination. To reiterate,

A BEND VALUE OF 127 REACHES ONE UNIT UNDER THE HALFSTEP ABOVE THE MIDI NOTE

127 = one unit under the halfstep above the MIDI note
64 = MIDI note with no bend
0 = halfstep below the MIDI note

THIS IS CORRECT!

If you do not believe me, you can find out for yourself by performing the
following experiment. Set up your synth with pitch bend range of +/- halfstep.
Use sine tones (or whatever is closest that has no chorus or 'detune' effect) on
channels 1-3 and send the following MIDI data:

channel 1: MIDI note on 59, bend 127 (full bend upwards)
channel 2: MIDI note on 60, bend 64 (NO BEND)
channel 3: MIDI note on 61, bend 0 (full bend downwards)

THE RESULTING PITCHES ARE NOT IN UNISON.

Now turn off note 59 and you will be hearing the following unison:

channel 2: MIDI note 60, bend 64 (NO BEND)
channel 3: MIDI note 61, bend 0 (full bend downwards)

THESE PITCHES ARE IN UNISON.

The offender is:

channel 1: MIDI note 59, bend 127 (full bend upwards)

THIS DOES NOT REACH THE HALFSTEP ABOVE.

Turn off channel 3 and listen to these two pitches alone:

channel 1: MIDI note on 59, bend 127 (full bend upwards)
channel 2: MIDI note on 60, bend 64 (NO BEND)

THESE PITCHES ARE NOT IN UNISON.

What does MIDI note 59 with bend 127 result in? It is slightly flat of the
halfstep above. Turn of all notes and then try this:

channel 1: MIDI note 59, bend 127 (full bend upwards)
channel 1: MIDI note 60, bend 63 (bent one unit down)

THESE PITCHES ARE IN UNISON.

To summarize:

The range of 7 bit pitch bend is 0-127
Absence of pitch bend is data 64
Bend data 0 reaches an equal tempered halfstep below
Bend data 127 is one midi unit below an equal tempered halfstep above

THE FULL RANGE 0-127 SPANS JUST UNDER A WHOLE STEP
THIS IS AN EQUAL DIVISION OF 128 UNITS PER WHOLESTEP.

There are 6 equal tempered wholesteps in an octave, resulting in:

6 x 128 = 768 ED2

So, once and for all,
7 BITS DOES NOT RESULT IN 1536 DIVISIONS PER OCTAVE
7 BITS RESULTS IN 768 DIVISIONS PER OCTAVE

What about the MIDI Tuning Standard?

Although the MTS is not in use by most manufacturers, some do support it, and
we will see more units supporting it in the future. 14 bits may be seen as 7
bit units expanded by 128 values per unit. The 768 unit behavior - the way
they divide up a WHOLESTEP - is still in force as the MSB (Most Significant
_Byte) in a 2 byte message. The MTS at 14 bits gives:

MTS = 768 x 128 = 98304 ED2

So, once and for all,

THE MTS DOES NOT RESULT IN 196608 DIVISIONS PER OCTAVE
THE MTS RESULTS IN 98304 DIVISIONS PER OCTAVE.

What about names for MIDI tuning units?

Joe Monzo previously suggested the name 'midipu' for the 14-bit MTS. In July
2003, I suggested the general name 'Mu' for 'MIDI unit', and suggested that
Greek prefixes be used to specify the number of bits resulting in the unit.
Prefixes were offered and agreed upon by Joe Monzo, myself, Gene Ward Smith and
John Chalmers. Some personal preferences of mine are shown here. 'Mu' is written
with a capitol M because MIDI is an acronym which should always be
capitolized. Since 14 bit MTS technically results in the 'standard' MIDI pitch bend
unit, I do not give 14 bit units a prefix. Since a 1 bit system only allows
bending a full halfstep down and does not allow bending upwards, I consider it
useless. The results of the Mu naming system are given below for 2 to 14 bits:

2 - duoMu
3 - triaMu
4 - tetraMu
5 - pentaMu
6 - hexaMu
7 - heptaMu
8 - octaMu
9 - enneaMu
10 - decaMu
11 - endecaMu
12 - dodecaMu
13 - tridecaMu
14 - Mu

HeptaMu and Mu are shown in red as the industry standard and the MIDI Tuning
Standard, respectively.

What equal divisions of the octave result from various MIDI tuning units?

The proper number of divisions per octave is given in each case by the
formula:

6 x 2n

where n is the number of bits.

The results are:

bits - name = ED2
2 - duoMu = 24
3 - triaMu = 48
4 - tetraMu = 96
5 - pentaMu = 192
6 - hexaMu = 384
7 - heptaMu = 768
8 - octaMu = 1536
9 - enneaMu = 3072
10 - decaMu = 6144
11 - endecaMu = 12288
12 - dodecaMu = 24576
13 - tridecaMu = 49152
14 - Mu = 98304

For example, consider the simplest unit, the duoMu. We have 4 values in a 2
bit system:

11 = 3
10 = 2
01 = 1
00 = 0

The default data value for NO BEND will be 2. So we have:

3 = bend MIDI note up
2 = MIDI note with NO BEND
0-1 = bend MIDI note down

The division looks asymmetrical because data 3 does not bend all the way up
to the halfstep above. In this case it bends up a quarterstep. The bend results
are shown below:

3 = quarterstep above the MIDI note
2 = MIDI note with NO BEND
1 = quarterstep below the MIDI note
0 = halfstep below the MIDI note

Thus, the duoMu results in 24 equal divisions per octave. All other Mus may
be illustrated in the same fashion.

What about signed values?

Some manufacturers prefer to use a protocol employing signed values. This
means that one bit is used to signify that the data bits represent either a
positive or negative value. The resulting division of the octave will not be the
same as the values given above. An example of such a protocol is found in
Cakewalk software. I don't use Cakewalk software, but the specifics on this can be
found here.

07/06/2003, Aaron Hunt

back to ideas

🔗Gene Ward Smith <gwsmith@svpal.org>

7/6/2003 6:13:30 PM

--- In tuning-math@yahoogroups.com, pitchcolor@a... wrote:
> channel 1: MIDI note on 59, bend 127 (full bend upwards)
> channel 2: MIDI note on 60, bend 64 (NO BEND)
>
> THESE PITCHES ARE NOT IN UNISON.
>
>
> What does MIDI note 59 with bend 127 result in? It is slightly flat
of the
> halfstep above. Turn of all notes and then try this:
>
> channel 1: MIDI note 59, bend 127 (full bend upwards)
> channel 1: MIDI note 60, bend 63 (bent one unit down)
>
> THESE PITCHES ARE IN UNISON.
>
>
> To summarize:
>
> The range of 7 bit pitch bend is 0-127
> Absence of pitch bend is data 64
> Bend data 0 reaches an equal tempered halfstep below
> Bend data 127 is one midi unit below an equal tempered halfstep
above
>
>
>
> THE FULL RANGE 0-127 SPANS JUST UNDER A WHOLE STEP
> THIS IS AN EQUAL DIVISION OF 128 UNITS PER WHOLESTEP.
>
>
>
> There are 6 equal tempered wholesteps in an octave, resulting in:
>
>
>
> 6 x 128 = 768 ED2
> What about the MIDI Tuning Standard?
>
> Although the MTS is not in use by most manufacturers, some do
support it, and
> we will see more units supporting it in the future. 14 bits may be
seen as 7
> bit units expanded by 128 values per unit. The 768 unit behavior -
the way
> they divide up a WHOLESTEP - is still in force as the MSB (Most
Significant
> _Byte) in a 2 byte message. The MTS at 14 bits gives:
>
>
>
> MTS = 768 x 128 = 98304 ED2
>
>
> So, once and for all,
>
> THE MTS DOES NOT RESULT IN 196608 DIVISIONS PER OCTAVE
> THE MTS RESULTS IN 98304 DIVISIONS PER OCTAVE.

It does not. Before you set up a web page with incorrect information
on it, please read and study the official standard. Putting up a web
page with the wrong information is extemely counterproductive, and
you should verify what you think you know by going to the official
sources before doing so.

🔗pitchcolor <pitchcolor@aol.com>

7/7/2003 6:55:11 AM

Hi Gene,

Since it appears that you don't actually read anything that I write,
I'm not sure what else to say to you. I would send you a personal email
instead of posting this publicly, but your email address is not
available from yahoo. If the official site contradicts what I am
saying, then the official site is wrong. Before you claim to know how
this stuff works, try building your own instruments using the protocol.
I have done this and I know what I am talking about.Did you try the
tests? Have you built your own instruments? Last I recall, you did not
even know the difference between a MIDI module and a MIDI controller.
Belittling you is not my intention here, and there's no need for us to
shout back and forth like children. Until there is some effort to
comprehend on your part, I'm done talking.

Yours,
Aaron

--- In tuning-math@yahoogroups.com, "Gene Ward Smith" <gwsmith@s...>
wrote:
> --- In tuning-math@yahoogroups.com, pitchcolor@a... wrote:
> > channel 1: MIDI note on 59, bend 127 (full bend upwards)
> > channel 2: MIDI note on 60, bend 64 (NO BEND)
> >
> > THESE PITCHES ARE NOT IN UNISON.
> >
> >
> > What does MIDI note 59 with bend 127 result in? It is slightly flat
> of the
> > halfstep above. Turn of all notes and then try this:
> >
> > channel 1: MIDI note 59, bend 127 (full bend upwards)
> > channel 1: MIDI note 60, bend 63 (bent one unit down)
> >
> > THESE PITCHES ARE IN UNISON.
> >
> >
> > To summarize:
> >
> > The range of 7 bit pitch bend is 0-127
> > Absence of pitch bend is data 64
> > Bend data 0 reaches an equal tempered halfstep below
> > Bend data 127 is one midi unit below an equal tempered halfstep
> above
> >
> >
> >
> > THE FULL RANGE 0-127 SPANS JUST UNDER A WHOLE STEP
> > THIS IS AN EQUAL DIVISION OF 128 UNITS PER WHOLESTEP.
> >
> >
> >
> > There are 6 equal tempered wholesteps in an octave, resulting in:
> >
> >
> >
> > 6 x 128 = 768 ED2
> > What about the MIDI Tuning Standard?
> >
> > Although the MTS is not in use by most manufacturers, some do
> support it, and
> > we will see more units supporting it in the future. 14 bits may be
> seen as 7
> > bit units expanded by 128 values per unit. The 768 unit behavior -
> the way
> > they divide up a WHOLESTEP - is still in force as the MSB (Most
> Significant
> > _Byte) in a 2 byte message. The MTS at 14 bits gives:
> >
> >
> >
> > MTS = 768 x 128 = 98304 ED2
> >
> >
> > So, once and for all,
> >
> > THE MTS DOES NOT RESULT IN 196608 DIVISIONS PER OCTAVE
> > THE MTS RESULTS IN 98304 DIVISIONS PER OCTAVE.
>
> It does not. Before you set up a web page with incorrect information
> on it, please read and study the official standard. Putting up a web
> page with the wrong information is extemely counterproductive, and
> you should verify what you think you know by going to the official
> sources before doing so.

🔗Manuel Op de Coul <manuel.op.de.coul@eon-benelux.com>

7/7/2003 7:23:00 AM

Dear Aaron,

So there are two different implementations of pitch bend
messages. I didn't know that and you probably either.

> > bit units expanded by 128 values per unit. The 768 unit behavior -
> the way
> > they divide up a WHOLESTEP - is still in force as the MSB (Most
> Significant
> > _Byte) in a 2 byte message.

Now I get it, you're talking about the two-byte octave tuning
dump! We were referring to the older and more widely adopted
bulk dump and single note change messages.
Anyway you could have studied the standard better before being
so convinced.

Manuel

🔗Gene Ward Smith <gwsmith@svpal.org>

7/7/2003 2:04:36 PM

--- In tuning-math@yahoogroups.com, "pitchcolor" <pitchcolor@a...>
wrote:
> Hi Gene,
>
> Since it appears that you don't actually read anything that I
write,
> I'm not sure what else to say to you.

Read Manuel's reply, and the MTS.

Before you claim to know how
> this stuff works, try building your own instruments using the
protocol.

Before claiming to know how this works, try rendering a midi file.