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

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

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....

···

Le 23/09/2010 14:16, Daniel Cartron a écrit :

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 ???
   
--
JJR.

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.

···

Le jeudi 23 septembre 2010, Jean-Jacques Rétorré a écrit :

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.

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

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

···

Le jeudi 23 septembre 2010, Jean-Jacques Rétorré a écrit :

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....

--
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

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

···

On 24/09/2010 14:25, Daniel Cartron wrote:

Le jeudi 23 septembre 2010, Jean-Jacques Rétorré a écrit :

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....

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

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

···

On 24/09/2010 14:25, Daniel Cartron wrote:

Le jeudi 23 septembre 2010, Jean-Jacques Rétorré a écrit :

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....

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

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

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

Marrant la manière d'indiquer le tempo, c'est nouveau ou j'ai loupé
quelque chose depuis longtemps ?

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

···

Le vendredi 24 septembre 2010, Cile a écrit :

--
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

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

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

Marrant la manière d'indiquer le tempo, c'est nouveau ou j'ai loupé
quelque chose depuis longtemps ?

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

···

Le vendredi 24 septembre 2010, Cile a écrit :

--
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

Bonsoir,

Daniel Cartron wrote:

> Marrant la manière d'indiquer le tempo, c'est nouveau ou j'ai loupé

quelque chose depuis longtemps ?

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 :wink:

···

--
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.

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.

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

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

···

Le samedi 25 septembre 2010, Jean-Christophe D a écrit :

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 ?

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

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.