class Musicality::Instrument

Constants

ALTO
BASS
CLEFS
DEFAULT_MIDI_OPT
TENOR
TREBLE

Attributes

clefs[RW]
midi_num[RW]
name[RW]
transpose_interval[RW]

Public Class Methods

bass(name, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 36
def self.bass name, midi_num, transpose_interval = 0
  Instrument.new(name, [BASS], midi_num, transpose_interval)
end
bass_guitar(name, midi_num) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 56
def self.bass_guitar name, midi_num
  Instrument.new(name, [BASS], midi_num, 12)
end
guitar(name, midi_num) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 52
def self.guitar name, midi_num
  Instrument.new(name, [TENOR], midi_num, 12)
end
new(name, clefs, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 14
def initialize name, clefs, midi_num, transpose_interval = 0
  @name = name
  @clefs = clefs
  @midi_num = midi_num
  @transpose_interval = transpose_interval
end
tenor_bass(name, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 48
def self.tenor_bass name, midi_num, transpose_interval = 0
  Instrument.new(name, [TENOR, BASS], midi_num, transpose_interval)
end
treble(name, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 32
def self.treble name, midi_num, transpose_interval = 0
  Instrument.new(name, [TREBLE], midi_num, transpose_interval)
end
treble_alto(name, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 44
def self.treble_alto name, midi_num, transpose_interval = 0
  Instrument.new(name, [TREBLE,ALTO], midi_num, transpose_interval)
end
treble_bass(name, midi_num, transpose_interval = 0) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 40
def self.treble_bass name, midi_num, transpose_interval = 0
  Instrument.new(name, [TREBLE,BASS], midi_num, transpose_interval)
end

Public Instance Methods

==(other) click to toggle source
# File lib/musicality/notation/model/instrument.rb, line 21
def ==(other)
  begin
    return name == other.name && 
      Set.new(clefs) == Set.new(other.clefs) && 
      midi_num == other.midi_num &&
      transpose_interval == other.transpose_interval
  rescue # if other object doesn't have the right methods
    return false
  end
end