Subject: un peu hs : génération d'une seule note en ligne de commande

From: Daniel Cartron <[email-masked]>
Date: Thu, 23 Sep 2010 14:16:41 +0200

Salut tous, 

Je ne sais si c'est avec lily que j'arriverai à faire ça mais j'ai besoin de 
générer un fichier midi de toutes les notes de toutes les gammes. Donc au bas 
mot environ une centaine de fichiers midi... Ce qui implique que j'aimerais 
pouvoir scriptyer tout ça en bash de préférence (c'est assez facile) mais je 
ne sais pas bien si lily est la bonne solution.  Et en plus j'aimerais pouvoir 
choisir le son midi utilisé... ça c'est a priori facile, mais en ligne de 
commande  ???

-- 
Cordialement, Daniel Cartron
« La religion est une fatiguante solution de paresse. »
E. M. Cioran

---

From: Jean-Jacques Rétorré <[email-masked]>
Date: Thu, 23 Sep 2010 14:51:07 +0200

> choisir le son midi utilisé... ça c'est a priori facile, mais en ligne de

AMHA, le mieux serait d'éditer un fichier lilypond avec une gamme type, 
éventuellement en donnant aux notes des noms de variables. Un coup de 
sed pour remplacer les variables par les noms de note de la gamme, et tu 
lances lilypond sur le fichier résultant.
Après, tu gère les substitutions par des boucles, je ne m'y connais pas 
trop (c'est un euphémisme) en gammes....

-- 
JJR.

---

From: Daniel Cartron <[email-masked]>
Date: Thu, 23 Sep 2010 18:02:12 +0200

> lances lilypond sur le fichier résultant.
C'est là-dessus que je suis parti mais ensuite je me suis dit qu'un fichier qui 
ne contient qu'une note et ne génère que du midi est très court, minimaliste 
mais je ne sais jusqu'à quel point on peut le rétrécir. Donc si mon script 
pouvait contenir un truc du genre :
lilypond \version "2.11.59"  Note = { \tempo 4=60 \clef $cle $son 4 } \score { 
\Note \midi { \context { \Score } } } > monfichierdesortie.mid
avec un remplacement des variables, ce serait plus simple que de créer le 
fichier à traiter puis le traiter.

-- 
Cordialement, Daniel Cartron
« Les femmes des uns font le bonheur des autres. »
Gustave Flaubert

---

From: Daniel Cartron <[email-masked]>
Date: Fri, 24 Sep 2010 14:25:41 +0200

> trop (c'est un euphémisme) en gammes....
en fait j'ai fait un truc qui me génère le fichier midi à la volée, le compile 
puis l'efface (bourrin mais j'ai pas trouvé comment passer les instructions 
directement en ligne de commande à lily - faut dire qu'ici entre coupures de 
courant et coupures de tél ) ça fait bien 24 h que je n'ai plus accès au net, 
espérons que ça va rester stable maintenant)

Seul hic, l'instrument midi n'est pas reconnu

Voici le fichier généré, je dois avoir une erreur de syntaxe qq part (j'ai 
jamais réussi à comprendre ces fichues différences entre staff voice etc.)

\score {\new Voice {\set midiInstrument = #"violin" \time 4/4 \tempo 4=60 
\clef treble b,4 } \midi {}}

Merci pour votre aide

-- 
Cordialement, Daniel Cartron
« Donner avec ostentation ce n'est pas très joli, mais ne rien donner avec
discrétion ça ne vaut guère mieux. »
Pierre Dac

---

From: Cile <[email-masked]>
Date: Fri, 24 Sep 2010 14:48:38 +0200

Et avec Staff.midiinstrument ? (dans la série je réponds sans pouvoir 
tester)
Marrant la manière d'indiquer le tempo, c'est nouveau ou j'ai loupé 
quelque chose depuis longtemps ?
Cécile

---

From: Cile <[email-masked]>
Date: Fri, 24 Sep 2010 14:50:03 +0200

Euh... oui c'est encore moi (désolée la liste), me semble-t-il qu'il y 
a un snippet de démo de tous les instruments midi... ça peut peut-être 
t'intéresser.
Cécile

---

From: Daniel Cartron <[email-masked]>
Date: Fri, 24 Sep 2010 15:28:13 +0200

>   Et avec Staff.midiinstrument ? (dans la série je réponds sans pouvoir 

avec un  grand i à instrument ça le fait, merci :-p

> quelque chose depuis longtemps ?

Ben chais pas j'ai tjs fait comme ça, pourquoi tu fais comment ?

-- 
Cordialement, Daniel Cartron
« Être riche ce n'est pas avoir de l'argent - c'est en dépenser. »
Sacha Guitry - Mémoires d'un tricheur

---

From: Daniel Cartron <[email-masked]>
Date: Fri, 24 Sep 2010 16:41:30 +0200

---

From: Jean-Christophe D <[email-masked]>
Date: Fri, 24 Sep 2010 14:34:20 -0700 (PDT)

Bonsoir,

> Ben chais pas j'ai tjs fait comme ça, pourquoi tu fais comment ?
Je fais également comme cela (\tempo 4=60), et cela fonctionne pour tous mes
midi, mais j'ai noté que bcp de lilypondeurs aiment... enfin utilisent cette
syntaxe (que je trouve rébarbative):
tempoWholesPerMinute = #(ly:make-moment 60 4)

Faudra que je lise encore un peu la doc pour en comprendre la raison ;o))

Bon we à tous !

Jean-Christophe D.
(vlb ;-)
-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/un-peu-hs-generation-d-une-seule-note-en-ligne-de-commande-tp5562783p5568475.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Jean-Christophe D <[email-masked]>
Date: Sat, 25 Sep 2010 01:29:53 -0700 (PDT)

Bonjour Daniel,

Mais revenons à nos moutons... (ma réponse précédente était un peu hors
sujet...)
Je ne suis pas sur d'avoir compris ce que tu cherches, car tu écris de ton
script "un truc qui me génère le fichier midi à la volée, le compile puis
l'efface" : efface le midi généré... et là je ne te suis plus, ou bien
efface le fichier.ly de génération du midi.. et là je vais peut-être pouvoir
t'aider ?

Une ligne comme celle-ci suffit à générer un midi avec une seule note :
(avec SON = l'instrument midi et ARM comme --"Armure"-- pour le tempo --
voir ensuite le fichier joint...)
    \score { \new Staff { \SON \ARM c } \midi { } }

Il ne faut donc que qq instants pour écrire UNE gamme :
\score { \new Staff { \SON \ARM c } \midi { } }
\score { \new Staff { \SON \ARM ces } \midi { } }
\score { \new Staff { \SON \ARM d } \midi { } }
\score { \new Staff { \SON \ARM des } \midi { } }
\score { \new Staff { \SON \ARM e } \midi { } }
\score { \new Staff { \SON \ARM f } \midi { } }
\score { \new Staff { \SON \ARM fes } \midi { } } %%% etc

et quelques instant de plus pour avoir par exemple 3 octaves complètes... à
compléter si tu en veux plus !...
Fichier: 
http://lilypond-french-users.1298960.n2.nabble.com/file/n5569439/testUnMidiParNote.ly
testUnMidiParNote.ly 

Changer le nom de l'instrument en tête du fichier pour relancer avec un
autre son.

Tout cela manuellement...
En s'aidant de scheme, cela doit être encore plus simple, en bouclant sur
une variable genre 
#( c ces d des e f fes g ETC.) et alors il suffira d'une seul ligne de code
lilypond + qq lignes de pgm...
Peut-être même que la séquence des notes existe déjà dans le petit monde
schemisable de lilypond...
Mais je ne connais rien en scheme et il faudra de l'aide des spécialistes de
ce forum...

Bonne journée !
Jean-Christophe D.
-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/un-peu-hs-generation-d-une-seule-note-en-ligne-de-commande-tp5562783p5569439.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Daniel Cartron <[email-masked]>
Date: Sat, 25 Sep 2010 10:45:36 +0200

Le samedi 25 septembre 2010, Jean-Christophe D a écrit :
> efface le fichier.ly de génération du midi.. et là je vais peut-être
>  pouvoir t'aider ?

Oui j'ai oublié une étape, ensuite je le converti en wav :-)

Merci pour tes explications mais j'ai entre-temps fait un truc en bash 
certainement très bourrin mais comme je n'utiliserai ça qu'une seule fois 
(plus les essais) ça ira bien. J'ai fait à peu de choses près ce que tu écris, 
mais avec plusieurs boucles for imbriquées, une pour les clés, une pour les 
octaves et la dernière pour les notes, avec génération auto des noms de fichier 
en fonction de ces trois paramètres, puis conversion en wev et effecement de 
tout ce qui ne sert plus.

N'empêche j'aurais bien aimé savois si dans mon script j'aurais pu invoquer 
lilypond avec toutes les infos sur la ligne de commande au lieu de générer un 
fichier ly que j'efface ensuite.

En tout cas merci

-- 
Cordialement, Daniel Cartron
« On aime une femme pour ce qu'elle n'est pas ; on la quitte pour ce qu'elle 
est. »
Serge Gainsbourg

---

From: Jean-Christophe D <[email-masked]>
Date: Sat, 25 Sep 2010 02:53:32 -0700 (PDT)

Je crois pouvoir dire que le programme LilyPond attends en entrée
obligatoirement un fichier.

La ligne de commande :
lilypond  "\score { \new Staff { c } \midi { } }"
donne une erreur:
Avertissement : fichier non trouvé : \score { \new Staff { c } \midi { } }

et sans les " c'est pire : chaque mot est considéré comme un fichier non
trouvé...

Ciao,
Jean-Christophe
-- 
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/un-peu-hs-generation-d-une-seule-note-en-ligne-de-commande-tp5562783p5569578.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.