Module: Harmonie

Includes:
Intervalles
Defined in:
lib/rubySC/harmonie.rb,
lib/rubySC/harmonie/harmonie.rb

Instance Method Summary collapse

Methods included from Intervalles

#intervalles, #intervallesAbs, #intervallesBoucle, #intervallesRel, #squeletteIntervallique

Instance Method Details

#analyse(mel, grilleAnalyse = 2, modulo = 7) ⇒ Object



35
36
37
38
39
40
41
# 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 = []) ⇒ Object

Je ne sais pas si cette fonction a du sens, vraiment



44
45
46
47
48
49
50
51
52
53
# 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

#detecterHarmonies(mel, intervalles = 2) ⇒ Object

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 (ou 1)” => [0,1,2]



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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) ⇒ Object

Sert à détecter quel accord sous-tend une mélodie



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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

#detectSymetrie(mel) ⇒ Object



31
32
33
# File 'lib/rubySC/harmonie.rb', line 31

def detectSymetrie mel
  
end

#squeletteHarmonique(mel, set = [0,2,4]) ⇒ Object



5
6
7
8
9
# File 'lib/rubySC/harmonie.rb', line 5

def squeletteHarmonique mel, set=[0,2,4]

  mel.map { |e| 
  e == set.any? ? true : false }
end