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