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