How does your synth know what note to play, when you press a key? If it has a built-in keyboard, then the glib answer is, “whatever key I’m pressing!”. If your synth is a module in a rack, or your keyboard is responding to signals sent to it over the MIDI cable from your sequencer, it gets a little more interesting.

MIDI Note Numbers

MIDI signals are digital, so everything is represented by numbers. For example, if I want an instrument to play a sound, I need to send it a specific type of message: a “Note On” message. In addition to a number identifying the message as a “Note On”, it will include two additional numbers representing:

  • which note to play
  • how strongly the note was played (known as note “velocity“)

Because the numbers are 7-bit digital, there are 128 possible values. For example, the note number will be between 0 and 127, representing the lowest and highest possible notes respectively. The velocity will also be between 0 and 127, where 0 is the lightest possible touch, and 127 represents the most force you could use.

Your synthesizer uses these numbers to decide how to respond: which note (pitch) to play, and how to set the volume or tone for the requested velocity. For your typical instrument using a standard Western 12-tone scale, note number 60 will result in a tone of 261.63 Hz, or “Middle C”. The synth module will continue to play that note until it receives a follow-up “Note Off” message for the same note number.

A message here, a message there, and pretty soon you’re playing yourself a tune. MIDI messages get complicated quickly, and there are better places to go if you are curious about the details.

Introducing Note Names

Secure in the knowledge that our instruments – both physical and virtual – will respond with middle C if we sent them a MIDI Note Number 60, we can move on to note names.

If you’re used to conventional Western musical notation, it makes sense to refer to notes using the alphabet notation of the scale, .e.g. C, D, E, F, G, etc, instead of those confusing and non-obvious numbers. With ten and a half octaves covered by our 128 possible note numbers, back in 1982 Roland documentation writers chose “C4” to represent Note 60, middle C, and to enumerate octaves from C to B (.e.g. ascending notes would be A4, B4, C5, D5, etc.)

And everything was cool… until Yamaha used “C3” to represent note 60 in their own MIDI documentation.

Since then, instrument and music software manufacturers tended to pick one of the two conventions and ignore any subsequent confusion on the part of the users.

For example, XLN’s Addictive Drums follows Yamaha’s convention, and in their documentation and note maps, they use “C3” to refer to note 60.

Voxengo SPAN, however, displays ~262 Hz as “C4”, following the Roland standard.

Three notes walk into a bar

Just to be different, Cakewalk eschews both conventions, and shows note number 60 (middle C) as “C5” in their Piano Roll View.

“There is no industry standard for numbering octaves. By default, Cakewalk calls MIDI note 0 (the lowest possible note) C0.

Cakewalk Documentation

Here’s a scale from note 60 to 72:

Personally I think I know the reason for this: One side effect of middle C as C5 is that the lowest possible MIDI note 0 is then “C0”. Cakewalk started life as a character-based DOS sequencer, and if they’d used “C4” or “C3” for note 60, they’d have needed additional real-estate space for notating the lower octaves, e.g. “C-2”.

I don’t know for sure that this was the reasoning behind it, but it seems possible. Those were the days! I personally never used the DOS version of Cakewalk, but I used to develop character-mode applications in MS-DOS, and I feel their pain.

Fortunately, we’re not limited to Cakewalk’s default notation:

In the Preferences dialog, we can control the “base octave for pitches” offset to our needs.

The Yamaha FB-01, for example, shows MIDI note 0 as C-2 (C negative 2). To match Cakewalk to that standard, set Base Octave to –2.”

Cakewalk Documentation

Because I’m an avid user of XLN’s Addictive Drums virtual drum instrument, I set my Base Octave for Pitches” to -2.

And all was good, until the other day I was developing some SFZ patch definitions and I noticed that the samples were being played back 12 notes below where I was defining them:

<region> sample=WAV\DRUMS\CIBLON_TAMBOR_MEDIO\TAK.wav  key=C5 

According to my tests playing the keyboard, that sample was assigned to C4 or note 72, and not C5 or note 85 as I expected.

All was revealed when I tried defining the sample allocation using note numbers:

<region> sample=WAV\DRUMS\CIBLON_TAMBOR_MEDIO\TONG.wav  key=60

That worked as expected, responding when I pressed “Middle C” on my keyboard (i.e. sending MIDI Note 60 to the SFZ Player instance in my Cakewalk project.).

Bottom line: I could use the note numbers in my SFZ file definitions, but if I feel the need to use Note Names, I should remember that SFZ Player uses the Roland standard of C4=60.