Subject: Noms de notes, Python-ly et Frescobladi

From: Raphael Andre <[email-masked]>
Date: Wed, 1 Dec 2021 17:11:58 +0100

Bonjour,
Je me suis inventé un langage de notes basé sur le néerlandais avec des alias:
 - pour les 7 dièses: t u v w x y z en partant de la#, si#, etc...
 - pour les 7 bémols: h i j k l n o en partant de lab, sib, etc...

Une fois quelques points de repères mémorisés (fa#=y, do#=v, sib=i, mib=l) les notes se suivent diatoniquement et ça s'utilise assez facilement, même pour prendre des notes à la main.

En pièce jointe vous trouverrez:
- un exemple,
- le fichier "alphaInclude.ly" (merci à Valentin Villenave pour le peaufinage),
- une modification du fichier "pitch/__init__.py" pour l'intégration dans python-ly et donc dans frescobaldi (traductions, transpositions, etc...). Dans ma debian le fichier se trouve ici "/usr/lib/python3/dist-packages/ly/pitch/__init__.py" .

J'ai un problème avec python-ly, il ne modifie pas les fa# et sol# (resp. "y" et "z"), je n'arrive pas à comprendre pourquoi!

merci, Raphaël

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 2 Dec 2021 18:29:02 +0100

Bonjour,

Pourriez-vous préciser le problème ? Qu'essayez-vous de faire
au juste ? En remplaçant dans python-ly le fichier
pitch/__init__.py par celui que vous avez joint, j'obtiens
un résultat qui semble correct avec la commande translate,
qui change la langue du nom des notes. J'ai mis ceci dans
essai.ly :

{
   a b c d e f g
   ais bis cis dis eis fis gis
   aes bes ces des ees fes ges
}

La commande « ly "translate alpha" essai.ly » me donne alors
bien :

\language "alpha"
{
   a b c d e f g
   t u v w x y z
   h i j k l n o
}

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 4 Dec 2021 17:01:29 +0100

Le 04/12/2021 à 15:51, Raphael Andre a écrit :
> Bonjour Jean,
> la traduction néerlandais>alpha fonctionne bien en effet,
> mais ensuite la traduction de retour alpha>néerlandais me laisse "y" et
> "z" en language alpha, alors qu'ils sont définis de la même manière que
> les autres dans la config python-ly. Cf résultat ci dessous:
> {
>    a b c d e f g
>    ais bis cis dis eis y z
>    as bes ces des es fes ges
> }
> j'ai essayé de placer "y" et "z" ailleurs dans le tableau, mais ça ne
> change rien,
> Raphaël

Bonjour,

(Pensez à répondre aussi à la liste, cela permet à la
discussion de se poursuivre de façon plus élargie, et
comme les archives sont publiques on peut chercher dans
réponses.)

C'est assez comique. Voici comment le fichier
ly/lex/lilypond.py définit la forme d'une hauteur,
ligne 157 :

class Note(MusicItem):
     rx = r"[a-x]+(?![A-Za-z])"

Cette expression régulière* signifie exactement
« suite de lettres minuscules entre A et X, suivie
d'un caractère qui n'est pas une lettre, majuscule
ou minuscule ». Ainsi, y et z ne sont pas reconnues.
Je ne sais pas du tout pourquoi le code est ainsi.
C'est peut-être une faute de frappe. Quoi qu'il en soit,
en remplaçant [a-x] par [a-z], vous obtiendrez le
résultat souhaité.

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 4 Dec 2021 17:05:56 +0100

Et l'astérisque…

> Cette expression régulière* signifie exactement

* Les expressions régulières sont un moyen standard d'effectuer
des recherches textuelles. Vous trouverez des explications
sur celles que reconnaît Python dans cette page de documentation,
qui est même traduite en français :

https://docs.python.org/fr/3/howto/regex.html

Cordialement,
Jean