aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--TODOs.org16
-rw-r--r--music/common.ly10
-rw-r--r--music/dengoso.ly181
-rw-r--r--music/guitar.ly33
4 files changed, 115 insertions, 125 deletions
diff --git a/TODOs.org b/TODOs.org
index 6c1edf1..ed223ff 100644
--- a/TODOs.org
+++ b/TODOs.org
@@ -2,22 +2,22 @@
:PROPERTIES:
:CUSTOM_ID: tasks
:END:
-** TODO =dengoso.ly= [1/11]
+** TODO =dengoso.ly= [8/11]
:PROPERTIES:
:CUSTOM_ID: 95ac1eec-1a56-47cb-b7ad-8cadf5737323
:END:
- State "TODO" from [2021-01-01 ven. 22:23]
- [X] use "<quarter> = 100" over "Andante moderato for =meter=
-- [ ] turn =cWithSlash= into a function
-- [ ] move =pestana== into shared =pestana.ly=
-- [ ] use fret-number over roman string on =\pestana #"II" { }=
+- [X] turn =cWithSlash= into a function
+- [X] move =pestana== into shared =pestana.ly=
+- [X] +use fret-number over roman string on =\pestana #"II" { }=+
- [ ] measures 21~24: map previous notes, removing fingering notation instead of
repeating notes
-- [ ] =\6 to D= on beginning of the song
-- [ ] share notes between voices
-- [ ] add string markers
-- [ ] pestana over rests (measure 42)
+- [X] =\6 to D= on beginning of the song
+- [X] share notes between voices
+- [X] add string markers
+- [X] pestana over rests (measure 42)
- [ ] handle optional sharp on measure 77
- [ ] add torrent for audio (and PDF?)
** TODO Generate =favicon.ico= from =favicon.svg=
diff --git a/music/common.ly b/music/common.ly
new file mode 100644
index 0000000..f2dddc2
--- /dev/null
+++ b/music/common.ly
@@ -0,0 +1,10 @@
+copyright = \markup {
+ \with-url #"https://creativecommons.org/licenses/by-sa/4.0/" \line {
+ CC BY-SA 4.0
+ }
+}
+tagline = \markup {
+ \with-url #"https://euandre.org/music.html" \line {
+ euandre.org/music.html
+ }
+}
diff --git a/music/dengoso.ly b/music/dengoso.ly
index f7fcf29..9b872cb 100644
--- a/music/dengoso.ly
+++ b/music/dengoso.ly
@@ -1,52 +1,17 @@
\version "2.20.0"
\pointAndClickOff
+\include "common.ly"
+\include "guitar.ly"
+
+
\header {
title = "Dengoso"
composer = "João Pernambuco"
- copyright = \markup {
- \with-url #"https://creativecommons.org/licenses/by-sa/4.0/" \line {
- CC BY-SA 4.0
- }
- }
- tagline = \markup {
- \with-url #"https://euandre.org/music.html" \line {
- euandre.org/music.html
- }
- }
-}
-
-cWithSlash = \markup {
- \fontsize #-2
- \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
+ copyright = \copyright
+ tagline = \tagline
}
-pestana =
-#(define-music-function (barre location str music) (string? ly:music?)
- (let ((elts (extract-named-music music '(NoteEvent EventChord))))
- (if (pair? elts)
- (let ((first-element (first elts))
- (last-element (last elts)))
- (set! (ly:music-property first-element 'articulations)
- (cons (make-music 'TextSpanEvent 'span-direction -1)
- (ly:music-property first-element 'articulations)))
- (set! (ly:music-property last-element 'articulations)
- (cons (make-music 'TextSpanEvent 'span-direction 1)
- (ly:music-property last-element 'articulations))))))
- #{
- \once \override TextSpanner.font-shape = #'upright
- \once \override TextSpanner.style = #'line
- \once \override TextSpanner.bound-details =
- #`((right
- (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #})
- (Y . 0))
- (left
- (text . ,#{ \markup { \cWithSlash \fontsize #-2 #str } #})
- (Y . 0)
- (attach-dir . -2)))
- $music
- #})
-
globals = {
\clef "treble_8"
\key d \major
@@ -59,49 +24,44 @@ upper = \relative c {
\globals
r16 <d-0>8 <e-1>16 <fis-3> <e-1>8 <d-0>16 |
- <a'-3>8. a16 <g-1>8. g16 |
- <fis-3>8. fis16 <f-2>8. <e-1>16 |
+ \corda "4" <a'-3>8.\startTextSpan a16 <g-1>8. g16 |
+ <fis-3>8. fis16 <f-2>8. <e-1>16\stopTextSpan |
r2 |
r16 d8 e16 fis e8 d16 |
- a'8. a16 g8. g16 |
- fis8. fis16 f8. e16 |
+ \corda "4" a'8.\startTextSpan a16 g8. g16 |
+ fis8. fis16 f8. e16\stopTextSpan |
r2 |
- <d'-2>8 \pestana #"II" { <fis,-3 a-1> fis' d16 } <e-0>~ |
+ <d'-2>8 \pestanaSpan "II" <fis,-3 a-1>\startTextSpan fis' d16\stopTextSpan <e-0>~ |
e2 |
- d8 \pestana #"II" { <fis, a> fis' d16 } e~ |
+ d8 \pestanaSpan "II" <fis, a>\startTextSpan fis' d16\stopTextSpan e~ |
e2 |
\repeat volta 2 {
- \pestana #"V" {
- a16 <a,-3 d-4>8 <a d>16 r16 <g'-4>8 <fis-3>16 |
- a16 <g,-1 cis-2>8 <g cis>16 r16 <cis-2> <fis-4> <cis-2> |
- }
- <a-1 e'-0>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- <b-0>16 <cis,-3 g'-4>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a16\startTextSpan <a,-3 d-4>8 <a d>16 r16 <g'-4>8 <fis-3>16 |
+ a16 <g,-1 cis-2>8 <g cis>16 r16 <cis-2> <fis-4> <cis-2>\stopTextSpan |
+ <a-1 e'-0>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ <b-0>16 <cis,-3 g'-4>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
<d'-2>16 <fis,-3 a-1>8 <fis a>16 <fis'-4>8 <a,-3 c-2> |
<e'-0>16 <a,-2 cis-3>8 <a cis>16 r16 <g-0> <cis-3> <e-0> |
<d gis d'>16 <d gis d'>8 <d gis d'>16 <d gis cis>8 <d gis b> |
- <e'-4>16 <cis,-2 g'-3>8 <cis g'>16 <cis g' b>8 <cis-2 g'-3 a-1> |
+ <e'-4>16 <cis,-2 g'-3>8 <cis g'>16 <cis g' b\2>8 <cis-2 g'-3 a-1> |
- \pestana #"V" {
- a'16 <a, d>8 <a d>16 r16 <g'>8 <fis>16 |
- a16 <g, cis>8 <g cis>16 r16 <cis> <fis> <cis> |
- }
- <a e'>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- <b>16 <cis, g'>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a'16\startTextSpan <a, d>8 <a d>16 r16 <g'>8 <fis>16 |
+ a16 <g, cis>8 <g cis>16 r16 <cis> <fis> <cis>\stopTextSpan |
+ <a e'>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ <b>16 <cis, g'>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
d'16 <fis, a>8 <fis a>16 dis'8 <fis, a> |
<e'-0>8 <b-3 d-2>16 <ais-2 cis-1> <g b e> <d'-2>( <b-0>) <g-0> |
<fis-3> <d'-2> <a-1> <fis-3> <e-1> <cis'-2> <g-0> <e-1>
}
\alternative {
- { d, \pestana #"II" { a'' d fis g fis g gis } | }
- { r4 <d fis d'>^\markup { \cWithSlash \fontsize #-2 VII } | }
+ { d, \pestanaSpan "II" a''\startTextSpan d fis g fis g gis\stopTextSpan | }
+ { r4 \pestanaSingle "VII" <d fis d'> | }
}
- \bar "||"
\repeat volta 2 {
\key d \minor
@@ -113,47 +73,43 @@ upper = \relative c {
<fis-4> <c-3> <dis-1>( <fis-4>) <a-2> <fis-4> c' a |
<d-4> <bes-3>( <g-0>) <d-0> <g-0> <d-0> <bes'-3>( <g-0>) |
- <gis-1> <d-0> <b'-9> <gis-1> <d'-4>( <b-0>) <f'-4>( <d-1>) |
- <bes'-2>( <a-1>) <g-4> <f-2> <e-1> <d-3> <cis-2> <bes-4> |
+ <gis-1> <d-0> <b'-9> <gis-1> <d'-4>( <b-0>) <f'-4\2>( <d-1>) |
+ <bes'-2>( <a-1>) <g-4> <f-2> <e-1> <d-3> <cis-2> <bes-4\4> |
<a-3> a <d-4 f-2> a a a <d f> a |
<g-3> g <bes-1 e-4> g g g <bes e> g |
- \pestana #"III" { f, f <bes' d> f, f f <bes' d> f, } |
- r \pestana #"II" { <a' cis> <a cis>( e')~ e4 }
+ \pestanaSpan "III" f,\startTextSpan f <bes' d> f, f f <bes' d> f,\stopTextSpan |
+ \pestanaSpan "II" r\startTextSpan <a' cis> <a cis>( e')~ e4\stopTextSpan
- \pestana #"III" { <bes-1>16( <c-4>) <d-1> <e-4> <f-4> } <g-1> <a-3> <bes-4> |
+ \pestanaSpan "III" <bes-1>16(\startTextSpan <c-4>) <d-1> <e-4> <f-4>\stopTextSpan <g-1> <a-3> <bes-4> |
<bes-4>( <a-3>) <gis-2> <a-3> <d-4>( <bes-1>) <g-3> <e-0> |
<f-1> <d-4> <a-2> <f-3> <e-1> <cis'-2> <g-0> <e-1>
}
\alternative {
{ r <g-0> <gis-1> <a-2> r <bes-3> <a-2> <g-0> | }
- { r4 <f' a d>^\markup { \cWithSlash \fontsize #-2 X } | }
+ { r4 \pestanaSingle "X" <f' a d> | }
}
\key d \major
- \pestana #"V" {
- a16 <a, d>8 <a d>16 r16 g'8 fis16 |
- a16 <g, cis>8 <g cis>16 r16 cis fis cis |
- }
- <a e'>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- b16 <cis, g'>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a16\startTextSpan <a, d>8 <a d>16 r16 g'8 fis16 |
+ a16 <g, cis>8 <g cis>16 r16 cis fis cis\stopTextSpan |
+ <a e'>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ b16 <cis, g'>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
d'16 <fis, a>8 <fis a>16 fis'8 <a, c> |
e'16 <a, cis>8 <a cis>16 r16 g cis e |
<d gis d'>16 <d gis d'>8 <d gis d'>16 <d gis cis>8 <d gis b> |
- e'16 <cis, g'>8 <cis g'>16 <cis g' b>8 <cis g' a> |
+ e'16 <cis, g'>8 <cis g'>16 <cis g' b\2>8 <cis g' a> |
- \pestana #"V" {
- a'16 <a, d>8 <a d>16 r16 g'8 fis16 |
- a16 <g, cis>8 <g cis>16 r16 cis fis cis |
- }
- <a e'>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- b16 <cis, g'>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a'16\startTextSpan <a, d>8 <a d>16 r16 g'8 fis16 |
+ a16 <g, cis>8 <g cis>16 r16 cis fis cis\stopTextSpan |
+ <a e'>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ b16 <cis, g'>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
d'16 <fis, a>8 <fis a>16 dis'8 <fis, a> |
e'8 <b d>16 <ais cis> <g b e> d'( b) g |
fis d' a fis e cis' g e
- r4 <d' fis d'>^\markup { \cWithSlash \fontsize #-2 VII } |
+ r4 \pestanaSingle "VII" <d' fis d'> |
\bar "||"
\key d \minor
@@ -163,55 +119,48 @@ upper = \relative c {
<e'-0>16 <g,-0 cis-4>8 <g cis>16 <d'-4>8 <f,-3 a-2> |
<f'-2>16 <a,-3 d-4>8 <a d>16 f'8 <a, d> |
- \pestana #"V" {
- <e'-1>16 <a,-3 c-1>8 <a c>16 a,8 <a' c> |
- <a-3>16 <c-1> <a'-4> c, } <aes-3> <b-1> <b'-4> b, |
- \pestana #"V" { <a-3> <c-1> <a'-1> c, a c a' c, } |
+ \pestanaSpan "V" <e'-1>16\startTextSpan <a,-3 c-1>8 <a c>16 a,8 <a' c> |
+ <a-3>16 <c-1> <a'-4> c,\stopTextSpan <aes-3> <b-1> <b'-4> b, |
+ \pestanaSpan "V" <a-3>\startTextSpan <c-1> <a'-1> c, a c a' c,\stopTextSpan |
<f-2> <a,-3 d-4>8 <a d>16 f'8 <a, d> |
f'16 <a, d>8 <a d>16 <e'-1>8 <a,-3 cis-2> |
- \pestana #"III" {
- <g'-1>16 <bes,-1 e-3>8 <bes e>16 g'8 <bes, e> |
- g'16 <bes, e>8 <bes e>16 } \pestana #"V" { <a'-1>8 <c,-1 fis-3> } |
+ \pestanaSpan "III" <g'-1>16\startTextSpan <bes,-1 e-3>8 <bes e>16 g'8 <bes, e> |
+ g'16 <bes, e>8 <bes e>16\stopTextSpan \pestanaSpan "V" <a'-1>8\startTextSpan <c,-1 fis-3>\stopTextSpan |
- \pestana #"V" {
- <bes'-2>16 <d,-3 g-4>8 <d g>16 <d g> <a'-1>8 <g-4>16 |
- <f-2> <a,-3 d-4>8 <a d>16 <a d> <e'-0>8 <d-4>16 |
- <c-2> <a-3>8 a16 a <f'-2>8 <e-1>16 |
- <d-4> <a-3>8 a16 a a8 a16 |
- }
+ \pestanaSpan "V" <bes'-2>16\startTextSpan <d,-3 g-4>8 <d g>16 <d g> <a'-1>8 <g-4>16 |
+ <f-2> <a,-3 d-4>8 <a d>16 <a d> <e'-0>8 <d-4>16 |
+ <c-2> <a-3>8 a16 a <f'-2>8 <e-1>16 |
+ <d-4> <a-3>8 a16 a a8 a16\stopTextSpan |
\key d \major
- \pestana #"V" {
- a'16 <a, d>8 <a d>16 r16 g'8 fis16 |
- a16 <g, cis>8 <g cis>16 r16 cis fis cis |
- }
- <a e'>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- b16 <cis, g'>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a'16\startTextSpan <a, d>8 <a d>16 r16 g'8 fis16 |
+ a16 <g, cis>8 <g cis>16 r16 cis fis cis\stopTextSpan |
+ <a e'>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ b16 <cis, g'>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
d'16 <fis, a>8 <fis a>16 fis'8 <a, c> |
e'16 <a, cis>8 <a cis>16 r16 g cis e |
<d gis d'>16 <d gis d'>8 <d gis d'>16 <d gis cis>8 <d gis b> |
- e'16 <cis, g'>8 <cis g'>16 <cis g' b>8 <cis g' a> |
+ e'16 <cis, g'>8 <cis g'>16 <cis g' b\2>8 <cis g' a> |
- \pestana #"V" {
- a'16 <a, d>8 <a d>16 r16 g'8 fis16 |
- a16 <g, cis>8 <g cis>16 r16 cis fis cis |
- }
- <a e'>16 <a d>8 <a cis>16^\markup { \cWithSlash \fontsize #-2 II } <a b>8 a |
- b16 <cis, g'>8 <cis g'>16 \pestana #"II" { cis'8 <g a> } |
+ \pestanaSpan "V" a'16\startTextSpan <a, d>8 <a d>16 r16 g'8 fis16 |
+ a16 <g, cis>8 <g cis>16 r16 cis fis cis\stopTextSpan |
+ <a e'>16 <a d>8 \pestanaSingle "II" <a cis>16 <a b>8 a |
+ b16 <cis, g'>8 <cis g'>16 \pestanaSpan "II" cis'8\startTextSpan <g a>\stopTextSpan |
d'16 <fis, a>8 <fis a>16 dis'8 <fis, a> |
e'8 <b d>16 <ais cis> <g b e> d'( b) g |
fis d' a fis e cis' g e
- r4 <d' fis d'>^\markup { \cWithSlash \fontsize #-2 VII } |
+ r4 \pestanaSingle "VII" <d' fis d'> |
\bar "|."
}
lower = \relative c {
\globals
+ \set stringNumberOrientations = #'(down)
- r2 |
+ r2_\markup { \circle 6 in D } |
r8 a r a |
r8 a r a |
r16 <a-0>8 <b-1>16 <cis-3> <b-1>8 <a-0>16 |
@@ -250,14 +199,12 @@ lower = \relative c {
{ d,2 | }
{ d8 a' d4 | }
}
-
- \bar "||"
-
+
\repeat volta 2 {
\key d \minor
- a'16 a8 a16 a a8 a16 |
- g g8 g16 g g8 g16 |
+ a'16\4 a8 a16 a a8 a16 |
+ g\4 g8 g16 g g8 g16 |
f f8 f16 f f8 f16 |
e4 a, |
@@ -269,7 +216,7 @@ lower = \relative c {
a'16 a8 a16 a a8 a16 |
g g8 g16 g g8 g16 |
f, f8 f16 f f8 f16 |
- e4 r16 <e-1> <f-2> <fis-3> |
+ e4 r16 <e-1>( <f-2>) <fis-3> |
g4 r4 |
d g' |
diff --git a/music/guitar.ly b/music/guitar.ly
new file mode 100644
index 0000000..76afb00
--- /dev/null
+++ b/music/guitar.ly
@@ -0,0 +1,33 @@
+
+pestanaPrivate = \markup {
+ \fontsize #-2
+ \combine
+ \roman C
+ \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0)
+}
+
+pestanaSingle =
+ #(define-music-function (fret-number music) (string? ly:music?)
+ #{
+ $music ^\markup { \pestanaPrivate \fontsize #-2 $fret-number }
+ #})
+
+pestanaSpan =
+ #(define-music-function (fret-number) (string?)
+ #{
+ \once \override TextSpanner.font-shape = #'upright
+ \once \override TextSpanner.style = #'solid
+ \once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+ \once \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . -.5) }
+ \once \override TextSpanner.bound-details.left.text = \markup { \pestanaPrivate \fontsize #-2 $fret-number }
+ #})
+
+corda =
+ #(define-music-function (string-number) (string?)
+ #{
+ \once \override TextSpanner.style = #'solid
+ \once \override TextSpanner.font-size = #-5
+ \once \override TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER
+ \once \override TextSpanner.bound-details.right.text = \markup { \draw-line #'( 0 . -.5) }
+ \once \override TextSpanner.bound-details.left.text = \markup { \circle \number $string-number }
+ #})