From 0c4aa8b2a703c6e1adb245945e56f0496cd8e96a Mon Sep 17 00:00:00 2001 From: Louis Date: Sat, 15 Feb 2014 00:21:43 +0100 Subject: [PATCH] Ajout d'exemples --- examples/README | 3 + examples/example.sb | 16 ++ examples/img/README | 3 + examples/img/treble_a.png | Bin 0 -> 9972 bytes examples/latex/README | 1 + examples/songs/README | 1 + examples/songs/_lilypond/header | 26 +++ .../songs/chevaliers_de_la_table_ronde.sg | 70 ++++++++ examples/{ => songs}/example-en.sg | 6 +- examples/{ => songs}/example-fr.sg | 10 +- examples/songs/greensleeves.ly | 21 +++ examples/songs/greensleeves.sg | 150 +++++++++++++++++ examples/songs/traditionnel.jpg | Bin 0 -> 7935 bytes examples/songs/vent_frais.sg | 19 +++ examples/templates/README | 1 + examples/templates/default.tmpl | 154 ++++++++++++++++++ 16 files changed, 473 insertions(+), 8 deletions(-) create mode 100644 examples/README create mode 100644 examples/example.sb create mode 100644 examples/img/README create mode 100644 examples/img/treble_a.png create mode 100644 examples/latex/README create mode 100644 examples/songs/README create mode 100644 examples/songs/_lilypond/header create mode 100644 examples/songs/chevaliers_de_la_table_ronde.sg rename examples/{ => songs}/example-en.sg (91%) rename examples/{ => songs}/example-fr.sg (90%) create mode 100644 examples/songs/greensleeves.ly create mode 100644 examples/songs/greensleeves.sg create mode 100644 examples/songs/traditionnel.jpg create mode 100644 examples/songs/vent_frais.sg create mode 100644 examples/templates/README create mode 100644 examples/templates/default.tmpl diff --git a/examples/README b/examples/README new file mode 100644 index 00000000..942bbf37 --- /dev/null +++ b/examples/README @@ -0,0 +1,3 @@ +Run the following command to build an example song book. + +$ PATH/TO/songbook.py example.sb diff --git a/examples/example.sb b/examples/example.sb new file mode 100644 index 00000000..4b9b0a26 --- /dev/null +++ b/examples/example.sb @@ -0,0 +1,16 @@ +{ +"template" : "default.tmpl", +"bookoptions" : [ + "importantdiagramonly", + "repeatchords", + "lilypond", + "pictures" + ], +"booktype" : "chorded", +"lang" : "french", +"songs" : "all", +"authwords" : { + "sep" : ["and", "et"] + }, + "datadir" : "." +} diff --git a/examples/img/README b/examples/img/README new file mode 100644 index 00000000..ae8a29d8 --- /dev/null +++ b/examples/img/README @@ -0,0 +1,3 @@ +This repository is automatically included as LaTeX graphics path. That is, any +image in this directory can be included in your LaTeX document specifying only +its base name. diff --git a/examples/img/treble_a.png b/examples/img/treble_a.png new file mode 100644 index 0000000000000000000000000000000000000000..88383972f1d2da976767fc9da93503c8ef5808a0 GIT binary patch literal 9972 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 literal 0 HcmV?d00001 diff --git a/examples/latex/README b/examples/latex/README new file mode 100644 index 00000000..2cf69445 --- /dev/null +++ b/examples/latex/README @@ -0,0 +1 @@ +This directory is automatically included in LaTeX path. Thus you can add custom modules in it. diff --git a/examples/songs/README b/examples/songs/README new file mode 100644 index 00000000..523c8e4a --- /dev/null +++ b/examples/songs/README @@ -0,0 +1 @@ +Songs, as .sg files, are expected to be in this directory. diff --git a/examples/songs/_lilypond/header b/examples/songs/_lilypond/header new file mode 100644 index 00000000..797166b2 --- /dev/null +++ b/examples/songs/_lilypond/header @@ -0,0 +1,26 @@ +#(use-modules (guile-user)) +\version "2.14.2" + +\paper +{ + make-header=##f + %make-footer=##f + oddFooterMarkup = \markup { \fill-line {} } + page-top-space = 0\cm + + head-separation = 0\cm + foot-separation = 0\cm + + left-margin = 0\cm + top-margin = 0\cm + bottom-margin = 0\cm + + indent = 0\cm + between-system-padding = 0\cm + + paper-width = 7.5\cm + line-width = 7\cm + paper-height = 1\cm +} + +#(set-global-staff-size 12) diff --git a/examples/songs/chevaliers_de_la_table_ronde.sg b/examples/songs/chevaliers_de_la_table_ronde.sg new file mode 100644 index 00000000..77dfa869 --- /dev/null +++ b/examples/songs/chevaliers_de_la_table_ronde.sg @@ -0,0 +1,70 @@ +\selectlanguage{french} +\songcolumns{2} +\beginsong{Chevaliers de la table ronde} + [by={Traditionnel},cov={traditionnel},album={France}] + + \cover + \gtab{C}{X32010} + \gtab{G7}{320001} + \gtab{F}{1:022100} + + \begin{verse} + Cheva\[C]liers de la Table Ronde + Goûtons \[G7]voir si le vin est \[C]bon + \rep{2} + \end{verse} + + \begin{chorus} + Goûtons \[F]voir, \echo{oui, oui, oui} + Goûtons \[C]voir, \echo{non, non, non} + Goûtons \[G7]voir si le vin est bon + \rep{2} + \end{chorus} + + \begin{verse} + S'il est bon, s'il est agréable + J'en boirai jusqu'à mon plaisir + \end{verse} + + \begin{verse} + J'en boirai cinq à six bouteilles + Et encore, ce n'est pas beaucoup + \end{verse} + + \begin{verse} + Si je meurs, je veux qu'on m'enterre + Dans une cave où il y a du bon vin + \end{verse} + + \begin{verse} + Les deux pieds contre la muraille + Et la tête sous le robinet + \end{verse} + + \begin{verse} + Et les quatre plus grands ivrognes + Porteront les quatre coins du drap + \end{verse} + + \begin{verse} + Pour donner le discours d'usage + On prendra le bistrot du coin + \end{verse} + + \begin{verse} + Et si le tonneau se débouche + J'en boirai jusqu'à mon plaisir + \end{verse} + + \begin{verse} + Et s'il en reste quelques gouttes + Ce sera pour nous rafraîchir + \end{verse} + + \begin{verse} + Sur ma tombe, je veux qu'on inscrive + \emph{Ici gît le roi des buveurs} + \end{verse} + +\endsong + diff --git a/examples/example-en.sg b/examples/songs/example-en.sg similarity index 91% rename from examples/example-en.sg rename to examples/songs/example-en.sg index 884f3692..7009cc68 100644 --- a/examples/example-en.sg +++ b/examples/songs/example-en.sg @@ -21,10 +21,10 @@ % Sad robot: the song's title % Pornophonique : the artist's name -% 8-bit-lagerfeuer : the file "8-bit-lagerfeuer.jpg" that corresponds to the album art +% traditionnel : the file "8-bit-lagerfeuer.jpg" that corresponds to the album art % 8 bit lagerfeuer : the album whose song is extracted from \beginsong{Sad robot} - [by={Pornophonique},cov={8-bit-lagerfeuer},album={8 bit lagerfeuer}] + [by={Pornophonique},cov={traditionnel},album={8 bit lagerfeuer}] % inserts the album art (8-bit-lagerfeuer.jpg) \cover @@ -45,7 +45,7 @@ % use the \rep{n} macro for a sentence repeated n times % use the \echo{text} macro for background singing lyrics - \lilypond{Sad_robot} % inserts the music sheet corresponding to the Sad_robot.ly file in the same directory as this .sg file. + %\lilypond{Sad_robot} % inserts the music sheet corresponding to the Sad_robot.ly file in the same directory as this .sg file. % verse environments are automatically numbered \begin{verse} diff --git a/examples/example-fr.sg b/examples/songs/example-fr.sg similarity index 90% rename from examples/example-fr.sg rename to examples/songs/example-fr.sg index 62e95297..c9264096 100644 --- a/examples/example-fr.sg +++ b/examples/songs/example-fr.sg @@ -23,10 +23,10 @@ % Sad robot: le titre de la chanson % Pornophonique : le nom de l'artiste -% 8-bit-lagerfeuer : le fichier "8-bit-lagerfeuer.jpg" correspondant à la pochette de l'album +% traditionnel : le fichier "8-bit-lagerfeuer.jpg" correspondant à la pochette de l'album % 8 bit lagerfeuer : le nom de l'album dont la chanson est extraite \beginsong{Sad robot} - [by={Pornophonique},cov={8-bit-lagerfeuer},album={8 bit lagerfeuer}] + [by={Pornophonique},cov={traditionnel},album={8 bit lagerfeuer}] % insère la pochette de l'album (8-bit-lagerfeuer.jpg) \cover @@ -47,7 +47,7 @@ % utilisez la macro \rep{n} pour une phrase répétée n fois % utilisez la macro \echo{text} pour les phrases chantées en arrière plan - \lilypond{Sad_robot} % insère la partition correspondant au fichier Sad_robot.ly du répertoire de ce fichier .sg + %\lilypond{Sad_robot} % insère la partition correspondant au fichier Sad_robot.ly du répertoire de ce fichier .sg \begin{verse} His \[Dm]steely skin is covered @@ -64,14 +64,14 @@ \[F]Can you feel the pain Of the \[C]sad, sad robot And it's \[Dm]driving him insane - \end{verse} + \end{verse*} \begin{verse*} He can't \[Dm]turn back time nor history So his \[F]life became a misery He \[C]has to face the destiny Nobody \[Dm]cares anymore - \end{verse} + \end{verse*} \end{repeatedchords} \begin{chorus} diff --git a/examples/songs/greensleeves.ly b/examples/songs/greensleeves.ly new file mode 100644 index 00000000..98b79433 --- /dev/null +++ b/examples/songs/greensleeves.ly @@ -0,0 +1,21 @@ +\include "_lilypond/header" +\paper{paper-height = 6.5\cm} + +%\new \songbookstaff +{ + \key a \minor + \time 6/8 + \partial 8 a'8 + \relative c''{ + c4 d8 e8. (f16) e8 d4 b8 g8. (a16) b8 + c4 a8 a8. (gis16) a8 b4 gis8 e4 a8 + c4 d8 e8. (f16 e8) d4 b8 g8. (a16) b8 + c8. (b16) a8 gis8. (fis16) gis8 a4 a8 a4. + + g'4. g8. (fis16) e8 d4 b8 g8. (a16) b8 + c4 (a8) a8. (gis16) a8 b4 gis8 e4. + g'4. g8. (fis16) e8 d4 b8 g8. (a16) b8 + c8. (b16) a8 gis8. (fis16) gis8 a4. a4. + } +} + diff --git a/examples/songs/greensleeves.sg b/examples/songs/greensleeves.sg new file mode 100644 index 00000000..469fab99 --- /dev/null +++ b/examples/songs/greensleeves.sg @@ -0,0 +1,150 @@ +\selectlanguage{english} +\songcolumns{2} +\beginsong{Greensleeves} + [by={Traditionnel},cov={traditionnel},album={Angleterre}] + + \cover + \gtab{Am}{X02210} + \gtab{G}{320003} + \gtab{E}{022100} + \gtab{C}{X32010} + + \lilypond{greensleeves} + + \begin{verse} + A\[Am]las, my love, ye \[G]do me wrong + To \[Am]cast me oft dis\[E]curteously + And \[Am]{I have} loved \[G]you so long + De\[Am]lighting \[E]in your \[Am]companie + \end{verse} + + \begin{chorus} + \[C]Greensleeves was \[G]all my joy + \[Am]Greensleeves was \[E]my delight + \[C]Greensleeves was my \[G]heart of gold + And \[Am]who but \[E]Ladie \[Am]Greensleeves + \end{chorus} + + \begin{repeatedchords} + \begin{verse} + I \[Am]have been readie \[G]at your hand + To \[Am]grant what ever \[E]you would crave + I \[Am]have both waged \[G]life and land + Your \[Am]love and \[E]good will \[Am]for to have + \end{verse} + + \begin{verse} + I \[Am]bought thee kerchers \[G]to thy head + That \[Am]were wrought fine and \[E]gallantly + I \[Am]kept thee both at \[G]boord and bed + Which \[Am]cost my \[E]purse well \[Am]favouredly + \end{verse} + + \begin{verse} + I \[Am]bought thee peticotes \[G]of the best + The \[Am]cloth so fine as \[E]fine might be + I \[Am]gave thee jewels \[G]for thy chest + And \[Am]all this \[E]cost I \[Am]spent on thee + \end{verse} + + \begin{verse} + Thy \[Am]smock of silke, both \[G]faire and white + With \[Am]gold embrodered \[E]gorgeously + Thy \[Am]peticote of \[G]sendall right + And \[Am]this I \[E]bought thee \[Am]gladly + \end{verse} + + \begin{verse} + Thy \[Am]girdle of gold \[G]so red + With \[Am]pearles bed\[E]ecked sumtuously + The \[Am]like no other \[G]lasses had + And \[Am]yet thou \[E]wouldest not \[Am]love me + \end{verse} + + \begin{verse} + Thy \[Am]purse, and eke thy gay \[G]guilt knives + Thy \[Am]pincase, gallant \[E]to the eie + No \[Am]better wore the \[G]burgesse wives + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + Thy \[Am]crimson stockings, \[G]all of silk + With \[Am]golde all \[E]wrought above the knee + Thy \[Am]pumps, as white as \[G]was the milk + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + Thy \[Am]gown was of the \[G]grassie green + Thy \[Am]sleeves of satten \[E]hanging by + Which \[Am]made thee be our \[G]harvest queen + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + Thy \[Am]garters fringed \[G]with the golde + And \[Am]silver aglets \[E]hanging by + Which \[Am]made thee blithe for \[G]to beholde + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + My gayest gelding I thee gave + To ride where ever liked thee + No ladie ever was so brave + And \[Am]yet thou \[E]wouldst not \[Am]love me + And yet thou wouldst not love me + \end{verse} + + \begin{verse} + My \[Am]men were clothed \[G]all in green + And \[Am]they did ever \[E]wait on thee + All \[Am]this was gallant \[G]to be seen + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + They \[Am]set thee up, they \[G]took thee downe + They \[Am]served thee with hu\[E]militie + Thy \[Am]foote might not once \[G]touch the ground + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + For \[Am]everie morning, \[G]when thou rose + I \[Am]sent thee dainties, \[E]orderly + To \[Am]cheare thy stomack from \[G]all woes + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + Thou \[Am]couldst desire no \[G]earthly thing + But \[Am]stil thou hadst it \[E]readily + Thy \[Am]musicke still to \[G]play and sing + And \[Am]yet thou \[E]wouldst not \[Am]love me + \end{verse} + + \begin{verse} + And \[Am]who did pay for \[G]all this geare + That \[Am]thou didst spend when \[E]pleased thee? + Even \[Am]{I that} am re\[G]jected here + And \[Am]thou dis\[E]dainst to \[Am]love me + \end{verse} + + \begin{verse} + Wei, \[Am]{I wil} pray to \[G]God on hie + That \[Am]thou my constancie \[E]maist see + And \[Am]that yet once be\[G]fore I die + Thou \[Am]will vouch\[E]safe to \[Am]love me + \end{verse} + + \begin{chorus} + \[C]Greensleeves, now \[G]farewel, adue! + \[Am]God I pray to \[E]prosper thee + \[C]For I am stil thy \[G]lover true + Come \[Am]once a\[E]gaine, and \[Am]love me! + \end{chorus} + \end{repeatedchords} + +\endsong diff --git a/examples/songs/traditionnel.jpg b/examples/songs/traditionnel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7d441cb182c2d915c60e7525bfbd8d0ca570fa0 GIT binary patch literal 7935 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