Sha256: 2b0422271149433ad1558d27abd215c5764fa33148f03ca78c26ad2b8fd324df

Contents?: true

Size: 692 Bytes

Versions: 5

Compression:

Stored size: 692 Bytes

Contents

module Music
module Transcription
module Parsing

grammar Pitch
  rule pitch
    pitch_letter mod:[#b]? octn:[0-9] <PitchNode>
  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

5 entries across 5 versions & 1 rubygems

Version Path
music-transcription-0.15.0 lib/music-transcription/parsing/pitch_parsing.treetop
music-transcription-0.14.0 lib/music-transcription/parsing/pitch_parsing.treetop
music-transcription-0.13.0 lib/music-transcription/parsing/pitch_parsing.treetop
music-transcription-0.11.0 lib/music-transcription/parsing/pitch_parsing.treetop
music-transcription-0.10.0 lib/music-transcription/parsing/pitch_parsing.treetop