module Harmonie
Public Instance Methods
analyse(mel, grilleAnalyse=2, modulo=7)
click to toggle source
# File lib/rubySC/harmonie.rb, line 35 def analyse mel, grilleAnalyse=2, modulo=7 mel.each_slice(grilleAnalyse).map { |x| (x[-1]-x[0])%7 } end
analyseReduction(mel, nbRecursion=mel.size-1, tmp=[])
click to toggle source
Je ne sais pas si cette fonction a du sens, vraiment
# File lib/rubySC/harmonie.rb, line 44 def analyseReduction mel, nbRecursion=mel.size-1, tmp=[] tmp << mel unless nbRecursion<1 analyseReduction (mel.each_cons(2).map { |x| (x[-1]-x[0]) }), nbRecursion-=1, tmp end return tmp end
detectSymetrie(mel)
click to toggle source
# File lib/rubySC/harmonie.rb, line 31 def detectSymetrie mel end
detecterHarmonies(mel, intervalles=2)
click to toggle source
Sert à détecter les notes paires dans une section de
mélodie. Retourne la distance qui sépare ces notes typiquement, un accord parfait sera {“0 (ou 1)” => [0,1,2]}
@format melodie [Melodie]
# File lib/rubySC/harmonie/harmonie.rb, line 16 def detecterHarmonies mel, intervalles=2 tmpUn=mel.sort.uniq.map { |e| e%intervalles } tmpDeux=mel.sort.uniq.map { |e| e/intervalles } n={} tmpUn.size.times do |x| n[tmpUn[x].to_s].nil? ? \ (n[tmpUn[x].to_s] = [] << tmpDeux[x]) :\ (n[tmpUn[x].to_s] << tmpDeux[x]) end return n end
detecterSet(mel, intervalles=2)
click to toggle source
Sert à détecter quel accord sous-tend une mélodie @format melodie [Melodie]
# File lib/rubySC/harmonie.rb, line 14 def detecterSet mel, intervalles=2 tmpUn=mel.sort.uniq.map { |e| e%intervalles } tmpDeux=mel.sort.uniq.map { |e| e/intervalles } n={} tmpUn.size.times do |x| n[tmpUn[x].to_s].nil? ? \ (n[tmpUn[x].to_s] = [] << tmpDeux[x]) :\ (n[tmpUn[x].to_s] << tmpDeux[x]) end return n end
squeletteHarmonique(mel, set=[0,2,4])
click to toggle source
# File lib/rubySC/harmonie.rb, line 5 def squeletteHarmonique mel, set=[0,2,4] mel.map { |e| e == set.any? ? true : false } end