summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2023-02-07 21:34:49 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2023-02-08 13:56:47 +0100
commitfc101d7df4629e05ee485c6f6003b48eb803a009 (patch)
tree8fd1dc02ad20085dba514667e48459a420a1a737
Ajout de par toute la terre
-rw-r--r--guix.scm48
-rw-r--r--index.css21
-rw-r--r--index.html69
-rw-r--r--par-toute-la-terre.ly296
4 files changed, 434 insertions, 0 deletions
diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..fbdbcca
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,48 @@
+(use-modules (guix gexp)
+ (guix modules)
+ (gnu packages music)
+ (gnu packages imagemagick))
+
+(computed-file
+ "copirate-site"
+ (with-imported-modules
+ (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils) (ice-9 ftw))
+ (mkdir-p #$output)
+ (copy-recursively
+ #$(local-file "." "copirate-site-source"
+ #:recursive? #t
+ #:select?
+ (lambda (file stat)
+ (or (string-suffix? "/index.html" file)
+ (string-suffix? "/index.css" file)
+ (string-suffix? ".ly" file))))
+ #$output)
+ (with-directory-excursion
+ #$output
+ (let ((enter? (lambda (name stat result) #t))
+ (leaf (lambda (name stat result)
+ (when (string-suffix? ".ly" name)
+ (invoke #$(file-append lilypond "/bin/lilypond") name))))
+ (down (lambda (name stat result) #t))
+ (up (lambda (name stat result) #t))
+ (skip (lambda (name stat result) #t))
+ (error (lambda (name stat errno result) #t)))
+ (file-system-fold enter? leaf down up skip error #t "."))
+ (let ((enter? (lambda (name stat result) #t))
+ (leaf (lambda (name stat result)
+ (when (string-suffix? ".pdf" name)
+ (let ((miniature-name
+ (string-append
+ (substring name 0 (- (string-length name) (string-length ".pdf")))
+ "-miniature.png")))
+ (invoke #$(file-append imagemagick "/bin/convert")
+ "-resize" "210x297"
+ (string-append name "[0]")
+ miniature-name)))))
+ (down (lambda (name stat result) #t))
+ (up (lambda (name stat result) #t))
+ (skip (lambda (name stat result) #t))
+ (error (lambda (name stat errno result) #t)))
+ (file-system-fold enter? leaf down up skip error #t "."))))))
diff --git a/index.css b/index.css
new file mode 100644
index 0000000..7d824c7
--- /dev/null
+++ b/index.css
@@ -0,0 +1,21 @@
+html {
+ background-color: ghostwhite;
+}
+
+body {
+ background-color: white;
+ max-width: 50em;
+ margin: auto;
+ padding-left: 2em;
+ padding-right: 2em;
+ padding-top: 1ex;
+ padding-bottom: 3ex;
+ border: 3px solid gray;
+}
+
+h1 {
+ margin-top: 3ex;
+ padding-top: 1ex;
+ padding-left: 0.3em;
+ border-top: 1px solid black;
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..f64a78b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Les éditions copirate</title>
+ <link href="index.css" rel="stylesheet"></link>
+ </head>
+ <body>
+ <h1>Qu’est-ce que la maison d’édition Copirate ?</h1>
+ <p>
+ Les éditions Copirate prennent des scans de photocopies de
+ partitions à peine lisibles, et les ré-éditent au moyen de
+ logiciels tels que <a href="https://lilypond.org">Lilypond</a>
+ ou <a href="https://musescore.org">Musescore</a> afin d’en
+ améliorer la lisibilité, de diminuer la taille des fichiers, et
+ de pouvoir rajouter des contrechants instrumentaux.
+ </p>
+ <p>
+ Dans la mesure du possible, nous essayons de laisser toutes les
+ méta-données des partitions. Nous visons l’exactitude des
+ parties existantes, mais il se peut que nous fassions des
+ erreurs. Si vous détectez une erreur, ou si les voix ne
+ correspondent pas exactement à ce que vous avez appris,
+ n’hésitez surtout pas
+ à <a href="mailto:copirate@planete-kraus.eu">nous en informer
+ par courriel : copirate@planete-kraus.eu</a>.
+ </p>
+ <p>
+ Il y a principalement deux façons d’utiliser une partie
+ instrumentale sur un chant de louange :
+ </p>
+ <ul>
+ <li>à la place d’un couplet ;</li>
+ <li>sur un refrain.</li>
+ </ul>
+ <p>
+ Bien que la première solution laisse plus de liberté artistique
+ pour l’auteur, cela veut dire que les choristes doivent ne pas
+ chanter. Ça peut être bénéfique, si le chant est long, puisque
+ les choristes peuvent donc se reposer. En revanche, si la
+ priorité est donnée au chant, il vaut mieux jouer sur le refrain
+ (sauf le premier), afin de ne pas gêner la compréhension des
+ paroles.
+ </p>
+ <p>
+ Nous proposons pour chaque chant le fichier source, un ou
+ plusieurs fichiers PDF, ainsi qu’un rendu MIDI.
+ </p>
+ <h1>Liste des partitions</h1>
+ <h2>Par toute la terre</h2>
+ <figure>
+ <a href="par-toute-la-terre.pdf">
+ <img src="par-toute-la-terre-miniature.png"
+ alt="Partition principale"></img>
+ </a>
+ <figcaption>Partition principale</figcaption>
+ </figure>
+ <p>
+ C’est un chant de l’Emmanuel. Nous avons rajouté un contre-chant
+ instrumental qui peut être joué à la trompette, sur le
+ refrain. Le <a href="par-toute-la-terre.ly">fichier source</a>
+ est un fichier Lilypond. <a href="par-toute-la-terre.midi">Un
+ rendu MIDI</a> est également disponible.
+ </p>
+ </body>
+</html>
+
diff --git a/par-toute-la-terre.ly b/par-toute-la-terre.ly
new file mode 100644
index 0000000..81440a2
--- /dev/null
+++ b/par-toute-la-terre.ly
@@ -0,0 +1,296 @@
+\version "2.24.0"
+\language "français"
+
+\header {
+ title = "Par toute la terre"
+ subtitle = "Louange"
+ composer = "Chants de l’Emmanuel (A. Lavardez)"
+ opus = "N° 19-14"
+ copyright = "Copirate ☠ 2023 yarr"
+ % Supprimer le pied de page par défaut
+ tagline = ##f
+}
+
+\paper {
+ left-margin = 1.5\cm
+ right-margin = 1.5\cm
+ bottom-margin = 2.5\cm
+ top-margin = 2.5\cm
+}
+
+global = {
+ \key sol \minor
+ \time 2/2
+ \tempo 2=80
+}
+
+couplet_accords = \chordmode {
+ \global
+ \frenchChords
+ \repeat unfold 2 {
+ sol1:m sol:m sol:m do:m do:m sol:m
+ } \alternative {
+ { sol:m ré }
+ { ré sol:m }
+ }
+}
+
+refrain_accords = \chordmode {
+ \frenchChords
+ \repeat unfold 2 {
+ sol2.:m fa4 mib1 fa2 ré:m sol1:m
+ }
+ \repeat unfold 2 {
+ do:m sol:m ré sol,:m
+ }
+}
+
+couplet_femmes = \relative do'' {
+ \global
+ \repeat unfold 2 {
+ sol8 la sib la sol4 fa | ré8 do ré2. |
+ sol8 la sib la sol4 sib | do1 |
+ do8 sib la sib do4 la | sib8 la sol2
+ } \alternative {
+ { sol8 la | sib4. sib8 la4 sol | la1 | }
+ { sol8 sib | la4. la8 sol4 fad | sol1 | }
+ }
+ \bar "||"
+}
+
+refrain_soprano = \relative do'' {
+ \repeat unfold 2 {
+ sol2 sol4 la | sib1 |
+ } \alternative {
+ { la4 la8 la sol4 fa | sol1 | }
+ { la8 la la la sol4 fa | sol1 | }
+ }
+ \repeat unfold 2 {
+ do2 sib4 la | sib1 |
+ la8 la4 la8 sol4
+ } \alternative {
+ { sib | sib1 | }
+ { fad4 | sol1 | }
+ }
+ \bar "|."
+}
+
+refrain_alto = \relative do' {
+ \repeat unfold 2 {
+ ré2 4 4 | sol1 |
+ } \alternative {
+ { fa4 8 8 ré4 4 | ré1 | }
+ { fa8 8 8 8 ré4 4 | ré1 | }
+ }
+ \repeat unfold 2 {
+ sol2 4 4 | 1 |
+ fad8 4 8 ré4
+ } \alternative {
+ { sol | 1 | }
+ { ré4 | 1 | }
+ }
+}
+
+couplet_hommes = \relative do' {
+ \global
+ \clef bass
+ \repeat unfold 2 {
+ sib8 do ré do sib4 la | sol8 fa sol2. |
+ sib8 do ré do sib4 ré | mib1 |
+ mib8 ré do ré mib4 do | ré8 do sib2
+ } \alternative {
+ { sib8 do | ré4. ré8 do4 sib | ré1 | }
+ { sib8 ré | do4. do8 sib4 la | sib1 | }
+ }
+ \bar "||"
+}
+
+refrain_tenor = \relative do' {
+ \repeat unfold 2 {
+ sib2 4 4 | mib1 |
+ } \alternative {
+ { do4 8 8 sib4 la4 | sib1 | }
+ { do8 8 8 8 sib4 la4 | sib1 | }
+ }
+ \repeat unfold 2 {
+ mib2 ré4 do4 | ré1 |
+ } \alternative {
+ { ré8 4 8 do4 ré | 1 | }
+ { do8 4 8 sib4 la | sib1 | }
+ }
+}
+
+refrain_basse = \relative do' {
+ \repeat unfold 2 {
+ sol2 4 fa4 | mib1 |
+ } \alternative {
+ { fa4 8 8 ré4 4 | sol1 | }
+ { fa8 8 8 8 ré4 4 | sol1 | }
+ }
+ \repeat unfold 2 {
+ do,2 4 4 | sol'1 |
+ ré8 4 8 4 4 | sol,1 |
+ }
+}
+
+coupletUn = \lyricmode {
+ \set stanza = "1."
+ Par tou -- te la terre il nous en -- voie
+ té -- moi -- gner de son A -- mour.
+ \set stanza = "1."
+ Pro -- cla -- mer son Nom et son Sa -- lut
+ dans la for -- ce de l’Es -- "prit !"
+ \set stanza = "1."
+ Car nos yeux ont vu et re -- con -- nu
+ le Sau -- veur res -- sus -- ci -- té,
+ \set stanza = "1."
+ le Saint d’Is -- ra -- ël, né de Ma -- rie,
+ Fils de Dieu qui don -- ne "vie !"
+}
+
+coupletDeux = \lyricmode {
+ \set stanza = "2."
+ \override LyricText.font-shape = #'italic
+ Par sa vie don -- née, son sang ver -- sé,
+ il a ra -- che -- té nos vies,
+ \set stanza = "2."
+ il dé -- truit les por -- tes des en -- fers,
+ il nous sau -- ve du pé -- ché.
+ \set stanza = "2."
+ À tout homme il of -- fre le Sa -- lut,
+ don gra -- tuit de son A -- "mour ;"
+ \set stanza = "2."
+ vi -- vons dans sa gloire et sa clar -- té,
+ main -- te -- nant et à ja -- "mais !"
+}
+
+coupletTrois = \lyricmode {
+ \set stanza = "3."
+ \override LyricText.font-shape = #'normal
+ Pour por -- ter la joie il nous en -- voie,
+ mes -- sa -- gers de son Sa -- "lut !"
+ \set stanza = "3."
+ Pau -- vres ser -- vi -- teurs qu’il a choi -- sis,
+ con -- sa -- crés pour l’an -- non -- "cer !"
+ \set stanza = "3."
+ Que nos lè -- vres chan -- tent sa bon -- té,
+ la splen -- deur de son des -- sein,
+ \set stanza = "3."
+ gloire à no -- tre Dieu, Roi tout puis -- sant,
+ é -- ter -- nel est son a -- "mour !"
+}
+
+refrain = \lyricmode {
+ \set stanza = "R."
+ Cri -- ez de joie, Christ est res -- sus -- ci -- "té !"
+ Il nous en -- voie an -- non -- cer la vé -- ri -- "té !"
+ Cri -- ez de joie, brû -- lez de Son a -- mour.
+ Car il est là, a -- vec nous pour tou -- "jours !"
+}
+
+couplet_trompette = \relative do' {
+ \global
+ R1*16
+}
+
+refrain_trompette = \relative do' {
+ ré'8 sol, sib ré sol2 ~4 fa mib sol, la8 sib do4 ré mib ré do sib4 la sib2 r2
+ sol2 la4 sib do2 ré2 sib2 la4 sol sol2. do4 sib2. la4 la2. sol4 ré'2 mib4 ré do2 sol
+ r4 sib do ré ré la sib do sib1
+}
+
+accords = \new ChordNames {
+ \couplet_accords
+ \refrain_accords
+}
+
+voix_femmes = \new Staff \with {
+ midiInstrument = "voice oohs"
+ } {
+ <<
+ \new Voice = "soprano" {
+ \couplet_femmes
+ \voiceOne
+ \refrain_soprano
+ }
+ \new Voice = "alto" {
+ s1*16
+ \voiceTwo
+ \refrain_alto
+ }
+ >>
+}
+
+voix_hommes = \new Staff \with {
+ midiInstrument = "voice oohs"
+ } {
+ \couplet_hommes
+ <<
+ \new Voice = "tenor" {
+ \voiceOne
+ \refrain_tenor
+ }
+ \new Voice = "basse" {
+ \voiceTwo
+ \refrain_basse
+ }
+ >>
+}
+
+trompette = \new Staff \with {
+ midiInstrument = "trumpet"
+ \RemoveAllEmptyStaves
+} {
+ \couplet_trompette
+ \refrain_trompette
+}
+
+choeur = \new ChoirStaff <<
+ \voix_femmes
+ \new Lyrics = "paroles"
+ \voix_hommes
+ \context Lyrics = "paroles" \lyricsto "soprano" {
+ {
+ <<
+ {
+ \coupletUn
+ }
+ \new Lyrics = "secondverse"
+ \with { alignBelowContext = "paroles" } {
+ \coupletDeux
+ }
+ \new Lyrics = "thirdverse"
+ \with { alignBelowContext = "secondverse" } {
+ \coupletTrois
+ }
+ >>
+ }
+ \set associatedVoice = "soprano"
+ \refrain
+}
+>>
+
+\score {
+ <<
+ \accords
+ \trompette
+ \choeur
+ >>
+ \layout {
+ \context {
+ \Staff
+ \RemoveEmptyStaves
+ }
+ }
+}
+
+\score {
+ <<
+ % \accords
+ \voix_femmes
+ \voix_hommes
+ \trompette
+ >>
+ \midi {
+ }
+} \ No newline at end of file