Hi there. A little embarrassed to be asking this, but I'm a bit confused about what is considered to be the standard MIDI notation with respect to octave and note numbering. I believe there is a distinction between the MIDI standard (C3/#60) and Scientific Pitch Notation (which numbers octaves and note positions differently). I did try taking a look at MIDI.org for a specification with relation to note and octave numbering (I imagine this to be under the notation category, no?) but haven't been able to find anything definitive. Could anyone point me to a de facto MIDI specification that outlines this convention and outlays the note and octave numbering systems which are considered to be the 'standard'?
Not really sure what you're referring to here.
As far as I know, specifically 'midi' knows nothing about, and cares nothing about, 'octaves' or any of that stuff. All midi cares about is that value xx (i.e. 60 (decimal)) equates to a specific note (i.e. 'middle' 'C').
Most midi devices will work within this, else no midi file would ever be playable on another device.
However, some midi software, sequencers, DAWs, whatever, may well introduce some intermediate code, or process, that allows the user to work with more 'musical' notation, and may well allow use of different codes etc to represent notes,, octaves, etc. At some point, i.e. saving to a midi file, such information will be converted to the midi norm.
Geoff
Thanks for getting back to me Geoff. I suppose the confusion point was in relation to different manufacturers and standards out there. According to this article, Many manufacturers consider middle C to be C4. Here is another site that seems to suggest that C4 is an ISO standard and back referencing the first link, so to does Scientific pitch notation. That said, this page suggests middle C is C3, and this seems to suggest C5 (?). Closer to my present context (in the sense that I am presently writing a MIDI processor for use in Logic Pro X), it is not difficult to see similar questions arise
I was just curious if there was an official standard or specification on this matter. Conventions are great, but a concrete spec would be handy IMO. Then again, maybe MIDI.org already have done some work on this and I've missed it. They have provided published a living standard in relation to certain CC numbers for example. Middle C === note number #60 is fine. I think thats ok to accept as an immutable rule. Its just the octave numbers then. I am now considering running with using C4 to equate to middle C and put the rest down to inaccuracies. Just a little uncomfortable with the guess work I guess!
Yes, I understand your concern, but really, none of this is anything to do with midi, which really knows ONLY about the note numbers, i.e. 60 decimal.
The midi file simply sends a code for 'note on', a code for channel, and the number for which note and another number for velocity/volume.
There is of course the extra confusion that the particular patch (sound) on the device may have a transpose set, so you send 60 for middle C (maybe == C3) but the patch may change this according to the transpose (say to C2). That though is part of the patch/tone setting.
Geoff
Not only there is not consensus among MIDI users and manufacturers, but a definitive and universal standard for octave naming among all musicians is missing as well. I like this page as a reference when discussing this topic:
http://dictionary.onmusic.org/appendix/topics/octaves
I've chosen the arbitrary decision to follow the "Acoustical Society of America Octave Designation System", matching the Scientific pitch notation: middle C, or MIDI note 60, is called C4. This is my personal preference, so my VMPK software follows this naming convention.
Regards,
Pedro
Thanks for your view and the linked article Pedro. Thats a good choice. I'm pretty much leaning in the same direction but for no other reason than convenience. I was lucky enough to get some feedback from MIDI.org and it seems that C4 is presently the unspoken semi-formal convention with regard to octave numbering, and there are many good reasons to use it.
That said, unfortunately, even after 33 years, there is no recommendation with regard to octave numbering by the MMA at present. I'd really like to see a formal poll or process started by an accredited source such as The MIDI Association or the MIDI Manufacturers Association in an attempt to investigate the factors of the 'C-X" question to the ends of delivering an official recommendation.
The software engineer in me has the insane idea that a zero based counting system should be used for no other reason than it is a logical as opposed to normative basis for a standard. In that system, C5 would be middle C. Of course, that would bring its own issues. I'll finish by saying that C4 is the system that I will use in the here and now.
Its a fascinating topic!
It seems that the MIDI community, i.e. many sequencing program makers or DAWs if you prefer, uses C3 to denote middle C.
This avoids having to use the numbering of the bottom MIDI octave as -1. Instead it is 0.
The community that is more focussed upon the piano, which spans the playing range of the vast majority of non-electronic musical instruments, uses the bottom notes of the piano to define C0, where the lowest A, Bb and B (or A , B and H if you're German) are A0, Bb0 and B0, then C1 and so on up.
There's a useful Wiki article to view on Scientific pitch notation.
I'm developing a library to work with MIDI files so I was given the choice what octave numbering system to use. Finally I decided to go with scientific pitch notation so the middle C is C4 within the library. I believe you just need to pick one system and stick with it everywhere in your tasks.
The short answer is that MIDI notes are simply a note index and do not really define the pitch of a note. The MIDI specification only defines Middle C as note number 60.
There are two major standards for octaves nomenclature/numbering. One is used by music education based on the grand clef created by the Acoustical Society of America.and another is based on American Standard Pitch Notation (ASPN).
Here is a quote another forum on the subject that is pretty accurate.
The most common is the one below where MIDDLE C (note #60; $3C) is C3 (C in the 3rd octave). Scientific pitch notation (or SPN, also known as American Standard Pitch Notation (ASPN) and International Pitch Notation (IPN)) is a method of specifying musical pitch by combining a musical note name (with accidental if needed) and a number identifying the pitch’s octave.
However, another convention was adopted by Yamaha Corp. for their synthesizer products which parallels the Octave Designation System used in Music Education formulated by the Acoustical Society of America. In that convention, Middle C is designated “C4”.
In fact, many software programs have settings so that you can choose between C3 and C4 as middle C.
Here is another good explanation of the different methods of octave numbering which includes MIDI note numbering as well.
What further complicates this is that even if you know the octave convention used, you STILL do not know the actual pitch of the note played as it depends on the octave settings for the internal sound generators.
We plan on working on article to discuss this topic on MIDI.org soon. Hope this helps to at least explain the background of the problem if not completely solve it.
Thanks for your support and interest in MIDI.
I just want to point out that there are misleading facts and references in this post.
1) http://computermusicresource.com/midikeys.html
That web page, cited by David and unfortunately used by myself as a reference at one point, is full of incorrect information. Not only do they confuse the Yamaha standard and the "other" more common standard, their table lists two rows with C-1; the very top row should say C-2 but it does not. I'm sure that David and everyone else that read that page was very confused by it.
2) In contrast to what is stated on that web page, and directly according to Yamaha, http://www.deepsonic.ch/deep/docs_manuals/yamaha_sy85_manual_2_of_2.pdf
the fact appears to be that Yamaha is using the C3 = Middle C version, not the C4 version.
2) http://tonalsoft.com/pub/news/pitch-bend.aspx uses a -5 Octave description, based around MIddle C as Octave zero.
3) Aside from Yamaha, which uses C3 as Middle C, it appears that ISO and most everyone else uses the Middle C = C4 convention. And I recommend that you's all (MIDI Association) do the same:
http://syntheway.com/MIDI_Keyboards_Middle_C_MIDI_Note_Number_60_C4.htm
Take a look at MIDI Tuning Standard. Theoretically (of course, if special tuning messages are implemented) it is possible to set any pitch for any note number. Practically: Note#69 (decimal) = 440 Hz. (Someone call it A3, A4, A5, a1, or la in first octave...)
A big article
https://www.midi.org/articles/microtuning-and-alternative-intonation-systems
Although this topic was covered in the very well written article by Jackly Ligon mentioned above, we think it is probably worth it to revisit the oddities of the way middle C is described in a separate and simpler article.
For MIDI, middle C is always note number 60 even though it may be another pitch or described by a different octave designation - C3, C4 or C5.
MIDI has by definition reference to 128 notes, therefore, note #60 being close to the middle, and being referred to as Middle C, has no need for an octave specification. That's my personal opinion.
the lowest octave represents a freqeuncy range of 8-16 Hz, so it is often not used at all in a real lilfe situation.
within my software for me note number 0-11 is octave #1 - not -1 or 0.
as for the GUI, you could look at octaves from the middle C, and call 60-71 octave #0, using negative vales for everything lower.
Well you guys make me utterly confused, i wrote a midi script when i push lowest key on my Korg N364 it shows me "note number 36 received" decimal" and higest key 96 decimal.
I thought that C3 was the basenote on my Korg synth aka "note 36"??? "5 octaves"
And a 6 octave start at C2 note 24 decimal
And a 7 octave start at C1 note 12 decimal
And a grand piano start at A0-B0 "9,10,11" and range to C8 which is 96?
So i implemented my virtual keyboard using it, you say it is wrong "See URL"