Sha256: f521259d4f4e2bf9178fece446652eb1af4814da3593d275ec4e419b9e10548e
Contents?: true
Size: 610 Bytes
Versions: 1
Compression:
Stored size: 610 Bytes
Contents
module Coltrane # It describes a pitch, like E4 or Bb5. It's like a note, but it has an octave class Pitch attr_reader :number def initialize(pitch) case pitch when String then @number = number_from_name(pitch) when Numeric then @number = pitch when Pitch then @number = pitch.number end end def number_from_name(pitch_string) _, note, octaves = pitch_string.match(/(.*)(\d)/).to_a Note.new(note).number + 12 * octaves.to_i end def name "#{note.name}#{number / 12}" end def note Note.new(number) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
coltrane-0.0.2 | lib/coltrane/pitch.rb |