Subject: fichiers midi

From: Vincent Gay <[email-masked]>
Date: Fri, 7 Apr 2023 22:25:44 +0200

re-bonsoir

après une certaine période de procrastination j'ai enfin fini de coder mon recueil de partitions : 150 œuvres -> un peu plus de 400 pages. Vient donc la longue et fastidieuse période des corrections :-(

Évidement le plus rapide est de s'en remettre à ses oreilles mais le recueil contenant plus de 200 blocs \score il serait génial dans le bloc midi { ... } de pouvoir indiquer des noms de fichier distincts. Serait-ce possible ?

Pour ceux qui marqueraient un quelconque intérêt à mon travail le résultat (sources incluses) et à l'adresse ci-dessous (durée de validité du lien 1 mois)
https://zzz.zaclys.com/remise/a9e71499509f8c9c8c2c566dc7fbd84c/2023-04-07_Recueil_Vincent.zip

Bonne nuit.

--
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

From: Jacques Menu <[email-masked]>
Date: Sat, 8 Apr 2023 00:48:09 +0200

Bonsoir Vincent,

C’est un travail de Romain, je ne savais pas que je jazz remontait à si longtemps!

JM

> Le 7 avr. 2023 à 22:25, Vincent Gay <[email-masked]> a écrit :
> 
> re-bonsoir
>

---

From: Nicolas Lehembre <[email-masked]>
Date: Sat, 8 Apr 2023 10:41:50 +0200

bonjour Vincent,

comment voulez vous organiser cela ?

on relit toutes les partitions chacun ou on fait des "sous groupes" ?

bravo pour le travail déjà abattu !

Nicolas

Le 7/04/23 à 22:25, Vincent Gay a écrit :
> re-bonsoir
>
> après une certaine période de procrastination j'ai enfin fini de coder 
> mon recueil de partitions : 150 œuvres -> un peu plus de 400 pages. 
> Vient donc la longue et fastidieuse période des corrections :-(
>
> Évidement le plus rapide est de s'en remettre à ses oreilles mais le 
> recueil contenant plus de 200 blocs \score il serait génial dans le 
> bloc midi { ... } de pouvoir indiquer des noms de fichier distincts. 
> Serait-ce possible ?
>
> Pour ceux qui marqueraient un quelconque intérêt à mon travail le 
> résultat (sources incluses) et à l'adresse ci-dessous (durée de 
> validité du lien 1 mois)
> https://myrealbook.vintherine.org/  -http://photos.vintherine.org/

---

From: Olivier Miakinen <[email-masked]>
Date: Sat, 8 Apr 2023 11:00:36 +0200

Bonjour,

Le 07/04/2023 22:25, Vincent Gay a écrit :
> 
> après une certaine période de procrastination j'ai enfin fini de coder mon 
> recueil de partitions : 150 œuvres -> un peu plus de 400 pages. Vient donc la 
> longue et fastidieuse période des corrections :-(
> 
> Évidement le plus rapide est de s'en remettre à ses oreilles mais le recueil 
> contenant plus de 200 blocs \score il serait génial dans le bloc midi { ... } de 
> pouvoir indiquer des noms de fichier distincts. Serait-ce possible ?

Je verrais bien une possibilité, mais ça ferait pas mal de boulot
(quoique... peut-être envisageable avec une moulinette automatique
du type awk ou perl), ce serait de bien laisser tous les layouts
dans un seul book, mais de mettre chaque midi dans un book à part
avec un nom issu du titre de l'œuvre.

Je n'ai pas encore regardé tes sources, et je n'en ai pas le temps
tout de suite, mais je le ferai si je trouve du temps plus tard.

---

From: Martial R <[email-masked]>
Date: Sat, 8 Apr 2023 12:10:41 +0200

Bonjour,
message pour rien  :-)
j'ai regardé, effectivement si on met \midi {} dans chaque  \bookpart
des fichier.ly
on à une sortie midi, mais toutes sous le nom Recueil-1-1.midi,
Recueil-1-2.mid, Recueil-1-3.midi etc.
Désolépour le moment  je ne saurai pas automatiser une sortie midi
avec le nom de chaque bookpart
C'était pour faire avancer le smilblic  ;-)

-- 
Martial Rameaux

---

From: Vincent Gay <[email-masked]>
Date: Sat, 8 Apr 2023 13:14:29 +0200

8 avr. 2023 10:42:22 Nicolas Lehembre <[email-masked]>:

bonjour Vincent,

Bonjour Nicolas

Merci infiniment pour la proposition mais il n'était pas dans mes intentions de faire faire mon travail par les autres 😋.

Mais si d'aventure en utilisant une de ces partitions (ou simplement en y jetant un coup d'œil) vous y trouviez une anomalie quelconque je serais ravi que vous m'en faisiez part.

Sur le plan technique mon post avait pour sujet principal une interrogation sur la possibilité (ou non) d'adjoindre un nom de fichier à un bloc midi. Du genre /midi { filename = monfichier.mid }

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 08 Apr 2023 15:42:39 +0200

Le vendredi 07 avril 2023 à 22:25 +0200, Vincent Gay a écrit :
>      re-bonsoir
> après une certaine période de procrastination j'ai enfin fini de
> coder mon recueil de partitions : 150 œuvres -> un peu plus de
> 400 pages. Vient donc la longue et fastidieuse période des corrections :-(
> recueil contenant plus de 200 blocs \score il serait génial dans le     bloc midi { ... } de pouvoir indiquer des noms de fichier distincts.
> Serait-ce possible ?
> validité du lien 1 mois)[https://zzz.zaclys.com/remise/a9e71499509f8c9c8c2c566dc7fbd84c/2023-04-07_Recueil_Vincent.zip](https://zzz.zaclys.com/remise/a9e71499509f8c9c8c2c566dc7fbd84c/2023-04-07_Recueil_Vincent.zip)
>
> Bonne nuit.

La méthode la plus simple est celle suggérée par Olivier, qui est malheureusement relativement fastidieuse : il faut faire un

```
\book {
  \bookOutputName "XXX"
  \score {
    \musique
    \midi { }
  }
}
```

pour chaque bloc `\score`.

J'ai testé un peu et les grilles harmoniques ont donné des erreurs en sortie MIDI, c'est embarrassant ! Je me suis empressé d'aller corriger ce bug :

[https://gitlab.com/lilypond/lilypond/-/merge_requests/1928](https://gitlab.com/lilypond/lilypond/-/merge_requests/1928)

En attendant, tu peux mettre ce code dans `AdditionalFunctions.ly` pour contourner :

```
% Ne sera plus nécessaire avec LilyPond 2.25.4
\midi {
  \context {
    \Global
    \accepts ChordGridScore
  }
  \context {
    \Score
    \name ChordGridScore
    \alias Score
    \accepts ChordGrid
  }
  \context {
    \name ChordGrid
    \type Performer_group
    \alias Staff
    \consists Staff_performer
  }
}
```

---

From: Ben <[email-masked]>
Date: Sat, 8 Apr 2023 16:06:03 +0200

Bonjour, 

Dans mon cas, j'ai résolu le problème ainsi.

J'affecte une variable Mode dans mon recueil de morceaux avec par exemple Mode = "Midi" et quand je recompile, il va utiliser pour chaque morceau un modèle de partition défini pour le midi qui correspond à cela:

ModeleMidi.ily

\book
{
  \bookOutputName $(string-append "Midi/" Reference " - " Titre )
  \score
  {
   \Deroulement
    \midi { }
  }
}

Comme chaque morceau a une variable Reference et Titre, que j'utilise aussi pour des Index et Tables des Matières, cela me créé dans un sous-dossier Midi/ déjà existant tous les morceaux midi avec comme nom la référence et le titre…

Au plaisir, 

Ben

> Le 8 avr. 2023 à 15:42, Jean Abou Samra <[email-masked]> a écrit :
> 
>> après une certaine période de procrastination j'ai enfin fini de coder mon recueil de partitions : 150 œuvres -> un peu plus de 400 pages. Vient donc la longue et fastidieuse période des corrections :-( Évidement le plus rapide est de s'en remettre à ses oreilles mais le recueil contenant plus de 200 blocs \score il serait génial dans le bloc midi { ... } de pouvoir indiquer des noms de fichier distincts. Serait-ce possible ? Pour ceux qui marqueraient un quelconque intérêt à mon travail le résultat (sources incluses) et à l'adresse ci-dessous (durée de validité du lien 1 mois)https://zzz.zaclys.com/remise/a9e71499509f8c9c8c2c566dc7fbd84c/2023-04-07_Recueil_Vincent.zip <https://zzz.zaclys.com/remise/a9e71499509f8c9c8c2c566dc7fbd84c/2023-04-07_Recueil_Vincent.zip>
>> Bonne nuit.
>> 
> pour chaque bloc \score.
> https://gitlab.com/lilypond/lilypond/-/merge_requests/1928 <https://gitlab.com/lilypond/lilypond/-/merge_requests/1928>
> En attendant, tu peux mettre ce code dans AdditionalFunctions.ly pour contourner :
>

---

From: Vincent Gay <[email-masked]>
Date: Sat, 8 Apr 2023 20:03:51 +0200

Le 08/04/2023 à 15:42, Jean Abou Samra a écrit :
> J'ai testé un peu et les grilles harmoniques ont donné des erreurs en 
> sortie MIDI, c'est embarrassant ! Je me suis empressé d'aller corriger 
> ce bug :

Hello Jean

pour l'heure je n'ai pas besoin de tester les grilles harmoniques, juste 
de vérifier qu'elles sont conformes aux accords au dessus de la portées. 
Ce sont celles-ci que je vérifie à l'oreille avec un fichier midi. Mais 
ceci n'a de sens que parce que dans mon cas une grille accompagne 
toujours une partition "classique".

---

From: Vincent Gay <[email-masked]>
Date: Sat, 8 Apr 2023 20:12:01 +0200

Le 08/04/2023 à 16:06, Ben a écrit :
> J'affecte une variable Mode dans mon recueil de morceaux avec par 
> exemple Mode = "Midi" et quand je recompile, il va utiliser pour 
> chaque morceau un modèle de partition défini pour le midi qui 
> correspond à cela:
>
> ModeleMidi.ily
>

Bonsoir Ben,

je crains de ne pas comprendre parfaitement ton message : dans mon 
recueil il y a un seul \book contenant  312 \bookparts ( contenant 
chacun un ou plusieurs \score). Ton système pourrait-il fonctionner dans 
ce contexte ?

Merci d'avance

---

From: Christian LE BARS <[email-masked]>
Date: Sat, 8 Apr 2023 21:13:30 +0200

Salut Vincent.

Il est super ton recueil je viens de le sauvegarder chez moi.

Chapeau, merci de le mettre à notre disposition.

Cordialement

Christian

---

From: Ben <[email-masked]>
Date: Sat, 8 Apr 2023 21:23:12 +0200

Cher Vincent,

Je vais essayer de mieux te décrire la structure que j'utilise pour mes recueils et qui rend pour moi lilypond sans concurrence:

*) Un recueil est un fichier ly qui a une syntaxe de ce genre:

Recueil.ly
% Code lilypond:
Modele = "Carnet"
% Modele = "Midi"

Reference = "1" \include "Morceau1.ly"
Reference = "2" \include "Morceau2.ly"
Reference = "3" \include "Morceau2.ly"
…
Reference = "100" \include "Morceau100.ly"

*) Un morceau est un fichier ly qui a une syntaxe de ce genre:

Morceau1.ly
% Code lilypond:
Titre = "Morceau 1"
Deroulement = \new ChoirStaff << … >>
\Graver

*) Graver est une fonction scheme, qui en fonction de la variable "Modele" dans Recueil.ly, va choisir un fichier .ily correspondant: 

Si Modele = "Carnet", \Graver va faire un \include du fichier ModeleCarnet.ily

ModeleCarnet.ily
% Code lilypond:
\bookpart { \score { \Deroulement }}

Si Modele = "Midi", \Graver va faire un \include du fichier ModeleMidi.ily

ModeleMidi.ily
% Code lilypond:
\book { \score { \Deroulement } }

Je n'utilise qu'un seul score par \bookpart, mais il suffirait par exemple de gérer des variables DeroulementII, DeroulementIII, etc. supplémentaires pour y arriver. 

Après, cela marche bien dès lors que l'on ne s'amuse pas à changer tous les réglages de \paper ou \header d'un morceau à l'autre, mais ce n'est en principe pas le but dans un recueil…

Bonnes fêtes pascales, 

Ben

> Le 8 avr. 2023 à 20:12, Vincent Gay <[email-masked]> a écrit :
> 
> je crains de ne pas comprendre parfaitement ton message : dans mon recueil il y a un seul \book contenant  312 \bookparts ( contenant chacun un ou plusieurs \score). Ton système pourrait-il fonctionner dans ce contexte ?
> 
> Merci d'avance
> 
> -- 
> Vincent Gay

---

From: Vincent Gay <[email-masked]>
Date: Sun, 9 Apr 2023 08:43:55 +0200

> *) Graver est une fonction scheme, qui en fonction de la variable "Modele" dans Recueil.ly, va choisir un fichier .ily correspondant:
oki je commence à comprendre. Je ne suis pas à l'aise du tout avec 
Scheme par contre je devrait pouvoir faire ça assez facilement en bash. 
Meci Ben.

---

From: Ben <[email-masked]>
Date: Sun, 9 Apr 2023 18:57:12 +0200

> Le 9 avr. 2023 à 08:43, Vincent Gay <[email-masked]> a écrit :
> 
> oki je commence à comprendre. Je ne suis pas à l'aise du tout avec Scheme par contre je devrait pouvoir faire ça assez facilement en bash. Meci Ben.

En Scheme, c'est une question de quelques lignes pas très compliquées, mais si tu n'aimes pas manipuler pleins de parenthèses, je comprends…