Sha256: a81c65506d32a8bfa4705ce786ee9e518c7502100ad7b77338970b30040606d7

Contents?: true

Size: 1.95 KB

Versions: 6

Compression:

Stored size: 1.95 KB

Contents

module Music
module Transcription
module Parsing
  DURATION_PARSER = DurationParser.new
  PITCH_PARSER = PitchParser.new
  NOTE_PARSER = NoteParser.new
  METER_PARSER = MeterParser.new
  SEGMENT_PARSER = SegmentParser.new
  
  def duration dur_str
    DURATION_PARSER.parse(dur_str).to_r
  end
  alias :dur :duration
  module_function :duration
  module_function :dur
  
  def durations durs_str
    durs_str.split.map do |dur_str|
      duration(dur_str)
    end
  end
  alias :durs :durations
  module_function :durs
  module_function :durations
  
  def pitch p_str
    PITCH_PARSER.parse(p_str).to_pitch
  end
  module_function :pitch

  def pitches ps_str
    ps_str.split.map do |p_str|
      pitch(p_str)
    end
  end
  module_function :pitches
  
  def note note_str
    NOTE_PARSER.parse(note_str).to_note
  end
  module_function :note
  
  def notes notes_str
    notes_str.split.map do |note_str|
      note(note_str)
    end
  end
  module_function :notes
  
  def meter meter_str
    METER_PARSER.parse(meter_str).to_meter
  end
  module_function :meter
  
  def segment seg_str
    SEGMENT_PARSER.parse(seg_str).to_range
  end
  module_function :segment
end
end
end

class String
  def to_duration
    Music::Transcription::Parsing::duration(self)
  end
  alias :to_dur :to_duration
  alias :to_d :to_duration
  
  def to_durations
    Music::Transcription::Parsing::durations(self)
  end
  alias :to_durs :to_durations
  alias :to_ds :to_durations
  
  def to_pitch
    Music::Transcription::Parsing::pitch(self)
  end
  alias :to_p :to_pitch
  
  def to_pitches
    Music::Transcription::Parsing::pitches(self)
  end
  alias :to_ps :to_pitches
  
  def to_note
    Music::Transcription::Parsing::note(self)
  end
  alias :to_n :to_note
  
  def to_notes
    Music::Transcription::Parsing::notes(self)
  end
  alias :to_ns :to_notes
  
  def to_meter
    Music::Transcription::Parsing::meter(self)
  end
  
  def to_segment
    Music::Transcription::Parsing::segment(self)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
music-transcription-0.17.1 lib/music-transcription/parsing/convenience_methods.rb
music-transcription-0.17.0 lib/music-transcription/parsing/convenience_methods.rb
music-transcription-0.16.0 lib/music-transcription/parsing/convenience_methods.rb
music-transcription-0.15.0 lib/music-transcription/parsing/convenience_methods.rb
music-transcription-0.14.0 lib/music-transcription/parsing/convenience_methods.rb
music-transcription-0.13.0 lib/music-transcription/parsing/convenience_methods.rb