|
From: | Éditions IN NOMINE |
Subject: | Re: Variables, aléatoire et jeu musical (Moza rt) |
Date: | Mon, 26 Jul 2010 14:57:08 +0200 |
User-agent: | Thunderbird 2.0.0.24 (X11/20100411) |
Aaaargh ça a déjà
commencé ... >:o
Je vous livre mon petit script pour transcrire des tablatures allemandes pour viole (à adapter pour le luth en se pastillant la préface des Musica Teusch de Gerle, 1546). Ca peut servir d'exemples pour d'autres applications ! Pour la voix de basse, par exemple : - créez un fichier bassussource.txt (ou un autre nom, mais il faudra modifier le code python en conséquance) - rentrez dedans la tablature allemande en reproduisant les lettres à l'identique et le rythme suivant le code Lilypond (Attention : les chiffres de la tablature ont été remplacés par des lettres majuscules comme indiqué dans le dictionnaire du fichier bassus.py). Se référer au dictionnaire du code bassus.py - faites python bassus.py dans un terminal - et copiez coller le résultat du terminal dans votre Frescobaldi (ou autre). C'est effectivement facile à coder, et souverainement efficace : je ne vous raconte pas la transcription à la mano de tout ce bazar ! Je vous ai mis en PJ un exemple de tablature et le fichier bassussource.txt associé ci-dessous avec le code python bassus.txt (je suis dans un bon jour ;-) ) A bientôt ! JMarc bassus.py import os, re, sys #correspondances basse = { 'A' : 'ees,', 'F' : 'e,', 'L' : 'f,', 'Q' : 'fis,', 'U' : 'g,', #le chiffre 1 'a' : 'gis,', 'f' : 'a,', 'l' : 'bes,', 'q' : 'b,', 'D' : 'c', #le chiffre 2 'b' : 'cis', 'g' : 'd', 'm' : 'ees', 'T' : 'e', #le chiffre 3 'c' : 'f', 'h' : 'fis', 'n' : 'g', 's' : 'gis', 'K' : 'a', #le chiffre 4 'd' : 'bes', 'i' : 'b', 'o' : 'c\'', 't' : 'cis\'', 'C' : 'd\'', #le chiffre 5 'e' : 'ees\'', 'k' : 'e\'', 'p' : 'f\'', 'v' : 'fis\'', '9' : 'g\'\'' } breve = {'B' : 'breve', 'L' : 'longa'} #initialisation de la chaine a traduire source=open('bassussource.txt') # à modifier suivant le nom de votre fichier source contenu = source.read() #traduction traduction = "".join(basse.get(c, c) for c in contenu) #transcription des lettres final = "".join(breve.get(c, c) for c in traduction) #transcription des \breve et \longa print final #fermeture source.close() bassussource.txt d\B c d1. c2 n1 m c\B R1 c1 D m l R1 d1 c2. n4 K2 d n c n1 c\B R1 n1 c D g\B R1 g\B g1 n\B c1 l4 D g m c2 n c c l\B Daniel Cartron a écrit : Le lundi 26 juillet 2010, R. Bastian a écrit :Certainement, mais c'est très dangereux de conseiller Python, car là le public risque de se rendre compte qu'il existe des langages logiquement construits et faciles d'usage.:-D |
[Prev in Thread] | Current Thread | [Next in Thread] |