From 80c1e9644758f0f17a189d5343a46ca82cd62850 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 26 Feb 2001 23:19:59 +0100 Subject: [PATCH] patch::: 1.3.132.jcn1 1.3.132.jcn1 ============ * a2-engraver: \property noDirection: don't force direction when part-combining (for StaffCombining). * text-spanner: don't repeat edge text for broken edge. * Coriolan fixes, titling, font setting, header info, cello octave (yes, notated different from bass; all agree) at end. --- CHANGES | 10 ++ Documentation/user/refman.itely | 2 +- VERSION | 2 +- input/bugs/dynamic-collide.ly | 9 +- input/bugs/mb.ly | 37 +++++++ input/bugs/pc-core.ly | 94 +++++++++++++++++ input/bugs/pc-direction.ly | 133 ++++++++++++++++++++++++ input/bugs/stem-through-beam.ly | 79 ++++++++++++++ input/bugs/text-spanner.ly | 13 +++ input/test/coriolan-margin.ly | 27 ++--- input/tutorial/orchestral-score.ly | 8 ++ lily/a2-engraver.cc | 29 +++--- lily/midi-item.cc | 12 ++- lily/midi-stream.cc | 10 +- lily/text-spanner.cc | 14 ++- ly/engraver.ly | 3 - make/mutopia-targets.make | 5 + mutopia/Coriolan/bassi.ly | 2 +- mutopia/Coriolan/contrabasso.ly | 2 +- mutopia/Coriolan/coriolan-paper.ly | 10 +- mutopia/Coriolan/coriolan-part-paper.ly | 7 ++ mutopia/Coriolan/coriolan.ly | 15 +-- mutopia/Coriolan/global.ly | 1 + mutopia/Coriolan/header.ly | 20 +++- mutopia/Coriolan/viola-1.ly | 2 +- mutopia/Coriolan/viola-2.ly | 2 +- mutopia/Coriolan/viole.ly | 2 + mutopia/Coriolan/violino-1.ly | 8 +- mutopia/Coriolan/violino-2.ly | 8 +- mutopia/Coriolan/violoncello.ly | 5 +- scm/translator-description.scm | 1 + scm/translator-property-description.scm | 1 + scripts/lilypond-book.py | 6 +- 33 files changed, 505 insertions(+), 74 deletions(-) create mode 100644 input/bugs/mb.ly create mode 100644 input/bugs/pc-core.ly create mode 100644 input/bugs/pc-direction.ly create mode 100644 input/bugs/stem-through-beam.ly create mode 100644 input/bugs/text-spanner.ly diff --git a/CHANGES b/CHANGES index 91841f2b9a..ccc8cca90f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,13 @@ +1.3.132.jcn1 +============ + +* a2-engraver: \property noDirection: don't force direction when part-combining (for StaffCombining). + +* text-spanner: don't repeat edge text for broken edge. + +* Coriolan fixes, titling, font setting, header info, cello octave +(yes, notated different from bass; all agree) at end. + 1.3.131.jcn2 ============ diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index f882840e7e..f606b26682 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -302,7 +302,7 @@ a quarter note is assumed. The duration can be followed by a dot @cindex @code{.} @lilypond[fragment,verbatim,center] - a'4. b'4. + a'4. b'4. c'2.. @end lilypond @cindex @code{r} @cindex @code{s} diff --git a/VERSION b/VERSION index ab4bed8b3f..17bc5677b1 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=132 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/bugs/dynamic-collide.ly b/input/bugs/dynamic-collide.ly index 789e081390..d72cee53ca 100644 --- a/input/bugs/dynamic-collide.ly +++ b/input/bugs/dynamic-collide.ly @@ -113,6 +113,11 @@ staffCombinePianoStaffProperties = { \translator{ \ThreadContext \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() } \translator{ \VoiceContext @@ -133,9 +138,11 @@ staffCombinePianoStaffProperties = { \translator { \OrchestralScoreContext skipBars = ##t - devNullThread = #'never soloText = #"I." soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level + devNullThread = #'never % Hmm currentBarNumber = #218 diff --git a/input/bugs/mb.ly b/input/bugs/mb.ly new file mode 100644 index 0000000000..946ff23437 --- /dev/null +++ b/input/bugs/mb.ly @@ -0,0 +1,37 @@ +% mb.ly: midi-bug +% midi notes get stuck + +%{ +From: Mats Bengtsson +Subject: Re: request simple .ly showing MIDI tie bug +To: Jan Nieuwenhuizen +Date: Mon, 26 Feb 2001 23:18:06 +0100 + +I was lucky enough to find a short snippet which triggered +the bug (a few bars from David Lattermanns typesetting of +the Dvorak Bagatelles. I spent the Sunday upgrading them +to 1.3.131). I hope it simplifies the bug search. +%} + +\score{ + \notes \relative c{ + \time 2/4; + \clef bass; + \property Staff.midiInstrument = "harmonica" + < + \context Voice=ua { + \stemDown + e4 a, | b2 | + } + \context Voice=ub { + \stemUp + e2 ~ | e4 dis | + } + > + R2*5 | + c'2 + } +\paper{} +\midi{\tempo 4 = 140;} +} + diff --git a/input/bugs/pc-core.ly b/input/bugs/pc-core.ly new file mode 100644 index 0000000000..89a24a4e2b --- /dev/null +++ b/input/bugs/pc-core.ly @@ -0,0 +1,94 @@ +% on their own staff, voices should be stemboth (not up/down) + +End = { \skip 1*8; } + +violoncello = \notes\relative c' { + c8 c c c c8 c c c\break +} + +contrabasso = \notes\relative c { + c4 c8 c c8 c c c\break +} + +staffCombinePianoStaffProperties = { + \property PianoStaff.devNullThread = #'() + \property PianoStaff.soloADue = ##t + \property PianoStaff.soloText = #"" + \property PianoStaff.soloIIText = #"" + % This is non-conventional, but currently it is + % the only way to tell the difference. + \property PianoStaff.aDueText = #"\\`a2" + \property PianoStaff.splitInterval = #'(1 . 0) + \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) +} + + +\score { + < + \context PianoStaff = bassi_group \notes < + \staffCombinePianoStaffProperties + \context Staff=oneBassi < \clef bass; + \property Staff.instrument = #'(lines + "Violoncello" " e" "Contrabasso") + + \property Staff.instr = #"Vc." + \End > + \context Staff=twoBassi < \clef bass; + \property Staff.instrument = #"Contrabasso" + \property Staff.instr = #"Cb." + + \End > + + \context Staff=oneBassi \partcombine Staff + \context Voice=oneBassi { \violoncello } + \context Voice=twoBassi { \contrabasso } + > +> + \paper { + % \paperSixteen + linewidth = 80 * \staffspace; + textheight = 200 * \staffspace; + \translator{ + \ThreadContext + \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() + } + \translator{ + \VoiceContext + \remove "Rest_engraver"; + + % The staff combine (bassi part) needs a + % thread_devnull_engraver here. + % Instead of maintaining two separate hierarchies, + % we switch add it, but switch it off immideately. + % The staff combine parts switch it on. + % devNullThread = #'never + \consists "Thread_devnull_engraver"; + } + \translator{ + \HaraKiriStaffContext + \consists "Mark_engraver"; + } + \translator { + \OrchestralScoreContext + skipBars = ##t + soloText = #"I." + soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level + devNullThread = #'never + + % Hmm + currentBarNumber = #218 + BarNumber \override #'padding = #3 + RestCollision \override #'maximum-rest-count = #1 + marginScriptHorizontalAlignment = #1 + TimeSignature \override #'style = #'C + } + } +} + diff --git a/input/bugs/pc-direction.ly b/input/bugs/pc-direction.ly new file mode 100644 index 0000000000..c9836b5c2c --- /dev/null +++ b/input/bugs/pc-direction.ly @@ -0,0 +1,133 @@ +% move to regtest once it works? + +\header { +texidoc=" +On their own staff, staffcombined voices should be stemboth (not up/down); +while voicecombined threads should get their direction set (up/down)"; +} + + +End = { \skip 1*8; } + +violaI = \notes\relative c'' { + c c e4. e8 +} +violaII = \notes\relative c'' { + c4 b a a +} + + +violoncello = \notes\relative c' { + c8 c c c c8 c c c\break + a1 +} + +contrabasso = \notes\relative c { + a4 a8 a a8 a a a\break + a1 +} + +violeStaff = \notes \context Staff = viole < + \context Voice=oneViole < + \property Staff.instrument = #"Viola" + \property Staff.instr = #"Vla." + + \End + > + \context Voice=twoViole < + \property Staff.instrument = #"Viola II" + \property Staff.instr = #"Vla. II" + \End + > + \context Voice=oneViole \partcombine Voice + \context Thread=oneViole \violaI + \context Thread=twoViole \violaII +> + +staffCombinePianoStaffProperties = { + \property PianoStaff.devNullThread = #'() + \property PianoStaff.soloADue = ##t + \property PianoStaff.soloText = #"" + \property PianoStaff.soloIIText = #"" + % This is non-conventional, but currently it is + % the only way to tell the difference. + \property PianoStaff.aDueText = #"\\`a2" + \property PianoStaff.splitInterval = #'(1 . 0) + \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) + \property PianoStaff.noDirection = ##t +} + + +\score { + < + \context StaffGroup < + \violeStaff + + \context PianoStaff = bassi_group \notes < + \staffCombinePianoStaffProperties + \context Staff=oneBassi < \clef bass; + \property Staff.instrument = #'(lines + "Violoncello" " e" "Contrabasso") + + \property Staff.instr = #"Vc." + \End > + \context Staff=twoBassi < \clef bass; + \property Staff.instrument = #"Contrabasso" + \property Staff.instr = #"Cb." + + \End > + + \context Staff=oneBassi \partcombine Staff + \context Voice=oneBassi { \violoncello } + \context Voice=twoBassi { \contrabasso } + > +> + > + \paper { + % \paperSixteen + linewidth = 80 * \staffspace; + textheight = 200 * \staffspace; + \translator{ + \ThreadContext + \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() + } + \translator{ + \VoiceContext + \remove "Rest_engraver"; + + % The staff combine (bassi part) needs a + % thread_devnull_engraver here. + % Instead of maintaining two separate hierarchies, + % we switch add it, but switch it off immideately. + % The staff combine parts switch it on. + % devNullThread = #'never + \consists "Thread_devnull_engraver"; + } + \translator{ + \HaraKiriStaffContext + \consists "Mark_engraver"; + } + \translator { + \OrchestralScoreContext + skipBars = ##t + soloText = #"I." + soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level + devNullThread = #'never + + % Hmm + currentBarNumber = #218 + BarNumber \override #'padding = #3 + RestCollision \override #'maximum-rest-count = #1 + marginScriptHorizontalAlignment = #1 + TimeSignature \override #'style = #'C + } + } +} + diff --git a/input/bugs/stem-through-beam.ly b/input/bugs/stem-through-beam.ly new file mode 100644 index 0000000000..63b665001a --- /dev/null +++ b/input/bugs/stem-through-beam.ly @@ -0,0 +1,79 @@ +% strange bug with stems through beams in second beam + +End = { \skip 1*8; } + +violaii = \notes\relative c' { + [\!f8\sf(\>as f as][f g d)\!g]| +} + +violai=\notes\relative c' { + [\!f8\sf(\>as f as][f g d)\!g]| +} + +violeStaff = \notes \context Staff = viole < + \context Voice=oneViola < + \property Staff.instrument = #"Viola" + \property Staff.instr = #"Vla." + + \End + > + \context Voice=twoViola < + \property Staff.instrument = #"Viola II" + \property Staff.instr = #"Vla. II" + \End + > + \context Voice=oneViola \partcombine Voice + \context Thread=oneViola \violai + \context Thread=twoViola \violaii +> + +\score { + \violeStaff + \paper { + % \paperSixteen + linewidth = 80 * \staffspace; + textheight = 200 * \staffspace; + \translator{ + \ThreadContext + \consists "Rest_engraver"; + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() + } + \translator{ + \VoiceContext + \remove "Rest_engraver"; + + % The staff combine (bassi part) needs a + % thread_devnull_engraver here. + % Instead of maintaining two separate hierarchies, + % we switch add it, but switch it off immideately. + % The staff combine parts switch it on. + % devNullThread = #'never + \consists "Thread_devnull_engraver"; + } + \translator{ + \HaraKiriStaffContext + \consists "Mark_engraver"; + } + \translator { + \OrchestralScoreContext + skipBars = ##t + + % By default, turn off the Thread_devnull_engraver + % at Voice level + devNullThread = #'never + soloText = #"I." + soloIIText = #"II." + + % Hmm + currentBarNumber = #218 + BarNumber \override #'padding = #3 + RestCollision \override #'maximum-rest-count = #1 + marginScriptHorizontalAlignment = #1 + TimeSignature \override #'style = #'C + } + } +} + diff --git a/input/bugs/text-spanner.ly b/input/bugs/text-spanner.ly new file mode 100644 index 0000000000..493c93f771 --- /dev/null +++ b/input/bugs/text-spanner.ly @@ -0,0 +1,13 @@ +% text spanners should not repeat start text when broken + +\score { + \notes \relative c'' { + \property Voice.crescendoText = #"cresc." + \property Voice.crescendoSpanner = #'dashed-line + c1\< c \break + c1 \!c \break + } + \paper { + linewidth = 40*\staffspace; + } +} \ No newline at end of file diff --git a/input/test/coriolan-margin.ly b/input/test/coriolan-margin.ly index a85403af93..b09bc2997c 100644 --- a/input/test/coriolan-margin.ly +++ b/input/test/coriolan-margin.ly @@ -1,5 +1,15 @@ \version "1.3.122" +% Ugh, we need to override some LaTeX titling stuff +\header { + title = "Ouverture\\vrule width0pt height 0pt depth 1ex"; + subtitle = "\\normalsize Zu Heinrich Joseph v. Collins Trauerspiel\\vrule width0pt height 0pt depth 1ex"; + subsubtitle = "\\Large\\bf Coriolan"; + opus = "Op. 62"; + piece = "\\normalfont\\large Allegro con brio"; + composer = "Ludwig van Beethoven (1770-1827)"; + enteredby = "JCN"; +} #(define raisedflat '((raise . 0.4) (music (named "accidentals--1")))) flauti = \notes \relative c' { @@ -54,14 +64,14 @@ timpani = \notes \relative c' { } violino1 = \notes \relative c' { - \property Staff.instrument = #"Violino I" - \property Staff.instr = #"Vl. I" + \property Staff.instrument = #"Violino I " + \property Staff.instr = #"Vl. I " c1 c } violino2 = \notes \relative c' { - \property Staff.instrument = #"Violino II" - \property Staff.instr = #"Vl. II" + \property Staff.instrument = #"Violino II " + \property Staff.instr = #"Vl. II " c1 c } @@ -109,15 +119,6 @@ violoncello = \notes \relative c' { \context Staff ="violoncello" \violoncello > > - \header{ - title = "Coriolan"; - subtitle = "Ouverture"; - opus = "Opus 62"; - composer = "Ludwig van Beethoven (1770-1827)"; - enteredby = "JCN"; - copyright = "public domain"; - } - \paper { \paperSixteen indent=100.0\mm; diff --git a/input/tutorial/orchestral-score.ly b/input/tutorial/orchestral-score.ly index d46b66856a..30e0dd2087 100644 --- a/input/tutorial/orchestral-score.ly +++ b/input/tutorial/orchestral-score.ly @@ -15,6 +15,7 @@ staffCombinePianoStaffProperties = { \property PianoStaff.aDueText = #"\\`a2" \property PianoStaff.splitInterval = #'(1 . 0) \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) + \property PianoStaff.noDirection = ##t } % Coriolan 218-222 @@ -229,6 +230,11 @@ contrabasso = \notes\relative c { \translator{ \ThreadContext \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() } \translator{ \VoiceContext @@ -254,6 +260,8 @@ contrabasso = \notes\relative c { soloText = #"I." soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level devNullThread = #'never % Hmm diff --git a/lily/a2-engraver.cc b/lily/a2-engraver.cc index ef735b38bb..f767e7004d 100644 --- a/lily/a2-engraver.cc +++ b/lily/a2-engraver.cc @@ -129,21 +129,24 @@ A2_engraver::acknowledge_grob (Grob_info i) state_ = SPLIT_INTERVAL; else if (unirhythm) state_ = UNIRHYTHM; - - if (Stem::has_interface (i.elem_l_) - || Slur::has_interface (i.elem_l_) - // || Tie::has_interface (i.elem_l_) - || i.elem_l_->has_interface (ly_symbol2scm ("tie-interface")) - /* - Usually, dynamics are removed by *_devnull_engravers for the - second voice. On the one hand, we don't want all dynamics for - the first voice to be placed above the staff. On the other - hand, colliding of scripts may be worse */ + + /* Must only set direction for VoiceCombines, not for StaffCombines: + we can't detect that here, so, ugh, yet another property */ + if (!to_boolean (get_property ("noDirection")) + && (Stem::has_interface (i.elem_l_) + || Slur::has_interface (i.elem_l_) + // || Tie::has_interface (i.elem_l_) + || i.elem_l_->has_interface (ly_symbol2scm ("tie-interface")) + /* + Usually, dynamics are removed by *_devnull_engravers for the + second voice. On the one hand, we don't want all dynamics for + the first voice to be placed above the staff. On the other + hand, colliding of scripts may be worse */ #if 0 - || i.elem_l_->has_interface (ly_symbol2scm ("dynamic-interface")) - || i.elem_l_->has_interface (ly_symbol2scm ("text-interface")) + || i.elem_l_->has_interface (ly_symbol2scm ("dynamic-interface")) + || i.elem_l_->has_interface (ly_symbol2scm ("text-interface")) #endif - ) + )) { /* Hmm. We must set dir when solo, in order to get diff --git a/lily/midi-item.cc b/lily/midi-item.cc index c0d980d536..a44155c073 100644 --- a/lily/midi-item.cc +++ b/lily/midi-item.cc @@ -450,8 +450,8 @@ Midi_note_off::Midi_note_off (Midi_note* n) // Anybody who hears any difference, or knows how this works? // 0 should definitely be avoided, notes stick on some sound cards. // 64 is supposed to be neutral + aftertouch_byte_ = 64; - } String @@ -594,16 +594,26 @@ Midi_track::add (Moment delta_time_mom, Midi_item* midi_p) event_p_list_.append (new Killing_cons (e, 0)); } +extern bool verbose_global_b; + String Midi_track::data_str () const { String str = Midi_chunk::data_str (); +#if 0 if (flower_dstream && !flower_dstream->silent_b ("Midistrings")) +#else + if (verbose_global_b) +#endif str += "\n"; for (Cons *i=event_p_list_.head_; i; i = i->next_) { str += i->car_->str (); +#if 0 if (flower_dstream && !flower_dstream->silent_b ("Midistrings")) +#else + if (verbose_global_b) +#endif str += "\n"; } return str; diff --git a/lily/midi-stream.cc b/lily/midi-stream.cc index 976130a3f0..cdaf316cf8 100644 --- a/lily/midi-stream.cc +++ b/lily/midi-stream.cc @@ -34,14 +34,18 @@ Midi_stream::operator << (String str) return *this; } +extern bool verbose_global_b; Midi_stream& Midi_stream::operator << (Midi_item const& midi_c_r) { -// *this <silent_b ("Midistrings")) +#if 0 + if (flower_dstream && !flower_dstream->silent_b ("Midistrings")) +#else + if (verbose_global_b) +#endif { - str = String_convert::bin2hex_str (str) + "\n"; + str = String_convert::bin2hex_str (str) + "\n"; // ugh, should have separate debugging output with Midi*::print routines int i = str.index_i ("0a"); while (i >= 0) diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc index b4668ce372..ba873c50a9 100644 --- a/lily/text-spanner.cc +++ b/lily/text-spanner.cc @@ -81,7 +81,7 @@ Text_spanner::brew_molecule (SCM smob) SCM properties = Font_interface::font_alist_chain (me); - + SCM edge_text = me->get_grob_property ("edge-text"); Drul_array edge; if (gh_pair_p (edge_text)) @@ -89,10 +89,14 @@ Text_spanner::brew_molecule (SCM smob) Direction d = LEFT; do { - SCM text = index_cell (edge_text, d); - edge[d] = Text_item::text2molecule (me, text, properties); - if (!edge[d].empty_b ()) - edge[d].align_to (Y_AXIS, CENTER); + /* Don't repeat edge text for broken end */ + if (!broken[d]) + { + SCM text = index_cell (edge_text, d); + edge[d] = Text_item::text2molecule (me, text, properties); + if (!edge[d].empty_b ()) + edge[d].align_to (Y_AXIS, CENTER); + } } while (flip (&d) != LEFT); } diff --git a/ly/engraver.ly b/ly/engraver.ly index aad446c46e..8c0c48fcf8 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -372,9 +372,6 @@ ScoreContext = \translator { splitInterval = #'(0 . 1) changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512)) - %devNullThread = #'unisolo - %devNullVoice = #'unisolo - StaffMinimumVerticalExtent = #(cons -4.0 4.0) barAuto = ##t diff --git a/make/mutopia-targets.make b/make/mutopia-targets.make index d22249cbb0..64c846e9de 100644 --- a/make/mutopia-targets.make +++ b/make/mutopia-targets.make @@ -35,6 +35,11 @@ mutopia-letter=$(mutopia-examples:%=out-letter/%.ps.gz) mutopia: $(MAKE) examples="$(mutopia-examples)" PAPERSIZE=letter local-WWW $(mutopia-letter) +localclean: local-letter-clean + +local-letter-clean: + rm -f $(outdir)-letter/* + # # and -book targets only available through ly.make template makefile; # too scary to install in LilyPonds make yet. diff --git a/mutopia/Coriolan/bassi.ly b/mutopia/Coriolan/bassi.ly index 18dedd5e05..d78dae7a97 100644 --- a/mutopia/Coriolan/bassi.ly +++ b/mutopia/Coriolan/bassi.ly @@ -31,4 +31,4 @@ bassiGroup = \context PianoStaff = bassi_group \notes < \context Staff=oneBassi \partcombine Staff \context Voice=oneBassi \violoncello \context Voice=twoBassi \contrabasso -> \ No newline at end of file +> diff --git a/mutopia/Coriolan/contrabasso.ly b/mutopia/Coriolan/contrabasso.ly index 295361aa91..b2b60555d3 100644 --- a/mutopia/Coriolan/contrabasso.ly +++ b/mutopia/Coriolan/contrabasso.ly @@ -373,7 +373,7 @@ contrabasso = \notes \relative c { R1| \!c4\p r r2| R1| - g4-"pizz." r r2| + g4-#'((font-shape . upright) "pizz.") r r2| %295 R1| diff --git a/mutopia/Coriolan/coriolan-paper.ly b/mutopia/Coriolan/coriolan-paper.ly index cc2ab866ec..b281667604 100644 --- a/mutopia/Coriolan/coriolan-paper.ly +++ b/mutopia/Coriolan/coriolan-paper.ly @@ -13,13 +13,18 @@ \translator { \ThreadContext \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() } \translator { \VoiceContext \remove "Rest_engraver"; % The staff combine (bassi part) needs a - % thread_devnull_engraver here. + % thread_devnull_engraver here. Why? % Instead of maintaining two separate hierarchies, % we switch add it, but switch it off immediately. % --> move to Score level to be able to override @@ -31,6 +36,7 @@ \translator { \HaraKiriStaffContext \consists "Mark_engraver"; + MultiMeasureRest \override #'minimum-width = #6 } \translator { \OrchestralScoreContext @@ -38,6 +44,8 @@ soloText = #"I." soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level devNullThread = #'never TimeSignature \override #'style = #'C diff --git a/mutopia/Coriolan/coriolan-part-paper.ly b/mutopia/Coriolan/coriolan-part-paper.ly index 28c5a86c60..e5ff529fe0 100644 --- a/mutopia/Coriolan/coriolan-part-paper.ly +++ b/mutopia/Coriolan/coriolan-part-paper.ly @@ -13,6 +13,11 @@ \translator { \ThreadContext \consists "Rest_engraver"; + + % Set value for engraver at thread level, + % to override the default that is set in ScoreContext + % for added engraver at Voice level + devNullThread = #'() } \translator { \VoiceContext @@ -41,6 +46,8 @@ soloText = #"I." soloIIText = #"II." + % By default, turn off the Thread_devnull_engraver + % at Voice level devNullThread = #'never TimeSignature \override #'style = #'C diff --git a/mutopia/Coriolan/coriolan.ly b/mutopia/Coriolan/coriolan.ly index 76167b981c..76a551b9e2 100644 --- a/mutopia/Coriolan/coriolan.ly +++ b/mutopia/Coriolan/coriolan.ly @@ -1,13 +1,7 @@ -%{ - run this through: - ly2dvi -K coriolan.tex - dvips -O 5mm,0mm -o coriolan.ps coriolan 2> /dev/null -%} - - \version "1.3.120"; instrument = "Orchestra" +% instrument = "" \include "header.ly" \include "global.ly" @@ -65,12 +59,7 @@ archiGroup = \context StaffGroup = archi_group < \archiGroup > \header{ - title = "Coriolan"; - subtitle = "Ouverture"; - opus = "Opus 62"; - composer = "Ludwig van Beethoven (1770-1827)"; - enteredby = "JCN"; - copyright = "public domain"; + instrument = ""; } \include "coriolan-paper.ly" \include "coriolan-midi.ly" diff --git a/mutopia/Coriolan/global.ly b/mutopia/Coriolan/global.ly index 24d8575ffa..ff033a920c 100644 --- a/mutopia/Coriolan/global.ly +++ b/mutopia/Coriolan/global.ly @@ -21,6 +21,7 @@ staffCombinePianoStaffProperties = { \property PianoStaff.aDueText = #"\\`a2" \property PianoStaff.splitInterval = #'(1 . 0) \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) + \property PianoStaff.noDirection = ##t } #(set! point-and-click #t) diff --git a/mutopia/Coriolan/header.ly b/mutopia/Coriolan/header.ly index dec1d9fae6..1bab08c797 100644 --- a/mutopia/Coriolan/header.ly +++ b/mutopia/Coriolan/header.ly @@ -1,7 +1,10 @@ +% Ugh, we need to override some LaTeX titling stuff \header { - title = "Ouverture"; - subtitle = "Coriolan"; + title = "Ouverture\\vrule width0pt height 0pt depth 1ex"; + subtitle = "\\normalsize Zu Heinrich Joseph v. Collins Trauerspiel\\vrule width0pt height 0pt depth 1ex"; + subsubtitle = "\\Large\\bf Coriolan"; opus = "Op. 62"; + piece = "\\normalfont\\large Allegro con brio"; composer = "Ludwig van Beethoven (1770-1827)"; enteredby = "JCN"; instrument = \instrument; @@ -12,7 +15,18 @@ mutopiaopus = "O62"; mutopiainstrument = \instrument; date = "1807"; - source = "Edition Dr. Max Unger 1936 from original published parts and autograph."; + + source = "i. Ed. Dr. Max Unger 1936 from and following score autograph and + original published parts, ie, Stimmen-Drucke N.Simrock Bonn (most probably + from 1807) and Industriekontor Vienna (1807).\\\\ + ii. Beethoven's Werke -- Ouverturen fuer Orchester; Breitkopf u. Haertel, + Leipzig (not dated, but very old and worn).\\\\ + iii. Beethoven Werke II,1 -- Ouverturen und Wellingtons Sieg; G. Henle + Verlag, Muenchen (1974). + Veroeffentlichung des Beethovenhauses in Bonn. + Die ausgabe wurde durch die Unterstuetzung des Landes Nordrhein-Westfalen + ermoeglicht."; + style = "Classical"; copyright = "Public Domain"; maintainer = "Jan Nieuwenhuizen"; diff --git a/mutopia/Coriolan/viola-1.ly b/mutopia/Coriolan/viola-1.ly index 16113333c1..779e50be68 100644 --- a/mutopia/Coriolan/viola-1.ly +++ b/mutopia/Coriolan/viola-1.ly @@ -398,7 +398,7 @@ violaI = \notes \relative c { R1| \!c4\p r r2| R1| - g4-"pizz." r r2| + g4-#'((font-shape . upright) "pizz.") r r2| R1| c,4 r r2| R1*15| diff --git a/mutopia/Coriolan/viola-2.ly b/mutopia/Coriolan/viola-2.ly index 8fe53abc31..7ba0e2c046 100644 --- a/mutopia/Coriolan/viola-2.ly +++ b/mutopia/Coriolan/viola-2.ly @@ -398,7 +398,7 @@ violaII = \notes \relative c { R1| \!c4\p r r2| R1| - g4-"pizz." r r2| + g4-#'((font-shape . upright) "pizz.") r r2| R1| c,4 r r2| R1*15| diff --git a/mutopia/Coriolan/viole.ly b/mutopia/Coriolan/viole.ly index 1f72a246e0..2398bd9fc7 100644 --- a/mutopia/Coriolan/viole.ly +++ b/mutopia/Coriolan/viole.ly @@ -6,6 +6,7 @@ %{ violeGroup = \context PianoStaff = viole_group \notes < + \property PianoStaff.aDueText = #"" \context Staff=oneViole { \property Staff.midiInstrument = #"viola" \property Staff.instrument = #"Viola" @@ -36,6 +37,7 @@ violeGroup = \context PianoStaff = viole_group \notes < %} violeGroup = \notes \context Staff = viole < + \property Staff.aDueText = #"" \context Staff=viole { \property Staff.midiInstrument = #"viola" \property Staff.instrument = #"Viola" diff --git a/mutopia/Coriolan/violino-1.ly b/mutopia/Coriolan/violino-1.ly index 6d56bf22cd..0932b1a822 100644 --- a/mutopia/Coriolan/violino-1.ly +++ b/mutopia/Coriolan/violino-1.ly @@ -410,7 +410,7 @@ violinoI = \notes \relative c { R1| \!es!4\p r r2| R1| - d,4-"pizz." r r2| + d,4-#'((font-shape . upright) "pizz.") r r2| %295 R1| @@ -441,15 +441,15 @@ violinoI = \notes \relative c { %310 \!c4\pp r r2| R1| - c4-"pizz." r r2| + c4-#'((font-shape . upright) "pizz.") r r2| c4 r r2| c4 r r2| } violinoIStaff = \context Staff = violino1 < \property Staff.midiInstrument = #"violin" - \property Staff.instrument = #"Violino I" - \property Staff.instr = #"Vl. I" + \property Staff.instrument = #"Violino I " + \property Staff.instr = #"Vl. I " \notes< \global \context Voice=violinoi diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly index 3b7bcbae3d..f1494f5fc2 100644 --- a/mutopia/Coriolan/violino-2.ly +++ b/mutopia/Coriolan/violino-2.ly @@ -429,13 +429,13 @@ violinoII = \notes \relative c { R1| \!g4\p r r2| R1| - b,4-"pizz." r r2| + b,4-#'((font-shape . upright) "pizz.") r r2| %295 R1| c4 r r2| R1*15| - c4-"pizz." r r2| + c4-#'((font-shape . upright) "pizz.") r r2| c4 r r2| c4 r r2| } @@ -444,8 +444,8 @@ violinoIIStaff = \context Staff = violino2 < % MIDI hoort geeneens verschil tussen een % eerste en tweede viool ;-) \property Staff.midiInstrument = #"violin" - \property Staff.instrument = #"Violino II" - \property Staff.instr = #"Vl. II" + \property Staff.instrument = #"Violino II " + \property Staff.instr = #"Vl. II " \notes< \global \context Voice=violinoii diff --git a/mutopia/Coriolan/violoncello.ly b/mutopia/Coriolan/violoncello.ly index 75b2871679..b7f970ab68 100644 --- a/mutopia/Coriolan/violoncello.ly +++ b/mutopia/Coriolan/violoncello.ly @@ -443,7 +443,7 @@ violoncello = \notes \relative c { R1| \!c4\p r r2| R1| - g4-"pizz." r r2| + g4-#'((font-shape . upright) "pizz.") r r2| %295 R1| @@ -473,7 +473,8 @@ violoncello = \notes \relative c { %310 \!c,\pp r r2| R1| - c4-"pizz." r r2| + % no mistake: octave lower than contrabass, ie, sounding equal + c,4-#'((font-shape . upright) "pizz.") r r2| c4 r r2| c4 r r2| } diff --git a/scm/translator-description.scm b/scm/translator-description.scm index 754ab1cc00..389a35bc93 100644 --- a/scm/translator-description.scm +++ b/scm/translator-description.scm @@ -116,6 +116,7 @@ interesting items (ie. note heads, lyric syllables and normal rests)" '(TextScript) '( combineParts + noDirection soloADue soloText soloIIText diff --git a/scm/translator-property-description.scm b/scm/translator-property-description.scm index 3c62246ac1..350aee59c5 100644 --- a/scm/translator-property-description.scm +++ b/scm/translator-property-description.scm @@ -209,6 +209,7 @@ top of those automatically detected. ") MIDI instrument to use ") (translator-property-description 'noAutoBeaming boolean? "If set to true then beams are not generated automatically. ") +(translator-property-description 'noDirection boolean? "Don't set directions by a2-engraver when part-combining.") (translator-property-description 'noResetKey boolean? "Do not reset local key to the value of keySignature at the start of a measure, as determined by measurePosition. diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 849aeab201..e395ca7d48 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -212,8 +212,10 @@ class LatexPaper: if not self.m_use_geometry: return latex_linewidths[self.m_papersize][self.m_fontsize] else: - geo_opts = (a == None, b == None, c == None) - + geo_opts = (self.m_geo_lmargin == None, + self.m_geo_width == None, + self.m_geo_rmargin == None) + if geo_opts == (1, 1, 1): if self.m_geo_textwidth: return self.m_geo_textwidth -- 2.39.2