\version "2.23.9" \language "english" #(set-object-property! 'scordaturaTuning 'translation-type? list?) %% Converted from articulations.cc #(use-modules (ice-9 match)) #(define (articulation-list note-events articulation-events type) (let loop ((note-events note-events) (articulation-events articulation-events) (acc '())) (match note-events (() (reverse! acc)) ((note-event . rest) (let ((found (find (lambda (ev) (memq type (ly:event-property ev 'class))) (ly:event-property note-event 'articulations)))) (cond (found (loop rest articulation-events (cons found acc))) ((pair? articulation-events) (loop rest (cdr articulation-events) (cons (car articulation-events) acc))) (else (loop rest '() (cons '() acc))))))))) #(define (Scordaturize_performer context) (let ((note-evs '()) (string-number-evs '()) (fingering-evs '())) (make-performer (listeners ((note-event engraver event) (set! note-evs (cons event note-evs))) ((string-number-event engraver event) (set! string-number-evs (cons event string-number-evs))) ((fingering-event engraver event) (set! fingering-evs (cons event fingering-evs)))) ((pre-process-music engraver) (let* ((tab-strings (articulation-list note-evs string-number-evs 'string-number-event)) (defined-fingers (articulation-list note-evs fingering-evs 'fingering-event)) (func (ly:context-property context 'noteToFretFunction)) (string-fret-finger (func context note-evs (list tab-strings defined-fingers))) (scordatura-tuning (ly:context-property context 'scordaturaTuning))) (for-each (lambda (ev elems) (match-let* (((string-number fret-number _) elems) (tuning-base (list-ref scordatura-tuning (1- string-number))) ;; Don't care about enharmony, it's about MIDI. (fret-diff (ly:make-pitch 0 0 (* 1/2 fret-number))) (sounding-pitch (ly:pitch-transpose tuning-base fret-diff))) (ly:event-set-property! ev 'pitch sounding-pitch))) note-evs string-fret-finger))) ((stop-translation-timestep engraver) (set! note-evs '()) (set! string-number-evs '()) (set! fingering-evs '()))))) \midi { \context { \Voice \consists #Scordaturize_performer noteToFretFunction = #determine-frets predefinedDiagramTable = ##f stringTunings = #guitar-tuning } } %%------------------------------------------------------------------------------ markDC ={ %\override Score.RehearsalMark.break-visibility = #end-of-line-visible \tweak self-alignment-X #RIGHT \mark \markup \tiny \bold "D.C." } global = { \undo \omit Staff.TimeSignature \set Staff.forceClef = ##t \clef "G_8" \key d \major \time 2/4 } guitarI = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" \set fingeringOrientations = #'(up) \set strokeFingerOrientations = #'(up) \voiceOne %\stemUp \mergeDifferentlyDottedOn \mergeDifferentlyHeadedOn %\compressEmptyMeasures \override Rest.staff-position= #6 %\incipit \global 4 fs 4. 8 e4 8 e 2 %5 r8 e 4 8 8[ _( ) cs] 4. e8 8[ e fs ] 8[ a ] [ g ] 4. 8 8[ ] 4 %%ligne 2 % \break 2 %15 4. 8 8[ ] 4 2 4 %20 4 %\break 4 cs8 e8[ cs b]%22 [ cs]\mordent 4. e8 %25 8[ e fs ] 8[ a ] 8[ g ] 4. 8 %29 %%ligne 3 % \break 8[ q q q] %30 4 %31 2 %32 4. 8 %33 8[ q q q] %34 4 %35 2 %36 2 %37 % \break \set stringNumberOrientations = #'(left) \set fingeringOrientations = #'(left) 4 q %38 2 %39 8 4 %40 4. b8 %41 cs!8[ ds e fs] %42 2 %43 %%ligne 4 % \break 2 %44 4 q %45 2 %46 8 4 %47 4. b8 %48 8[ ds e fs] %49 2 %50 %\break s2 %51 2 %52 r4 8 %53 2 q2 %55 \markDC \bar "|." } %---GII guitarII = \relative c' { \set Staff.midiInstrument = "acoustic guitar (nylon)" \set fingeringOrientations = #'(left) %\set Timing.beamExceptions = #'() \voiceOne %\stemUp %\mergeDifferentlyDottedOn \mergeDifferentlyHeadedOn %\override Rest.staff-position= #-6 %\slurDashed % \rhythmMark #"" \rhyMarkIIEighths \rhyMarkTriplets %\nullincipit \global 2 %2 g2 s2 %4 %5 a2 s2 s2 a2 2 \arpeggioBracket %\once \override Arpeggio.positions = #'(-5 . 3) 2\arpeggio 2 s2 s2 %%ligne 2 s2 s2 s2 s2 s2 s2 s2 s2 2 g2 s2 a2 \arpeggio s2 %%% linge 3 s2 s2 s2 s2 s2 s2 %35 s2 s2 s2 s2 s2 %40 g2 g2 %42 \stemDown \tweak Rest.extra-offset #'(0 . -10) r8 d[ ] %43 %%Ligne 4 g8[ a ] %44 s2 s2 %46 s2 %47 s2 %48 g2 %49 \tweak Rest.extra-offset #'(0 . -10) r8 d[ e fs] %50 %\stemDown 8[ b c!] %51 4 \once \override HorizontalBracketText.font-size = #-2 \once\override HorizontalBracketText.text = \markup \bold "1" a\startGroup %52 e4 \stopGroup \tweak Rest.staff-position #-6 r4 %53 s2 s2 %55 \bar "|." } %---GIII guitarIII = \relative c { \set Staff.midiInstrument = "acoustic guitar (nylon)" \set fingeringOrientations = #'(left) \voiceFour %\mergeDifferentlyDottedOn \mergeDifferentlyHeadedOn \override Rest.staff-position= #-6 %\slurDashed % \rhythmMark #"" \rhyMarkIIEighths \rhyMarkTriplets % \nullincipit \global d2 e, d8[ g] s2 %5 d8 e,4. a2 d4 2 a e2 4. c8 | c!8[ c c c] e,4 %%ligne 2 e,2 %15 c'!4. c8 c!8[ c c c] e,4 c'! e,8[ a ] 2 a2 e,2 %23 a2 d4 c! bf2 a2 e2 c'!4. c8 %%ligne 3 c!8[ c c c] %30 e,4 c'! %31 e,2 %32 c'!4. c8 %33 c!8[ c c c] %34 e,4 c'! %35 e,8[ a bf-1 c!-3] %36 d2 d2 d2 d2 %40 2 c! %42 e,2%43 %ligne4 s2 %44 d'2 d2 d2 %47 2 %48 c!2 %49 e,2 %50 s2 s2 s2 s2 %54 a2-0 \bar "|." } %------------------------------------------------------------------------------ guitarRedobles = { << \guitarI \\ \guitarII \\ \guitarIII >> } %%----------------------------------------------------------------------------- NomdesCordes = \markup { \fontsize #-5 \bold \column { "E""B""E""B""F#""E" } } \score { << \new Staff \with { scordaturaTuning = \stringTuning } \guitarRedobles %{ \new TabStaff \with { instrumentName = \markup \NomdesCordes } \guitarRedobles %} >> % \midi { \tempo 4=120 } \layout { } } \header { title = "Redobles" } \score { \new Staff \with { scordaturaTuning = \stringTuning } \unfoldRepeats \guitarRedobles \midi { \tempo 4=80 } }