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