Method: Musiki::Makam#initialize
- Defined in:
- lib/musiki.rb
#initialize(m, up = true, down = true) ⇒ Makam
Returns a new instance of Makam.
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/musiki.rb', line 209 def initialize m, up = true, down = true GC.start m = m.name if m.is_a?(Note) m = NOTES[m][:name] if m.is_a?(Integer) if MAKAM.has_key?(m.tr_to_ascii.downcase.gsub(/\W/,"")) g = MAKAM[m.tr_to_ascii.downcase.gsub(/\W/,"")] elsif MAKAM_ALIAS.has_key?(m.tr_to_ascii.downcase.gsub(/\W/,"")) g = MAKAM[MAKAM_ALIAS[m.tr_to_ascii.downcase.gsub(/\W/,"")]] elsif g = (MAKAM.map{|i,j| j[:code] == m ? j : nil}-[nil])[0] elsif m.scan(/\w\d/).length > 1 g = {:name=>"Sallama",:code=>m} end return unless g if up and down self.setup(g) @up = self @down = Makam.new(m, false, true) elsif up self.setup(g) @up = self @down = nil elsif down self.setdown(g) @up = nil @down = self end end |