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

Ajout des longueurs des durées

parent 920abf23
Branches
No related tags found
No related merge requests found
......@@ -122,13 +122,16 @@ class GenerateurExercice(GammeTemperee):
ds = self.durees(partitions)
result += "\\begin{table}[H]\n\centering\n"
result += "\\begin{tabular}{|c|c|}\n"
result += "\\begin{tabular}{|c|c|c|c|}\n"
result += "\\hline\n"
result += "\\textbf{Tête de note} & \\textbf{Durée} (s) \\\\ \n"
result += "Graphique & \\textbf{Longueur} (cm) & \\textbf{Durée} (s) & \\textbf{Tête de note} \\\\ \n"
result += "\\hline\n"
for duree in ds:
result += self.nomDuree(duree) + " & " + '{0:.2f}'.format(duree) + " \\\\\n"
result += "\\begin{tikzpicture}[]"
result += self.noteGraphique(0, 0, duree, 0)
result += "\\end{tikzpicture}"
result += "& " + '{0:.2f}'.format(self.dureeEnCm(duree)) + " & " + '{0:.2f}'.format(duree) + "&" + self.nomDuree(duree) + "\\\\\n"
result += "\\hline\n"
result += "\\end{tabular}\n"
......@@ -148,7 +151,7 @@ class GenerateurExercice(GammeTemperee):
result += "\\begin{tabular}{|c||c|c||c|c|}\n"
result += "\\hline\n"
result += " & \multicolumn{2}{c||}{Transcription} & \multicolumn{2}{c|}{Codage} \\\\ \n"
result += "\\textbf{Note} & \\textbf{Fréquence} (Hz) & \\textbf{Durée} (s) &\\textbf{Note} & \\textbf{Durée} \\\\ \n"
result += "\\textbf{Note} & \\textbf{Fréquence} (Hz) & \\textbf{Longueur} (cm) &\\textbf{Note} & \\textbf{Durée} \\\\ \n"
result += "\\hline \n"
for i, note in enumerate(partition):
result += str(i + 1) + " & "
......@@ -181,15 +184,15 @@ class GenerateurExercice(GammeTemperee):
notes = self.getOctaveEtIDNoteDansIntervalle(self.minFrequence(partitions), self.maxFrequence(partitions))
result += "Fréquences de chacune des notes utilisées sur la partition:"
result += "Fréquences de chacune des notes utilisées sur la partition (arrondies à l'entier le plus proche):"
result += "\\begin{table}[H]\n\centering\n"
result += "\\begin{tabular}{|c|c|}\n"
result += "\\hline\n"
result += "\\textbf{Note} & \\textbf{Fréquence} (Hz) \\\\ \n"
result += "\\textbf{Fréquence} (Hz) & \\textbf{Note} \\\\ \n"
result += "\\hline \n"
for note in notes:
result += self.toLaTeX(note[0], note[1]) + " & " + str(int(round(self.note(note[0], note[1])))) + "\\\\\n"
result += str(int(round(self.note(note[0], note[1])))) + " & " + self.toLaTeX(note[0], note[1]) + "\\\\\n"
result += "\\hline\n"
result += "\\end{tabular}\n"
......@@ -227,16 +230,19 @@ class GenerateurExercice(GammeTemperee):
def frequenceEnCm(self, frequence):
return (self.margeFrequence + frequence - self.fmin) * self.echelleY
def horodatageEnCm(self, horodatage):
return (self.margeDuree + horodatage) * self.echelleX
def dureeEnCm(self, duree):
return duree * self.echelleX
# dessine sur le spectrogramme l'accord donné en paramètre,
# à l'horodatage donné
def noteSpectrogrammePartition(self, frequence, duree, horodatage, couleur):
def noteSpectrogrammePartition(self, frequence, duree, horodatage, couleur = "black"):
y = self.frequenceEnCm(frequence)
xmin = self.horodatageEnCm(horodatage)
xmilieu = self.horodatageEnCm(horodatage + self.dureeFrappe)
xmax = self.horodatageEnCm(horodatage + duree)
return self.noteGraphique(y, self.margeDuree, 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"
return result
......@@ -273,7 +279,7 @@ class GenerateurExercice(GammeTemperee):
result = ""
for i in range(0, nbGraduations + 1):
h = i * pas
hinc = self.horodatageEnCm(h)
hinc = self.dureeEnCm(h + self.margeDuree)
result += "\draw[black] (" + str(hinc) + ", -0.1) -- ";
result += "(" + str(hinc) + ", 0.)\n";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment