%****************************************************** % Inspirational header for Unfretted Strings section % % of Lilypond Documentation. This passage is taken % % from Ravel's String Quartet. % % ****************************************************% %\version "2.11.61" #(set-global-staff-size 15) \paper{ ragged-end=##t line-width=17\cm indent=0\cm } \layout { \context { \Score \remove "Bar_number_engraver" \override PaperColumn #'keep-inside-line = ##t \override NonMusicalPaperColumn #'keep-inside-line = ##t } } %*************** MACROS ******************% #(define (octave-up m t) (let* ((octave (1- t)) (new-note (ly:music-deep-copy m)) (new-pitch (ly:make-pitch octave (ly:pitch-notename (ly:music-property m 'pitch)) (ly:pitch-alteration (ly:music-property m 'pitch))))) (set! (ly:music-property new-note 'pitch) new-pitch) new-note)) #(define (octavize-chord elements t) (cond ((null? elements) elements) ((eq? (ly:music-property (car elements) 'name) 'NoteEvent) (cons (car elements) (cons (octave-up (car elements) t) (octavize-chord (cdr elements) t)))) (else (cons (car elements) (octavize-chord (cdr elements ) t))))) #(define (octavize music t) (if (eq? (ly:music-property music 'name) 'EventChord) (ly:music-set-property! music 'elements (octavize-chord (ly:music-property music 'elements) t))) music) makeOctaves = #(define-music-function (parser location arg mus) (integer? ly:music?) (music-map (lambda (x) (octavize x arg)) mus)) %\relative c' { d e \makeOctaves #-1 { \times 2/3 {f g c }}} % this is an example of the macro in practice %%%%%%% Valentin Villanave's macro for the French-style C clef %%%%%%%%%%% altoClef = \markup \postscript #" gsave newpath 0.004 0.004 scale -180 0 translate 248 -306 moveto 248 -492 lineto 248 -496 245 -500 240 -500 curveto 218 -500 lineto 213 -500 210 -496 210 -492 curveto 210 492 lineto 210 496 213 500 218 500 curveto 240 500 lineto 245 500 248 496 248 492 curveto 248 292 lineto 274 270 348 242 370 242 curveto 404 242 462 228 462 453 curveto 462 560 476 670 576 670 curveto 628 670 671 626 671 571 curveto 671 516 628 471 576 471 curveto 526 471 530 496 520 503 curveto 513 502 510 478 510 437 curveto 510 340 lineto 510 192 490 94 477 79 curveto 442 39 332 70 248 70 curveto 248 -83 lineto 332 -83 442 -53 477 -93 curveto 490 -108 510 -206 510 -354 curveto 510 -451 lineto 510 -491 513 -516 520 -517 curveto 530 -509 526 -485 576 -485 curveto 628 -485 671 -530 671 -584 curveto 671 -640 628 -684 576 -684 curveto 476 -684 462 -574 462 -467 curveto 462 -242 404 -256 370 -256 curveto 348 -256 274 -283 248 -306 curveto closepath 130 -500 moveto 8 -500 lineto 4 -500 0 -496 0 -492 curveto 0 492 lineto 0 496 4 500 8 500 curveto 130 500 lineto 134 500 138 496 138 492 curveto 138 -492 lineto 138 -496 134 -500 130 -500 curveto closepath fill grestore" %********************************************************************* % This is a sweet macro by Mark Polesky to make the 4th-string % indication look like it did in the original score %******************************************************************** #(define-markup-command (No layout props n) (string?) (define (format-char c) (let ((s (string c))) (if (number? (string->number s)) (markup #:hspace 0.125 #:number s #:hspace 0.125) (markup #:hspace 0 #:fontsize 2 s)))) (define (format-string s i) (let ((n (string-length s))) (if (= n 0) (markup #:null) (markup (format-char (string-ref s i)) (if (= (+ i 1) n) (markup #:null) (format-string s (+ i 1))))))) (let ((i (string-length n))) (interpret-markup layout props (markup #:concat ( #:concat ( #:fontsize 3 "4" #:hspace 0.5 #:override '(baseline-skip . 0.825) #:override '(direction . 1) #:dir-column ( #:fontsize 2 #:center-align "." #:fontsize 1 #:center-align "e" ) ) #:hspace 0.75 #:concat ( (format-string n 0) #:fontsize 2 "" ) ) ) ) ) ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 poco = \markup { \italic { \fontsize #+2.0 "poco" }} apoco = \markup { \italic { \fontsize #+2.0 "a" }} menovivo = \markup { \bold { \fontsize #+3.0 { "Poco meno vivo"} } } pocorit = \markup { \bold { \fontsize #+3.0 { "poco rit."} } } pocodim = \markup { \italic { \fontsize #+2.0 "un poco dim." }} vlnOne = \relative c''' { \key f \major \time 4/4 \set Staff.midiInstrument = "violin" \override TupletBracket #'bracket-visibility = ##f \set tupletSpannerDuration = #(ly:make-moment 1 4) \once \override TextScript #'extra-offset = #'( -3.8 . 0.6 ) es4^\apoco \once \override TextScript #'extra-offset = #'( -1.0 . -0.8 ) \times 2/3 { c8(^\poco d es) } es4 \times 2/3 { c8( d es) } | % 1 es4\ff\< \times 2/3 { c8( d es) } es4 \times 2/3 { c8( d es)\! } | % 2 \grace { a,,8[( a'\fff]^\menovivo } a'4) g8( a) d,4 c8( d) | % 3 a4 g8( a) d,4 c8( d) | % 4 a4 g8( a) d,8^\pocorit r8 r4 | % 5 ais16(\p\< e' ais e') e16(\f\> ais, e ais,)\! ais8 r r4 | % 6 } vlnTwo = \relative c' { \key f \major \time 4/4 \set Staff.midiInstrument = "violin" \override TupletBracket #'bracket-visibility = ##f \set tupletSpannerDuration = #(ly:make-moment 1 4) \times 2/3 { \makeOctaves #1 {fis8 fis fis fis fis fis fis fis fis fis fis fis }} | % 1 \times 2/3 { \makeOctaves #1 {fis8\ff\< fis fis fis fis fis fis fis fis fis fis fis\! }} |% 2 16\fff( ais' e ais,) ais16( e' ais e') e16( ais, e ais,) ais16( e' ais e') | % 3 e16( ais, e ais,) ais16( e' ais e') e16( ais, e ais,) ais16( e' ais e') | % 4 e16( ais, e ais,) \set subdivideBeams = ##t \set Score.beatLength = #(ly:make-moment 1 8) ais16( e') e( ais,) d4^\markup \No #"Corde" \once \override TextScript #'extra-offset = #'( -5.5 . 4.4 ) c8(_\markup { \italic { \fontsize #+1.0 "vibrato" }} d) | % 5 \set subdivideBeams = ##f a2 ~ a8 g( c d) % 6 } vlnTwoDyn = { s1*4 s2 s4\f\< s8. s16\! | s16 s16\> s8 s2 s8 s16 s32 s32\! } vla = \relative c'' { \key f \major \time 4/4 \clef "alto" \override Staff.Clef #'stencil = #ly:text-interface::print \override Staff.Clef #'text = \altoClef \set Staff.midiInstrument = "viola" \override Stem #'length = #9.5 bes4:32 a4:32 gis4:32 a4:32 | % 1 bes4:32 a4:32 gis4:32 a4:32\! | % 2 \tweak #'extra-offset #'(-1.3 . -0.0) % \clef "treble" % I put the clef change in the Dynamics context instead \revert Stem #'length \acciaccatura { a8 } a'4\fff g8( a) d,4 c8( d) a4 g8( a) d,4 c8( d) | % 4 a4 g8 a 2:32 | % 5 1:32 | % 6 } vlaDyn = { s1 | s2\ff\< s4 s8 s16\! s32 s64 \revert Staff.Clef #'stencil % = #ly:text-interface::print \revert Staff.Clef #'text \clef "treble" s64 | s2 s4 s8 s16 s32 \override Staff.Clef #'stencil = #ly:text-interface::print \override Staff.Clef #'text = \altoClef \clef "alto" %3 s32 s1| s2 s4\f\< s8 s16 s32 s32\! | % 3-5 s16 s16\> s8 s2 s8 s16 s32 s32\! | %6 } vc = \relative c' { \key f \major \time 4/4 \clef "bass" \set Staff.midiInstrument = "cello" \override Stem #'length = #9.5 c4:32 d4:32 es4:32 d4:32 | % 1 c4:32 d4:32 es4:32 d4:32\! | % 2 \revert Stem #'length \set subdivideBeams = ##t \set Score.beatLength = #(ly:make-moment 1 8) 16\fff( ) ( ) % 3 16( ) ( ) % 3 16( ) ( ) % 3 16( ) ( ) | % 3 16( ) ( ) % 4 16( ) ( ) % 4 16( ) ( ) % 4 16( ) ( ) | % 4 16( ) ( ) % 5 16( ) ( ) fis2^\( ~ | % 5 fis4 g c,\) r4 % 6 } vcDyn = { s1 | s2\ff\< s4 s8. s16\! | % 1-2 s1*2 % 3-4 s2 s4\f\< s8 s16 s32 s32\! | % 5 s4\> s4 s4\! s4 | % 6 } %%%%%%%%%%%%%%%% Score Block %%%%%%%%%%%%%%%%%%%%%% \score { << % creates new grand staff \new StaffGroup = "strings" << \context Staff = "violinOne" \vlnOne << \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2) >> \context Staff = "violinTwo" << \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1) \context Voice = "violin 2" { \vlnTwo } \context Voice = "violin 2 dynamics" { \vlnTwoDyn } >> \new Staff = "viola" << \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1) \context Voice = "viola" { \vla } \context Voice = "viola dynamics" { \vlaDyn } >> \new Staff = "cello" << \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1) \context Voice = "cello" { \vc } \context Voice = "cello dynamics" { \vcDyn } >> >> % end of "strings" staffgroup >> % end of grand staff \layout { \context { \Staff % \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4) } \context { \Score \override TimeSignature #'stencil = ##f \override BarNumber #'padding = #3 \override RehearsalMark #'padding = #2 skipBars = ##t } % context \Score \overrides end } % layout end \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 120 4) } } } % score end