Class: Melodie
- Inherits:
-
Object
- Object
- Melodie
- Includes:
- Intervalles, Motif
- Defined in:
- lib/rubySC/melodie/melodie.rb
Instance Attribute Summary collapse
-
#analyse ⇒ Object
readonly
Returns the value of attribute analyse.
-
#dessinMelodique ⇒ Object
readonly
Returns the value of attribute dessinMelodique.
-
#dessinRythmique ⇒ Object
readonly
Returns the value of attribute dessinRythmique.
Instance Method Summary collapse
- #analyser ⇒ Object
- #creerRythme(options = {:intervalles=>1, :motifs=>1}) ⇒ Object
- #detectDoublons ⇒ Object
- #enclencher(instrument = "default") ⇒ Object
-
#initialize ⇒ Melodie
constructor
A new instance of Melodie.
-
#inter ⇒ Object
quelques raccourcis.
- #interAbs ⇒ Object
- #interRel(note = 0) ⇒ Object
- #vitesse ⇒ Object
Methods included from Motif
#convertirABC, #detectPattern, #squeletteMotivique, #toutDansOctave
Methods included from Intervalles
#intervalles, #intervallesAbs, #intervallesBoucle, #intervallesRel, #squeletteIntervallique
Constructor Details
#initialize ⇒ Melodie
Returns a new instance of Melodie.
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rubySC/melodie/melodie.rb', line 11 def initialize @@nbMel=0 @analyse={} @dessinMelodique = creerMelodie self.analyser @dessinRythmique = self.creerRythme end |
Instance Attribute Details
#analyse ⇒ Object (readonly)
Returns the value of attribute analyse.
9 10 11 |
# File 'lib/rubySC/melodie/melodie.rb', line 9 def analyse @analyse end |
#dessinMelodique ⇒ Object (readonly)
Returns the value of attribute dessinMelodique.
9 10 11 |
# File 'lib/rubySC/melodie/melodie.rb', line 9 def dessinMelodique @dessinMelodique end |
#dessinRythmique ⇒ Object (readonly)
Returns the value of attribute dessinRythmique.
9 10 11 |
# File 'lib/rubySC/melodie/melodie.rb', line 9 def dessinRythmique @dessinRythmique end |
Instance Method Details
#analyser ⇒ Object
32 33 34 35 36 37 |
# 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}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rubySC/melodie/melodie.rb', line 41 def creerRythme ={:intervalles=>1, :motifs=>1} tmp=[] l=lambda {|x| unless [x].nil? tmp<<@analyse[x.to_s].map(&[x].method(:*)) end} .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 ⇒ Object
81 82 83 84 85 86 |
# 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") ⇒ Object
23 24 25 26 27 28 29 30 |
# 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 ⇒ Object
quelques raccourcis
68 69 70 |
# File 'lib/rubySC/melodie/melodie.rb', line 68 def inter intervalles @dessinMelodique end |
#interAbs ⇒ Object
72 73 74 |
# File 'lib/rubySC/melodie/melodie.rb', line 72 def interAbs intervallesAbs @dessinMelodique end |
#interRel(note = 0) ⇒ Object
76 77 78 |
# File 'lib/rubySC/melodie/melodie.rb', line 76 def interRel note=0 intervallesMel @dessinMelodique, note end |
#vitesse ⇒ Object
61 62 63 |
# File 'lib/rubySC/melodie/melodie.rb', line 61 def vitesse end |