Subject: Re: Lot lilypond-user-fr, Vol 848, Parution 15

From: joel brassart <[email-masked]>
Date: Sat, 11 Mar 2023 17:44:33 +0100

Bonjour à tous,
je profite de l'occasion pour demander s'il existe une doc un peu
plus"explicite" concernant les paramètres de l'utilitaire midi2ly,
spécialement concernant les paramètres qui parlent de "duration" ? Je n'ai
pas encore compris de quelle manière les spécifier
au mieux (en fait, ce qu'ils représentent) pour éviter d'avoir par exemple,
comme dans le cas cité, des durées calculées en fractions "exotiques"*, *ou
bien des skip au li*eu*
de silences, des tempo qui changent de nombreuses fois, etc*.*

Joël Brassart

*"Linux ? Y a moins bien, mais c'est plus cher !"*

Le sam. 11 mars 2023 à 16:06, <[email-masked]> a écrit :

> Envoyez vos messages pour la liste lilypond-user-fr à
>         [email-masked]
>
> Pour vous (dés)abonner par le web, consultez
>         https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>
> ou, par email, envoyez un message avec 'help' dans le corps ou dans le
> sujet à
>         [email-masked]
>
> Vous pouvez contacter l'administrateur de la liste à l'adresse
>         [email-masked]
>
> Si vous répondez, n'oubliez pas de changer l'objet du message afin
> qu'il soit plus spécifique que "Re: Contenu du digest de
> lilypond-user-fr..."
> Thèmes du jour :
>
>    1. Re: Description erronée de la commande book (Ben)
>    2. import midi curieux (olivier charade)
>    3. Re: import midi curieux (Jean Abou Samra)
>
>
>
> ---------- Forwarded message ----------
> From: Ben <[email-masked]>
> To: Jean Abou Samra <[email-masked]>
> Cc: Lilypond - Liste <[email-masked]>
> Bcc:
> Date: Sat, 11 Mar 2023 14:32:03 +0100
> Subject: Re: Description erronée de la commande book
> Bonjour Jean,
>
> Merci pour votre réponse.
>
> Je faisais allusion à ce texte:
>
> "Lorsqu’un fichier ne comprend qu’un bloc \score, celui-ci est
> implicitement inclus dans un bloc \book. Le bloc \book d’un fichier
> source permet la production d’au moins un fichier dont le nom sera, par d
> ́efaut, d ́eduit du fichier source : le traitement de
> fandangopourelephants.ly produira donc fandangopourelephants.pdf. "
>
> et combiné au nom "\bookpart", qui laisserait entendre qu'un \book peut
> avoir plusieurs \bookpart, alors qu'en fait le \bookpart est au final
> indépendant du \book.
>
> Une possibilité serait de mettre tout le \bookpart dans une variable et
> d'avoir cela:
>
> \book
> {
> \bookpart { \ViolonIMouvementI }
> \bookpart { \ViolonIMouvementII }
> \bookpart { \ViolonIMouvementIII }
> }
>
> Sauf que j'ai des "book conceptuels" qui contiennent facilement une
> centaine de \bookpart, les bookpart se partagent les mêmes structures de
> header / paper / layout, etc, d'où la grande utilité de ne changer que
> quelques variables entre chaque bookpart au lieu de réécrire cent fois la
> même page de code.
>
> Pour ces gros books conceptuels, j'ai pris le temps de développer des
> scripts shell et python, qui utilisent même une compilation optionnelle via
> un \include.
>
>
> Pour le quatuor, j'ai trouvé plus rapide et plus pratique de tout mettre
> dans un seul fichier pdf, cela fait juste un peu bizarre d'avoir des
> parties qui commencent aux pages 28, 38, etc. (vu qu'on ne peut pas non
> plus facilement redéfinir les numéros de page), mais cela permet aussi une
> table des matières sur le tout, c'est donc un compromis que je trouve
> acceptable.
>
> Au plaisir,
>
> Ben
>
>
>
>
>
>
> Le 11 mars 2023 à 13:22, Jean Abou Samra <[email-masked]> a écrit :
>
> Le samedi 11 mars 2023 à 09:29 +0100, Ben a écrit :
>
> Bonjour,
>
> Je profite de la liste pour relever une incongruité de la commande \book
> qui m'a toujours laissé perplexe:
>
> Dans la doc, il est dit que lorsqu'on ne met pas de commande \book,
> celle-ci est implicite au fichier.
>
> Or, cela n'est pas correct, car le code suivant fonctionne, et c'est
> heureux, car sinon je serais très embêté:
>
> \version "2.25.1"
>
> \bookpart{ \markup "coucou" }
>
> test = "forêt"
>
> \bookpart{ \markup "hibou" }
>
> Mais si j'indique explicitement le book, cela ne fonctionne plus:
>
> \version "2.25.1"
>
> \book { \bookpart{ \markup "coucou" }
>
> test = "forêt"
>
> \bookpart{ \markup "hibou" } }
>
> Ce qui fait qu'au lieu de pouvoir compiler facilement plusieurs book en
> lilypond avec cette instruction:
>
> \version "2.25.1"
>
> \book{  \bookOutputName "Violon 1" \include "ViolonI.ly
> <http://partition1.ly/>"  }
>
> \book{  \bookOutputName "Violon 2" \include "ViolonII.ly
> <http://partition2.ly/>"  }
>
> Je dois passer par des shell scripts, ce qui rajoute toute une couche de
> complexité.
>
> Cette différence de comportement entre le \book implicite et le \book
> explicite n'est pas cohérente, elle devrait au moins être précisée dans la
> doc, ou mieux encore, le \book explicite devrait simplement fonctionner
> comme le \book implicite.
>
> Il y a plusieurs sections de la documentation qui parlent de structure des
> fichiers .ly, laquelle induit en erreur selon vous ?
>
> Je peux comprendre votre point de vue... mais le mien est complètement
> différent, je n'aurais même pas pensé à mettre tout le contenu entier du
> fichier dans \book { ... }. Il y a bel et bien création d'un book
> implicite, simplement c'est à un niveau plus « conceptuel » que le niveau
> purement syntaxique. \book est une commande qui crée un book à partir des
> éléments qu'il y a à l'intérieur : expressions musicales, markups,
> bookparts, scores, blocs paper. Et s'il n'y a aucun \book, LilyPond en
> crée un à partir des « éléments qu'il y a à l'intérieur du fichier » :
> expressions musicales, markups, bookparts, scores (les blocs \paper,
> c'est une autre histoire). Remarquez que les affectations ne sont pas la
> seule chose qui devrait marcher à l'intérieur d'un \book pour faire
> fonctionner votre code \book { \include "ViolonI.ly" } : il y aurait
> aussi notamment les blocs \layout (certes, c'est assez dommage que \layout
> ne puisse pas se mettre dans un \book, il y a eu encore récemment des
> discussions à ce sujet et j'ai bon espoir que ça change).
>
> Est-ce que vous ne pouvez pas vous en sortir en mettant le \book autour
> de la musique à l'intérieur des fichiers ViolonI.ly et ViolonII.ly ?
>
> Cordialement,
>
> Jean
>
>
>
>
>
> ---------- Forwarded message ----------
> From: olivier charade <[email-masked]>
> To: Lilypond - Liste <[email-masked]>
> Cc:
> Bcc:
> Date: Sat, 11 Mar 2023 15:32:28 +0100
> Subject: import midi curieux
> Bonjour,
>
> Avant, lorsque je suivais un cursus de composition “classique“,
> j'écrivais sous lilypond et j'exportais en midi vers Rosegarden.
>
> Maintenant que je fais de la musique à l'image, j'écris avec LogicPro et
> je voudrai bien arriver à exporter en MIDI  sous Lilypond pour fournir à
> d'éventuels musiciens des partitions propres.
>
> Comme c'est loin de fonctionner de façon immédiate (conducteurs obtenus
> absolument incompréhensibles), je pars d'un cas simple: une seule piste,
> une seule région, deux mesures en tout et pour tout, avec 6 notes qui se
> courent après.
>
> Voici le résultat, pour 4 noires, une demi-pause et encore deux noires:
>
> % Lily was here -- automatically converted by midi2ly from midi.mid
> \version "2.14.0"
>
> \layout {
>    \context {
>      \Voice
>      \remove Note_heads_engraver
>      \consists Completion_heads_engraver
>      \remove Rest_engraver
>      \consists Completion_rest_engraver
>    }
> }
>
> trackAchannelA = {
>
>
>    \key c \major
>
>    \set Staff.instrumentName = "Inst 1"
>
>    % [INSTRUMENT_NAME] Inst 1
>
>    \time 4/4
>
>
>    \key c \major
>
>    \tempo 4 = 120
>    \skip 1*2
> }
>
> trackAchannelB = \relative c {
>    b'4*476/480 r4*4/480 cis4*476/480 r4*4/480 dis4*476/480 r4*4/480
> f4*476/480
>    r4*964/480 g4*476/480 r4*4/480 b4*476/480
> }
>
> trackA = <<
>    \context Voice = voiceA \trackAchannelA
>    \context Voice = voiceB \trackAchannelB
>  >>
>
>
> \score {
>    <<
>      \context Staff=trackA \trackA
>    >>
>    \layout {}
>    \midi {}
> }
>
> }
>
> Je vois bien un pb de quantification côté Logic que je n'arrive pas à
> résoudre. Mais y a-t-il un moyen de forcer une certaine quantification
> côté conversion en lilypond?
>
> Merci d'avance,
>
> Olivier
>
>
>
>
>
>
>
> ---------- Forwarded message ----------
> From: Jean Abou Samra <[email-masked]>
> To: olivier charade <[email-masked]>, Lilypond - Liste <
> [email-masked]>
> Cc:
> Bcc:
> Date: Sat, 11 Mar 2023 16:06:34 +0100
> Subject: Re: import midi curieux
>
> Le samedi 11 mars 2023 à 15:32 +0100, olivier charade a écrit :
>
> Bonjour,
>
> Avant, lorsque je suivais un cursus de composition “classique“, j'écrivais
> sous lilypond et j'exportais en midi vers Rosegarden.
>
> Maintenant que je fais de la musique à l'image, j'écris avec LogicPro et
> je voudrai bien arriver à exporter en MIDI  sous Lilypond pour fournir à
> d'éventuels musiciens des partitions propres.
>
> Comme c'est loin de fonctionner de façon immédiate (conducteurs obtenus
> absolument incompréhensibles), je pars d'un cas simple: une seule piste,
> une seule région, deux mesures en tout et pour tout, avec 6 notes qui se
> courent après.
>
> Voici le résultat, pour 4 noires, une demi-pause et encore deux noires:
>
> % Lily was here -- automatically converted by midi2ly from midi.mid
> \version "2.14.0"
>
> \layout {    \context {      \Voice      \remove Note_heads_engraver
> \consists Completion_heads_engraver      \remove Rest_engraver
> \consists Completion_rest_engraver    } }
>
> trackAchannelA = {
>
>    \key c \major
>
>    \set Staff.instrumentName = "Inst 1"
>
>    % [INSTRUMENT_NAME] Inst 1
>
>    \time 4/4
>
>    \key c \major
>
>    \tempo 4 = 120    \skip 1*2 }
>
> trackAchannelB = \relative c {    b'4*476/480 r4*4/480 cis4*476/480 r4*4/480
> dis4*476/480 r4*4/480 f4*476/480    r4*964/480 g4*476/480 r4*4/480
> b4*476/480 }
>
> trackA = <<    \context Voice = voiceA \trackAchannelA    \context Voice =
> voiceB \trackAchannelB  >>
>
> \score {    <<      \context Staff=trackA \trackA    >>    \layout {}
> \midi {} }
>
> }
>
> Je vois bien un pb de quantification côté Logic que je n'arrive pas à
> résoudre. Mais y a-t-il un moyen de forcer une certaine quantification côté
> conversion en lilypond?
>
> Oui, même si Frescobaldi ne le propose pas dans son menu d'import MIDI. En
> lançant midi2ly en ligne de commande plutôt que depuis Frescobaldi, vous
> pouvez faire par exemple
>
> /chemin/vers/lilypond-2.24.1/bin/midi2ly --duration-quant=32 x.ly
>
> pour convertir x.ly en quantifiant à la triple croche.
>
> Cordialement,
>
> Jean
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 12 Mar 2023 20:25:07 +0100

Le samedi 11 mars 2023 à 17:44 +0100, joel brassart a écrit :
> Bonjour à tous,  
> je profite de l'occasion pour demander s'il existe une doc un peu plus"explicite" concernant les paramètres de l'utilitaire midi2ly,  
> spécialement concernant les paramètres qui parlent de "duration" ? Je n'ai pas encore compris de quelle manière les spécifier  
> au mieux (en fait, ce qu'ils représentent) pour éviter d'avoir par exemple, comme dans le cas cité, des durées calculées en fractions "exotiques"*, *ou bien des* *skip au li*eu*  

Les deux options en question sont (extrait de `midi2ly --help`) :

```
   -d, --duration-quant=DUR
                        quantifie les durées de note d'après DUR
   -s, --start-quant=DUR
                        quantifie les débuts de note sur DUR
```

Si j'ai bien lu le code : d'abord ce sont des durées (durations), c'est à dire qu'elles s'entrent avec le même système que LilyPond, à savoir 1 = ronde, 2 = blanche, 4 = noire, etc. `--start-quant` est la durée de quantification du début de chaque note, par exemple si on passe `--start-quant=4`, toutes les notes commençeront sur un nombre rond de noires depuis le début de la partition. Et avec `--duration-quant=4`, toutes les notes auront une durée multiple d'une noire.

Maintenant, comme je le disais à Olivier, midi2ly est peu maintenu, et le MIDI est de toute façon très peu adapté à la conversion en LilyPond (pas de distinction entre silences et silences invisibles, nombre de canaux limité à 16, etc.), donc si vous pouvez obtenir votre original en MusicXML plutôt qu'en MIDI, ça a plus de chances de bien fonctionner.

Cordialement,

Jean