Dear All, After reading the messages about "going back in midi time", I realized that the main problem of my overture's midi output is not totally because of articulate. Here's the small intro containing just 8 bars, and the problem is at bar 7. Please run it, and you'll see these warnings. I add many c's in harp part, and you will hear bad time delay in other instruments at the beginning of bar 8. Serious bug, and if you acknowledge, I'll forward it to bug list. Or, must I change all graces into tuplets or vice versa in the tag midi parts?
Regards Haipeng
\version "2.13.24" \paper { ragged-bottom = ##t left-margin = 20\mm % two-sided = ##t } modern = #`(Staff ,(make-accidental-rule 'same-octave 0) ,(make-accidental-rule 'any-octave 0) ,(make-accidental-rule 'same-octave 1)) \layout { \context { \Score autoAccidentals = #modern autoCautionaries = #modern } \context { \RemoveEmptyStaffContext } \context { \RemoveEmptyRhythmicStaffContext } \context { \Dynamics \override TextSpanner #'breakable = ##t \override DynamicLineSpanner #'breakable = ##t \override DynamicTextSpanner #'breakable = ##t \override Hairpin #'to-barline = ##f } \context { \Voice \override Hairpin #'to-barline = ##f \override Glissando #'breakable = ##t \override TextSpanner #'breakable = ##t \override DynamicLineSpanner #'breakable = ##t \override DynamicTextSpanner #'breakable = ##t \override TrillSpanner #'breakable = ##t } \context { \StaffGroup \name Orchestra \remove "Span_bar_engraver" } \context { \Score \accepts Orchestra } \context { \StaffGroup \name SquareStaff systemStartDelimiter = #'SystemStartSquare } \context { \Orchestra \accepts SquareStaff } \context { \StaffGroup \accepts SquareStaff } \context { \type "Engraver_group" \name "MarkLine" \consists "Output_property_engraver" \consists "Axis_group_engraver" \consists "Mark_engraver" \consists "Metronome_mark_engraver" \consists "Script_engraver" \consists "Text_engraver" \consists "Text_spanner_engraver" \consists "Font_size_engraver" \override VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2 ) \override TextSpanner #'breakable = ##t } \context { \Score \accepts "MarkLine" } \context { \Orchestra \accepts "MarkLine" } \context { \StaffGroup \accepts "MarkLine" } \context { \MarkLine \name "SmallMarkLine" \override MetronomeMark #'outside-staff-priority = #800 \override RehearsalMark #'outside-staff-priority = #1200 } \context { \Score \accepts SmallMarkLine } \context { \Orchestra \accepts SmallMarkLine } \context { \StaffGroup \accepts SmallMarkLine } } \header { tagline = ##f title = \markup { \bold \fontsize #4 "Harmonious" } subtitle = \markup { \bold \fontsize #2 "Concert Overture" } composer = \markup { \bold \fontsize #3 "Hu Haipeng" } copyright = \markup { \center-column { \line { "Copyright" \char ##x00A9 "2009-2010 by Hu Haipeng." } "All Rights Reserved." } } } marks = { \set markFormatter = #format-mark-box-numbers \tempo \markup { \bold \italic "Allegro" } 4=120 s2.*6 | s1*5/4*2 | } piccolo = \relative c'''' { \clef treble \key c \major \time 3/4 \transposition c'' R2.*6 | \time 5/4 \tag #'score { r2 r8 g\mf\<\startTrillSpan ~ g2\stopTrillSpan | \grace { g16([ a b] } c8-.->)\!\sf r r4 r r2 | } \tag #'midi { r2 r8 \repeat unfold 9 { g32\mf\< a } \times 2/3 { g a b } | c8-.->\!\sf r r4 r r2 | } } flutes = \relative c''' { \clef treble \key c \major \time 3/4 R2. | R2. | r8 <g c,>16\f\< <a e> <c g> <e a,> <g c,>8-.->\!\ff r r | R2. | R2. | r8 <gis, cis,>16\f\< <b e,> <cis gis> <e b> <gis b,>8-.->\!\ff r r | \time 5/4 \tag #'score { << { g2.\p\<\startTrillSpan ~ g2\stopTrillSpan | \grace { g16([ a b] } c8-.->)\!\sf } \\ { dis,2. ~ dis2 | e8-.-> } >> r r4 r r2 | } \tag #'midi { << { \repeat unfold 19 { g32\p\< a } \times 2/3 { g a b } | c8-.->\!\sf } \\ { dis,2. ~ dis2 | e8-.-> } >> r r4 r r2 | } } oboes = \relative c''' { \clef treble \key c \major \time 3/4 R2.*6 | \time 5/4 \tag #'score { << { g2.\p\<\startTrillSpan ~ g2\stopTrillSpan | \grace { g16([ a b] } c8-.->)\!\sf } \\ { b,2. ~ b2 | \grace { b16([ c d] } e8-.->) } >> r r4 r r2 | } \tag #'midi { << { \repeat unfold 19 { g32\p\< a } \times 2/3 { g a b } | c8-.->\!\sf } \\ { b,2. ~ b4.. \times 2/3 { b32 c d } | e8-.-> } >> r r4 r r2 | } } clarinets = \relative c' { \clef treble \key d \major \time 3/4 \transposition bes R2. | r4 r8 << { a16\mf b d fis a\< b | d fis a, b d fis a8-.->\!\ff } \\ { r4 d,,16 fis | a b d, fis a b d8-.-> } >> r r | R2. | r4 r8 << { ais,16\mf cis dis fis ais\< cis | dis fis ais, cis dis fis ais8-.->\!\ff } \\ { r4 dis,,16 fis | ais cis dis, fis ais cis cis8-.-> } >> r r | \time 5/4 \tag #'score { << { a'2.\p\<\startTrillSpan ~ a2\stopTrillSpan | \grace { a16([ b cis] } d8-.->)\!\sf } \\ { a,2.\startTrillSpan ~ a2\stopTrillSpan | \grace { a16([ b cis] } d8-.->) } >> r r4 r r2 | } \tag #'midi { << { \repeat unfold 19 { a'32\p\< b } \times 2/3 { a b cis } | d8-.->\!\sf } \\ { \repeat unfold 19 { a,32 b } \times 2/3 { a b cis } | d8-.-> } >> r r4 r r2 | } } bassoons = \relative c, { \clef bass \key c \major \time 3/4 R2. | r4 r8 <c c'>4.\mf\< ~ | <c c'> ~ <c c'>8-.->\!\ff r r | R2. | r4 r8 <e e'>4.\mf\< ~ | <e e'> ~ <e e'>8-.->\!\ff r r | \time 5/4 <g g'>2.\p\< ~ <g g'>2 | \grace { <f f'>16[( <e e'> <d d'>] } <c c'>8-.->)\!\sf r r4 r r2 | } hornI = \relative c'' { \clef treble \key g \major \time 3/4 \transposition f <d g,>4\f <b d,> <e g,>8-. <d g,>->\> ~ | <d g,>2\!\mp ~ <d g,>4\< ~ | <d g,>4. ~ <d g,>8-.->\!\ff r4 | <dis fis,>\f <b dis,> <fis' b,>8-. <dis fis,>->\> ~ | <dis fis,>2\!\mp ~ <dis fis,>4\< ~ | <dis fis,>4. ~ <dis fis,>8-.\!\ff r4 | \time 5/4 <d fis,>2.\p\< ~ <d fis,>2 | <d g,>8-.->\!\sf r r4 r r2 | } hornII = \relative c'' { \clef treble \key g \major \time 3/4 \transposition f <d g,>4\f <b d,> <e g,>8-. <d g,>->\> ~ | <d g,>2\!\mp ~ <d g,>4\< ~ | <d g,>4. ~ <d g,>8-.\!\ff r4 | <dis fis,>\f <b dis,> <fis' b,>8-. <dis fis,>->\> ~ | <dis fis,>2\!\mp ~ <dis fis,>4\< ~ | <dis fis,>4. ~ <dis fis,>8-.\!\ff r4 | \time 5/4 <d fis,>2.\p\< ~ <d fis,>2 ~ | <d g,>8-.->\!\sf r r4 r r2 | } trumpetI = \relative c''' { \clef treble \key d \major \time 3/4 \transposition bes <a fis>4\f <fis d> <b fis>8-. <a fis>->\> ~ | <a fis>2\!\mp ~ <a fis>4\< ~ | <a fis>4. ~ <a fis>8-.\!\ff r4 | <ais fis>\f <fis cis> <cis' ais>8-. <ais fis>->\> ~ | <ais fis>2\!\mp ~ <ais fis>4\< ~ | <ais fis>4. ~ <ais fis>8-.\!\ff r4 | \time 5/4 << { a2.\p\< ~ a2 ~ | \grace { a16([ b cis] } d8-.->)\!\sf } \\ { f,2. ~ f2 | fis8-.-> } >> r r4 r r2 | } trumpetII = \relative c'' { \clef treble \key d \major \time 3/4 \transposition bes d4\f a d8-. d->\> ~ | d2\!\mp ~ d4\< ~ | d4. ~ d8-.\!\ff r4 | cis\f ais fis'8-. cis->\> ~ | cis2\!\mp ~ cis4\< ~ | cis4. ~ cis8-.\!\ff r4 | \time 5/4 cis2.\p\< ~ cis2 | d8-.->\!\sf r r4 r r2 | } trombones = \relative c' { \clef tenor \key c \major \time 3/4 e4\f^"I" c e8-. << { e->\> ~ | e2\!\mp ~ e4\< ~ | e4. ~ e8-.\!\ff } \\ { s8 | r2 r8 g, ~ | g4. ~ g8-. } >> r4 e'4\f^"I" b gis'8-. << { e->\> ~ | e2\!\mp ~ e4\< ~ | e4. ~ e8-.\!\ff } \\ { s8 | r2 r8 gis, ~ | gis4. ~ gis8-. } >> r4 | \time 5/4 <dis' g,>2.\p\< ~ <dis g,>2 ~ | <e g,>8-.->\!\sf r r4 r r2 | } tuba = \relative c, { \clef bass \key c \major \time 3/4 R2. | r2 r8 <c c'>\mp\< ~ | <c c'>4. ~ <c c'>8-.\!\ff r4 | R2. | r2 r8 <e e'>\mp\< ~ | <e e'>4. ~ <e e'>8-.\!\ff r4 | \time 5/4 <g, g'>2.\p\< ~ <g g'>2 | <c c'>8-.->\!\sf r r4 r r2 | } timpani = \relative c { \clef bass \key c \major \time 3/4 R2. | r4 r8 \repeat tremolo 12 c32\mp | \repeat tremolo 12 c\< c8\!\f r4 | R2. | r4 r8 \repeat tremolo 12 e32\mp | \repeat tremolo 12 e\< e8\!\f r4 | \time 5/4 \repeat tremolo 24 g,32\p\< \repeat tremolo 16 g | c8->\!\f r r4 r r2 | } toms = \relative c' { \clef percussion \time 3/4 R2.*6 | \time 5/4 R1*5/4 | R1*5/4 | } trian = \relative c' { \clef percussion \time 3/4 R2.*6 | \time 5/4 R1*5/4 | R1*5/4 | } tree = \relative c' { \clef percussion R2.*6 | R1*5/4 | R1*5/4 | } cym = \relative c' { \clef percussion R2.*6 | R1*5/4 | R1*5/4 | } tamb = \relative c' { \clef percussion R2.*6 | R1*5/4 | R1*5/4 | } snare = \relative c' { \clef percussion R2.*6 | r2 r8 c:32\p\< c2: | c8->\!\f r r4 r r2 | } bsdrum = \relative c' { \clef percussion R2.*6 | R1*5/4 | R1*5/4 | } midiperc = \drummode { R2.*6 | r2 r8 \repeat tremolo 12 sn32\p\< \repeat tremolo 8 sn | sn8\!\f r r4 r r2 | } glock = \relative c'' { \clef treble \key c \major \time 3/4 \transposition c''' R2.*6 | \time 5/4 R1*5/4 | R1*5/4 | } harprh = \relative c'' { \clef treble \key c \major \time 3/4 \showStaffSwitch c4\ff c c | c c c | c c c | c c c | c c c | c c c | \time 5/4 c c c c c | c c c c c | } harplh = \relative c { \clef bass \key c \major \showStaffSwitch R2.*6 | R1*5/4 | R1*5/4 | } dynamics = { s2.*6 | s1*5/4*2 | } violinI = \relative c''' { \clef treble \key c \major \time 3/4 R2. | R2. | r8 g16\f\< a c e g8-.->\!\ff r4 | R2. | R2. | r8 gis,16\f\< b cis e gis8-.->\!\ff r4 | \time 5/4 \tag #'score { r2 r8 g,\mp\<\startTrillSpan ~ g2\stopTrillSpan | \grace { g16([ a b] } c8-.->)\!\sf r r4 r r2 | } \tag #'midi { r2 r8 \repeat unfold 9 { g32\mp\< a } \times 2/3 { g a b } | c8-.->\!\sf r r4 r r2 | } } violinII = \relative c'' { \clef treble \key c \major \time 3/4 R2. | r2 r8 g16\mf\< a | c e g, a c e g8-.->\!\ff r4 | R2. | r2 r8 gis,16\mf\< b | cis e gis, b cis e gis8-.->\!\ff r4 | \time 5/4 R1*5/4 | r8 <e, g,>-.\p^"Div." <e g,>-. r <e g,>-. r <e g,>-. <e g,>-. r <e g,>-. | } viola = \relative c' { \clef alto \key c \major \time 3/4 R2. | r4 r8 g16\mf a c e g,\< a | c e g a c, e g8-.->\!\ff r4 | R2. | r4 r8 gis,16\mf b cis e gis,\< b | cis e gis b cis, e gis8-.->\!\ff r4 | \time 5/4 \tag #'score { r2 r8 g\mp\<\startTrillSpan ~ g2\stopTrillSpan | \grace { g16([ a b] } c8-.->)\!\sf r r4 r r2 | } \tag #'midi { r2 r8 \repeat unfold 9 { g32\mp\< a } \times 2/3 { g a b } | c8-.->\!\sf r r4 r r2 | } } cello = \relative c { \clef bass \key c \major \time 3/4 R2. | r4 r8 c16\mf c \repeat tremolo 4 c\< | \repeat tremolo 6 c c8-.->\!\ff r4 | R2. | r4 r8 e16\mf e \repeat tremolo 4 e\< | \repeat tremolo 6 e e8-.->\!\ff r4 | \time 5/4 r2 r8 g\mp\< ~ g2 | \grace { f16([ e d] } c8-.->)\!\sf r r g-.\p r c-. r4 g8-. r | } contrabass = \relative c { \clef bass \key c \major \time 3/4 \transposition c R2. | r4 r8 c4.\mf\< ~ | c4. c8-.->\!\ff r4 | R2. | r4 r8 e4.\mf\< ~ | e4.\< e8-.->\!\ff r4 | \time 5/4 r2 r8 g\mp\< ~ g2 | \grace { f16([ e d] } c8-.->)\!\sf r r g-.\p r c-. r4 g8-. r | } #(set-global-staff-size 9) \score { \new Orchestra = "orchestra" << \set Score.skipBars = ##f \new MarkLine { \keepWithTag #'score \marks } \new StaffGroup = "woodwind" << \new SquareStaff = "picc fl" << \new Staff = "piccolo" { \set Staff.instrumentName = "Piccolo" \set Staff.shortInstrumentName = "Picc." \keepWithTag #'score \piccolo } \new Staff = "flutes" { \set Staff.instrumentName = "Flutes I & II" \set Staff.shortInstrumentName = "Fl." \keepWithTag #'score \flutes } >> \new Staff = "oboes" { \set Staff.instrumentName = "Oboes I & II" \set Staff.shortInstrumentName = "Ob." \keepWithTag #'score \oboes } \new Staff = "clarinets" { \set Staff.instrumentName = \markup { \column { \line { "Clarinets I & II" } \line { "in B" \smaller \flat } } } \set Staff.shortInstrumentName = "Cl." \keepWithTag #'score \clarinets } \new Staff = "bassoons" { \set Staff.instrumentName = "Bassoons I & II" \set Staff.shortInstrumentName = "Bsn." \bassoons } >> \new StaffGroup = "brass" << \new SquareStaff = "horns" << \new Staff = "hornsI" { \set Staff.instrumentName = \markup { \column { \line { "Horns I & II" } \line { "in F" } } } \set Staff.shortInstrumentName = "Hn. I & II" \hornI } \new Staff = "hornsII" { \set Staff.instrumentName = \markup { \column { \line { "Horns III & IV" } \line { "in F" } } } \set Staff.shortInstrumentName = "Hn. III & IV" \hornII } >> \new SquareStaff = "trumpets" << \new Staff = "trumpetI" { \set Staff.instrumentName = \markup { \column { \line { "Trumpets I & II" } \line { "in B" \smaller \flat } } } \set Staff.shortInstrumentName = "Tpt. I & II" \trumpetI } \new Staff = "trumpetII" { \set Staff.instrumentName = \markup { \column { \line { "Trumpet III" } \line { "in B" \smaller \flat } } } \set Staff.shortInstrumentName = "Tpt. III" \trumpetII } >> \new Staff = "trombones 1 & 2" { \set Staff.instrumentName = "Trombones I & II" \set Staff.shortInstrumentName = "Tbn. I & II" \trombones } \new Staff = "tuba" { \set Staff.instrumentName = "Bass trombone & Tuba" \set Staff.shortInstrumentName = "Btb. & Tu." \tuba } >> \new Staff = "timpani" { \set Staff.instrumentName = "Timpani" \set Staff.shortInstrumentName = "Timp." \keepWithTag #'score \timpani } \new Staff = "tomtoms" \with { \override StaffSymbol #'line-count = #3 } { \set Staff.instrumentName = "Tomtoms" \set Staff.shortInstrumentName = "Tomt." \toms } \new GrandStaff = "drums" << \new RhythmicStaff = "triangle" { \set RhythmicStaff.instrumentName = "Triangle" \set RhythmicStaff.shortInstrumentName = "Trgl." \trian } \new RhythmicStaff = "tree" { \set RhythmicStaff.instrumentName = "Bell tree" \set RhythmicStaff.shortInstrumentName = "Bt." \tree } \new RhythmicStaff = "cymbal" { \set RhythmicStaff.instrumentName = "Suspended cymbal" \set RhythmicStaff.shortInstrumentName = "Susp. cym." \cym } \new RhythmicStaff = "tambourine" { \set RhythmicStaff.instrumentName = "Tambourine" \set RhythmicStaff.shortInstrumentName = "Tamb." \tamb } \new RhythmicStaff = "snare" { \set RhythmicStaff.instrumentName = "Snare drum" \set RhythmicStaff.shortInstrumentName = "Sn." \snare } \new RhythmicStaff = "bass drum" { \set RhythmicStaff.instrumentName = "Bass drum" \set RhythmicStaff.shortInstrumentName = "Bd." \bsdrum } >> \new Staff = "glockenspiel" { \set Staff.instrumentName = "Glockenspiel" \set Staff.shortInstrumentName = "Glock." \keepWithTag #'score \glock } \new PianoStaff = "harp" << \set PianoStaff.instrumentName = "Harp" \set PianoStaff.shortInstrumentName = "Hrp." \set PianoStaff.connectArpeggios = ##t \new Staff = "rh" { \keepWithTag #'score \harprh } \new Dynamics { \dynamics } \new Staff = "lh" { \keepWithTag #'score \harplh } >> \new SmallMarkLine { \keepWithTag #'score \marks } \new StaffGroup = "strings" << \new SquareStaff = "violins" << \new Staff = "violin I" { \set Staff.instrumentName = "Violin I" \set Staff.shortInstrumentName = "Vln. I" \keepWithTag #'score \violinI } \new Staff = "violin II" { \set Staff.instrumentName = "Violin II" \set Staff.shortInstrumentName = "Vln. II" \keepWithTag #'score \violinII } >> \new Staff = "viola" { \set Staff.instrumentName = "Viola" \set Staff.shortInstrumentName = "Vla." \keepWithTag #'score \viola } \new SquareStaff = "Cello and Bass" << \new Staff = "violoncello" { \set Staff.instrumentName = "Violoncello" \set Staff.shortInstrumentName = "Vc." \cello } \new Staff = "contrabass" { \set Staff.instrumentName = "Contrabass" \set Staff.shortInstrumentName = "Cb." \contrabass } >> >> >> \layout { \context { \Score \remove "Mark_engraver" \remove "Metronome_mark_engraver" } } } \score { \unfoldRepeats { \new StaffGroup = "orchestra" << \new Staff = "flutes" { \set Staff.midiInstrument = "flute" \keepWithTag #'midi << \marks \piccolo \transpose c' c \flutes >> } \new Staff = "oboes" { \set Staff.midiInstrument = "oboe" \keepWithTag #'midi \oboes } \new Staff = "clarinets" { \set Staff.midiInstrument = "clarinet" \keepWithTag #'midi \clarinets } \new Staff = "bassoons" { \set Staff.midiInstrument = "bassoon" \bassoons } \new Staff = "horns" { \set Staff.midiInstrument = "french horn" << \hornI \\ \hornII >> } \new Staff = "trumpets" { \set Staff.midiInstrument = "trumpet" << \trumpetI \\ \trumpetII >> } \new Staff = "trombones" { \set Staff.midiInstrument = "trombone" << \trombones \\ \tuba >> } \new Staff = "timpani" { \set Staff.midiInstrument = "timpani" \keepWithTag #'midi \timpani } \new Staff = "glock" { \set Staff.midiInstrument = "glockenspiel" \keepWithTag #'midi \glock } \new DrumStaff { \midiperc } \new Staff = "harp" { \set Staff.midiInstrument = "orchestral harp" \keepWithTag #'midi << \harprh \\ \dynamics \\ \harplh >> } \new StaffGroup = "strings" << \set StaffGroup.midiInstrument = "string ensemble 1" \new Staff = "violini" { \keepWithTag #'midi \violinI } \new Staff = "viola" { \keepWithTag #'midi << \violinII \viola >> } \new Staff = "violoncello" { \cello } \new Staff = "bass" { \contrabass } >> >> } \midi { } }
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user