]> git.donarmstrong.com Git - lilypond.git/commitdiff
move no-notation and midi to input/regression/
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 2 Jan 2007 21:50:46 +0000 (22:50 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 2 Jan 2007 21:50:46 +0000 (22:50 +0100)
26 files changed:
input/midi/midi-absolute-volume.ly [deleted file]
input/midi/midi-drums.ly [deleted file]
input/midi/midi-grace.ly [deleted file]
input/midi/midi-lyric-barcheck.ly [deleted file]
input/midi/midi-scales.ly [deleted file]
input/midi/midi-transposition.ly [deleted file]
input/midi/midi-tuplets.ly [deleted file]
input/midi/midi-volume-equaliser.ly [deleted file]
input/no-notation/display-lily-tests.ly [deleted file]
input/no-notation/safe.ly [deleted file]
input/no-notation/skiptypesetting-bar-check.ly [deleted file]
input/no-notation/to-xml.ly [deleted file]
input/no-notation/warn-conflicting-key-signatures.ly [deleted file]
input/regression/display-lily-tests.ly [new file with mode: 0644]
input/regression/midi-absolute-volume.ly [new file with mode: 0644]
input/regression/midi-drums.ly [new file with mode: 0644]
input/regression/midi-grace.ly [new file with mode: 0644]
input/regression/midi-lyric-barcheck.ly [new file with mode: 0644]
input/regression/midi-scales.ly [new file with mode: 0644]
input/regression/midi-transposition.ly [new file with mode: 0644]
input/regression/midi-tuplets.ly [new file with mode: 0644]
input/regression/midi-volume-equaliser.ly [new file with mode: 0644]
input/regression/safe.ly [new file with mode: 0644]
input/regression/skiptypesetting-bar-check.ly [new file with mode: 0644]
input/regression/to-xml.ly [new file with mode: 0644]
input/regression/warn-conflicting-key-signatures.ly [new file with mode: 0644]

diff --git a/input/midi/midi-absolute-volume.ly b/input/midi/midi-absolute-volume.ly
deleted file mode 100644 (file)
index 8c3a24c..0000000
+++ /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 (file)
index 2b799be..0000000
+++ /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 (file)
index 213de79..0000000
+++ /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 (file)
index 5c06916..0000000
+++ /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 (file)
index d6e8ed9..0000000
+++ /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 (file)
index 2429fef..0000000
+++ /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 (file)
index 0a0f5ef..0000000
+++ /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 (file)
index 0ad06cb..0000000
+++ /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 (file)
index a6b1dac..0000000
+++ /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 (file)
index 88d54bd..0000000
+++ /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 (file)
index e418183..0000000
+++ /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 (file)
index 036063f..0000000
+++ /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 (file)
index 4b9756e..0000000
+++ /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 (file)
index 0000000..a6b1dac
--- /dev/null
@@ -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 (file)
index 0000000..8c3a24c
--- /dev/null
@@ -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 (file)
index 0000000..2b799be
--- /dev/null
@@ -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 (file)
index 0000000..213de79
--- /dev/null
@@ -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 (file)
index 0000000..5c06916
--- /dev/null
@@ -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 (file)
index 0000000..d6e8ed9
--- /dev/null
@@ -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 (file)
index 0000000..2429fef
--- /dev/null
@@ -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 (file)
index 0000000..0a0f5ef
--- /dev/null
@@ -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 (file)
index 0000000..0ad06cb
--- /dev/null
@@ -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 (file)
index 0000000..88d54bd
--- /dev/null
@@ -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 (file)
index 0000000..e418183
--- /dev/null
@@ -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 (file)
index 0000000..036063f
--- /dev/null
@@ -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 (file)
index 0000000..4b9756e
--- /dev/null
@@ -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 }  
+>>
+}
+