module Music module Transcription # Define twelve pitch constants for each octave from octave 0 through 8. # A pitch on octave 0 A0 = Pitch.new :octave => 0, :semitone => 9 # Bb pitch on octave Bb0 = Pitch.new :octave => 0, :semitone => 10 # B pitch on octave 0 B0 = Pitch.new :octave => 0, :semitone => 11 # C pitch on octave 1 C1 = Pitch.new :octave => 1, :semitone => 0 # Db pitch on octave 1 Db1 = Pitch.new :octave => 1, :semitone => 1 # E pitch on octave 1 D1 = Pitch.new :octave => 1, :semitone => 2 # Eb pitch on octave 1 Eb1 = Pitch.new :octave => 1, :semitone => 3 # E pitch on octave 1 E1 = Pitch.new :octave => 1, :semitone => 4 # F pitch on octave 1 F1 = Pitch.new :octave => 1, :semitone => 5 # Gb pitch on octave 1 Gb1 = Pitch.new :octave => 1, :semitone => 6 # G pitch on octave 1 G1 = Pitch.new :octave => 1, :semitone => 7 # Ab pitch on octave 1 Ab1 = Pitch.new :octave => 1, :semitone => 8 # A pitch on octave 1 A1 = Pitch.new :octave => 1, :semitone => 9 # Bb pitch on octave Bb1 = Pitch.new :octave => 1, :semitone => 10 # B pitch on octave 1 B1 = Pitch.new :octave => 1, :semitone => 11 # C pitch on octave 2 C2 = Pitch.new :octave => 2, :semitone => 0 # Db pitch on octave 2 Db2 = Pitch.new :octave => 2, :semitone => 1 # E pitch on octave 2 D2 = Pitch.new :octave => 2, :semitone => 2 # Eb pitch on octave 2 Eb2 = Pitch.new :octave => 2, :semitone => 3 # E pitch on octave 2 E2 = Pitch.new :octave => 2, :semitone => 4 # F pitch on octave 2 F2 = Pitch.new :octave => 2, :semitone => 5 # Gb pitch on octave 2 Gb2 = Pitch.new :octave => 2, :semitone => 6 # G pitch on octave 2 G2 = Pitch.new :octave => 2, :semitone => 7 # Ab pitch on octave 2 Ab2 = Pitch.new :octave => 2, :semitone => 8 # A pitch on octave 2 A2 = Pitch.new :octave => 2, :semitone => 9 # Bb pitch on octave Bb2 = Pitch.new :octave => 2, :semitone => 10 # B pitch on octave 2 B2 = Pitch.new :octave => 2, :semitone => 11 # C pitch on octave 3 C3 = Pitch.new :octave => 3, :semitone => 0 # Db pitch on octave 3 Db3 = Pitch.new :octave => 3, :semitone => 1 # E pitch on octave 3 D3 = Pitch.new :octave => 3, :semitone => 2 # Eb pitch on octave 3 Eb3 = Pitch.new :octave => 3, :semitone => 3 # E pitch on octave 3 E3 = Pitch.new :octave => 3, :semitone => 4 # F pitch on octave 3 F3 = Pitch.new :octave => 3, :semitone => 5 # Gb pitch on octave 3 Gb3 = Pitch.new :octave => 3, :semitone => 6 # G pitch on octave 3 G3 = Pitch.new :octave => 3, :semitone => 7 # Ab pitch on octave 3 Ab3 = Pitch.new :octave => 3, :semitone => 8 # A pitch on octave 3 A3 = Pitch.new :octave => 3, :semitone => 9 # Bb pitch on octave Bb3 = Pitch.new :octave => 3, :semitone => 10 # B pitch on octave 3 B3 = Pitch.new :octave => 3, :semitone => 11 # C pitch on octave 4 C4 = Pitch.new :octave => 4, :semitone => 0 # Db pitch on octave 4 Db4 = Pitch.new :octave => 4, :semitone => 1 # E pitch on octave 4 D4 = Pitch.new :octave => 4, :semitone => 2 # Eb pitch on octave 4 Eb4 = Pitch.new :octave => 4, :semitone => 3 # E pitch on octave 4 E4 = Pitch.new :octave => 4, :semitone => 4 # F pitch on octave 4 F4 = Pitch.new :octave => 4, :semitone => 5 # Gb pitch on octave 4 Gb4 = Pitch.new :octave => 4, :semitone => 6 # G pitch on octave 4 G4 = Pitch.new :octave => 4, :semitone => 7 # Ab pitch on octave 4 Ab4 = Pitch.new :octave => 4, :semitone => 8 # A pitch on octave 4 A4 = Pitch.new :octave => 4, :semitone => 9 # Bb pitch on octave Bb4 = Pitch.new :octave => 4, :semitone => 10 # B pitch on octave 4 B4 = Pitch.new :octave => 4, :semitone => 11 # C pitch on octave 5 C5 = Pitch.new :octave => 5, :semitone => 0 # Db pitch on octave 5 Db5 = Pitch.new :octave => 5, :semitone => 1 # E pitch on octave 5 D5 = Pitch.new :octave => 5, :semitone => 2 # Eb pitch on octave 5 Eb5 = Pitch.new :octave => 5, :semitone => 3 # E pitch on octave 5 E5 = Pitch.new :octave => 5, :semitone => 4 # F pitch on octave 5 F5 = Pitch.new :octave => 5, :semitone => 5 # Gb pitch on octave 5 Gb5 = Pitch.new :octave => 5, :semitone => 6 # G pitch on octave 5 G5 = Pitch.new :octave => 5, :semitone => 7 # Ab pitch on octave 5 Ab5 = Pitch.new :octave => 5, :semitone => 8 # A pitch on octave 5 A5 = Pitch.new :octave => 5, :semitone => 9 # Bb pitch on octave Bb5 = Pitch.new :octave => 5, :semitone => 10 # B pitch on octave 5 B5 = Pitch.new :octave => 5, :semitone => 11 # C pitch on octave 6 C6 = Pitch.new :octave => 6, :semitone => 0 # Db pitch on octave 6 Db6 = Pitch.new :octave => 6, :semitone => 1 # E pitch on octave 6 D6 = Pitch.new :octave => 6, :semitone => 2 # Eb pitch on octave 6 Eb6 = Pitch.new :octave => 6, :semitone => 3 # E pitch on octave 6 E6 = Pitch.new :octave => 6, :semitone => 4 # F pitch on octave 6 F6 = Pitch.new :octave => 6, :semitone => 5 # Gb pitch on octave 6 Gb6 = Pitch.new :octave => 6, :semitone => 6 # G pitch on octave 6 G6 = Pitch.new :octave => 6, :semitone => 7 # Ab pitch on octave 6 Ab6 = Pitch.new :octave => 6, :semitone => 8 # A pitch on octave 6 A6 = Pitch.new :octave => 6, :semitone => 9 # Bb pitch on octave Bb6 = Pitch.new :octave => 6, :semitone => 10 # B pitch on octave 6 B6 = Pitch.new :octave => 6, :semitone => 11 # C pitch on octave 7 C7 = Pitch.new :octave => 7, :semitone => 0 # Db pitch on octave 7 Db7 = Pitch.new :octave => 7, :semitone => 1 # E pitch on octave 7 D7 = Pitch.new :octave => 7, :semitone => 2 # Eb pitch on octave 7 Eb7 = Pitch.new :octave => 7, :semitone => 3 # E pitch on octave 7 E7 = Pitch.new :octave => 7, :semitone => 4 # F pitch on octave 7 F7 = Pitch.new :octave => 7, :semitone => 5 # Gb pitch on octave 7 Gb7 = Pitch.new :octave => 7, :semitone => 6 # G pitch on octave 7 G7 = Pitch.new :octave => 7, :semitone => 7 # Ab pitch on octave 7 Ab7 = Pitch.new :octave => 7, :semitone => 8 # A pitch on octave 7 A7 = Pitch.new :octave => 7, :semitone => 9 # Bb pitch on octave Bb7 = Pitch.new :octave => 7, :semitone => 10 # B pitch on octave 7 B7 = Pitch.new :octave => 7, :semitone => 11 # C pitch on octave 8 C8 = Pitch.new :octave => 8, :semitone => 0 # Contain pitch objects from A0 to C8 PITCHES = [ A0, Bb0, B0, C1, Db1, D1, Eb1, E1, F1, Gb1, G1, Ab1, A1, Bb1, B1, C2, Db2, D2, Eb2, E2, F2, Gb2, G2, Ab2, A2, Bb2, B2, C3, Db3, D3, Eb3, E3, F3, Gb3, G3, Ab3, A3, Bb3, B3, C4, Db4, D4, Eb4, E4, F4, Gb4, G4, Ab4, A4, Bb4, B4, C5, Db5, D5, Eb5, E5, F5, Gb5, G5, Ab5, A5, Bb5, B5, C6, Db6, D6, Eb6, E6, F6, Gb6, G6, Ab6, A6, Bb6, B6, C7, Db7, D7, Eb7, E7, F7, Gb7, G7, Ab7, A7, Bb7, B7, C8 ] end end