From: fred Date: Fri, 6 Apr 2001 18:40:27 +0000 (+0000) Subject: lilypond-1.3.147 X-Git-Tag: release/1.5.59~5702 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=639892fca1a2220ad7d3e2e4d226574267a6deb5;p=lilypond.git lilypond-1.3.147 --- diff --git a/input/test/music-box.ly b/input/test/music-box.ly new file mode 100644 index 0000000000..2ff6c639e4 --- /dev/null +++ b/input/test/music-box.ly @@ -0,0 +1,164 @@ + +\header{ +texidoc = "This example shows prelude in C major of WTK1, but coded +using Scheme functions to save typing work. +" + + + + title = "Preludium" + opus = "BWV 846" + composer = "Johann Sebastian Bach (1685-1750)" + enteredby = "Rune Zedeler" + mutopiatitle = "Das Wohltemperierte Clavier I, Prelude 1 (c-major)" + mutopiacomposer = "J.S.Bach" + mutopiaopus = "BWV846" + mutopiainstrument = "Piano" + style = "baroque" + copyright = "Public Domain" + maintainer = "rz@daimi.au.dk" + lastupdated = "2001/mar/30" + tagline = "\\parbox{\hsize}{\\thefooter\\quad\\small \\\\This music is part of the Mutopia project, \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset and placed in the public domain by " + \maintainer + ".\\\\Unrestricted modification and redistribution is permitted and encouraged---copy this music and share it!}" +} + +\include "deutsch.ly" + +#(define (transform music) + (let* ((es (ly-get-mus-property music 'elements)) + (n (ly-music-name music)) + ) + (if (not (equal? n "Sequential_music")) + (ly-warn "transform needs sequential music!") + (begin + (let recurse ((elts es)) + (if (not (equal? elts '())) + (begin + ((trans (ly-get-mus-property (cadr elts) 'elements)) (car elts)) + (set-cdr! elts (cddr elts)) + (recurse (cdr elts)) + ) + ) + ) + ) + ) + music + ) + ) + +#(define ((trans pitches) music) + (let* ((es (ly-get-mus-property music 'elements)) + (e (ly-get-mus-property music 'element)) + (p (ly-get-mus-property music 'pitch)) + (body (ly-get-mus-property music 'body)) + (alts (ly-get-mus-property music 'alternatives))) + + (if (pair? es) + (ly-set-mus-property + music 'elements + (map (trans pitches) es))) + + (if (music? alts) + (ly-set-mus-property + music 'alternatives + ((trans pitches) alts))) + + (if (music? body) + (ly-set-mus-property + music 'body + ((trans pitches) body))) + + (if (music? e) + (ly-set-mus-property + music 'element + ((trans pitches) e))) + + (if (pitch? p) + (let* ((o (pitch-octave p)) + (n (pitch-notename p)) + (i (+ (* 7 o) n)) + (pes (ly-get-mus-property (list-ref pitches i) 'elements)) + (pnew (ly-get-mus-property (car pes) 'pitch)) + ) + (ly-set-mus-property music 'pitch pnew) + ) + ) + music + ) + ) + + + + + +\version "1.3.142" + +pat = \notes \transpose c'' \repeat unfold 2 { + < { \context Staff=up {r8 e16 f g e f g } } + { \context Staff=down < + \context Voice=vup { \stemUp \tieUp r16 d8.~d4 } + \context Voice=vdwn { \stemDown c2 } + > } + > +} + +enda = \notes { r8 f,16 a, c f c a, \stemUp c \translator Staff = down + a, f, a, f, d, f, d, \translator Staff = up \stemBoth + r8 g16 h d' f' d' h d' h g h d f e-\prall d \bar "|." +} +endb = \notes {\stemUp \tieUp r16 c,8.~c,4~c,2 r16 h,,8.~h,,4~h,,2 c,1 \bar "|."} +endc = \notes {\stemDown \tieDown c,,2~c,, c,,~c,, c,,1_\fermata } + +\score { + \notes \transpose c'' \context PianoStaff < + \context Staff=up { \clef "G" s1*32 \enda } + \context Staff=down { \clef "F" s1*32 < \context Voice=vup \endb + \context Voice=vdwn \endc + > } + { \apply #transform {\pat {c e g c' e' } + \pat {c d a d' f' } + \pat {h, d g d' f' } + \pat {c e g c' e' } + \pat {c e a e' a' } + \pat {c d fis a d' } + \pat {h, d g d' g' } + \pat {h, c e g c' } + \pat {a, c e g c' } + \pat {d, a, d fis c' } + \pat {g, h, d g h } + \pat {g, b, e g cis' } + \pat {f, a, d a d' } + \pat {f, as, d f h } + \pat {e, g, c g c' } + \pat {e, f, a, c f } + \pat {d, f, a, c f } + + \pat {g,, d, g, h, f } + \pat {c, e, g, c e } + \pat {c, g, b, c e } + \pat {f,, f, a, c e } + \pat {fis,, c, a, c es } + \pat {as,, f, h, c d } + \pat {g,, f, g, h, d } + \pat {g,, e, g, c e } + \pat {g,, d, g, c f } + \pat {g,, d, g, h, f } + \pat {g,, es, a, c fis } + \pat {g,, e, g, c g } + \pat {g,, d, g, c f } + \pat {g,, d, g, h, f } + \pat {c,, c, g, b, e } + } + } + > + \paper { + \translator { + \PianoStaffContext + VerticalAlignment \override #'forced-distance = #10 + } + + linewidth = 18.0 \cm + } + \midi { + \tempo 4 = 80 + } +}