Skip to content
Snippets Groups Projects
Commit dc2fa39e authored by Jean-Marie  FAVREAU's avatar Jean-Marie FAVREAU
Browse files

Pas mal d'ajustemetns

parent e2d0b65d
Branches
No related tags found
No related merge requests found
......@@ -16,7 +16,7 @@ PDF=$(EXECOLLPDF) $(EXEPROJPDF) $(EXEPRIMPDF) $(EXECORRPDF)
WAVES=$(addprefix $(SONS)/,$(SCRIPTS:.py=.wav))
BOOMWHACKERS=boomwhackers-8+5.json
BOOMWHACKERS=boomwhackers-8+5+c.json
.PRECIOUS: $(TEX)
......
{
"do1": { "couleur": [255, 0, 0], "capsule": "1", "court": "1" },
"re1": { "couleur": [255, 170, 20], "capsule": "1", "court": "1" },
"mi1": { "couleur": [255, 238, 0], "capsule": "1", "court": "1" },
"fa1": { "couleur": [81, 255, 0], "capsule": "1", "court": "1" },
"sol1": { "couleur": [0, 118, 88], "capsule": "1", "court": "1" },
"la1": { "couleur": [140, 0, 255], "capsule": "1", "court": "1" },
"si1": { "couleur": [221, 0, 115], "capsule": "1", "court": "1" },
"dod1": { "couleur": [255, 0, 0], "capsule": "1", "court": "1", "alteration": "\\#" },
"mib1": { "couleur": [255, 238, 0], "capsule": "1", "court": "1", "alteration" : "b"},
"fad1": { "couleur": [81, 255, 0], "capsule": "1", "court": "1", "alteration": "\\#" },
"sold1": { "couleur": [0, 118, 88], "capsule": "1", "court": "1", "alteration": "\\#" },
"sib1": { "couleur": [221, 0, 115], "capsule": "1", "court": "1", "alteration" : "b" },
"do2": { "couleur": [255, 0, 0], "capsule": "0", "court": "1" },
"re2": { "couleur": [255, 170, 20], "capsule": "0", "court": "1" },
"mi2": { "couleur": [255, 238, 0], "capsule": "0", "court": "1" },
"fa2": { "couleur": [81, 255, 0], "capsule": "0", "court": "1" },
"sol2": { "couleur": [0, 118, 88], "capsule": "0", "court": "1" },
"la2": { "couleur": [140, 0, 255], "capsule": "0", "court": "1" },
"si2": { "couleur": [221, 0, 115], "capsule": "0", "court": "1" },
"do3": { "couleur": [255, 0, 0], "capsule": "0", "court": "0" },
"dod2": { "couleur": [255, 0, 0], "capsule": "0", "court": "1", "alteration": "\\#" },
"mib2": { "couleur": [255, 238, 0], "capsule": "0", "court": "1", "alteration" : "b"},
"fad2": { "couleur": [81, 255, 0], "capsule": "0", "court": "1", "alteration": "\\#" },
"sold2": { "couleur": [0, 118, 88], "capsule": "0", "court": "1", "alteration": "\\#" },
"sib2": { "couleur": [221, 0, 115], "capsule": "0", "court": "1", "alteration" : "b" }
}
{
"do1": { "couleur": [255, 0, 0], "capsule": "0", "court": "1" },
"re1": { "couleur": [255, 170, 20], "capsule": "0", "court": "1" },
"mi1": { "couleur": [255, 238, 0], "capsule": "0", "court": "1" },
"fa1": { "couleur": [81, 255, 0], "capsule": "0", "court": "1" },
"sol1": { "couleur": [0, 118, 88], "capsule": "0", "court": "1" },
"la1": { "couleur": [140, 0, 255], "capsule": "0", "court": "1" },
"si1": { "couleur": [221, 0, 115], "capsule": "0", "court": "1" },
"do2": { "couleur": [255, 0, 0], "capsule": "0", "court": "0" },
"do1": { "couleur": [255, 0, 0], "capsule": "1", "court": "1" },
"re1": { "couleur": [255, 170, 20], "capsule": "1", "court": "1" },
"mi1": { "couleur": [255, 238, 0], "capsule": "1", "court": "1" },
"fa1": { "couleur": [81, 255, 0], "capsule": "1", "court": "1" },
"sol1": { "couleur": [0, 118, 88], "capsule": "1", "court": "1" },
"la1": { "couleur": [140, 0, 255], "capsule": "1", "court": "1" },
"si1": { "couleur": [221, 0, 115], "capsule": "1", "court": "1" },
"dod1": { "couleur": [255, 0, 0], "capsule": "1", "court": "1", "alteration": "#" },
"mib1": { "couleur": [255, 238, 0], "capsule": "1", "court": "1", "alteration" : "b"},
"fad1": { "couleur": [81, 255, 0], "capsule": "1", "court": "1", "alteration": "#" },
"sold1": { "couleur": [0, 118, 88], "capsule": "1", "court": "1", "alteration": "#" },
"sib1": { "couleur": [221, 0, 115], "capsule": "1", "court": "1", "alteration" : "b" },
"do2": { "couleur": [255, 0, 0], "capsule": "1", "court": "1" },
"re2": { "couleur": [255, 170, 20], "capsule": "0", "court": "1" },
"mi2": { "couleur": [255, 238, 0], "capsule": "0", "court": "1" },
"fa2": { "couleur": [81, 255, 0], "capsule": "0", "court": "1" },
"sol2": { "couleur": [0, 118, 88], "capsule": "0", "court": "1" },
"la2": { "couleur": [140, 0, 255], "capsule": "0", "court": "1" },
"si2": { "couleur": [221, 0, 115], "capsule": "0", "court": "1" },
"do3": { "couleur": [255, 0, 0], "capsule": "0", "court": "0" },
"dod2": { "couleur": [255, 0, 0], "capsule": "0", "court": "1", "alteration": "#" },
"mib2": { "couleur": [255, 238, 0], "capsule": "0", "court": "1", "alteration" : "b"},
"fad2": { "couleur": [81, 255, 0], "capsule": "0", "court": "1", "alteration": "#" },
"sold2": { "couleur": [0, 118, 88], "capsule": "0", "court": "1", "alteration": "#" },
"sib2": { "couleur": [221, 0, 115], "capsule": "0", "court": "1", "alteration" : "b" }
"dod1": { "couleur": [255, 0, 0], "capsule": "0", "court": "1", "alteration": "#" },
"mib1": { "couleur": [255, 238, 0], "capsule": "0", "court": "1", "alteration" : "b"},
"fad1": { "couleur": [81, 255, 0], "capsule": "0", "court": "1", "alteration": "#" },
"sold1": { "couleur": [0, 118, 88], "capsule": "0", "court": "1", "alteration": "#" },
"sib1": { "couleur": [221, 0, 115], "capsule": "0", "court": "1", "alteration" : "b" }
}
elise.py 0 → 100644
#!/usr/bin/env python
# coding: utf8
import argparse
from musique.basicsynth import BasicSequenceur
from musique.exercice import GenerateurExercice
from musique.gamme import GammeTemperee
parser = argparse.ArgumentParser(description='Génère des documents à partir de la partition de "la lettre à Élise".')
parser.add_argument('--exercice-spectrogramme', help="Génère un exercice plutôt que le fichier son", dest='exerciceSpectrogramme', nargs=1)
parser.add_argument('--exercice-spectrogramme-transparent', help="Génère un exercice à projeter", dest='transparent', nargs=1)
parser.add_argument('--exercice-spectrogramme-correction', help="Génère la correction pour l'enseignant", dest='correction', nargs=1)
parser.add_argument('--boomwhackers', help="Fichier décrivant la configuration de boomwhackers disponible.", dest='boomwhackers', nargs=1)
parser.add_argument('--primaire', help="Génère un exercice destiné aux primaires", dest='primaire', action='store_true',default=False)
args = parser.parse_args()
gamme = GammeTemperee(95)
boomwhackers = ""
if not args.boomwhackers is None:
boomwhackers = args.boomwhackers[0]
elise = [
[ [gamme.mi(3), gamme.doublecroche],
[gamme.red(3), gamme.doublecroche],
[gamme.mi(3), gamme.doublecroche],
[gamme.red(3), gamme.doublecroche],
[gamme.mi(3), gamme.doublecroche],
[gamme.si(2), gamme.doublecroche],
[gamme.re(3), gamme.doublecroche],
[gamme.do(3), gamme.doublecroche],
[gamme.la(2), gamme.croche],
[gamme.silence(), gamme.croche],
[gamme.do(2), gamme.doublecroche],
[gamme.mi(2), gamme.doublecroche],
[gamme.la(2), gamme.doublecroche],
[gamme.si(2), gamme.croche],
[gamme.silence(), gamme.doublecroche],
[gamme.mi(2), gamme.doublecroche],
[gamme.sold(2), gamme.doublecroche],
[gamme.si(2), gamme.doublecroche],
[gamme.do(3), gamme.croche],
[gamme.silence(), gamme.doublecroche],
[gamme.mi(2), gamme.doublecroche],
[gamme.mi(3), gamme.doublecroche],
[gamme.red(3), gamme.doublecroche],
[gamme.mi(3), gamme.doublecroche],
[gamme.red(3), gamme.doublecroche],
[gamme.mi(3), gamme.doublecroche],
[gamme.si(2), gamme.doublecroche],
[gamme.re(3), gamme.doublecroche],
[gamme.do(3), gamme.doublecroche],
[gamme.la(2), gamme.croche],
[gamme.silence(), gamme.doublecroche],
[gamme.do(2), gamme.doublecroche],
[gamme.mi(2), gamme.doublecroche],
[gamme.la(2), gamme.doublecroche],
[gamme.si(2), gamme.croche],
[gamme.silence(), gamme.doublecroche],
[gamme.mi(2), gamme.doublecroche],
[gamme.do(3), gamme.doublecroche],
[gamme.si(2), gamme.doublecroche],
[gamme.la(2), gamme.croche]
]]
if args.exerciceSpectrogramme or args.transparent or args.correction:
g = GenerateurExercice(gamme.bpm)
g.setBoomwhackers(boomwhackers)
g.setLongueurPartitionColoree(3)
g.setLongueurPartitionMusicale(5)
if args.primaire:
g.setTableauSimplifie(True)
if args.exerciceSpectrogramme:
g.genererExerciceSpectrogramme(elise, args.exerciceSpectrogramme[0], "thème 6")
if args.transparent:
g.genererTransparentSpectrogramme(elise, args.transparent[0], "thème 6", "La lettre à Élise")
if args.correction:
g.genererCorrectionSpectrogramme(elise, args.correction[0], "thème 6", "La lettre à Élise")
else:
print "Génération de la version \"piano\""
s = BasicSequenceur(1, gamme.bpm, 3)
s.genererMelodie(elise, "sons/elise.wav")
......@@ -319,7 +319,15 @@ class GenerateurExercice(GammeTemperee):
for n in notes:
if not self.estJouable(n, self.shiftOctave):
print n, "n'est pas jouable"
return False
# we try with a smaller shift
self.shiftOctave += 1
for n in notes:
if not self.estJouable(n, self.shiftOctave):
self.shiftOctave -= 1
break
return True
......@@ -380,6 +388,7 @@ class GenerateurExercice(GammeTemperee):
nid = self.shiftNote(self.getOctaveEtIDNote(n), self.shiftOctave)
mw = self.boomwhackers[nid]
result += self.pointColore(mw, 0, 0, radius)
result += "\\end{tikzpicture}"
result += "\\\\ \n"
if not beamer:
......@@ -419,6 +428,12 @@ class GenerateurExercice(GammeTemperee):
radius = stepx * 0.22
# if the notes are all short, we increase space between circles
maxSpace = max(self.dureeEnNoires(note[1]) for note in partitions[0])
if maxSpace < self.noire:
stepx *= 2
print stepx
finDeLigne = self.longueurPartitionColoree * stepx
nbl = 1
......
......@@ -58,7 +58,7 @@ tabac = [ [ [gamme.do(3), gamme.croche],
if args.exerciceSpectrogramme or args.transparent or args.correction:
g = GenerateurExercice(gamme.bpm)
g.setBoomwhackers(boomwhackers)
g.setLongueurPartitionColoree(6)
g.setLongueurPartitionColoree(8)
g.setLongueurPartitionMusicale(8)
if args.primaire:
g.setTableauSimplifie(True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment