From: Han-Wen Nienhuys Date: Tue, 2 Jan 2007 21:50:46 +0000 (+0100) Subject: move no-notation and midi to input/regression/ X-Git-Tag: release/2.11.8-1~24 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=31b82cda2639591fd180f2c174ded1737b673336;p=lilypond.git move no-notation and midi to input/regression/ --- diff --git a/input/midi/midi-absolute-volume.ly b/input/midi/midi-absolute-volume.ly deleted file mode 100644 index 8c3a24cd1c..0000000000 --- a/input/midi/midi-absolute-volume.ly +++ /dev/null @@ -1,34 +0,0 @@ - -\version "2.10.0" -\header { - texidoc = "@cindex Dynamic Absolute Volume -Absolute dynamics have an effect on MIDI files. -" -} - - -\score{ -\relative c''{ -%segfault in engraver -a1\ppp -a1\pp -a\p -a\mp -a\mf -a\f -a\ff -a\fff -a\sf -} -\layout{ ragged-right = ##t } - - \midi { - \context { - \Score - tempoWholesPerMinute = #(ly:make-moment 60 1) - } - } - - -} - diff --git a/input/midi/midi-drums.ly b/input/midi/midi-drums.ly deleted file mode 100644 index 2b799be25b..0000000000 --- a/input/midi/midi-drums.ly +++ /dev/null @@ -1,18 +0,0 @@ - -\version "2.10.0" - -\version "2.10.1" - -\score { - \new DrumStaff << - \drummode { - bd4 sn4 bd4 sn4 - << - {\voiceOne \repeat unfold 16 hh16 } - \new DrumVoice { \voiceTwo bd4 sn4 bd4 sn4 } - >> \oneVoice - } - >> - \layout {} - \midi {} -} diff --git a/input/midi/midi-grace.ly b/input/midi/midi-grace.ly deleted file mode 100644 index 213de79e37..0000000000 --- a/input/midi/midi-grace.ly +++ /dev/null @@ -1,22 +0,0 @@ -\version "2.10.0" -\header{ texidoc = "Tests MIDI output with grace notes. " } - -\score { - \context Voice \relative c { - \new Voice = VoiceOne - \grace { - \override Stem #'stroke-style = #"grace" - c8 - \revert Stem #'stroke-style } - d4 d d d d - \grace { - \override Stem #'stroke-style = #"grace" - e16 f e f - \revert Stem #'stroke-style } - d4 d d d d - - } - \layout { } - \midi { } -} - diff --git a/input/midi/midi-lyric-barcheck.ly b/input/midi/midi-lyric-barcheck.ly deleted file mode 100644 index 5c06916af0..0000000000 --- a/input/midi/midi-lyric-barcheck.ly +++ /dev/null @@ -1,24 +0,0 @@ -\version "2.10.0" -\header { - - texidoc = "Lyrics in MIDI are aligned to ties and beams: -this examples causes no bar checks in MIDI. -" - - - } -\score { - - <<\relative c'' \new Voice = A { - \autoBeamOff - c8[ c] c2. - c1~c4 c2. - c4 ( d e) d - c1 - - } - \lyricsto "A" \lyrics { bla bla | bla bla | bla bla | bla } - >> - \layout {} - \midi {} - } diff --git a/input/midi/midi-scales.ly b/input/midi/midi-scales.ly deleted file mode 100644 index d6e8ed91c5..0000000000 --- a/input/midi/midi-scales.ly +++ /dev/null @@ -1,159 +0,0 @@ - -\version "2.10.0" -% candidate for regression. -gp -\header { - texidoc="Converting LilyPond input to MIDI and then again back with - @code{midi2ly.py} is a reversible procedure in some simple cases, - which mean that the original @code{.ly} -file and the one converted - back from the generated @code{.midi} -file do not differ. - Here are produced some scales. - - " -} - -%{ - This means, doing: - - lilypond input/test/midi-scales.ly - midi2ly midi-scales.midi - diff -u input/test/midi-scales.ly midi-scales-midi.ly - - should show no differences at all in \key commands or notes. - - Therefore, do not reformat this file unless midi2ly changes. - - 1.7.30 reformatted, because - midi2ly now outpts 1 bar per line and adds bar checks and numbers. - -%} - -scales = \relative c { - - % [INSTRUMENT_NAME] bright acoustic - \key c \major % sharp-major - c'4 d e f | - g a b c | - - \key g \major - g a b c | - d e fis g | - - \key d \major - d, e fis g | - a b cis d | - - \key a \major - a b cis d | - e fis gis a | - - \key e \major - e, fis gis a | - b cis dis e | - - \key b \major - b cis dis e | - fis gis ais b | - - \key fis \major - fis, gis ais b | - cis dis eis fis | - - \key cis \major - cis, dis eis fis | - gis ais bis cis | - - \key a \minor % sharp-minor - a b c d | - e f gis a | - - \key e \minor - e, fis g a | - b c dis e | - - \key b \minor - b cis d e | - fis g ais b | - - \key fis \minor - fis, gis a b | - cis d eis fis | - - \key cis \minor - cis, dis e fis | - gis a bis cis | - - \key gis \minor - gis ais b cis | - dis e fisis gis | - - \key dis \minor - dis, eis fis gis | - ais b cisis dis | - - \key ais \minor - ais bis cis dis | - eis fis gisis ais | - - \key f \major % flat-major - f, g a bes | - c d e f | - - \key bes \major - bes c d ees | - f g a bes | - - \key ees \major - ees,, f g aes | - bes c d ees | - - \key aes \major - aes, bes c des | - ees f g aes | - - \key des \major - des,, ees f ges | - aes bes c des | - - \key ges \major - ges, aes bes ces | - des ees f ges | - - \key ces \major - ces,, des ees fes | - ges aes bes ces | - - \key d \minor % flat-minor - d, e f g | - a bes cis d | - - \key g \minor - g, a bes c | - d ees fis g | - - \key c \minor - c,, d ees f | - g aes b c | - - \key f \minor - f, g aes bes | - c des e f | - - \key bes \minor - bes,, c des ees | - f ges a bes | - - \key ees \minor - ees, f ges aes | - bes ces d ees | - - \key aes \minor - aes, bes ces des | - ees fes g aes | -} - -\score { - \context Voice \scales - \layout { } - \midi { } -} - diff --git a/input/midi/midi-transposition.ly b/input/midi/midi-transposition.ly deleted file mode 100644 index 2429fef5d3..0000000000 --- a/input/midi/midi-transposition.ly +++ /dev/null @@ -1,14 +0,0 @@ -\header -{ - texidoc = "should deliver f' in MIDI" -} -\version "2.10.5" - -\score { - { - \transposition f - c'' - } - \midi{} - \layout{} -} diff --git a/input/midi/midi-tuplets.ly b/input/midi/midi-tuplets.ly deleted file mode 100644 index 0a0f5ef1a9..0000000000 --- a/input/midi/midi-tuplets.ly +++ /dev/null @@ -1,35 +0,0 @@ -\version "2.10.0" -\header { -texidoc = " - -Midi2ly tuplet test. - -@example - python scripts/midi2ly.py --duration-quant=32 \ - --allow-tuplet=4*2/3 \ - --allow-tuplet=8*2/3 \ - --allow-tuplet=4*3/5 \ - --allow-tuplet=8*3/5 \ - tu.midi -@end example -" -} - - -\score { - \context Voice \relative c' { - - a1 a2 a2. a4 a4. a8 a8. a16 a16. a32 a32. a64 - - \times 2/3 { b4 b4 b4 } - \times 3/5 { b4 b4 b4 b4 b4 } - - \times 2/3 { c8 c8 c8 } - \times 3/5 { c8 c8 c8 c8 c8 } - - } - \layout { } - \midi { } -} - - diff --git a/input/midi/midi-volume-equaliser.ly b/input/midi/midi-volume-equaliser.ly deleted file mode 100644 index 0ad06cb931..0000000000 --- a/input/midi/midi-volume-equaliser.ly +++ /dev/null @@ -1,161 +0,0 @@ -\version "2.10.0" -\header { - texidoc = "@cindex Midi Volume Equaliser -The full orchestra plays a notes, where groups stop one after -another. Use this to tune equalizer settings. " -} - -#(set-global-staff-size 16) - -%{ - -Override, see scm/midi.scm: - -#(set! instrument-equalizer-alist - (append - '( - ("flute" . (0 . 0.7)) - ) - instrument-equalizer-alist)) - -%} - -flauti = \relative c' { - \set Staff.midiInstrument = #"flute" - \set Staff.instrumentName = #"2 Flauti" - \set Staff.shortInstrumentName = #"Fl." - - c1\f R1*10 -} - -oboi = \relative c' { - \set Staff.midiInstrument = #"oboe" - \set Staff.instrumentName = #"2 Oboi" - \set Staff.shortInstrumentName = #"Ob." - - R1*1 c1\f R1*9 -} - -clarinetti = \relative c' { - \set Staff.midiInstrument = #"clarinet" - \set Staff.instrumentName = #"Clarinetti" - \set Staff.shortInstrumentName = #"Cl" - - R1*2 c1\f R1*8 -} - -fagotti = \relative c' { - \set Staff.midiInstrument = #"bassoon" - \set Staff.instrumentName = #"2 Fagotti" - \set Staff.shortInstrumentName = #"Fg." - - \clef bass - R1*3 c1\f R1*7 -} - -corni = \relative c' { - \set Staff.midiInstrument = #"french horn" - \set Staff.instrumentName = #"Corni" - \set Staff.shortInstrumentName = #"Cor" - - R1*4 c1\f R1*6 -} - -trombe = \relative c' { - \set Staff.midiInstrument = #"trumpet" - \set Staff.instrumentName = #"Trombe" - \set Staff.shortInstrumentName = #"Tp." - - \clef bass - R1*5 c1\f R1*5 -} - -timpani = \relative c' { - \set Staff.midiInstrument = #"timpani" - \set Staff.instrumentName = #"Timpani" - \set Staff.shortInstrumentName = #"Timp." - - R1*6 c1\f R1*4 -} - -violinoI = \relative c' { - \set Staff.midiInstrument = #"violin" - \set Staff.instrumentName = #"Violino I " - \set Staff.shortInstrumentName = #"Vl. I " - - R1*7 c1\f R1*3 -} - -violinoII = \relative c' { - \set Staff.midiInstrument = #"violin" - \set Staff.instrumentName = #"Violino II " - \set Staff.shortInstrumentName = #"Vl. II " - - R1*8 c1\f R1*2 -} - -viola = \relative c' { - \set Staff.midiInstrument = #"viola" - \set Staff.instrumentName = #"Viola" - \set Staff.shortInstrumentName = #"Vla." - - \clef alto - R1*9 c1\f R1*1 -} - -violoncello = \relative c' { - \set Staff.midiInstrument = #"cello" - %\set Staff.midiInstrument = #"contrabass" - \set Staff.instrumentName = #"Violoncello" - \set Staff.shortInstrumentName = #"Vc." - - \clef bass - R1*10 c1\f -} - - -\score { - << - \new StaffGroup = "legni" << - \new Staff = "flauti" \flauti - \new Staff = "oboi" \oboi - \new Staff = "clarinetti" \clarinetti - \new Staff = "fagotti" \fagotti - >> - \new StaffGroup = "ottoni" << - \new Staff = "corni" \corni - \new Staff = "trombe" \trombe - >> - \new StaffGroup = "timpani" << - \new Staff = "timpani" \timpani - { - \skip 1 - %% Hmm: this forces a staff-bracket, that's good! - %% However, I can't find where is decided on staff-bracket yes/no - } - >> - \new StaffGroup = "archi" << - \new GrandStaff = "violini" << - \new Staff = "violino1" \violinoI - \new Staff = "violino2" \violinoII - >> - \new Staff = "viola" \viola - \new Staff = "violoncello" \violoncello - >> - >> - - \layout { - \context { - \RemoveEmptyStaffContext - } - } - - \midi { - \context { - \Score - tempoWholesPerMinute = #(ly:make-moment 60 1) - } - } -} - - diff --git a/input/no-notation/display-lily-tests.ly b/input/no-notation/display-lily-tests.ly deleted file mode 100644 index a6b1dacac7..0000000000 --- a/input/no-notation/display-lily-tests.ly +++ /dev/null @@ -1,262 +0,0 @@ -\version "2.11.6" - -#(use-modules (srfi srfi-13) - (ice-9 format)) - -%%% -%%% Testing utilities -%%% - -#(define (parse-lily-and-compute-lily-string chr port) - (let ((lily-string (call-with-output-string - (lambda (out) - (do ((c (read-char port) (read-char port))) - ((and (char=? c #\#) - (char=? (peek-char port) #\])) - (read-char port)) - (display c out)))))) - `(let* ((parser-clone (ly:parser-clone parser)) - (input-str (string-trim-both ,lily-string)) - (music (car (ly:music-property (parse-string-result input-str - parser-clone) - 'elements))) - (result-str (string-trim-both (music->lily-string music parser-clone)))) - (cons input-str result-str)))) - -#(read-hash-extend #\[ parse-lily-and-compute-lily-string) %{ ] %} - -#(define (lily-string->markup str) - (make-column-markup (string-split str #\NewLine))) - -#(define test-function - (let ((test-number 0)) - (lambda (parser location result-info strings) - (let ((input (car strings)) - (output (cdr strings))) - (set! test-number (1+ test-number)) - (if (string=? input output) - (make-music 'SequentialMusic 'void #t) - (make-music 'SequentialMusic - 'elements - (list (ly:parser-lookup parser 'fatText) - (make-music 'EventChord - 'elements (list (make-music 'LineBreakEvent - 'break-permission 'force))) - (make-music 'EventChord - 'elements (list (make-music 'SkipEvent - 'duration (ly:make-duration 0 0 1 1)) - (make-music 'TextScriptEvent - 'direction -1 - 'text (markup #:column - (#:simple (format #f "Test #~a " test-number) - (if (string-null? result-info) - (markup #:bold "BUG") - (markup #:simple result-info)) - #:typewriter (lily-string->markup input) - #:typewriter (lily-string->markup output))))))))))))) - - -test = -#(define-music-function (parser location result-info strings) (string? pair?) - (test-function parser location result-info strings)) - -%%% -%%% Tests -%%% -\header { - texidoc = \markup \column { \line { \typewriter display-lily-music unit tests } - \line { Real bugs (regressions) are marked as \bold BUG. } - \line { Known bugs are marked as TODO. } } -} - -\layout { - raggedright = ##t - indent = 0\cm - \context { - \Staff - \override StaffSymbol #'line-count = #1 - \remove "Time_signature_engraver" - \remove "Clef_engraver" - } - \context { - \Score - \remove "Bar_number_engraver" - } -} - -%% Sequential music -\test "" ##[ { { a b } { c d } } #] % SequentialMusic -\test "" ##[ << { a b } { c d } >> #] % SimultaneousMusic -\test "" ##[ << { a b } \\ { c d } >> #] % VoiceSeparator - -%% Chords and Notes -\test "" ##[ { ceses ces c cis cisis } #] % NoteEvent -\test "" ##[ { deses des d dis disis } #] -\test "" ##[ { eeses ees e eis eisis } #] -\test "" ##[ { feses fes f fis fisis } #] -\test "" ##[ { geses ges g gis gisis } #] -\test "" ##[ { aeses aes a ais aisis } #] -\test "" ##[ { beses bes b bis bisis } #] -\test "" ##[ { c,, d' } #] -\test "" ##[ { c' d'=' } #] -\test "" ##[ { c! c? } #] -\test "" ##[ r1.*4/3 #] % RestEvent -\test "" ##[ c1\rest #] % RestEvent -\test "" ##[ s2..*3/4 #] % SkipEvent -\test "" ##[ R1.*2/3 #] % MultiMeasureRestMusicGroup, MultiMeasureRestEvent -\test "" ##[ \skip 2.*3/4 #] % SkipMusic -\test "" ##[ < c\1 e\3 >4.*3/4-. #] % EventChord, NoteEvent, StringNumberEvent, ArticulationEvent - -%% tags -\test "" ##[ { \tag #'foo { c4 d } } #] -\test "" ##[ c-\tag #'foo -\tag #'baz -^ -. #] - -%% Graces -\test "" ##[ { \grace c8 d2 } #] % GraceMusic -\test "" ##[ { \appoggiatura c8 d2 } #] -\test "" ##[ { \acciaccatura c8 d2 } #] -\test "" ##[ { c1 \afterGrace { b,16 c } d2 } #] - -%% Clusters -\test "" ##[ { \makeClusters { c4 g } } #] % ClusterNoteEvent - -%% Figured bass -\test "" ##[ \figures { < 6 > } #] % BassFigureEvent -\test "" ##[ \figuremode { < 1-- 3- > < 2+ 4++ > < _! 7! > } #] -\test "" ##[ \figuremode { < [6 > < 5] > } #] - -%% Lyrics -\test "" ##[ \lyrics { a b } #] -\test "" ##[ \lyricmode { a -- b } #] % HyphenEvent -\test "" ##[ \lyricmode { a __ b } #] % ExtenderEvent -\test "" ##[ \lyricmode { "a " } #] % LyricEvent -\test "" ##[ \lyricsto "foo" { bla bla } #] % LyricCombineMusic -\test "" ##[ { { c d } - \addlyrics { bla bla } } #] - -%% Drums -\test "" ##[ \drums { hihat } #] -\test "" ##[ \drummode { hihat4.*3/4 } #] - -%% Expressive marks -\test "" ##[ c4 ~ #] % TieEvent -\test "" ##[ c\noBeam #] % BeamForbidEvent -\test "" ##[ c\1 #] % StringNumberEvent -\test "" ##[ { c: c:1 } #] % TremoloEvent -\test "" ##[ { c-^ c^^ c_^ } #] % ArticulationEvent -\test "" ##[ { c-+ c^+ c_+ } #] -\test "" ##[ { c-- c^- c_- } #] -\test "" ##[ { c-| c^| c_| } #] -\test "" ##[ { c-> c^> c_> } #] -\test "" ##[ { c-. c^. c_. } #] -\test "" ##[ { c-_ c^_ c__ } #] -\test "" ##[ { c-\trill c^\trill c_\trill } #] -\test "" ##[ { c-1 c^2 c_3 } #] % FingerEvent -\test "" ##[ { c-"foo" c^"foo" c_"foo" } #] % TextScriptEvent -\test "" ##[ { R1*4-"foo" R^"foo" R_"foo" } #] % MultiMeasureTextEvent -\test "" ##[ { c4-\harmonic c^\harmonic c_\harmonic } #] % HarmonicEvent -\test "" ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent -\test "" ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent -\test "" ##[ { c\p c^\ff c_\sfz } #] % AbsoluteDynamicEvent -\test "" ##[ { c[ c] c^[ c^] c_[ c_] } #] % BeamEvent -\test "" ##[ { c( c) c^( c^) c_( c_) } #] % SlurEvent -\test "" ##[ { c\< c\! c^\< c^\! c_\< c_\! } #] % CrescendoEvent -\test "" ##[ { c\> c\! c^\> c^\! c_\> c_\! } #] % DecrescendoEvent -\test "" ##[ { c\( c\) c^\( c^\) c_\( c_\) } #] % PhrasingSlurEvent -\test "" ##[ { c\sustainDown c\sustainUp } #] % SustainEvent -\test "" ##[ { c\sostenutoDown c\sostenutoUp } #] % SostenutoEvent -\test "" ##[ \melisma #] -\test "" ##[ \melismaEnd #] -\test "" ##[ { c\startTextSpan c\stopTextSpan } #] % TextSpanEvent -\test "" ##[ { c\startTrillSpan c\stopTrillSpan } #] % TrillSpanEvent -\test "" ##[ { c \startStaff c \stopStaff } #] % StaffSpanEvent -\test "" ##[ { c\startGroup c\stopGroup c^\startGroup c^\stopGroup c_\startGroup c_\stopGroup } #] % NoteGroupingEvent -\test "" ##[ { c\unaCorda c\treCorde } #] % UnaCordaEvent -\test "" ##[ \breathe #] -\test "" ##[ { c \[ c \] } #] % LigatureEvent -\test "" ##[ \~ #] % PesOrFlexaEvent - -\test "" ##[ \break #] -\test "" ##[ \noBreak #] -\test "" ##[ \pageBreak #] -\test "" ##[ \noPageBreak #] -\test "" ##[ \pageTurn #] -\test "" ##[ \noPageTurn #] - -%% Checks -\test "" ##[ \octave a' #] % RelativeOctaveCheck -\test "" ##[ | #] % BarCheck - -%% Marks -\test "" ##[ \mark \default #] % MarkEvent -\test "" ##[ \mark "Allegro" #] -\test "" ##[ \tempo 4 = 120 #] % MetronomeChangeEvent - -%% key, time, clef, bar -\test "" ##[ \key \default #] % KeyChangeEvent -\test "" ##[ \key e \minor #] -\test "" ##[ \clef "bass" #] -\test "" ##[ \clef "french^2" #] -\test "" ##[ \clef "alto_3" #] -\test "" ##[ \time 2/4 #] -\test "" ##[ #(set-time-signature 5 8 '(3 2)) #] -\test "" ##[ \bar "|." #] - -%% staff switches -\test "" ##[ \autochange { c d } #] % AutoChangeMusic -\test "" ##[ { \change Staff = "up" { c d } } #] % ContextChange - -%% Tuplets -\test "" ##[ \times 2/3 { c8 d e } #] % TimeScaledMusic -\test "" ##[ \times 4/6 { c16 d e f g a } #] -%} -%% \relative and \tranpose -\test #"NOT A BUG" ##[ \relative c' { c b } #] % RelativeOctaveMusic -\test #"NOT A BUG" ##[ \transpose c d { c d } #] % TransposedMusic -%} -%% Repeats -\test "" ##[ \repeat volta 2 { c d } #] % VoltaRepeatedMusic -\test "" ##[ \repeat unfold 2 { c d } #] % UnfoldedRepeatedMusic -\test "" ##[ \repeat fold 2 { c d } #] % FoldedRepeatedMusic -\test "" ##[ \repeat percent 2 { c d } #] % PercentRepeatedMusic -\test "" ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic -\test "" ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] % - -%% Context creation -\test "" ##[ \new Staff { c d } #] % ContextSpeccedMusic -\test "" ##[ \new Staff = "up" { c d } #] % ContextSpeccedMusic -\test "" ##[ \context Staff { c d } #] -\test "" ##[ \context Staff = "up" { c d } #] -\test "" ##[ -\new Staff \with { - \consists "Timing_engraver" - \remove "Clef_engraver" -} { c d } #] -%% Context properties -\test "" ##[ \once \set Score . skipBars = ##t #] % PropertySet -\test "" ##[ \set autoBeaming = ##f #] -\test "" ##[ \unset Score . skipBars #] % PropertyUnset -\test "" ##[ \unset autoBeaming #] -%% Layout properties -\test "" ##[ \override Staff . Stem #'thickness = #4.0 #] % OverrideProperty -\test "" ##[ \once \override Beam #'thickness = #0.6 #] -\test "" ##[ \revert Staff . Stem #'thickness #] % RevertProperty -\test "" ##[ \revert Beam #'thickness #] - -%% \applyOutput -\test "" ##[ \applyOutput #'Foo #(lambda (arg) (list)) #] -%% \applyContext -\test "" ##[ \applyContext #(lambda (arg) (list)) #] - -%% \partial -\test "" ##[ \partial 2 #] -\test "" ##[ \partial 8. #] -\test #"TODO? exotic durations in \\partial" ##[ \partial 4*2/3 #] - -%% \partcombine -\test "" ##[ \partcombine { c e } -{ d f } #] % PartCombineMusic UnrelativableMusic - -%% Cue notes -\test "" ##[ \cueDuring #"foo" #1 { c d } #] -\test "" ##[ \quoteDuring #"foo" { c d } #] diff --git a/input/no-notation/safe.ly b/input/no-notation/safe.ly deleted file mode 100644 index 88d54bd279..0000000000 --- a/input/no-notation/safe.ly +++ /dev/null @@ -1,19 +0,0 @@ -\version "2.10.0" - -"expect-error" = ##t - -#(ly:lexer-set-safe! (ly:parser-lexer parser)) - -"force-finish" = ##t - -\header{ - texidoc = "This should not survive lilypond --safe-mode" - - #(open-file "w") -} - - -#(open-file "/tmp/safe-guile.scm" "r") - -\include "this-should-fail.ly" - diff --git a/input/no-notation/skiptypesetting-bar-check.ly b/input/no-notation/skiptypesetting-bar-check.ly deleted file mode 100644 index e4181833e4..0000000000 --- a/input/no-notation/skiptypesetting-bar-check.ly +++ /dev/null @@ -1,17 +0,0 @@ -\version "2.10.0" - -\header { - -texidoc = "skipTypesetting doesn't affect bar checks." - -} - -\relative { - c4 - \set Score.skipTypesetting = ##t - c4 c4 - | - c4 c4 - \set Score.skipTypesetting = ##f - d -} diff --git a/input/no-notation/to-xml.ly b/input/no-notation/to-xml.ly deleted file mode 100644 index 036063fbdb..0000000000 --- a/input/no-notation/to-xml.ly +++ /dev/null @@ -1,27 +0,0 @@ -\version "2.10.0" - -fooBar = { << c''4 \\ g'4 >> } - -#(ly:set-option 'parse-protect #f) -#(load-from-path "to-xml.scm") - -#(music-to-xml fooBar (current-output-port)) - -\header { - texidoc = "@cindex To XML" - texidoc = #(string-append - "The input representation is very generic. Therefore, it - should not be hard to convert it to XML or a similar format:\n\n" - - "@example\n" - (call-with-output-string - (lambda (p) (music-to-xml fooBar p)) - ) - "@end example" ) -} - - -\score { -\fooBar -} - diff --git a/input/no-notation/warn-conflicting-key-signatures.ly b/input/no-notation/warn-conflicting-key-signatures.ly deleted file mode 100644 index 4b9756ee9f..0000000000 --- a/input/no-notation/warn-conflicting-key-signatures.ly +++ /dev/null @@ -1,11 +0,0 @@ -\version "2.10.0" -%If you specify two different key sigs at one point, a -%warning is printed. - -\score { -\context Voice << - { \key cis \major cis4 \key bes \major bes4 } - { \key cis \major fis4 \key es \major g4 } ->> -} - diff --git a/input/regression/display-lily-tests.ly b/input/regression/display-lily-tests.ly new file mode 100644 index 0000000000..a6b1dacac7 --- /dev/null +++ b/input/regression/display-lily-tests.ly @@ -0,0 +1,262 @@ +\version "2.11.6" + +#(use-modules (srfi srfi-13) + (ice-9 format)) + +%%% +%%% Testing utilities +%%% + +#(define (parse-lily-and-compute-lily-string chr port) + (let ((lily-string (call-with-output-string + (lambda (out) + (do ((c (read-char port) (read-char port))) + ((and (char=? c #\#) + (char=? (peek-char port) #\])) + (read-char port)) + (display c out)))))) + `(let* ((parser-clone (ly:parser-clone parser)) + (input-str (string-trim-both ,lily-string)) + (music (car (ly:music-property (parse-string-result input-str + parser-clone) + 'elements))) + (result-str (string-trim-both (music->lily-string music parser-clone)))) + (cons input-str result-str)))) + +#(read-hash-extend #\[ parse-lily-and-compute-lily-string) %{ ] %} + +#(define (lily-string->markup str) + (make-column-markup (string-split str #\NewLine))) + +#(define test-function + (let ((test-number 0)) + (lambda (parser location result-info strings) + (let ((input (car strings)) + (output (cdr strings))) + (set! test-number (1+ test-number)) + (if (string=? input output) + (make-music 'SequentialMusic 'void #t) + (make-music 'SequentialMusic + 'elements + (list (ly:parser-lookup parser 'fatText) + (make-music 'EventChord + 'elements (list (make-music 'LineBreakEvent + 'break-permission 'force))) + (make-music 'EventChord + 'elements (list (make-music 'SkipEvent + 'duration (ly:make-duration 0 0 1 1)) + (make-music 'TextScriptEvent + 'direction -1 + 'text (markup #:column + (#:simple (format #f "Test #~a " test-number) + (if (string-null? result-info) + (markup #:bold "BUG") + (markup #:simple result-info)) + #:typewriter (lily-string->markup input) + #:typewriter (lily-string->markup output))))))))))))) + + +test = +#(define-music-function (parser location result-info strings) (string? pair?) + (test-function parser location result-info strings)) + +%%% +%%% Tests +%%% +\header { + texidoc = \markup \column { \line { \typewriter display-lily-music unit tests } + \line { Real bugs (regressions) are marked as \bold BUG. } + \line { Known bugs are marked as TODO. } } +} + +\layout { + raggedright = ##t + indent = 0\cm + \context { + \Staff + \override StaffSymbol #'line-count = #1 + \remove "Time_signature_engraver" + \remove "Clef_engraver" + } + \context { + \Score + \remove "Bar_number_engraver" + } +} + +%% Sequential music +\test "" ##[ { { a b } { c d } } #] % SequentialMusic +\test "" ##[ << { a b } { c d } >> #] % SimultaneousMusic +\test "" ##[ << { a b } \\ { c d } >> #] % VoiceSeparator + +%% Chords and Notes +\test "" ##[ { ceses ces c cis cisis } #] % NoteEvent +\test "" ##[ { deses des d dis disis } #] +\test "" ##[ { eeses ees e eis eisis } #] +\test "" ##[ { feses fes f fis fisis } #] +\test "" ##[ { geses ges g gis gisis } #] +\test "" ##[ { aeses aes a ais aisis } #] +\test "" ##[ { beses bes b bis bisis } #] +\test "" ##[ { c,, d' } #] +\test "" ##[ { c' d'=' } #] +\test "" ##[ { c! c? } #] +\test "" ##[ r1.*4/3 #] % RestEvent +\test "" ##[ c1\rest #] % RestEvent +\test "" ##[ s2..*3/4 #] % SkipEvent +\test "" ##[ R1.*2/3 #] % MultiMeasureRestMusicGroup, MultiMeasureRestEvent +\test "" ##[ \skip 2.*3/4 #] % SkipMusic +\test "" ##[ < c\1 e\3 >4.*3/4-. #] % EventChord, NoteEvent, StringNumberEvent, ArticulationEvent + +%% tags +\test "" ##[ { \tag #'foo { c4 d } } #] +\test "" ##[ c-\tag #'foo -\tag #'baz -^ -. #] + +%% Graces +\test "" ##[ { \grace c8 d2 } #] % GraceMusic +\test "" ##[ { \appoggiatura c8 d2 } #] +\test "" ##[ { \acciaccatura c8 d2 } #] +\test "" ##[ { c1 \afterGrace { b,16 c } d2 } #] + +%% Clusters +\test "" ##[ { \makeClusters { c4 g } } #] % ClusterNoteEvent + +%% Figured bass +\test "" ##[ \figures { < 6 > } #] % BassFigureEvent +\test "" ##[ \figuremode { < 1-- 3- > < 2+ 4++ > < _! 7! > } #] +\test "" ##[ \figuremode { < [6 > < 5] > } #] + +%% Lyrics +\test "" ##[ \lyrics { a b } #] +\test "" ##[ \lyricmode { a -- b } #] % HyphenEvent +\test "" ##[ \lyricmode { a __ b } #] % ExtenderEvent +\test "" ##[ \lyricmode { "a " } #] % LyricEvent +\test "" ##[ \lyricsto "foo" { bla bla } #] % LyricCombineMusic +\test "" ##[ { { c d } + \addlyrics { bla bla } } #] + +%% Drums +\test "" ##[ \drums { hihat } #] +\test "" ##[ \drummode { hihat4.*3/4 } #] + +%% Expressive marks +\test "" ##[ c4 ~ #] % TieEvent +\test "" ##[ c\noBeam #] % BeamForbidEvent +\test "" ##[ c\1 #] % StringNumberEvent +\test "" ##[ { c: c:1 } #] % TremoloEvent +\test "" ##[ { c-^ c^^ c_^ } #] % ArticulationEvent +\test "" ##[ { c-+ c^+ c_+ } #] +\test "" ##[ { c-- c^- c_- } #] +\test "" ##[ { c-| c^| c_| } #] +\test "" ##[ { c-> c^> c_> } #] +\test "" ##[ { c-. c^. c_. } #] +\test "" ##[ { c-_ c^_ c__ } #] +\test "" ##[ { c-\trill c^\trill c_\trill } #] +\test "" ##[ { c-1 c^2 c_3 } #] % FingerEvent +\test "" ##[ { c-"foo" c^"foo" c_"foo" } #] % TextScriptEvent +\test "" ##[ { R1*4-"foo" R^"foo" R_"foo" } #] % MultiMeasureTextEvent +\test "" ##[ { c4-\harmonic c^\harmonic c_\harmonic } #] % HarmonicEvent +\test "" ##[ { c-\glissando c^\glissando c_\glissando } #] % GlissandoEvent +\test "" ##[ { c-\arpeggio c^\arpeggio c_\arpeggio } #] % ArpeggioEvent +\test "" ##[ { c\p c^\ff c_\sfz } #] % AbsoluteDynamicEvent +\test "" ##[ { c[ c] c^[ c^] c_[ c_] } #] % BeamEvent +\test "" ##[ { c( c) c^( c^) c_( c_) } #] % SlurEvent +\test "" ##[ { c\< c\! c^\< c^\! c_\< c_\! } #] % CrescendoEvent +\test "" ##[ { c\> c\! c^\> c^\! c_\> c_\! } #] % DecrescendoEvent +\test "" ##[ { c\( c\) c^\( c^\) c_\( c_\) } #] % PhrasingSlurEvent +\test "" ##[ { c\sustainDown c\sustainUp } #] % SustainEvent +\test "" ##[ { c\sostenutoDown c\sostenutoUp } #] % SostenutoEvent +\test "" ##[ \melisma #] +\test "" ##[ \melismaEnd #] +\test "" ##[ { c\startTextSpan c\stopTextSpan } #] % TextSpanEvent +\test "" ##[ { c\startTrillSpan c\stopTrillSpan } #] % TrillSpanEvent +\test "" ##[ { c \startStaff c \stopStaff } #] % StaffSpanEvent +\test "" ##[ { c\startGroup c\stopGroup c^\startGroup c^\stopGroup c_\startGroup c_\stopGroup } #] % NoteGroupingEvent +\test "" ##[ { c\unaCorda c\treCorde } #] % UnaCordaEvent +\test "" ##[ \breathe #] +\test "" ##[ { c \[ c \] } #] % LigatureEvent +\test "" ##[ \~ #] % PesOrFlexaEvent + +\test "" ##[ \break #] +\test "" ##[ \noBreak #] +\test "" ##[ \pageBreak #] +\test "" ##[ \noPageBreak #] +\test "" ##[ \pageTurn #] +\test "" ##[ \noPageTurn #] + +%% Checks +\test "" ##[ \octave a' #] % RelativeOctaveCheck +\test "" ##[ | #] % BarCheck + +%% Marks +\test "" ##[ \mark \default #] % MarkEvent +\test "" ##[ \mark "Allegro" #] +\test "" ##[ \tempo 4 = 120 #] % MetronomeChangeEvent + +%% key, time, clef, bar +\test "" ##[ \key \default #] % KeyChangeEvent +\test "" ##[ \key e \minor #] +\test "" ##[ \clef "bass" #] +\test "" ##[ \clef "french^2" #] +\test "" ##[ \clef "alto_3" #] +\test "" ##[ \time 2/4 #] +\test "" ##[ #(set-time-signature 5 8 '(3 2)) #] +\test "" ##[ \bar "|." #] + +%% staff switches +\test "" ##[ \autochange { c d } #] % AutoChangeMusic +\test "" ##[ { \change Staff = "up" { c d } } #] % ContextChange + +%% Tuplets +\test "" ##[ \times 2/3 { c8 d e } #] % TimeScaledMusic +\test "" ##[ \times 4/6 { c16 d e f g a } #] +%} +%% \relative and \tranpose +\test #"NOT A BUG" ##[ \relative c' { c b } #] % RelativeOctaveMusic +\test #"NOT A BUG" ##[ \transpose c d { c d } #] % TransposedMusic +%} +%% Repeats +\test "" ##[ \repeat volta 2 { c d } #] % VoltaRepeatedMusic +\test "" ##[ \repeat unfold 2 { c d } #] % UnfoldedRepeatedMusic +\test "" ##[ \repeat fold 2 { c d } #] % FoldedRepeatedMusic +\test "" ##[ \repeat percent 2 { c d } #] % PercentRepeatedMusic +\test "" ##[ \repeat tremolo 4 { c16 d } #] % TremoloRepeatedMusic +\test "" ##[ \repeat volta 2 { c4 d } \alternative { { c d } { e f } } #] % + +%% Context creation +\test "" ##[ \new Staff { c d } #] % ContextSpeccedMusic +\test "" ##[ \new Staff = "up" { c d } #] % ContextSpeccedMusic +\test "" ##[ \context Staff { c d } #] +\test "" ##[ \context Staff = "up" { c d } #] +\test "" ##[ +\new Staff \with { + \consists "Timing_engraver" + \remove "Clef_engraver" +} { c d } #] +%% Context properties +\test "" ##[ \once \set Score . skipBars = ##t #] % PropertySet +\test "" ##[ \set autoBeaming = ##f #] +\test "" ##[ \unset Score . skipBars #] % PropertyUnset +\test "" ##[ \unset autoBeaming #] +%% Layout properties +\test "" ##[ \override Staff . Stem #'thickness = #4.0 #] % OverrideProperty +\test "" ##[ \once \override Beam #'thickness = #0.6 #] +\test "" ##[ \revert Staff . Stem #'thickness #] % RevertProperty +\test "" ##[ \revert Beam #'thickness #] + +%% \applyOutput +\test "" ##[ \applyOutput #'Foo #(lambda (arg) (list)) #] +%% \applyContext +\test "" ##[ \applyContext #(lambda (arg) (list)) #] + +%% \partial +\test "" ##[ \partial 2 #] +\test "" ##[ \partial 8. #] +\test #"TODO? exotic durations in \\partial" ##[ \partial 4*2/3 #] + +%% \partcombine +\test "" ##[ \partcombine { c e } +{ d f } #] % PartCombineMusic UnrelativableMusic + +%% Cue notes +\test "" ##[ \cueDuring #"foo" #1 { c d } #] +\test "" ##[ \quoteDuring #"foo" { c d } #] diff --git a/input/regression/midi-absolute-volume.ly b/input/regression/midi-absolute-volume.ly new file mode 100644 index 0000000000..8c3a24cd1c --- /dev/null +++ b/input/regression/midi-absolute-volume.ly @@ -0,0 +1,34 @@ + +\version "2.10.0" +\header { + texidoc = "@cindex Dynamic Absolute Volume +Absolute dynamics have an effect on MIDI files. +" +} + + +\score{ +\relative c''{ +%segfault in engraver +a1\ppp +a1\pp +a\p +a\mp +a\mf +a\f +a\ff +a\fff +a\sf +} +\layout{ ragged-right = ##t } + + \midi { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 60 1) + } + } + + +} + diff --git a/input/regression/midi-drums.ly b/input/regression/midi-drums.ly new file mode 100644 index 0000000000..2b799be25b --- /dev/null +++ b/input/regression/midi-drums.ly @@ -0,0 +1,18 @@ + +\version "2.10.0" + +\version "2.10.1" + +\score { + \new DrumStaff << + \drummode { + bd4 sn4 bd4 sn4 + << + {\voiceOne \repeat unfold 16 hh16 } + \new DrumVoice { \voiceTwo bd4 sn4 bd4 sn4 } + >> \oneVoice + } + >> + \layout {} + \midi {} +} diff --git a/input/regression/midi-grace.ly b/input/regression/midi-grace.ly new file mode 100644 index 0000000000..213de79e37 --- /dev/null +++ b/input/regression/midi-grace.ly @@ -0,0 +1,22 @@ +\version "2.10.0" +\header{ texidoc = "Tests MIDI output with grace notes. " } + +\score { + \context Voice \relative c { + \new Voice = VoiceOne + \grace { + \override Stem #'stroke-style = #"grace" + c8 + \revert Stem #'stroke-style } + d4 d d d d + \grace { + \override Stem #'stroke-style = #"grace" + e16 f e f + \revert Stem #'stroke-style } + d4 d d d d + + } + \layout { } + \midi { } +} + diff --git a/input/regression/midi-lyric-barcheck.ly b/input/regression/midi-lyric-barcheck.ly new file mode 100644 index 0000000000..5c06916af0 --- /dev/null +++ b/input/regression/midi-lyric-barcheck.ly @@ -0,0 +1,24 @@ +\version "2.10.0" +\header { + + texidoc = "Lyrics in MIDI are aligned to ties and beams: +this examples causes no bar checks in MIDI. +" + + + } +\score { + + <<\relative c'' \new Voice = A { + \autoBeamOff + c8[ c] c2. + c1~c4 c2. + c4 ( d e) d + c1 + + } + \lyricsto "A" \lyrics { bla bla | bla bla | bla bla | bla } + >> + \layout {} + \midi {} + } diff --git a/input/regression/midi-scales.ly b/input/regression/midi-scales.ly new file mode 100644 index 0000000000..d6e8ed91c5 --- /dev/null +++ b/input/regression/midi-scales.ly @@ -0,0 +1,159 @@ + +\version "2.10.0" +% candidate for regression. -gp +\header { + texidoc="Converting LilyPond input to MIDI and then again back with + @code{midi2ly.py} is a reversible procedure in some simple cases, + which mean that the original @code{.ly} -file and the one converted + back from the generated @code{.midi} -file do not differ. + Here are produced some scales. + + " +} + +%{ + This means, doing: + + lilypond input/test/midi-scales.ly + midi2ly midi-scales.midi + diff -u input/test/midi-scales.ly midi-scales-midi.ly + + should show no differences at all in \key commands or notes. + + Therefore, do not reformat this file unless midi2ly changes. + + 1.7.30 reformatted, because + midi2ly now outpts 1 bar per line and adds bar checks and numbers. + +%} + +scales = \relative c { + + % [INSTRUMENT_NAME] bright acoustic + \key c \major % sharp-major + c'4 d e f | + g a b c | + + \key g \major + g a b c | + d e fis g | + + \key d \major + d, e fis g | + a b cis d | + + \key a \major + a b cis d | + e fis gis a | + + \key e \major + e, fis gis a | + b cis dis e | + + \key b \major + b cis dis e | + fis gis ais b | + + \key fis \major + fis, gis ais b | + cis dis eis fis | + + \key cis \major + cis, dis eis fis | + gis ais bis cis | + + \key a \minor % sharp-minor + a b c d | + e f gis a | + + \key e \minor + e, fis g a | + b c dis e | + + \key b \minor + b cis d e | + fis g ais b | + + \key fis \minor + fis, gis a b | + cis d eis fis | + + \key cis \minor + cis, dis e fis | + gis a bis cis | + + \key gis \minor + gis ais b cis | + dis e fisis gis | + + \key dis \minor + dis, eis fis gis | + ais b cisis dis | + + \key ais \minor + ais bis cis dis | + eis fis gisis ais | + + \key f \major % flat-major + f, g a bes | + c d e f | + + \key bes \major + bes c d ees | + f g a bes | + + \key ees \major + ees,, f g aes | + bes c d ees | + + \key aes \major + aes, bes c des | + ees f g aes | + + \key des \major + des,, ees f ges | + aes bes c des | + + \key ges \major + ges, aes bes ces | + des ees f ges | + + \key ces \major + ces,, des ees fes | + ges aes bes ces | + + \key d \minor % flat-minor + d, e f g | + a bes cis d | + + \key g \minor + g, a bes c | + d ees fis g | + + \key c \minor + c,, d ees f | + g aes b c | + + \key f \minor + f, g aes bes | + c des e f | + + \key bes \minor + bes,, c des ees | + f ges a bes | + + \key ees \minor + ees, f ges aes | + bes ces d ees | + + \key aes \minor + aes, bes ces des | + ees fes g aes | +} + +\score { + \context Voice \scales + \layout { } + \midi { } +} + diff --git a/input/regression/midi-transposition.ly b/input/regression/midi-transposition.ly new file mode 100644 index 0000000000..2429fef5d3 --- /dev/null +++ b/input/regression/midi-transposition.ly @@ -0,0 +1,14 @@ +\header +{ + texidoc = "should deliver f' in MIDI" +} +\version "2.10.5" + +\score { + { + \transposition f + c'' + } + \midi{} + \layout{} +} diff --git a/input/regression/midi-tuplets.ly b/input/regression/midi-tuplets.ly new file mode 100644 index 0000000000..0a0f5ef1a9 --- /dev/null +++ b/input/regression/midi-tuplets.ly @@ -0,0 +1,35 @@ +\version "2.10.0" +\header { +texidoc = " + +Midi2ly tuplet test. + +@example + python scripts/midi2ly.py --duration-quant=32 \ + --allow-tuplet=4*2/3 \ + --allow-tuplet=8*2/3 \ + --allow-tuplet=4*3/5 \ + --allow-tuplet=8*3/5 \ + tu.midi +@end example +" +} + + +\score { + \context Voice \relative c' { + + a1 a2 a2. a4 a4. a8 a8. a16 a16. a32 a32. a64 + + \times 2/3 { b4 b4 b4 } + \times 3/5 { b4 b4 b4 b4 b4 } + + \times 2/3 { c8 c8 c8 } + \times 3/5 { c8 c8 c8 c8 c8 } + + } + \layout { } + \midi { } +} + + diff --git a/input/regression/midi-volume-equaliser.ly b/input/regression/midi-volume-equaliser.ly new file mode 100644 index 0000000000..0ad06cb931 --- /dev/null +++ b/input/regression/midi-volume-equaliser.ly @@ -0,0 +1,161 @@ +\version "2.10.0" +\header { + texidoc = "@cindex Midi Volume Equaliser +The full orchestra plays a notes, where groups stop one after +another. Use this to tune equalizer settings. " +} + +#(set-global-staff-size 16) + +%{ + +Override, see scm/midi.scm: + +#(set! instrument-equalizer-alist + (append + '( + ("flute" . (0 . 0.7)) + ) + instrument-equalizer-alist)) + +%} + +flauti = \relative c' { + \set Staff.midiInstrument = #"flute" + \set Staff.instrumentName = #"2 Flauti" + \set Staff.shortInstrumentName = #"Fl." + + c1\f R1*10 +} + +oboi = \relative c' { + \set Staff.midiInstrument = #"oboe" + \set Staff.instrumentName = #"2 Oboi" + \set Staff.shortInstrumentName = #"Ob." + + R1*1 c1\f R1*9 +} + +clarinetti = \relative c' { + \set Staff.midiInstrument = #"clarinet" + \set Staff.instrumentName = #"Clarinetti" + \set Staff.shortInstrumentName = #"Cl" + + R1*2 c1\f R1*8 +} + +fagotti = \relative c' { + \set Staff.midiInstrument = #"bassoon" + \set Staff.instrumentName = #"2 Fagotti" + \set Staff.shortInstrumentName = #"Fg." + + \clef bass + R1*3 c1\f R1*7 +} + +corni = \relative c' { + \set Staff.midiInstrument = #"french horn" + \set Staff.instrumentName = #"Corni" + \set Staff.shortInstrumentName = #"Cor" + + R1*4 c1\f R1*6 +} + +trombe = \relative c' { + \set Staff.midiInstrument = #"trumpet" + \set Staff.instrumentName = #"Trombe" + \set Staff.shortInstrumentName = #"Tp." + + \clef bass + R1*5 c1\f R1*5 +} + +timpani = \relative c' { + \set Staff.midiInstrument = #"timpani" + \set Staff.instrumentName = #"Timpani" + \set Staff.shortInstrumentName = #"Timp." + + R1*6 c1\f R1*4 +} + +violinoI = \relative c' { + \set Staff.midiInstrument = #"violin" + \set Staff.instrumentName = #"Violino I " + \set Staff.shortInstrumentName = #"Vl. I " + + R1*7 c1\f R1*3 +} + +violinoII = \relative c' { + \set Staff.midiInstrument = #"violin" + \set Staff.instrumentName = #"Violino II " + \set Staff.shortInstrumentName = #"Vl. II " + + R1*8 c1\f R1*2 +} + +viola = \relative c' { + \set Staff.midiInstrument = #"viola" + \set Staff.instrumentName = #"Viola" + \set Staff.shortInstrumentName = #"Vla." + + \clef alto + R1*9 c1\f R1*1 +} + +violoncello = \relative c' { + \set Staff.midiInstrument = #"cello" + %\set Staff.midiInstrument = #"contrabass" + \set Staff.instrumentName = #"Violoncello" + \set Staff.shortInstrumentName = #"Vc." + + \clef bass + R1*10 c1\f +} + + +\score { + << + \new StaffGroup = "legni" << + \new Staff = "flauti" \flauti + \new Staff = "oboi" \oboi + \new Staff = "clarinetti" \clarinetti + \new Staff = "fagotti" \fagotti + >> + \new StaffGroup = "ottoni" << + \new Staff = "corni" \corni + \new Staff = "trombe" \trombe + >> + \new StaffGroup = "timpani" << + \new Staff = "timpani" \timpani + { + \skip 1 + %% Hmm: this forces a staff-bracket, that's good! + %% However, I can't find where is decided on staff-bracket yes/no + } + >> + \new StaffGroup = "archi" << + \new GrandStaff = "violini" << + \new Staff = "violino1" \violinoI + \new Staff = "violino2" \violinoII + >> + \new Staff = "viola" \viola + \new Staff = "violoncello" \violoncello + >> + >> + + \layout { + \context { + \RemoveEmptyStaffContext + } + } + + \midi { + \context { + \Score + tempoWholesPerMinute = #(ly:make-moment 60 1) + } + } +} + + diff --git a/input/regression/safe.ly b/input/regression/safe.ly new file mode 100644 index 0000000000..88d54bd279 --- /dev/null +++ b/input/regression/safe.ly @@ -0,0 +1,19 @@ +\version "2.10.0" + +"expect-error" = ##t + +#(ly:lexer-set-safe! (ly:parser-lexer parser)) + +"force-finish" = ##t + +\header{ + texidoc = "This should not survive lilypond --safe-mode" + + #(open-file "w") +} + + +#(open-file "/tmp/safe-guile.scm" "r") + +\include "this-should-fail.ly" + diff --git a/input/regression/skiptypesetting-bar-check.ly b/input/regression/skiptypesetting-bar-check.ly new file mode 100644 index 0000000000..e4181833e4 --- /dev/null +++ b/input/regression/skiptypesetting-bar-check.ly @@ -0,0 +1,17 @@ +\version "2.10.0" + +\header { + +texidoc = "skipTypesetting doesn't affect bar checks." + +} + +\relative { + c4 + \set Score.skipTypesetting = ##t + c4 c4 + | + c4 c4 + \set Score.skipTypesetting = ##f + d +} diff --git a/input/regression/to-xml.ly b/input/regression/to-xml.ly new file mode 100644 index 0000000000..036063fbdb --- /dev/null +++ b/input/regression/to-xml.ly @@ -0,0 +1,27 @@ +\version "2.10.0" + +fooBar = { << c''4 \\ g'4 >> } + +#(ly:set-option 'parse-protect #f) +#(load-from-path "to-xml.scm") + +#(music-to-xml fooBar (current-output-port)) + +\header { + texidoc = "@cindex To XML" + texidoc = #(string-append + "The input representation is very generic. Therefore, it + should not be hard to convert it to XML or a similar format:\n\n" + + "@example\n" + (call-with-output-string + (lambda (p) (music-to-xml fooBar p)) + ) + "@end example" ) +} + + +\score { +\fooBar +} + diff --git a/input/regression/warn-conflicting-key-signatures.ly b/input/regression/warn-conflicting-key-signatures.ly new file mode 100644 index 0000000000..4b9756ee9f --- /dev/null +++ b/input/regression/warn-conflicting-key-signatures.ly @@ -0,0 +1,11 @@ +\version "2.10.0" +%If you specify two different key sigs at one point, a +%warning is printed. + +\score { +\context Voice << + { \key cis \major cis4 \key bes \major bes4 } + { \key cis \major fis4 \key es \major g4 } +>> +} +