Lilypond : un livret CD

Ah, c'est pas mal ça !

du coup, je définis : tuneD = c et tuneA = d (D pour départ et A pour arrivée) et j'utilise \transpose \tuneD \tuneA dans mes morceaux ! (pas besoin de commenter si je mets tuneD et tune A = c tous les deux).

Ça m'ouvre une perspective pour mon livret que je signale juste au passage : je potasse l'accordéon chromatique basses standard... ça me permet du coup de me faire le même livret dans des tonalités différentes (les méthodes sont toujours concoctées en DO... une instruction et hop je fais mon livret en MI, par exemple !)

Cordialement

Gérard

···

Le 13/07/2020 à 10:48, Christophe Pochon a écrit :

Bonjour,

Il me semble que \transpose c d transpose bien d'un ton vers le haut quelle que soit la tonalité.

A+

Christophe Pochon

youpi !

Du coup j'ai modifié la ligne 266
outf.write ("\n\\set Score.defaultBarType = \"\"\n")
en
outf.write ("\n\\set Score.defaultBarType = \"|\"\n")

et la 1179
#'|' : '\\bar "|"'
en
'|' : '|\n'

ce qui donne en sortie LilyPond

\set Score.defaultBarType = "|"

et un barcheck à la place de \bar "|"

···

-----
♫artial♪
--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

Bonjour,

Pour mon avertissement "page-link", ma version est la 2.20.0. Mais je vais fouiller la doc..

Pourriez-vous fournir un exemple minimal qui provoque l'avertissement et donner la sortie console complète ?

Ça m'ouvre une perspective pour mon livret que je signale juste au passage : je potasse l'accordéon chromatique basses standard... ça me permet du coup de me faire le même livret dans des tonalités différentes (les méthodes sont toujours concoctées en DO... une instruction et hop je fais mon livret en MI, par exemple !)

Il est même possible (et courant) de produire plusieurs fichiers sortie dans différentes tonalités. Lorsqu'il n'y a qu'un \score, c'est très simple avec une variable (\maVariable et \transpose a b \maVariable). Pour le cas où le document contient plusieurs pièces, voici une astuce. Il faut séparer votre code en deux fichiers, le fichier maître, nommé par exemple Livret.ly, et un fichier contenant la musique, mettons notes.ily. Le premier, Livret.ly, contiendra tous les réglages généraux, à savoir \header, \paper, \layout, set-global-staff-size, etc., ainsi qu'à la fin, ceci :

ton = c
\book {
\include "notes.ily"
}

ton = d
\book {
\bookOutputSuffix "clarinette"
\include "notes.ily"
}

Quant à notes.ily, vous y mettrez tous vos blocs \score sous la forme suivante :

\score {
\transpose c \ton {
musique...
}
\header {
...
}
}

Lorsque vous compilerez Livret.ly, deux fichiers PDF distincts seront produits, l'un nommé Livret.pdf qui sera le livret en tonalité de concert (sans transposition), et l'autre, Livret-clarinette.pdf, contenant les mêmes morceaux transposés pour la clarinette. Voir notamment LilyPond Notation Reference: 3.1 Input structure

Dans Frescobaldi, il est recommandé d'ouvrir Livret.ly et de cocher « Toujours graver ce document » (dans le menu LilyPond). Puis, ouvrir notes.ily, éditer, et compiler de la manière habituelle : c'est alors Livret.ly qui sera compilé et vous verrez le livret en tonalité de concert tout en ayant aussi celui de la clarinette dans votre dossier de travail.

Bien cordialement,
Jean Abou Samra

Pour mon avertissement "page-link", ma version est la 2.20.0. Mais je vais fouiller la doc..

Pourriez-vous fournir un exemple minimal qui provoque l'avertissement et donner la sortie console complète ?

Je viens de m'apercevoir que ça me fait ça quand je compile en SVG, mais je n'ai pas ce message quand je compile en PDF. C'est sans doute normal...

···

Le 13/07/2020 à 20:31, Jean Abou Samra a écrit :

Le 13/07/2020 à 20:31, Jean Abou Samra a écrit :

Il est même possible (et courant) de produire plusieurs fichiers sortie dans différentes tonalités.

Explication claire, je vois le topo. Je vais regarder cela de plus près. Ça va m'intéresser !

Bien le merci !

Cordialement

Bonjour tout le monde,

Je reste dans mon fil sur le livret entièrement réalisé avec Lilypond bien que la question puisse être en dehors.

J'allonge ma liste de morceaux dans le livret et je voudrais conclure par une phrase du genre "Ce recueil contient X morceaux" où X serait une variable (incrémentée automatiquement bien sûr).

D'où la question : est-il possible d'avoir une variable "compteur" ? Comment l'initialiser et comment l'incrémenter...

Cerise sur le gâteau si possible ; j'utilise \tocItem \markup "Titre" pour ma table des matières (avec la fonction ci-dessous). Une solution pour que cette variable apparaissent devant "Titre" ?

% présentation de la table des matières
tocItemMarkup = \markup \huge \fill-line {
\fromproperty #'toc:text \fromproperty #'toc:page
}
tocItemMarkup = \tocItemWithDotsMarkup

Merci et bien cordialement

(bien sûr je n'ai pas trouvé de piste dans la liste, le LSR, la doc... )

Gérard

Bonjour Gérard,
Il y a un compteur sur le LSR : http://lsr.di.unimi.it/LSR/Item?id=543
Mais il est limité par un bug (cf. http://lilypond.1069038.n5.nabble.com/Toc-with-counter-td214472.html)
Sinon tu peux faire quelque chose comme :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
(set! ctrToc (1+ ctrToc))
(interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
(set! counter (1+ counter))
(interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
(set! counter counter)
(interpret-markup layout props (markup (number->string counter))))

\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces }

Cordialement,
Pierre

Envoyé trop vite ; donc, à nouveau :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
(set! ctrToc (1+ ctrToc))
(interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
(set! counter (1+ counter))
(interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
(interpret-markup layout props (markup (number->string counter))))

\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces. }

Cordialement,
Pierre

···

Le sam. 1 août 2020 à 10:18, Pierre Perol-Schneider <****@****> a écrit :

Bonjour Gérard,
Il y a un compteur sur le LSR : http://lsr.di.unimi.it/LSR/Item?id=543
Mais il est limité par un bug (cf. http://lilypond.1069038.n5.nabble.com/Toc-with-counter-td214472.html)
Sinon tu peux faire quelque chose comme :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
(set! ctrToc (1+ ctrToc))
(interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
(set! counter (1+ counter))
(interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
(set! counter counter)
(interpret-markup layout props (markup (number->string counter))))

\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }
\tocItem \markup\counter
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces }

Cordialement,
Pierre

Nickel, ça marche super ! et mon livret est un peu mieux "fini"...

Pour l'anecdote, j'ai modifié \tocItem \markup { Pièce \counter } en {\counter \mapiece} {mapiece en variable}

Et pour un index, pas possible ?... J'avais prévu de faire un livret pour l'atelier (20-25 morceaux) mais si ça marche aussi bien, je peux faire un book de 1000 airs ! Du coup, un index sur "origine" me plaîrait bien. J'ai vu une demande LFU de 2016 qui n'a pas eu de réponse, une plus vieille de 2012 qui envoyait sur le forum allemand <https://archiv.lilypondforum.de/index.php?topic=1040.10%3Bwap2&gt;\.\.\. mais je n'ai rien compris !

Merci Pierre

G.

···

Le 01/08/2020 à 10:24, Pierre Perol-Schneider a écrit :

Envoyé trop vite ; donc, à nouveau :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
(set! ctrToc (1+ ctrToc))
(interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
(set! counter (1+ counter))
(interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
(interpret-markup layout props (markup (number->string counter))))

\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces. }

Cordialement,
Pierre

Gérard,

As-tu vu : http://lsr.di.unimi.it/LSR/Item?id=763 ?

···

Le sam. 1 août 2020 à 17:44, survoje <****@****> a écrit :

Nickel, ça marche super ! et mon livret est un peu mieux "fini"...

Pour l'anecdote, j'ai modifié \tocItem \markup { Pièce \counter } en {\counter \mapiece} {mapiece en variable}

Et pour un index, pas possible ?... J'avais prévu de faire un livret pour l'atelier (20-25 morceaux) mais si ça marche aussi bien, je peux faire un book de 1000 airs ! Du coup, un index sur "origine" me plaîrait bien. J'ai vu une demande LFU de 2016 qui n'a pas eu de réponse, une plus vieille de 2012 qui envoyait sur le forum allemand... mais je n'ai rien compris !

Merci Pierre

G.

Le 01/08/2020 à 10:24, Pierre Perol-Schneider a écrit :

Envoyé trop vite ; donc, à nouveau :

\version "2.20.0"

#(define ctrToc 0)
#(define-markup-command (ctrToc layout props) ()
(set! ctrToc (1+ ctrToc))
(interpret-markup layout props (markup (number->string ctrToc))))

#(define counter 0)
#(define-markup-command (counter layout props) ()
(set! counter (1+ counter))
(interpret-markup layout props (markup (number->string counter))))

#(define-markup-command (ctrTot layout props) ()
(interpret-markup layout props (markup (number->string counter))))

\paper {
tocItemMarkup = \tocItemWithDotsMarkup
}

\markuplist \table-of-contents
\markup\vspace #3
\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\tocItem \markup { Pièce \counter }
\score { { c' } \header { piece = \markup { Pièce \ctrToc } } }

\markup { Ce livret contient \ctrTot pièces. }

Cordialement,
Pierre

Bonjour tout le monde,

Résumé : au départ, dans ce fil, j'étais parti avec l'idée d'un livret CD, puis ça a évolué vers un simple livret A4 entièrement réalisé avec Lilypond, puis l'ajout d'une table des matières, puis l'ajout d'un index !

Comme je suis arrivé à mes fins (merci la liste !), et pour ceux que ça pourrait intéresser, je partage un document minimal pour réaliser un tel livret, uniquement avec Lilypond donc et comportant une table des matières et un index.

Bien cordialement,

Gérard

Lilypond_livret_avec_index_et_TOC.ly (8.99 KB)