Skip to content
Snippets Groups Projects
Commit 5c16b8c2 authored by Jean-Marie Favreau's avatar Jean-Marie Favreau
Browse files

Intégration des suggestions de la semaine dernière

parent 995f811c
No related branches found
No related tags found
No related merge requests found
......@@ -13,11 +13,12 @@ class GenerateurExercice(GammeTemperee):
# Paramètres:
# * bpm: nombre de battements par minute (= nombre de noires par minute)
# * dureeFrappe: duree de la frappe
def __init__(self, bpm = 120, dureeFrappe = 0.02):
def __init__(self, bpm = 120, dureeFrappe = 0.04):
GammeTemperee.__init__(self, bpm)
self.dureeFrappe = dureeFrappe
self.margeDocument = 1.0
self.margeDuree = 0.
self.margeDureeDebut = 0.
self.margeDureeFin = 0.15
self.margeFrequence = 100
self.margeFrequenceLegende = 20
self.margeLegende = 2.0
......@@ -61,7 +62,7 @@ class GenerateurExercice(GammeTemperee):
self.largeur = largeur
self.hauteur = hauteur
self.echelleX = largeur / (self.duree + self.margeDuree * 2)
self.echelleX = largeur / (self.duree + self.margeDureeDebut + self.margeDureeFin)
self.echelleY = hauteur / (self.fmax - self.fmin + self.margeFrequence * 2 + self.margeFrequenceLegende)
......@@ -82,14 +83,15 @@ class GenerateurExercice(GammeTemperee):
result += "\\usepgflibrary{arrows}\n"
result += "\\usetikzlibrary{arrows}\n"
result += "\\pagestyle{empty}\n"
result += "\\usepackage{libertine}"
result += "\\usepackage{libertinust1math}"
result += "\\usepackage{helvet}"
result += "\\renewcommand{\\familydefault}{\\sfdefault}"
result += "\\title{" + titre + "}\n"
result += "\\date{}\n"
result += "\\begin{document}\n"
result += "\\maketitle\n"
result += "\\thispagestyle{empty}\n"
return result
# cette fonction retourne le pied d'un document LaTeX
......@@ -172,10 +174,17 @@ class GenerateurExercice(GammeTemperee):
result = "\\renewcommand{\\arraystretch}{1.5}"
result += "\\begin{table}[H]\n\centering\n"
if solution:
result += "\\begin{tabular}{|c||c|c||c|c|}\n"
else:
result += "\\begin{tabular}{|c||c|c|}\n"
result += "\\hline\n"
if solution:
result += " & \multicolumn{2}{c||}{Transcription} & \multicolumn{2}{c|}{Codage} \\\\ \n"
result += "\\textbf{Note} & \\textbf{Fréquence} (Hz) & \\textbf{Durée} (s) &\qquad\\textbf{Note}\qquad~ & \qquad\\textbf{Tête}\qquad~ \\\\ \n"
else:
result += " & \multicolumn{2}{c|}{Codage} \\\\ \n"
result += "\\textbf{Durée} (s) &\qquad\\textbf{Note}\qquad~ & \qquad\\textbf{Tête}\qquad~ \\\\ \n"
result += "\\hline \n"
for i, note in enumerate(partition):
result += str(i + 1) + " & "
......@@ -189,7 +198,7 @@ class GenerateurExercice(GammeTemperee):
result += " & " + ', '.join([self.frequenceToLaTeX(n) for n in note[0]]) + " & " + self.nomDuree(note[1]) + " \\\\\n"
result += "\\hline\n"
else:
result += " & & & \\\\\n"
result += " & \\\\\n"
result += "\\hline\n"
if not solution:
result += "\\hline\n"
......@@ -265,14 +274,14 @@ class GenerateurExercice(GammeTemperee):
# à l'horodatage donné
def noteSpectrogrammePartition(self, frequence, duree, horodatage, couleur = "black"):
y = self.frequenceEnCm(frequence)
return self.noteGraphique(y, self.margeDuree, duree, horodatage, couleur)
return self.noteGraphique(y, self.margeDureeDebut, duree, horodatage, couleur)
def noteGraphique(self, y, decalageDuree, duree, horodatage, couleur = "black"):
xmin = self.dureeEnCm(horodatage + decalageDuree)
xmilieu = self.dureeEnCm(horodatage + self.dureeFrappe + decalageDuree)
xmax = self.dureeEnCm(horodatage + duree + decalageDuree)
result = "\draw[" + couleur +", very thick] (" + str(xmin) + "," + str(y) + ") -- (" + str(xmilieu) + "," + str(y) + ");\n"
result += "\draw[" + couleur +", very thin] (" + str(xmilieu) + "," + str(y) + ") -- (" + str(xmax) + "," + str(y) + ");\n"
result = "\draw[" + couleur +", line width=1.5mm] (" + str(xmin) + "," + str(y) + ") -- (" + str(xmilieu) + "," + str(y) + ");\n"
result += "\draw[" + couleur +", ultra thick] (" + str(xmilieu) + "," + str(y) + ") -- (" + str(xmax) + "," + str(y) + ");\n"
return result
# dessine sur le spectrogramme l'accord donné en paramètre,
......@@ -308,9 +317,9 @@ class GenerateurExercice(GammeTemperee):
result = ""
for i in range(0, nbGraduations + 1):
h = i * pas
hinc = self.dureeEnCm(h + self.margeDuree)
hinc = self.dureeEnCm(h + self.margeDureeDebut)
result += "\draw[black] (" + str(hinc) + ", -0.1) -- ";
result += "\draw[black, thick] (" + str(hinc) + ", -0.1) -- ";
result += "(" + str(hinc) + ", 0.)\n";
result += "(" + str(hinc) + ", -0.1) node[below]{"
if h.is_integer():
......@@ -328,7 +337,7 @@ class GenerateurExercice(GammeTemperee):
for frequence in frequences:
finc = self.frequenceEnCm(frequence)
result += "\draw[black] (-0.1, " + str(finc) + ") -- ";
result += "\draw[black, thick] (-0.1, " + str(finc) + ") -- ";
result += "(0," + str(finc) + ")\n";
result += "(-0.1," + str(finc) + ") node[left]{" + str(int(round(frequence))) + "};\n";
......@@ -344,12 +353,12 @@ class GenerateurExercice(GammeTemperee):
for i in range(0, nbsteps):
if i != 0 or premier:
h = i * espace
hinc = self.dureeEnCm(h + self.margeDuree)
hinc = self.dureeEnCm(h + self.margeDureeDebut)
if i % 4 == 0:
result += "\draw[lightgray, ultra thin] (" + str(hinc) + ", 0) -- ";
result += "\draw[thin] (" + str(hinc) + ", 0) -- ";
else:
result += "\draw[lightgray!30, ultra thin] (" + str(hinc) + ", 0) -- ";
result += "\draw[ultra thin] (" + str(hinc) + ", 0) -- ";
result += "(" + str(hinc) + ", " + str(self.hauteur) + ");\n";
return result
......@@ -360,13 +369,13 @@ class GenerateurExercice(GammeTemperee):
frequences = self.notesDansIntervalle(self.minFrequence(partitions), self.maxFrequence(partitions), True)
for frequence in frequences:
finc = self.frequenceEnCm(frequence)
result += "\draw[lightgray, ultra thin] (0, " + str(finc) + ") -- ";
result += "\draw[thin] (0, " + str(finc) + ") -- ";
result += "(" + str(self.largeur) + ", " + str(finc) + ");\n";
frequences = self.notesDansIntervalle(self.minFrequence(partitions), self.maxFrequence(partitions))
for frequence in frequences:
finc = self.frequenceEnCm(frequence)
result += "\draw[lightgray!30, dashed, ultra thin] (0, " + str(finc) + ") -- ";
result += "\draw[dashed, ultra thin] (0, " + str(finc) + ") -- ";
result += "(" + str(self.largeur) + ", " + str(finc) + ");\n";
return result
......@@ -387,14 +396,14 @@ class GenerateurExercice(GammeTemperee):
# axe des abscisses
result += "\draw[->, black] (0, 0) -- ";
result += "\draw[->, black, thick] (0, 0) -- ";
result += "(" + str(self.largeur) + ", 0) node[below]{temps (s)};\n";
# axe des ordonnées
result += "\draw[black, dashed] (0, 0) -- ";
result += "\draw[black, dashed, thick] (0, 0) -- ";
result += "(0," + str(self.frequenceEnCm(self.fmin)) + ");\n";
result += "\draw[->, black] (0, " + str(self.frequenceEnCm(self.fmin)) + ") -- ";
result += "\draw[->, black, thick] (0, " + str(self.frequenceEnCm(self.fmin)) + ") -- ";
result += "(0," + str(self.hauteur) + ") node[above]{fréquence (Hz)};\n";
# gradations sur les axes
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment