+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
============
@cindex @code{.}
@lilypond[fragment,verbatim,center]
- a'4. b'4.
+ a'4. b'4. c'2..
@end lilypond
@cindex @code{r}
@cindex @code{s}
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.
\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
\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
--- /dev/null
+% mb.ly: midi-bug
+% midi notes get stuck
+
+%{
+From: Mats Bengtsson <mats.bengtsson@s3.kth.se>
+Subject: Re: request simple .ly showing MIDI tie bug
+To: Jan Nieuwenhuizen <janneke@gnu.org>
+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;}
+}
+
--- /dev/null
+% 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
+ }
+ }
+}
+
--- /dev/null
+% 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
+ }
+ }
+}
+
--- /dev/null
+% 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
+ }
+ }
+}
+
--- /dev/null
+% 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
\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' {
}
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
}
\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;
\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
\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
soloText = #"I."
soloIIText = #"II."
+ % By default, turn off the Thread_devnull_engraver
+ % at Voice level
devNullThread = #'never
% Hmm
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
// 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
event_p_list_.append (new Killing_cons<Midi_event> (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<Midi_event> *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;
return *this;
}
+extern bool verbose_global_b;
Midi_stream&
Midi_stream::operator << (Midi_item const& midi_c_r)
{
-// *this <<midi_c_r.str ();
String str = midi_c_r.str ();
- if (flower_dstream && !flower_dstream->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)
SCM properties = Font_interface::font_alist_chain (me);
-
+
SCM edge_text = me->get_grob_property ("edge-text");
Drul_array<Molecule> edge;
if (gh_pair_p (edge_text))
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);
}
splitInterval = #'(0 . 1)
changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
- %devNullThread = #'unisolo
- %devNullVoice = #'unisolo
-
StaffMinimumVerticalExtent = #(cons -4.0 4.0)
barAuto = ##t
mutopia:
$(MAKE) examples="$(mutopia-examples)" PAPERSIZE=letter local-WWW $(mutopia-letter)
+localclean: local-letter-clean
+
+local-letter-clean:
+ rm -f $(outdir)-letter/*
+
#
# <NAME> and -book targets only available through ly.make template makefile;
# too scary to install in LilyPonds make yet.
\context Staff=oneBassi \partcombine Staff
\context Voice=oneBassi \violoncello
\context Voice=twoBassi \contrabasso
->
\ No newline at end of file
+>
R1|
\!c4\p r r2|
R1|
- g4-"pizz." r r2|
+ g4-#'((font-shape . upright) "pizz.") r r2|
%295
R1|
\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
\translator {
\HaraKiriStaffContext
\consists "Mark_engraver";
+ MultiMeasureRest \override #'minimum-width = #6
}
\translator {
\OrchestralScoreContext
soloText = #"I."
soloIIText = #"II."
+ % By default, turn off the Thread_devnull_engraver
+ % at Voice level
devNullThread = #'never
TimeSignature \override #'style = #'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
soloText = #"I."
soloIIText = #"II."
+ % By default, turn off the Thread_devnull_engraver
+ % at Voice level
devNullThread = #'never
TimeSignature \override #'style = #'C
-%{
- 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"
\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"
\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)
+% 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;
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";
R1|
\!c4\p r r2|
R1|
- g4-"pizz." r r2|
+ g4-#'((font-shape . upright) "pizz.") r r2|
R1|
c,4 r r2|
R1*15|
R1|
\!c4\p r r2|
R1|
- g4-"pizz." r r2|
+ g4-#'((font-shape . upright) "pizz.") r r2|
R1|
c,4 r r2|
R1*15|
%{
violeGroup = \context PianoStaff = viole_group \notes <
+ \property PianoStaff.aDueText = #""
\context Staff=oneViole {
\property Staff.midiInstrument = #"viola"
\property Staff.instrument = #"Viola"
%}
violeGroup = \notes \context Staff = viole <
+ \property Staff.aDueText = #""
\context Staff=viole {
\property Staff.midiInstrument = #"viola"
\property Staff.instrument = #"Viola"
R1|
\!es!4\p r r2|
R1|
- d,4-"pizz." r r2|
+ d,4-#'((font-shape . upright) "pizz.") r r2|
%295
R1|
%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
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|
}
% 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
R1|
\!c4\p r r2|
R1|
- g4-"pizz." r r2|
+ g4-#'((font-shape . upright) "pizz.") r r2|
%295
R1|
%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|
}
'(TextScript)
'(
combineParts
+ noDirection
soloADue
soloText
soloIIText
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.
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