From: Graham Percival Date: Sat, 10 Nov 2007 04:15:15 +0000 (-0800) Subject: LSR: new files. X-Git-Tag: release/2.11.35-1~41^2~3^2~13 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3014fe78038b362fd73d534cc9b2ef43e0f78fd6;p=lilypond.git LSR: new files. --- diff --git a/input/lsr/pitches/creating-music-with-scheme.ly b/input/lsr/pitches/creating-music-with-scheme.ly new file mode 100644 index 0000000000..9f85797483 --- /dev/null +++ b/input/lsr/pitches/creating-music-with-scheme.ly @@ -0,0 +1,93 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +This example shows prelude in C major of WTK1, but coded using Scheme +functions to avoid typing work. +" } + +\version "2.11.23" + +\include "deutsch.ly" +#(define (transform music) + (let* ((es (ly:music-property music 'elements)) + (n (ly:music-property music 'name))) + (if (not (equal? n 'SequentialMusic)) + (ly:warning "transform needs SequentialMusic, got ~a" n) + (begin + (let recurse ((elts es)) + (if (not (equal? elts '())) + (begin + ((trans (ly:music-property (cadr elts) 'elements)) (car +elts)) + (set-cdr! elts (cddr elts)) + (recurse (cdr elts)) + ))))) + music + )) + +#(define ((trans pitches) music) + (let* ((es (ly:music-property music 'elements)) + (e (ly:music-property music 'element)) + (p (ly:music-property music 'pitch))) + + (if (pair? es) + (ly:music-set-property! + music 'elements + (map (trans pitches) es))) + + (if (ly:music? e) + (ly:music-set-property! + music 'element + ((trans pitches) e))) + + (if (ly:pitch? p) + (let* ((o (ly:pitch-octave p)) + (n (ly:pitch-notename p)) + (i (+ (* 7 o) n)) + (pes (ly:music-property (list-ref pitches i) 'elements)) + (pnew (ly:music-property (car pes) 'pitch)) + ) + (ly:music-set-property! music 'pitch pnew) + )) + music)) + + + + + + + +pat = \transpose c 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 = { r8 f,16 a, c f c a, \stemUp c \change Staff = down + a, f, a, f, d, f, d, \change Staff = up \stemNeutral + r8 g16 h d' f' d' h d' h g h d f e\prall d 1^\fermata \bar +"|." +} +endb = {\stemUp \tieUp r16 c,8.~c,4~c,2 r16 h,,8.~h,,4~h,,2 c,1 \bar +"|."} +endc = {\stemDown \tieDown c,,2~c,, c,,~c,, c,,1_\fermata } + +\score { + \transpose c c' \context PianoStaff << + \new Staff = "up" { \clef "G" } + \new Staff = "down" { \clef "F" } + { \applyMusic #transform { + \pat {c e g c' e' } + \pat {c d a d' f' } + } + % Etc, we get the idea now + } + >> +} + + + diff --git a/input/lsr/real-music/GNUmakefile b/input/lsr/real-music/GNUmakefile new file mode 100644 index 0000000000..3819fda13a --- /dev/null +++ b/input/lsr/real-music/GNUmakefile @@ -0,0 +1,15 @@ +depth = ../../../ + +STEPMAKE_TEMPLATES=documentation texinfo tex +LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc + +## Hmm, would this work? No -- if we really want examples, move +## to other dir (input/) comes to mind. +## examples = font20 ancient-font +## LOCALSTEPMAKE_TEMPLATES += ly mutopia + +EXTRA_DIST_FILES= + +include $(depth)/make/stepmake.make + +TITLE=Advanced snippets diff --git a/input/lsr/real-music/SConscript b/input/lsr/real-music/SConscript new file mode 100644 index 0000000000..f72bfffc28 --- /dev/null +++ b/input/lsr/real-music/SConscript @@ -0,0 +1,4 @@ +# -*-python-*- + +Import ('env', 'collate') +collate (title = 'Advanced snippets') diff --git a/input/lsr/real-music/creating-music-with-scheme.ly b/input/lsr/real-music/creating-music-with-scheme.ly new file mode 100644 index 0000000000..9f85797483 --- /dev/null +++ b/input/lsr/real-music/creating-music-with-scheme.ly @@ -0,0 +1,93 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +This example shows prelude in C major of WTK1, but coded using Scheme +functions to avoid typing work. +" } + +\version "2.11.23" + +\include "deutsch.ly" +#(define (transform music) + (let* ((es (ly:music-property music 'elements)) + (n (ly:music-property music 'name))) + (if (not (equal? n 'SequentialMusic)) + (ly:warning "transform needs SequentialMusic, got ~a" n) + (begin + (let recurse ((elts es)) + (if (not (equal? elts '())) + (begin + ((trans (ly:music-property (cadr elts) 'elements)) (car +elts)) + (set-cdr! elts (cddr elts)) + (recurse (cdr elts)) + ))))) + music + )) + +#(define ((trans pitches) music) + (let* ((es (ly:music-property music 'elements)) + (e (ly:music-property music 'element)) + (p (ly:music-property music 'pitch))) + + (if (pair? es) + (ly:music-set-property! + music 'elements + (map (trans pitches) es))) + + (if (ly:music? e) + (ly:music-set-property! + music 'element + ((trans pitches) e))) + + (if (ly:pitch? p) + (let* ((o (ly:pitch-octave p)) + (n (ly:pitch-notename p)) + (i (+ (* 7 o) n)) + (pes (ly:music-property (list-ref pitches i) 'elements)) + (pnew (ly:music-property (car pes) 'pitch)) + ) + (ly:music-set-property! music 'pitch pnew) + )) + music)) + + + + + + + +pat = \transpose c 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 = { r8 f,16 a, c f c a, \stemUp c \change Staff = down + a, f, a, f, d, f, d, \change Staff = up \stemNeutral + r8 g16 h d' f' d' h d' h g h d f e\prall d 1^\fermata \bar +"|." +} +endb = {\stemUp \tieUp r16 c,8.~c,4~c,2 r16 h,,8.~h,,4~h,,2 c,1 \bar +"|."} +endc = {\stemDown \tieDown c,,2~c,, c,,~c,, c,,1_\fermata } + +\score { + \transpose c c' \context PianoStaff << + \new Staff = "up" { \clef "G" } + \new Staff = "down" { \clef "F" } + { \applyMusic #transform { + \pat {c e g c' e' } + \pat {c d a d' f' } + } + % Etc, we get the idea now + } + >> +} + + + diff --git a/input/lsr/real-music/inserting-score-fragments-above-the-staff,-as-markups.ly b/input/lsr/real-music/inserting-score-fragments-above-the-staff,-as-markups.ly new file mode 100644 index 0000000000..375486fac2 --- /dev/null +++ b/input/lsr/real-music/inserting-score-fragments-above-the-staff,-as-markups.ly @@ -0,0 +1,33 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +The \\markup command is quite versatile. In this snippet, it contains a +\\score bloc instead of texts or marks. +" } + +tuning = \markup { + \score { + \new Staff \with { + \remove Time_signature_engraver + } { + \clef bass 1 + } + \layout { ragged-right = ##t } + } +} + + +\header { + title = "Solo Cello Suites" + subtitle = "Suite IV" + subsubtitle = \markup { "Originalstimmung:" \tuning } +} + +\relative { + \time 4/8 + \times 2/3 { c'8 d e } \times 2/3 {c d e} + \times 2/3 { c8 d e } \times 2/3 {c d e} + g8 a8 g8 a + g8 a8 g8 a +} diff --git a/input/lsr/real-music/score-for-diatonic-accordion.ly b/input/lsr/real-music/score-for-diatonic-accordion.ly new file mode 100644 index 0000000000..9ead0e537b --- /dev/null +++ b/input/lsr/real-music/score-for-diatonic-accordion.ly @@ -0,0 +1,419 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +A template to write score for a diatonic accordion. + +- There is a horizontal staff indicating if the accordion   must be +pushed (thick line) or pulled (thin line) + +- There is a small rhytmic staff with lyrics that describes the bass +buttons to press.   The bar-lines are made of gridlines ( Gridlines, +not a really satisfying solution, but the best I found) + +- The tabulator staff for diatonic accordions shows the geographic +position of the buttons   and not (as for every other instrument) the +pitch of the tones.   The keys on the melody-side of the accordion are +placed in three columns and about 12 rows.   In the tabulator staff +notation the   - most outer column is described with notes between +lines   - most inner column is described with notes between lines with +a cross as accidental   - middle column is described with notes on a +line, whereby the row in the middle is represented     on the middle +line in the staff. + + + +Some words to transpose piano note to the diatonic accordion. +------------------------------------------------------------ 1. Every +diatonic accordion is built for some keys only. For example    for the +key of C-major and F-major.    So it is important to transpose a piano +melody to match one of these keys.    Transpose the source code, not +only the output because    you need this code later on to translate it +once more to the tabulator staff.    This can be done with the command +'displayLilyMusic'. + +2. You have to alternate the push and pull-direction of the accordion +regularely.    If the player has a too long part to pull the accordion +gets broken.    At the other hand some harmonies are only available in +one direction (push or pull)    Considering this decide which parts of +the melody are the push-parts and whic the  pull-parts. + +3. For each pull- / or push-part translate the piano notes to the +according tabulatur representation. + +This snippet comes with a useful optional macro for the jEdit text +editor. +" } + +% Created on Sat Aug 17 2007 by ak + +verse= \lyricmode { Wie gross bist du! Wie gross bist du! } + +harmonies = \new ChordNames \chordmode { + \germanChords \set chordChanges = ##t + bes8 bes8 bes8 es2 f bes1 +} + +NoStem = \override Stem #'transparent = ##t +NoNoteHead= \override NoteHead #'transparent = ##t +ZeroBeam = \override Beam #'positions = #'(0 . 0) + +staffTabLine = \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } { + \override Staff.StaffSymbol #'line-positions = #'( 0 ) +% Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline + \set Staff.midiInstrument="choir aahs" + \key c \major + \relative c'' + { + % disable the following line to see the the noteheads while writing the song + \NoNoteHead + \override NoteHead #'no-ledgers = ##t + + % The beam between 8th-notes is used to draw the push-line + %How to fast write the push-lines: + % 1. write repeatedly 'c c c c c c c c |' for the whole length of the song + % 2. uncomment the line \NoNoteHead + % 3. compile + % 4. Mark the positions on which push/pull changes. + % In the score-picture click on the position the push- or pull-part starts + % (on the noteHead, the cursor will change to a hand-icon). + % The cursor in the source code will jump just at this position. + % a) If a push-part starts there, replace the 'c' by an 'e[' + % b) If a pull-part starts there, replace the 'c' by an 's' + % 5. Switch into 'overwrite-mode' by pressing the 'ins' key. + % 6. For the pull-parts overwrite the 'c' with 's' + % 7. For every push-part replace the last 'c' with 'e]' + % 8. Switch into 'insert-mode' again + % 9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c e] s s) + % 10. re-enable the line \NoNoteHead + \autoBeamOff + \ZeroBeam + s8 s s | e[ c c c c c c e] | s s s s s + } +} + +%{ +notePush= { e f fis g a c' c' d' ees' e' f' fis' g' a' bes' c'' c'' d'' ees'' e'' f'' fis'' g'' a'' c''' c''' ees''' e''' f''' g''' a''' } +tabPush= { g f e b a d' c' bisis disis' f' e' aisis' a' g' fisis' b' c'' eisis'' cisis'' e'' d'' gisis'' g'' f'' a'' b'' bisis'' d''' c''' f''' e''' } + +notePull= { g aes bes b c' cis' d' ees' e' f' fis' g' aes' a' bes' b' c'' cis'' d'' ees'' e'' f'' g'' aes'' a'' bes'' b'' c''' cis''' d''' e''' } +tabPull= { g e f b a disis' d' bisis c' f' fisis' e' aisis' a' g' c'' b' cisis'' e'' eisis'' d'' g'' f'' gisis'' b'' a'' d''' f''' bisis'' c''' e''' } +%} + +% Accordion melody in tabulator score +% 1. Place a copy of the piano melody below +% 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made +% 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then change the second line using the transformation paper +% or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh' +% Tips: +% - In jEdit Search & Replace mark the Option 'Keep Dialog' + +AccordionTabTwoCBesDur= { + % pull 1 + %8 8 8 | +8 8 8 | + % push 2 + %4 | +4 | + % pull 3 +% 2 r8 } + 2 r8 } + + AccordionTab= { \dynamicUp +% 1. Place a copy of the piano melody above +% 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made +% 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then +% change the second line using the transformation paper +% Tips: +% - In jEdit Search & Replace mark the Option 'Keep Dialog' +% - +\AccordionTabTwoCBesDur + } + + + + \layout { + \context { + \Staff + \consists "Grid_point_engraver" + + gridInterval = #(ly:make-moment 4 4) % 4/4 - tact. How many beats per bar + + % The following line has to be adjusted O-F-T-E-N. + \override GridPoint #'Y-extent = #'(-2 . -21) + } + \context { + \ChoirStaff + \remove "System_start_delimiter_engraver" + } +} + +staffVoice = \new Staff=astaffvoice { + \time 4/4 + \set Staff.instrumentName="Voice" + \set Staff.midiInstrument="voice oohs" + \key bes \major + \partial 8*3 + \clef treble + { + \context Voice = "melodyVoi" + { 8 8 8 | 4 | 2 r8 } + \bar "|." + } +} + +staffAccordionMel = \new Staff \with { \remove "Clef_engraver" } { + #(set-accidental-style 'forget) %Set the accidentals (Vorzeichen) for each note, + %do not remember them for the rest of the measure. + \time 4/4 + \set Staff.instrumentName="Accordion" + \set Staff.midiInstrument="voice oohs" + \key c \major + \clef treble + { \AccordionTab \bar "|." } +} + + AltOn = #(define-music-function (parser location mag) (number?) + #{ \override Stem #'length = #$(* 7.0 mag) + \override NoteHead #'font-size = + #$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #}) + + AltOff = { + \revert Stem #'length + \revert NoteHead #'font-size + } + +BassRhytm = {s4 s8 | c2 c2 | c2 s8 } +LyricBassRhythmI= \lyricmode { c b | c } + +staffBassRhytm = \new Staff=staffbass \with { \remove "Clef_engraver" } { + % This is not a RhythmicStaff because it must be possible to append lyrics. + + \override Score.GridLine #'extra-offset = #'( 13.0 . 0.0 ) % x.y + \override Staff.StaffSymbol #'line-positions = #'( 0 ) + % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated by a grid + % Search for 'grid' in this page to find all related functions + \time 4/4 + { + \context Voice = "VoiceBassRhytm" + \stemDown \AltOn #0.6 + \relative c'' + { + \BassRhytm + } + \AltOff + \bar "|." + } +} + +\new Score +\with { + \consists "Grid_line_span_engraver" %The vertical line (simulating a bar-line) in the staffBassRhytm is a gridline +} +\new ChoirStaff + << + \harmonies + \staffVoice + \context Lyrics = "lmelodyVoi" \with {alignBelowContext=astaffvoice} { \lyricsto "melodyVoi" \verse } + \staffAccordionMel + \staffTabLine + \staffBassRhytm + \context Lyrics = "lBassRhytmAboveI" \with {alignAboveContext=staffbass} \lyricsto VoiceBassRhytm \LyricBassRhythmI + >> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% APPENDIX % +% macro 'macro_conv2diaton_push.bsh' for jedit editor % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%{ +// original saved in 'Handorg_Adria_Diaton_III.xls' +// Save this buffer, to the other recorded macros in the jedit editor +// and the macro should appear in the +// Macros menu. + +// /ak 17.8.07 This macro from converts lilypond piano notation into +// lilypond tabulator notation for the push-part (at the bottom the pull-part) of a diatonic accordion +// It replaces the piano notes of the line where the cursor is by the accordion notation + + + +// Known issues: 1) A note at the end of line is not replaced + +textArea.goToEndOfWhiteSpace(false); +textArea.goToStartOfWhiteSpace(true); + + +String firstName, lastName; + +int ReplaceTextInSelection(String sfind, String sreplace) +{ +//MsgConcat = new StringBuffer(512); +//MsgConcat.append("Ha"); + +//Macros.message(view, "On that line replace \"" + sfind + "\" by \"" + sreplace+ "\""); +SearchAndReplace.setSearchString(sfind.toString()); +SearchAndReplace.setReplaceString(sreplace.toString()); +SearchAndReplace.setBeanShellReplace(false); +SearchAndReplace.setIgnoreCase(true); +SearchAndReplace.replace(view); +SearchAndReplace.setRegexp(true); +return 1; +} + + +String smainfind; +String smainrepl; + + +// Push-part tmp +smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpr$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(as\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); + +smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl ); +*/ + +/* +// Pull-part tmp +smainfind="(\\s|^|<|\\{)(c,)([^\'^is^es])"; smainrepl="$1tmpa-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des,)([^\'^is^es])"; smainrepl="$1tmpdisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d,)([^\'^is^es])"; smainrepl="$1tmpd\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees,)([^\'^is^es])"; smainrepl="$1tmpbisis-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e,)([^\'^is^es])"; smainrepl="$1tmpc\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f,)([^\'^is^es])"; smainrepl="$1tmpf\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges,)([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g,)([^\'^is^es])"; smainrepl="$1tmpg$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes,)([^\'^is^es])"; smainrepl="$1tmpe$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a,)([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes,)([^\'^is^es])"; smainrepl="$1tmpf$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b,)([^\'^is^es])"; smainrepl="$1tmpb$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c)([^\'^is^es])"; smainrepl="$1tmpa$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des)([^\'^is^es])"; smainrepl="$1tmpdisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d)([^\'^is^es])"; smainrepl="$1tmpd\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees)([^\'^is^es])"; smainrepl="$1tmpbisis$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e)([^\'^is^es])"; smainrepl="$1tmpc\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f)([^\'^is^es])"; smainrepl="$1tmpf\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges)([^\'^is^es])"; smainrepl="$1tmpfisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g)([^\'^is^es])"; smainrepl="$1tmpe\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes)([^\'^is^es])"; smainrepl="$1tmpaisis\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a)([^\'^is^es])"; smainrepl="$1tmpa\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes)([^\'^is^es])"; smainrepl="$1tmpg\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b)([^\'^is^es])"; smainrepl="$1tmpc\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c\')([^\'^is^es])"; smainrepl="$1tmpb\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des\')([^\'^is^es])"; smainrepl="$1tmpcisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d\')([^\'^is^es])"; smainrepl="$1tmpe\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e\')([^\'^is^es])"; smainrepl="$1tmpd\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f\')([^\'^is^es])"; smainrepl="$1tmpg\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges\')([^\'^is^es])"; smainrepl="$1tmpfisis\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g\')([^\'^is^es])"; smainrepl="$1tmpf\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a\')([^\'^is^es])"; smainrepl="$1tmpb\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(c\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(cis\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(des\'\')([^\'^is^es])"; smainrepl="$1tmpbisis\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(d\'\')([^\'^is^es])"; smainrepl="$1tmpc\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(dis\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ees\'\')([^\'^is^es])"; smainrepl="$1tmpeisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(e\'\')([^\'^is^es])"; smainrepl="$1tmpe\'\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(f\'\')([^\'^is^es])"; smainrepl="$1tmpg\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(fis\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ges\'\')([^\'^is^es])"; smainrepl="$1tmpr-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(g\'\')([^\'^is^es])"; smainrepl="$1tmpf\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(gis\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(aes\'\')([^\'^is^es])"; smainrepl="$1tmpgisis\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(a\'\')([^\'^is^es])"; smainrepl="$1tmpb\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(ais\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(bes\'\')([^\'^is^es])"; smainrepl="$1tmpa\'\'$3"; ReplaceTextInSelection( smainfind, smainrepl ); +smainfind="(\\s|^|<|\\{)(b\'\')([^\'^is^es])"; smainrepl="$1tmpd\'\'\'-.$3"; ReplaceTextInSelection( smainfind, smainrepl ); + +smainfind="(\\s|^|<|\\{)(tmp)()"; smainrepl="$1$3"; ReplaceTextInSelection( smainfind, smainrepl ); +*/ + + +%} + diff --git a/input/lsr/rhythms/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly b/input/lsr/rhythms/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly new file mode 100644 index 0000000000..e499b5725c --- /dev/null +++ b/input/lsr/rhythms/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly @@ -0,0 +1,24 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +LilyPond syntax can involve many unusual placements for parentheses, +brackets etc., which might sometimes have to be interleaved.For +example, when entering a manual beam, the left square bracket has to be +placed after the starting note and its duration, not before. Similarly, +the right square bracket should directly follow the note which is to be +at the end of the requested beaming, even if this note happens to be +inside a tuplet section. This snippet demonstrates how to superpose +manual beaming, manual slurs, ties, and phrasing slurs, while using +tuplet sections (enclosed with curly braces). +" } + +{ + r16[ g16 \times 2/3 {r16 e'8] } + + g16( a \times 2/3 {b d e') } + + g8[( a \times 2/3 {b d') e'~]} + + \times 4/5 {e'32\( a b d' e'} a'4.\) +} diff --git a/input/lsr/rhythms/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly b/input/lsr/rhythms/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly new file mode 100644 index 0000000000..b52033e641 --- /dev/null +++ b/input/lsr/rhythms/automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly @@ -0,0 +1,52 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +In time signature 2/2 or 4/4 the beam are @code{         _____         + _   _ Default | | | | I want | | | |. } Use a \"macro\" with +#(override-auto-beam-setting '..... + + + +" } + +% Automatic beams two per two in 4/4 or 2/2 time signature +% _____ +% Default | | | | +% _ _ +% I want | | | | + +% The good way adapted from David Bobrof + +% macro for beamed two per two in 2/2 and 4/4 time signature +qbeam={ + #(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff) + #(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff) + #(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff) + } +% other macros +timeFractionstyle={ \override Staff.TimeSignature #'style = #'()} +textn = ^\markup{ without the macro } +texty = ^\markup{ with the macro } + +\score { + << + \new Staff << \relative c'' { + \timeFractionstyle + \time 4/4 + g8\textn g g g g g g g g g g g4 g8 g g + } + >> + + %Use the macro + + \new Staff << \relative c'' { + \timeFractionstyle + \time 4/4 + \qbeam + g8\texty g g g g g g g g g g g4 g8 g g + } + >> + >> +\layout{ raggedright = ##t } +} diff --git a/input/lsr/rhythms/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly b/input/lsr/rhythms/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly new file mode 100644 index 0000000000..d135c084a2 --- /dev/null +++ b/input/lsr/rhythms/changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly @@ -0,0 +1,43 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +The measureLength variable, together with measurePosition, determines +when a barline is needed. However, when using \\compressMusic, the +scaling of durations makes it difficult to change time signatures +without making a mess of it. + +Therefore, measureLength has to be set manually, using the +ly:make-moment callback. The second argument has to be the same as the +second argument of \\compressMusic. +" } + +\layout { + \context { \Score + \remove "Timing_translator" + \remove "Default_bar_line_engraver" + } + \context { + \Staff + \consists "Timing_translator" + \consists "Default_bar_line_engraver" + } +} + +<< + \new Staff { + \compressMusic #'( 8 . 5 ) { + \time 6/8 + \set Timing.measureLength = #(ly:make-moment 3 5) + b8 b b b b b + \time 2/4 + \set Timing.measureLength = #(ly:make-moment 2 5) + b4 b + } + } + \new Staff { + \clef bass + \time 2/4 + c2 d e f } + >> + diff --git a/input/lsr/rhythms/heavily-customized-polymetric-time-signatures.ly b/input/lsr/rhythms/heavily-customized-polymetric-time-signatures.ly new file mode 100644 index 0000000000..fdac8aee5b --- /dev/null +++ b/input/lsr/rhythms/heavily-customized-polymetric-time-signatures.ly @@ -0,0 +1,38 @@ +%% Do not edit this file; it is auto-generated from LSR! +\version "2.11.23" + +\header { texidoc = " +Though the set-time-signature thing was not the most essential here, it +has been included to show the beat of this piece (which is a template +of a real balkan song!). +" } + +#(define (compound-time one two three four five six seven eight nine ten num) + (markup #:override '(baseline-skip . 0) #:number + (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num)) #:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num)) #:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num)) #:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight num)) #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten num)))))) + + +melody = +{ \relative c'' { + \set Staff.instrumentName = "Bb Sop." + \key g \major \time 25/8 + \override Staff.TimeSignature #'stencil = #ly:text-interface::print + \override Staff.TimeSignature #'text = #(compound-time "3" "2" "2" "3" "2" "2" "2" "3" "2" "2" "8" ) + c8[ c c] d4 c8[ c] b[ c b] a4 g fis8[ e d c] b'[ c d] e4-^ fis8[ g] | \break + c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break } +} +drum = { + \new DrumStaff \drummode + { + \bar "|:" bd4. ^\markup { "Drums" } sn4 bd \bar ":" sn4. bd4 sn \bar ":" + bd sn bd4. sn4 bd \bar ":|" + } +} + +{ + \melody + \drum +}