If that’s the case… well, what a weird industry, and as I see it, it means that all the MIDI modules in Rack needs a switch/option to switch between middle-c being C3, C4 or C5, otherwise it can never be properly interoperable with the outside world, or rather: Causes massive confusion and support any thoughts on this? Would you agree that actually the MIDI modules need a switch like this otherwise confusion+support continues? Because it seems that the most popular DAW’s with Rack users, Ableton and Bitwig, have middle-C=C3 whereas Rack has middle-C=C4, so things will never line up for them. That indeed seems like a complete trainwreck, and that actually MIDI note F2 (e.g.) is only F2 if you think it is, and another manufacturer can say “no, it’s actually F3 instead”.
Ok, now I’m reading the last paragraphs you wrote. A certain MIDI note is a certain MIDI note, right? But I’m reaching my limits - I’m sure you would have more expertice here. BUT… “middle C” should IMHO not be a factor here, because if Bitwig (or any other program) says it’s transmitting the MIDI note C4 it should damn well be C4 with no room for confusion. Yeah, the whole confusion about “middle C” being C3 or C4 is annoying. it’s only the note number that matters - the name is irrelevant." KMI Support Center If all MIDI notes appear to be an octave off, it simply means that there are two different note naming standards involved. It’s even possible to run into a C5=60 standard, but that is much more rare. KMI follows the C3=60 paradigm (as does Ableton, Logic, MainStage, and more), while other companies follow the C4=60 paradigm (Native Instruments and others). " There are actually multiple MIDI note number to note name conventions - different companies follow different standards.
C0 MIDI NOTE NUMBER ISO
An octave higher than middle C is C5, and an octave lower than middle C is C3.”īut in Ableton and Bitwig - Middle C (aka ISO C4) is MIDI note 72. In that system, middle C (the first ledger line above the bass staff or the first ledger line below the treble staff) is C4. “... the International Standards Organization (ISO) system for register designations. This is just an alias for pitch2name(freq2pitch($x)).From Pitches and octave designations – Open Music Theory This is just an alias for pitch2freq(name2pitch($x)). pitch2freq my $freq = pitch2freq(69) Ĭonverts a pitch to a frequency, using the base frequency set. freq2pitch my $pitch = freq2pitch($440) Ĭonverts a frequency >= 0 Hz to a pitch, using the base frequency set. pitch2name returns the lowercase version with a sharp, if necessary (e.g. pitch2name my $name = pitch2name($pitch) Ĭonverts a pitch between 0 and 127 into a note name. FUNCTIONS name2pitch my $pitch = name2pitch($name) Ĭonverts a note name into a pitch. Thus, the valid notes range between C-1 and G9. , followed by an octave number from -1 to 9. Shown here are based on Middle C = C4, which is an arbitrary (See MIDI CC 123) 121: Reset All Controllers: Reset all controllers to default state: 122: Local Control: Turns internal connection of a MIDI keyboard/workstation, etc. It does so regardless of release time or sustain. The octave numbers are based on the table found in the MIDI standard (see ): The MIDI specification only defines note number 60 as "Middle C", andĪll other notes are relative. Registered Parameter Number LSB: 101: Registered Parameter Number MSB: 102-119: Undefined: 120: All Sounds Off: Mutes all sounding notes. This module converts MIDI pitches between 0 and 127 (called 'note numbers' in the MIDI standard) and note names into each other. MIDI::Pitch - Converts MIDI pitches, note names and frequencies into each other SYNOPSIS use MIDI::Pitch qw(name2pitch pitch2name freq2pitch pitch2freq basefreq)