c1 | c2 c | c c | c c | c c | c c | c c | c c |
}
-\score{ <
+\score{ <
\context StaffGroup = wood <
\context Staff = flauto <
\property Staff.instrument = "Flauto"
>
>
\context StaffGroup = strings <
-% \context GrandStaff = violins <
+ \context GrandStaff = violins <
\context Staff = viI <
\property Staff.instrument = "Violin I"
\property Staff.instr = "Vi. I"
\property Staff.instr = "Vi. II"
\m
>
-% >
+ >
\context Staff = vla <
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
textheight = 260.\mm;
\translator {
\OrchestralScoreContext
- minVerticalAlign = 2.5*\staffheight;
+ minVerticalAlign = 3.5*\staffheight; % No effect!!??
}
\translator { \StaffContext
\consists "Staff_margin_engraver";
+ marginScriptPadding = 15.0;
+ }
+ \translator { \StaffGroupContext
+ minVerticalAlign = 2.5*\staffheight;
+ }
+ \translator { \GrandStaffContext
+ minVerticalAlign = 2.5*\staffheight;
}
}
}
virtual void transpose (Musical_pitch );
virtual void compress (Moment);
void add_music (Music *music_p);
+
+
+ Moment cumulative_length () const;
+ Moment maximum_length () const;
protected:
virtual void do_print() const;
};
--- /dev/null
+/*
+ new-repeated-music.hh -- declare New_repeated_music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef NEW_REPEATED_MUSIC_HH
+#define NEW_REPEATED_MUSIC_HH
+
+#include "music.hh"
+
+class New_repeated_music : public Music
+{
+public:
+ bool unfold_b_;
+ int repeats_i_;
+
+ Music * repeat_begin_p_;
+ Music_sequence * alternatives_p_;
+
+ virtual Musical_pitch to_relative_octave (Musical_pitch);
+
+ /// The duration of this piece of music
+ virtual Moment length_mom () const;
+
+
+ void print() const;
+ /// Transpose, with the interval central C to #p#
+ virtual void transpose (Musical_pitch p);
+
+ /// Scale the music in time by #factor#.
+ virtual void compress (Moment factor);
+ VIRTUAL_COPY_CONS(Music);
+
+ New_repeated_music ();
+ New_repeated_music (New_repeated_music const&);
+ ~New_repeated_music ();
+protected:
+ virtual void do_print() const;
+
+};
+
+
+#endif /* NEW_REPEATED_MUSIC_HH */
protected:
virtual void do_print () const;
virtual void do_process_and_next (Moment);
+
private:
void start_next_element ();
*/
void start_next_element();
void leave_element();
- void set_Sequential_music_translator();
+ void set_sequential_music_translator();
};
#endif // SEQUENTIAL_MUSIC_ITERATOR_HH
Moment
Simultaneous_music::length_mom () const
{
- Moment dur = 0;
- for (Cons<Music> *i = music_p_list_p_->head_; i; i = i->next_)
- dur = dur >? i->car_->length_mom ();
-
- return dur;
+ return maximum_length ();
}
+
+
void
Music_sequence::compress (Moment m)
{
Moment
Sequential_music::length_mom () const
{
- Moment last=0;
- for (Cons<Music> *i = music_p_list_p_->head_; i; i = i->next_)
- {
- last += i->car_->length_mom ();
- }
- return last;
+ return cumulative_length ();
}
Musical_pitch
{
music_p_list_p_->add_music (m_p);
}
+
+Moment
+Music_sequence::cumulative_length () const
+{
+ Moment last=0;
+ for (Cons<Music> *i = music_p_list_p_->head_; i; i = i->next_)
+ {
+ last += i->car_->length_mom ();
+ }
+ return last;
+}
+
+Moment
+Music_sequence::maximum_length () const
+{
+ Moment dur = 0;
+ for (Cons<Music> *i = music_p_list_p_->head_; i; i = i->next_)
+ dur = dur >? i->car_->length_mom ();
+
+ return dur;
+}
--- /dev/null
+#if 0
+/*
+ new-repeated-music-iterator.cc -- implement New_repeated_music_iterator
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "music-iterator.hh"
+
+
+/**
+
+ */
+class New_repeated_music_iterator : public Music_iterator
+{
+ Music_iterator * main_iter_p_;
+ Music_iterator * alternative_iter_p_;
+ int count_;
+
+public:
+ New_repeated_music_iterator ();
+ ~New_repeated_music_iterator ();
+
+
+ virtual void construct_children ();
+ virtual Moment next_moment () const;
+ virtual bool ok () const;
+
+protected:
+ virtual void do_print () const;
+ virtual void do_process_and_next (Moment);
+};
+
+New_repeated_music_iterator::New_repeated_music_iterator ()
+{
+
+}
+#endif
--- /dev/null
+/*
+ new-repeated-music.cc -- implement New_repeated_music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "new-repeated-music.hh"
+#include "music-list.hh"
+#include "musical-pitch.hh"
+
+New_repeated_music::New_repeated_music()
+{
+ repeat_begin_p_ = 0;
+ unfold_b_ = false;
+ repeats_i_ =0;
+ alternatives_p_ = 0;
+}
+
+New_repeated_music::New_repeated_music (New_repeated_music const &s)
+ : Music (s)
+{
+ repeats_i_ = s.repeats_i_;
+ unfold_b_ = s.unfold_b_;
+
+ repeat_begin_p_ = s.repeat_begin_p_ ? s.repeat_begin_p_->clone () : 0;
+ alternatives_p_ = s.alternatives_p_
+ ? dynamic_cast<Music_sequence*> (s.alternatives_p_->clone ()):0;
+}
+
+New_repeated_music::~New_repeated_music ()
+{
+ delete repeat_begin_p_;
+ delete alternatives_p_;
+}
+
+void
+New_repeated_music::do_print () const
+{
+ if (repeat_begin_p_)
+ repeat_begin_p_->print();
+
+ if (alternatives_p_)
+ alternatives_p_->print();
+}
+
+Musical_pitch
+New_repeated_music::to_relative_octave (Musical_pitch p)
+{
+ if (repeat_begin_p_)
+ p = repeat_begin_p_->to_relative_octave (p);
+
+ if (alternatives_p_)
+ p = alternatives_p_->do_relative_octave (p, true);
+ return p;
+}
+
+
+void
+New_repeated_music::transpose (Musical_pitch p)
+{
+ if (repeat_begin_p_)
+ repeat_begin_p_->transpose (p);
+
+ if (alternatives_p_)
+ alternatives_p_->transpose (p);
+}
+
+void
+New_repeated_music::compress (Moment p)
+{
+ if (repeat_begin_p_)
+ repeat_begin_p_->compress (p);
+
+ if (alternatives_p_)
+ alternatives_p_->compress (p);
+}
+
+
+Moment
+New_repeated_music::length_mom () const
+{
+ Moment m =0;
+ if (unfold_b_)
+ {
+ if (repeat_begin_p_)
+ m += Rational (repeats_i_) * repeat_begin_p_->length_mom ();
+
+ if (alternatives_p_)
+ m += alternatives_p_->cumulative_length ();
+ }
+ else
+ {
+ if (repeat_begin_p_)
+ m += repeat_begin_p_->length_mom ();
+
+ if (alternatives_p_)
+ m += alternatives_p_->maximum_length ();
+ }
+ return m;
+}
+
void
Sequential_music_iterator::construct_children()
{
- cursor_ = dynamic_cast<Sequential_music const*> (music_l_)->music_p_list_p_->head_;
+ cursor_ = dynamic_cast<Music_sequence const*> (music_l_)->music_p_list_p_->head_;
while (cursor_)
{
}
else
{
- set_Sequential_music_translator();
+ set_sequential_music_translator();
break;
}
}
}
void
-Sequential_music_iterator::set_Sequential_music_translator()
+Sequential_music_iterator::set_sequential_music_translator()
{
if (iter_p_->report_to_l()->depth_i () > report_to_l ()->depth_i ())
set_translator (iter_p_->report_to_l());
if (cursor_)
{
start_next_element();
- set_Sequential_music_translator();
+ set_sequential_music_translator();
}
else
{
Simultaneous_music_iterator::construct_children()
{
int j = 0;
- Simultaneous_music const *sim = dynamic_cast<Simultaneous_music const*> (music_l_);
+ Music_sequence const *sim = dynamic_cast<Music_sequence const*> (music_l_);
for (Cons<Music> *i = sim->music_p_list_p_->head_; i; i = i->next_, j++)
{
-This ouverture "Imellan Fjeldene" ("Between the Mountains") by
+This ouverture "Imellem Fjeldene" ("Between the Mountains") by
Niels W. Gade (1788-1854) is typeset from handwritten parts
available at Statens Musikbibliotek, Stockholm, Sweden.
No score was available.
have been corrected. This is indicated with comments in the
different source files.
-The piece will be performed in Ludvika and Östervåla, March 13-14, 1999,
-by Bergslagens Kammarsymfoniker conducted by Ola Karlsson.
+The piece was performed in Ludvika and Östervåla, Sweden,
+March 13-14, 1999, by Bergslagens Kammarsymfoniker conducted
+by Ola Karlsson.
+
+Christian Mondrup has provided the following background on the
+piece:
+It was composed 1850 as a ouverture for the comedy "Imellem
+Fjeldene" by the danish poet Carsten Hauch. In the Andante
+introduction, Gade uses a melody from the collection ``Norske
+Folkesagn og Melodier'' (``Norwegian folksongs and melodies'')
+by the danish composer A.P. Bergreen. The song has a norwegian
+text ``Heimreise fraa Sæteren'' by Edvard Storm. The second
+theme of the Allegro part might very well come from the same
+collection, namely the song ``Saag du nokke Kjærringa mi''.
+
+The music was typeset using Lilypond, the GNU Project music
+typesetter.
The score and parts may be freely copied.
\property Staff."midi_instrument" = "timpani"
-R2.*6 |
+r2. | % Ensure that the staff is printed on page 1 of the score.
+R2.*5 |
f2.:32 \pp ~ |
f2.:32 ~ |
f2.:32 ~ |
f8 r r4 |
R2 |
f8 r r4 |
-R2*16 |
-r4 r8 c' \p |
-[c-. \< c-. c-. \! c-.] |
-c4.:8 \f r8 |
-R2 |
-r4 r8 c \p |
-c2:8 \< |
-\! c4.:8 \f r8 |
-c4:32 ~ c8 r |
+R2*14 |
+\context Staff <{\voiceone \clef "treble";
+ r4^"Tri." r8 e''' |
+ [e e e e ] |
+ [e e e g,, ] | % In reality: e e e e | e
+ g r r4 |
+ s4. \clef treble; e''8 |
+ e2:8 |
+ [e8 e e g,,] | % In reality: e e e e | e
+ g8 r r4 }
+ {\voicetwo r2 | r |
+ r4_" Timp." r8 \clef bass; c, |
+ [c-. \< c-. c-. \! c-.] |
+ c4.:8 \f r8 |
+ R2 |
+ r4 r8 \clef bass; c \p |
+ c2:8 \< |
+ \! c4.:8 \f r8 } >|
+c,4:32 ~ c8 r |
c4:32 ~ c8 r |
R2*2 |
f,4:32 \f ~ f8 r |
f4:32 ~ f8 r |
-R2*3 |
-r4 r8 c' \p |
-c2:8 \< |
+\context Staff <{\voiceone \clef "treble";
+ [e''' e e e ] |
+ e r r e |
+ e2:8 |
+ [e8 e e g,, ] |} % In reality: e e e e
+ {\voicetwo r2 |
+ r2 |
+ r2 |
+ r4 r8 \clef bass; c, \p |}>
+c,2:8 \< |
\! c4.:8 r8 |
R2*4 |
c4 \f r |
f8 r r4 |
R2*3 |
c'4 \fz r |
-R2*12 |
-r4 r8 f, \p |
-[f \< f f \! f ] |
-f4.:8 \f r8 |
-R2 |
-r4 r8 f \p |
-f2:8 \< |
-\! f4.:8 \f r8 |
-f4:32 \f ~ f8 r |
-f4:32 ~ f8 r |
-R2*2 |
-f4:32 \f ~ f8 r |
-f4:32 ~ f8 r |
-R2*3 |
-r4 r8 f \p |
-f2:8 |
+R2*10 |
+\context Staff <{\voiceone \clef "treble";
+ r4^"Tri." r8 e'' |
+ [e e e e ] |
+ [e e e g,, ] | % In reality: e e e e | e4
+ g4 r4 |
+ s4. \clef treble; e''8 |
+ [e e e e ] |
+ [e e e g,, ] | % In reality: e e e e | e4
+ g4 r4 |
+ s2 | s2 |
+ s4. \clef treble; e''8 |
+ [e e e e ] |
+ e r r e |
+ s2 | s | s |
+ r4 r8 \clef treble; e |
+ [e e e e ] |
+ [e e e g,, ] | % In reality: e e e e
+}
+ {\voicetwo r2 |
+ r |
+ r4 r8 \clef bass; f, \p |
+ [f \< f f \! f ] |
+ f4.:8 \f r8 |
+ r2 |
+ r4 r8 \clef bass; f \p |
+ f2:8 \< |
+ \! f4.:8 \f r8 |
+ f4:32 \f ~ f8 r |
+ f4:32 ~ f8 r |
+ r2 |
+ r | \clef bass;
+ f4:32 \f ~ f8 r |
+ f4:32 ~ f8 r |
+ r2 | r | r |
+ r4 r8 \clef bass; f \p |
+ }>
+f,2:8 |
f4.:8 r8 |
R2*2 |
c'4 \f r |
r4 r8 \clef "treble"; c'-.^"Clar. I" |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 \clef "bass"; |
-s2*21 |
-r4 r8 \clef "treble"; [g''16^"oboe" \p ( a ] |
-[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. e16 ( f ] ) e8-. \clef "bass"; s |
+s2*24 |
+%r4 r8 \clef "treble"; [g''16^"oboe" \p ( a ] |
+%[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
+%[ ) f8-. e16 ( f ] ) e8-. \clef "bass"; s |
s2*77 |
-r4 r8 \clef "treble"; c-.^"Clar. I" |
+r4 r8 \clef "treble"; c'-.^"Clar. I" |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 \clef "bass"; |
-s2*25
-r4 r8 \clef "treble"; a''^"Oboe" |
-a-. [ gis-. gis-. \< g-.] |
-[g-. fis-. \! fis-. ] \clef "bass"; s8 |
+s2*28
+%r4 r8 \clef "treble"; a''^"Oboe" |
+%a-. [ gis-. gis-. \< g-.] |
+%[g-. fis-. \! fis-. ] \clef "bass"; s8 |
s2*57 |
-r4 r8 \clef "treble"; bes,^"Vi. I" ( ] |
+r4 r8 \clef "treble"; bes'^"Vi. I" ( |
) bes'4. d,8 ( |
) d'4. c,8 ( |
) c'4. e,8 ( |
\header{
-title = "Imellan Fjeldene. Ouverture";
+title = "Imellem Fjeldene. Ouverture";
composer = "Niels W Gade";
enteredby = "Mats Bengtsson";
latexheaders = "\\input global";
\OrchestralPartStaffContext
textScriptPadding = 5.0;
}
-\translator{\VoiceContext
-\remove Auto_beam_engraver;
-}
\translator {
\ScoreContext
SkipBars = 1;
textEmptyDimension = 1;
oldTieBehavior = 1;
}
+ \translator { \VoiceContext
+ oldTieBehavior = 1;
+ textstyle = "italic";
+ textEmptyDimension = 1;
+ }
}
\score{
\context Staff <
\global
\marks
- \oboe
- \oboehelp
+ \flauto
+ \flautohelp
>
\header{
- instrument = "Oboe";
+ instrument = "Flauto";
}
\paper{
\my_paper
- output = "oboe";
+ output = "flauto";
}
\midi {
\tempo 4=120;
\context Staff <
\global
\marks
- \flauto
- \flautohelp
+ \oboe
+ \oboehelp
>
\header{
- instrument = "Flauto";
+ instrument = "Oboe";
}
\paper{
\my_paper
- output = "flauto";
+ output = "oboe";
}
\midi {
\tempo 4=120;
\timphelp
>
\header{
- instrument = "Timpani";
+ instrument = "Timpani \& Triangolo";
}
\paper{
\my_paper
\header{
-title = "Imellan Fjeldene. Ouverture";
+title = "Imellem Fjeldene. Ouverture";
composer = "Niels W Gade";
enteredby = "Mats Bengtsson";
latexheaders = "\\input global";
\property Staff.instrument = "Flauto"
\property Staff.instr = "Fl."
\global
+ \marks
\flauto
>
\context Staff = oboe <
\property Staff.instrument = "Oboe"
\property Staff.instr = "Ob."
\global
- \marks
\oboe
>
\context Staff = clarI <
>
>
\context StaffGroup = percussion <\context Staff = timpani <
- \property Staff.instrument = "Timpani"
- \property Staff.instr = "Timp."
+ \property Staff.instrument = "Timp. \& Triang."
+ \property Staff.instr = "Timp. \& Triang."
\global
\timpani
>
>
\context StaffGroup = strings <
-% \context GrandStaff = violins <
+ \context GrandStaff = violins <
\context Staff = viI <
\property Staff.instrument = "Violin I"
\property Staff.instr = "Vi. I"
\global
\viII
>
-% >
+ >
\context Staff = vla <
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
}
\translator { \StaffContext
\consists "Staff_margin_engraver";
-% marginHangOnClef = 1;
- marginScriptPadding = "52.0";
+ marginScriptPadding = "15.0";
textstyle = "italic";
textScriptPadding = 5.0;
textEmptyDimension = 1;
oldTieBehavior = 1;
}
-%\translator{\VoiceContext
-%\remove Auto_beam_engraver; % Bug workaround!
-%}
+ \translator { \VoiceContext
+ oldTieBehavior = 1;
+ }
}
}
versionfile=$1;
fi
-cat $versionfile| sed 's/#.*$//g'|sed 's/\([^ ]*\)[\t ]*=[ \t]*\([^ ]*\)$/#define \1 \"\2\"/g'
+cat $versionfile| sed 's/#.*$//g'|sed 's/\([^ =]*\)[\t ]*=[ \t]*\([^ \t]*\)[ \t]*$/#define \1 \"\2\"/g'
echo