class Melodie

Attributes

analyse[R]
dessinMelodique[R]
dessinRythmique[R]

Public Class Methods

new() click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 11
def initialize
  
  @@nbMel=0
  @analyse={}

  @dessinMelodique = creerMelodie
  self.analyser
  @dessinRythmique = self.creerRythme

end

Public Instance Methods

analyser() click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 32
def analyser

  @analyse["motifs"]=squeletteMotivique @dessinMelodique
  @analyse["intervalles"]=squeletteIntervallique @dessinMelodique
   
end
creerRythme(options={:intervalles=>1, :motifs=>1}) click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 41
def creerRythme options={:intervalles=>1, :motifs=>1} 
  
  tmp=[]
  l=lambda {|x|
  unless options[x].nil? 
    tmp<<@analyse[x.to_s].map(&options[x].method(:*))
  end}
 
  options.each { |k,v|
  l.call k  }
 
  result=[]
  (@dessinMelodique.size-1).times do |i|
  result << tmp.map{ |row| row[i] }.reduce(&:+)
  end

  return result

end
detectDoublons() click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 81
def detectDoublons 
  @dessinMelodique.map.with_index(1) { |e, i| 
    unless i==@dessinMelodique.size
    @dessinMelodique[i] - @dessinMelodique[i-1] == 0 ? true : false
    end }[0..-2]
end
enclencher(instrument="default") click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 23
def enclencher instrument="default"
  p "instrument sera #{instrument}"
  @@nbMel+=1
  Voix.new "melodie#{@@nbMel}", 
  ({:instrument => instrument, 
    :degree => @dessinMelodique,
    :dur => @dessinRythmique})
end
inter() click to toggle source

quelques raccourcis

# File lib/rubySC/melodie/melodie.rb, line 68
def inter
  intervalles @dessinMelodique
end
interAbs() click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 72
def interAbs
  intervallesAbs @dessinMelodique
end
interRel(note=0) click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 76
def interRel note=0
  intervallesMel @dessinMelodique, note
end
vitesse() click to toggle source
# File lib/rubySC/melodie/melodie.rb, line 61
def vitesse
  
end