From 52cc655c36b2f8f11b95cc318b1196be7ffe2130 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau <J-Marie.Favreau@uca.fr> Date: Tue, 9 Apr 2019 12:22:25 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20quelques=20d=C3=A9tails=20qui=20re?= =?UTF-8?q?ndent=20plus=20facilement=20lisible=20les=20documents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- musique/exercice.py | 23 +++++++++++++++-------- musique/gamme.py | 4 ++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/musique/exercice.py b/musique/exercice.py index 3e20099..d10f6c3 100644 --- a/musique/exercice.py +++ b/musique/exercice.py @@ -235,10 +235,12 @@ class GenerateurExercice(GammeTemperee): result = "\\renewcommand{\\arraystretch}{1.3}" result += "\\begin{table}[H]\n\centering\n" - result += "\\begin{tabular}{|c||c|c|}\n" + if len(partition) > 30: + result += "{\\footnotesize \n" + result += "\\begin{tabular}{|c||c|c|c|}\n" result += "\\hline\n" - result += " & \multicolumn{2}{c|}{Codage} \\\\ \n" - result += " &\qquad\\textbf{Note}\qquad~ & \qquad\\textbf{Durée}\qquad~ \\\\ \n" + result += " & \multicolumn{2}{c|}{Codage} & Représentation \\\\ \n" + result += " &\qquad\\textbf{Note}\qquad~ & \qquad\\textbf{Durée}\qquad~ & \\textbf{Graphique} \\\\ \n" result += "\\hline \n" for i, note in enumerate(partition): result += str(i + 1) + " & " @@ -246,20 +248,22 @@ class GenerateurExercice(GammeTemperee): if isinstance(note[0], float): if note[0] > 0: result += self.frequenceToLaTeX(note[0], - self.minOctave, self.maxOctave) + "& " + self.nomDuree(note[1]) + " \\\\\n" + self.minOctave, self.maxOctave) + "& " + self.nomDuree(note[1]) + " & \\\\\n" result += "\\hline\n" else: - result += " & " + self.nomDuree(note[1]) + " \\\\\n" + result += " & " + self.nomDuree(note[1]) + " & \\\\\n" result += "\\hline\n" else: - result += " & " + ', '.join([self.frequenceToLaTeX(n) for n in note[0]]) + " & " + self.nomDuree(note[1]) + " \\\\\n" + 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 solution: result += "\\hline\n" result += "\\end{tabular}\n" + if len(partition) > 30: + result += "}\n" if solution: result += "\\caption{Tableau des notes de la partition (solution)}\n" else: @@ -289,6 +293,9 @@ class GenerateurExercice(GammeTemperee): result += "\\end{tabular}\n" result += "\\caption{Table des fréquences de la gamme tempérée}\n" result += "\\end{table}\n" + + if self.contientSilences(partitions): + result += "Attention, la partition peut également contenir des silences, dont on peut mesurer la longueur, comme les notes" return result # retourne la translation d'octave nécessaire pour jouer avec @@ -344,7 +351,7 @@ class GenerateurExercice(GammeTemperee): def pointColore(self, boomwhacker, x, y, r): result = self.couleurBoomwhackerToTikz(boomwhacker) - rayon = r * 1.2 if boomwhacker["court"] == "0" else r + rayon = r * 1.3 if boomwhacker["court"] == "0" else r result += "\\fill[fill=tempcolor] ("+ \ str(x) + "," + str(y) + ") circle (" + str(rayon) + ");" if "alteration" in boomwhacker: diff --git a/musique/gamme.py b/musique/gamme.py index 86f47e5..4149537 100644 --- a/musique/gamme.py +++ b/musique/gamme.py @@ -206,6 +206,10 @@ class GammeTemperee: def notesDansPartition(self, partitions): l = [[ [x] if isinstance(x, float) else x for x in [note[0] if not isinstance(note[0], float) else note[0] for note in partition]] for partition in partitions] return [x for x in sum(sum(l, []), []) if x != 0] + + def contientSilences(self, partitions): + l = [[ [x] if isinstance(x, float) else x for x in [note[0] if not isinstance(note[0], float) else note[0] for note in partition]] for partition in partitions] + return len([x for x in sum(sum(l, []), []) if x == 0]) != 0 # retourne la fréquence minimum utilisée dans les partitions -- GitLab