Sha256: 496456744409422ef26ea61e97735319de56ea83225f9e1f0364df488de61441
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Coltrane # It describes a set of notes class NoteSet attr_reader :notes def initialize(arg) @notes = case arg when String then notes_from_note_string(arg) when Array then notes_from_note_array(arg) end end def root_note notes.sort_by(&:number).first end def transpose_to(note_name) transpose_by(root_note.interval_to(note_name).number) end def transpose_by(interval) notes.map do |note| note.transpose_by(interval) end end def guitar_notes GuitarNoteSet.new(notes.map(&:guitar_notes).flatten) end def interval_sequence IntervalSequence.new(self) end protected def notes_from_note_string(note_string) notes_from_note_array(note_string.split(' ')) end def notes_from_note_array(note_array) note_array.collect do |note| case note when String then Note.new(note) when Note then note end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
coltrane-0.0.2 | lib/coltrane/note_set.rb |