Sha256: 473c72351fd36e1cc7c98743fef185b269256e84955c4b97449d3e71b01435d1
Contents?: true
Size: 891 Bytes
Versions: 6
Compression:
Stored size: 891 Bytes
Contents
module Music module Transcription module Parsing grammar Pitch include NonnegativeInteger rule pitch pitch_letter mod:[#b]? octave cents:cent? <PitchNode> end rule octave n:nonnegative_integer { def to_i; n.to_i; end } end rule cent [+-] n:nonnegative_integer { def to_i; text_value.to_i; end } end rule pitch_letter letter_a / letter_b / letter_c / letter_d / letter_e / letter_f / letter_g end rule letter_a [Aa] { def to_semitone; 9; end } end rule letter_b [Bb] { def to_semitone; 11; end } end rule letter_c [Cc] { def to_semitone; 0; end } end rule letter_d [Dd] { def to_semitone; 2; end } end rule letter_e [Ee] { def to_semitone; 4; end } end rule letter_f [Ff] { def to_semitone; 5; end } end rule letter_g [Gg] { def to_semitone; 7; end } end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems