+++ /dev/null
-\header{
-title= "The Feta Font";
-subtitle = "proofsheet";
-enteredby = "jcn & hwn";
-copyright = "public domain";
-description = "This file tests the Feta music font";
-% "(Feta definitively is not an abbreviation of Font-En-TjA)";
-}
-
-
-
-\include "font-body.ly"
-\score{
- \paper{
- % don't change this.
- % otherwise 16pt and 20pt layouts differ.
- linewidth = 12.5 \cm;
- gourlay_maxmeasures =5.;
- }
- \paper{
- \paperTwenty
- linewidth = 17.5 \cm;
- gourlay_maxmeasures =5.;
- output = "font20.tex";
- }
-}
-
+++ /dev/null
-
-\score {
- \context Voice \notes\relative c {
-
- }
- \paper { }
- \midi { }
-}
+++ /dev/null
-\header {
- texidoc = ""
-
- }
\ No newline at end of file
+++ /dev/null
-
-
-voltaCommands = \notes {
- s1 \property Staff.repeatCommands = #((volta . "1"))
- c4 c4 c4 c4
- s1
+++ /dev/null
-
-
-\score {
-
-\notes {\notes \reletive c' {
- \times 2/3 { [fis8 fis8 fis8] }
- \times 2/3 { [b b b] }
- bes4
-}
+++ /dev/null
-//
-// mudela-column.hh -- declare Mudela_column
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_COLUMN_HH
-#define MUDELA_COLUMN_HH
-
-#include "flower-proto.hh"
-#include "midi2ly-proto.hh"
-#include "rational.hh"
-#include "cons.hh"
-
-/// (mudela_column)
-class Mudela_column
-{
-public:
- Mudela_column (Mudela_score* mudela_score_l, Rational mom);
-
- void add_item (Mudela_item* mudela_item_l);
- Rational at_mom ();
-
- Cons_list<Mudela_item> mudela_item_l_list_;
- Rational at_mom_;
- Mudela_score* mudela_score_l_;
-};
-
-#endif // MUDELA_COLUMN_HH
-
+++ /dev/null
-//
-// mudela-item.hh -- declare mudela_item
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_ITEM_HH
-#define MUDELA_ITEM_HH
-
-#include "midi2ly-proto.hh"
-#include "string.hh"
-#include "rational.hh"
-#include "duration.hh"
-
-// should these:
-// * be Mudela_items
-// * be Voice_elements/requests
-// * get a name-change
-// ?
-
-/// (mudela_item)
-class Mudela_item
-{
-public:
- Mudela_item (Mudela_column* mudela_column_l);
- virtual ~Mudela_item ();
-
- virtual Rational at_mom ();
- virtual Rational duration_mom ();
- void output (Mudela_stream& mudela_stream_r);
- virtual String str () = 0;
-
- Mudela_column* mudela_column_l_;
-};
-
-class Mudela_key : public Mudela_item
-{
-public:
- Mudela_key (int accidentals_i, int minor_i);
-
- String notename_str (int pitch_i);
- virtual String str ();
-
- //private:
- int accidentals_i_;
- int minor_i_;
-};
-
-class Mudela_time_signature : public Mudela_item
-{
-public:
- Mudela_time_signature (int num_i, int den_i, int division_4_i, int count_32_i);
-
- Duration i2_dur (int time_i, int division_1_i);
- int clocks_1_i ();
- int den_i ();
- int num_i ();
- virtual String str ();
- Rational bar_mom ();
-
-private:
- Real sync_f_;
- Duration sync_dur_;
- int clocks_1_i_;
- int num_i_;
- int den_i_;
-};
-
-class Mudela_note : public Mudela_item
-{
-public:
- Mudela_note (Mudela_column* mudela_column_l, int channel_i, int pitch_i, int dyn_i);
-
- Duration duration ();
- virtual Rational duration_mom ();
- virtual String str ();
-
- // int const c0_pitch_i_c_ = 60; // huh?
- static int const c0_pitch_i_c_ = 48;
-
- static bool const simple_plet_b_s = false;
- int channel_i_;
- int pitch_i_;
- Mudela_column* end_column_l_;
-};
-
-class Mudela_skip : public Mudela_item
-{
-public:
- Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom);
-
- Duration duration ();
- virtual Rational duration_mom ();
- virtual String str ();
-
-private:
- Rational mom_;
-};
-
-
-class Mudela_tempo : public Mudela_item
-{
-public:
- Mudela_tempo (int useconds_per_4_i);
-
- int get_tempo_i (Rational rational);
- virtual String str ();
- int useconds_per_4_i ();
-
-private:
- int useconds_per_4_i_;
- Rational seconds_per_1_mom_;
-};
-
-class Mudela_text : public Mudela_item
-{
-public:
- enum Type {
- TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC,
- MARKER, CUE_POINT
- };
- Mudela_text (Mudela_text::Type type, String str);
- virtual String str ();
-
- //private:
- Type type_;
- String text_str_;
-};
-
-#endif // MUDELA_ITEM_HH
-
+++ /dev/null
-//
-// mudela-score.hh -- declare Mudela_score
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_SCORE_HH
-#define MUDELA_SCORE_HH
-
-#include "midi2ly-proto.hh"
-#include "flower-proto.hh"
-#include "cons.hh"
-#include "parray.hh"
-
-/// (mudela_score)
-class Mudela_score {
-public:
- Mudela_score (int format_i, int tracks_i, int tempo_i);
- ~Mudela_score ();
-
- void add_item (Mudela_item* mudela_item_p);
- void add_staff (Mudela_staff* mudela_staff_p);
-
- Mudela_column* find_column_l (Rational mom);
- Mudela_column* get_column_l (Rational mom);
-
- void output (String filename_str);
- void process ();
-
- // ugh
- Mudela_key* mudela_key_l_;
- Mudela_time_signature* mudela_time_signature_l_;
- Mudela_tempo* mudela_tempo_l_;
- Mudela_staff * last_staff_l_;
-private:
- void filter_tempo ();
- void quantify_columns ();
- void quantify_durations ();
- void settle_columns ();
-
- Cons_list<Mudela_staff> mudela_staff_p_list_;
- Link_array<Mudela_column> column_l_array_;
-
- // ugh, ugh, ugh
-public:
- int format_i_;
- int tracks_i_;
- int tempo_i_;
-};
-
-#endif // MUDELA_SCORE_HH
-
+++ /dev/null
-//
-// mudela-staff.hh -- declare mudela_staff
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_STAFF_HH
-#define MUDELA_STAFF_HH
-
-#include "midi2ly-proto.hh"
-#include "flower-proto.hh"
-#include "cons.hh"
-#include "string.hh"
-
-/// (mudela_staff)
-class Mudela_staff
-{
-public:
- Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str);
-
- void add_item (Mudela_item* mudela_item_p);
- void eat_voice (Cons_list<Mudela_item>& items);
- String id_str ();
- String name_str ();
- void output (Mudela_stream& mudela_stream_r);
- void process ();
-
- String copyright_str_;
- String instrument_str_;
- String name_str_;
- Mudela_key* mudela_key_l_;
- Mudela_time_signature* mudela_time_signature_l_;
- Mudela_tempo* mudela_tempo_l_;
- int number_i_;
-
-private:
- void output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i);
-
- Cons_list<Mudela_voice> mudela_voice_p_list_;
- Cons_list<Mudela_item> mudela_item_p_list_;
-};
-
-#endif // MUDELA_STAFF_HH
-
+++ /dev/null
-//
-// mudela-stream.hh -- part of LilyPond
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-// should i be named Mudela_stream?
-
-#ifndef MUDELA_STREAM_HH
-#define MUDELA_STREAM_HH
-
-#include "midi2ly-proto.hh"
-#include "string.hh"
-//#include "scalar.hh"
-
-/// Lily output
-class Mudela_stream {
-public:
- Mudela_stream (String filename_str);
- ~Mudela_stream();
-
- Mudela_stream& operator << (char c);
- Mudela_stream& operator << (String s);
- Mudela_stream& operator << (Mudela_item& mudela_item_r);
-
-private:
- void handle_pending_indent();
- void header();
- void open();
- void output (String str);
- void output_wrapped (String str);
-
- ostream* os_p_;
- String filename_str_;
- int indent_i_;
- int column_i_;
- int pending_indent_i_;
- int wrap_column_i_;
- bool comment_mode_b_;
-};
-
-#endif // MUDELA_STREAM_HH
-
+++ /dev/null
-//
-// mudela-voice.hh -- declare Mudela_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#ifndef MUDELA_VOICE_HH
-#define MUDELA_VOICE_HH
-
-#include "midi2ly-proto.hh"
-#include "cons.hh"
-
-/// (mudela_voice)
-class Mudela_voice
-{
-public:
- Mudela_voice (Mudela_staff* mudela_staff_l);
- void add_item (Mudela_item* mudela_item_l);
- void output (Mudela_stream& mudela_stream_r);
- String get_clef () const;
- Mudela_item * last_item_l_;
- Mudela_note * last_note_l_;
-private:
- Mudela_staff* mudela_staff_l_;
- Cons_list<Mudela_item> mudela_item_l_list_;
-
-};
-
-#endif // MUDELA_VOICE_HH
-
+++ /dev/null
-//
-// mudela-column.cc -- implement Mudela_column
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include "mudela-column.hh"
-
-Mudela_column::Mudela_column (Mudela_score* mudela_score_l, Rational mom)
-{
- mudela_score_l_ = mudela_score_l;
- at_mom_ = mom;
-}
-
-void
-Mudela_column::add_item (Mudela_item* mudela_item_l)
-{
- mudela_item_l_list_.append (new Cons<Mudela_item> (mudela_item_l, 0));
-}
-
-Rational
-Mudela_column::at_mom()
-{
- return at_mom_;
-}
+++ /dev/null
-//
-// mudela-item.cc -- implement Mudela_item
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <string.h>
-#include <assert.h>
-#include "midi2ly-global.hh"
-#include "string-convert.hh"
-#include "duration-convert.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-stream.hh"
-#include "mudela-score.hh"
-
-Mudela_item::Mudela_item (Mudela_column* mudela_column_l)
-{
- mudela_column_l_ = mudela_column_l;
-}
-
-Mudela_item::~Mudela_item ()
-{
-}
-
-Rational
-Mudela_item::at_mom ()
-{
- return mudela_column_l_->at_mom ();
-}
-
-Rational
-Mudela_item::duration_mom ()
-{
- return Rational (0);
-}
-
-void
-Mudela_item::output (Mudela_stream& mudela_stream_r)
-{
- mudela_stream_r << str () << " ";
-}
-
-Mudela_key::Mudela_key (int accidentals_i, int minor_i)
- : Mudela_item (0)
-{
- accidentals_i_ = accidentals_i;
- minor_i_ = minor_i;
-}
-
-char const *accname[] = {"eses", "es", "", "is" , "isis"};
-
-String
-Mudela_key::str ()
-{
- int key_i = accidentals_i_ >= 0
- ? ((accidentals_i_ % 7) ["cgdaebf"] - 'a' - 2 -2 * minor_i_ + 7) % 7
- : ((-accidentals_i_ % 7) ["cfbeadg"] - 'a' - 2 -2 * minor_i_ + 7) % 7;
-
- String notename_str = !minor_i_
- ? to_str ((char) ((key_i + 2) % 7 + 'a'))
- : to_str ((char) ((key_i + 2) % 7 + 'a'));
-
- // fis cis gis dis ais eis bis
- static int sharps_i_a [7] = { 2, 4, 6, 1, 3, 5, 7 };
- // bes es as des ges ces fes
- static int flats_i_a [7] = { 6, 4, 2, 7, 5, 3, 1 };
- int accidentals_i = accidentals_i_ >= 0
- ? sharps_i_a [key_i] <= accidentals_i_ ? 1 : 0
- : flats_i_a [key_i] <= -accidentals_i_ ? -1 : 0;
-
- if (accidentals_i)
- notename_str += String (accname [accidentals_i + 2]);
-
- return "\\key " + notename_str + (minor_i_ ? "\\minor" : "\\major") + ";\n";
-}
-
-String
-Mudela_key::notename_str (int pitch_i)
-{
- // this may seem very smart,
- // but it-s only an excuse not to read a notename table
-
- // major scale: do-do
- // minor scale: la-la (= + 5)
- static int notename_i_a [12] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 };
- int notename_i = notename_i_a [pitch_i % 12];
-
- static int accidentals_i_a [12] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 };
- int accidental_i = accidentals_i_a [(minor_i_ * 5 + pitch_i) % 12];
- if (accidental_i && (accidentals_i_ < 0))
- {
- accidental_i *= -1;
- notename_i = (notename_i + 1) % 7;
- }
-
- String notename_str = to_str ((char)(((notename_i + 2) % 7) + 'a'));
- if (accidental_i)
- notename_str += String (accname [accidental_i + 2]);
-
- /*
- By tradition, all scales now consist of a sequence of 7 notes each
- with a distinct name, from amongst a b c d e f g. But, minor scales
- have a wide second interval at the top - the 'leading note' is
- sharped. (Why? it just works that way! Anything else doesn't sound as
- good and isn't as flexible at saying things. In medieval times,
- scales only had 6 notes to avoid this problem - the hexachords.)
-
- So, the d minor scale is d e f g a b-flat c-sharp d - using d-flat
- for the leading note would skip the name c and duplicate the name d.
- Why isn't c-sharp put in the key signature? Tradition. (It's also
- supposedly based on the Pythagorean theory of the cycle of fifths,
- but that really only applies to major scales...)
-
- Anyway, g minor is g a b-flat c d e-flat f-sharp g, and all the other
- flat minor keys end up with a natural leading note. And there you
- have it.
-
- John Sankey <bf250@freenet.carleton.ca>
-
- Let's also do a-minor: a b c d e f gis a
-
- --jcn
-
- */
-
- /* ok, bit ugly, but here we go -- jcn */
-
-
- if (minor_i_)
- {
- if ((accidentals_i_ == 0) && (notename_str == "as"))
- notename_str = "gis";
- else if ((accidentals_i_ == -1) && (notename_str == "des"))
- notename_str = "cis";
- else if ((accidentals_i_ == -2) && (notename_str == "ges"))
- notename_str = "fis";
- else if ((accidentals_i_ == 5) && (notename_str == "g"))
- notename_str = "fisis";
- else if ((accidentals_i_ == 6) && (notename_str == "d"))
- notename_str = "cisis";
- else if ((accidentals_i_ == 7) && (notename_str == "a"))
- notename_str = "gisis";
-
- if ((accidentals_i_ <= -6) && (notename_str == "b"))
- notename_str = "ces";
- if ((accidentals_i_ <= -7) && (notename_str == "e"))
- notename_str = "fes";
- }
-
- String de_octavate_str = to_str (',', (Mudela_note::c0_pitch_i_c_ + 11 - pitch_i) / 12);
- String octavate_str = to_str ('\'', (pitch_i - Mudela_note::c0_pitch_i_c_) / 12);
- return notename_str +de_octavate_str + octavate_str;
-}
-
-Mudela_time_signature::Mudela_time_signature (int num_i, int den_i, int clocks_4_i, int count_32_i)
- : Mudela_item (0)
-{
- sync_dur_.durlog_i_ = 3;
- sync_f_ = 1.0;
- if (count_32_i != 8)
- warning (_f ("#32 in quarter: %d", count_32_i));
- num_i_ = num_i;
- den_i_ = den_i;
- clocks_1_i_ = clocks_4_i * 4;
-}
-
-Rational
-Mudela_time_signature::bar_mom ()
-{
- Duration d;
- d.durlog_i_ = den_i_;
- return Rational (num_i_) * Duration_convert::dur2_mom (d);
-}
-
-int
-Mudela_time_signature::clocks_1_i ()
-{
- return clocks_1_i_;
-}
-
-int
-Mudela_time_signature::den_i ()
-{
- return den_i_;
-}
-
-int
-Mudela_time_signature::num_i ()
-{
- return num_i_;
-}
-
-String
-Mudela_time_signature::str ()
-{
- String str = "\\time "
- + to_str (num_i_) + "/" + to_str (1 << den_i_)
- + ";\n";
- return str;
-}
-
-
-// statics Mudela_note
-/*
- this switch can be used to write simple plets like
- c4*2/3
- as
- \plet 2/3; c4 \plet 1/1;
- */
-/*
- UGH: .hh says false, .cc says true.
- FIXME.
- */
-bool const Mudela_note::simple_plet_b_s;
-
-Mudela_note::Mudela_note (Mudela_column* mudela_column_l,
- int channel_i, int pitch_i, int dyn_i)
- : Mudela_item (mudela_column_l)
-{
- // junk dynamics
- (void)dyn_i;
- channel_i_ = channel_i;
- pitch_i_ = pitch_i;
- end_column_l_ = 0;
-}
-
-Duration
-Mudela_note::duration ()
-{
- assert (end_column_l_);
- Rational mom = end_column_l_->at_mom () - at_mom ();
- return Duration_convert::mom2_dur (mom);
-}
-
-Rational
-Mudela_note::duration_mom ()
-{
- assert (end_column_l_);
- return end_column_l_->at_mom () - at_mom ();
-}
-
-String
-Mudela_note::str ()
-{
- Duration dur = duration ();
- if (dur.durlog_i_ < -10)
- return "";
-
- String name_str
- = mudela_column_l_->mudela_score_l_->mudela_key_l_->notename_str (pitch_i_);
-
- if (simple_plet_b_s)
- return name_str + Duration_convert::dur2_str (dur) + " ";
-
- String str;
-
- //ugh
- if (dur.plet_b ())
- str += String ("\\times ")
- + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
- + "/"
- + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
- + " { ";
-
-
- str += name_str;
-
- Duration tmp = dur;
- tmp.set_plet (1,1);
- str += Duration_convert::dur2_str (tmp);
-
- if (dur.plet_b ())
- str += String (" }");
-
- /*
- note of zero duration is nonsense,
- but let's output anyway for convenient debugging
- */
- if (!duration_mom ())
- return String ("\n% ") + str + "\n";
-
- return str + " ";
-}
-
-Mudela_skip::Mudela_skip (Mudela_column* mudela_column_l, Rational skip_mom)
- : Mudela_item (mudela_column_l)
-{
- mom_ = skip_mom;
-}
-
-Duration
-Mudela_skip::duration ()
-{
- return Duration_convert::mom2_dur (mom_);
-}
-
-Rational
-Mudela_skip::duration_mom ()
-{
- return Duration_convert::dur2_mom (duration ());
-}
-
-String
-Mudela_skip::str ()
-{
- if (!mom_)
- return String ("");
-
- Duration dur = duration ();
- if (dur.durlog_i_<-10)
- return "";
-
- String str = "\\skip ";
- str += Duration_convert::dur2_str (dur) + "; ";
-
- return str;
-}
-
-Mudela_tempo::Mudela_tempo (int useconds_per_4_i)
- : Mudela_item (0)
-{
- useconds_per_4_i_ = useconds_per_4_i;
- seconds_per_1_mom_ = Rational(useconds_per_4_i_ *4, 1e6);
-}
-
-String
-Mudela_tempo::str ()
-{
- String str = "\\tempo 4=";
- str += to_str (get_tempo_i (Rational (1, 4)));
- str += ";\n";
- return str;
-}
-
-int
-Mudela_tempo::useconds_per_4_i ()
-{
- return useconds_per_4_i_;
-}
-
-int
-Mudela_tempo::get_tempo_i (Rational rational)
-{
- Rational m1 = Rational (60) / rational;
- Rational m2 = seconds_per_1_mom_;
- return m1 / m2;
-}
-
-Mudela_text::Mudela_text (Mudela_text::Type type, String text_str)
- : Mudela_item (0)
-{
- type_ = type;
- text_str_ = text_str;
-}
-
-String
-Mudela_text::str ()
-{
- if (!text_str_.length_i ()
- || (text_str_.length_i () != (int)strlen (text_str_.ch_C ())))
- return "";
-
- return "% " + text_str_ + "\n";
-}
+++ /dev/null
-//
-// mudela-score.cc -- implement Mudela_score
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include "rational.hh"
-#include "duration.hh"
-#include "duration-convert.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-score.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-
-#include "killing-cons.tcc"
-
-//static Mudela_key key_c (0, 0);
-static Mudela_time_signature time_sig_4 (4, 2, 24, 8);
-// useconds per 4: 250000 === 60 4 per minute
-static Mudela_tempo tempo_60 (1000000);
-
-Mudela_score::Mudela_score (int format_i, int tracks_i, int tempo_i)
-{
- last_staff_l_ =0;
- format_i_ = format_i;
- tracks_i_ = tracks_i;
- tempo_i_ = tempo_i;
- column_l_array_.push (new Mudela_column (this, Rational (0)));
- // mudela_key_l_ = &key_c;
- mudela_key_l_ = 0;
- mudela_time_signature_l_ = &time_sig_4;
- mudela_tempo_l_ = &tempo_60;
-}
-
-Mudela_score::~Mudela_score ()
-{
-}
-
-void
-Mudela_score::add_item (Mudela_item* mudela_item_p)
-{
- last_staff_l_->add_item (mudela_item_p);
-}
-
-void
-Mudela_score::add_staff (Mudela_staff* mudela_staff_p)
-{
- mudela_staff_p_list_.append (new Killing_cons<Mudela_staff> (mudela_staff_p, 0));
- last_staff_l_ = mudela_staff_p;
-}
-
-Mudela_column*
-Mudela_score::find_column_l (Rational mom)
-{
- int upper_i = max (0, column_l_array_.size () - 1);
- int lower_i = 0;
- int i = 0; //upper_i;
- while (1)
- {
- Rational i_mom = column_l_array_ [i]->at_mom ();
- if (i_mom == mom)
- return column_l_array_ [i];
- if (mom < i_mom)
- upper_i = i;
- else
- lower_i = i;
- if ( (upper_i == lower_i) || (i == column_l_array_.size () - 1))
- {
- // we don't do inserts
- assert (0);
- Mudela_column* col_p = new Mudela_column (this, mom);
- column_l_array_.push (col_p);
- return col_p;
- }
- i = (upper_i + lower_i + 1 ) / 2;
- }
- assert (0);
- return 0;
-}
-
-Mudela_column*
-Mudela_score::get_column_l (Rational mom)
-{
- int i;
- Mudela_column *c=0;
- for (i=column_l_array_.size () - 1; !c && i >=0; i--)
- {
- if (column_l_array_ [i]->at_mom () == mom )
- c = column_l_array_[i];
- else if (column_l_array_[i]->at_mom () < mom)
- break;
- }
- if (!c)
- {
- c = new Mudela_column (this, mom);
- column_l_array_.insert (c, i+1);
- }
-
- assert (c->at_mom () == mom);
- return c;
-}
-
-void
-Mudela_score::output (String filename_str)
-{
- LOGOUT (NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl;
-
- // ugh, ugly midi type 1 fix
- if ( (mudela_staff_p_list_.size_i () == 1)
- && !mudela_staff_p_list_.head_->car_->number_i_)
- mudela_staff_p_list_.head_->car_->number_i_ = 1;
-
- int track_i = 0;
- Mudela_stream mudela_stream (filename_str);
- for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
- {
- LOGOUT (NORMAL_ver) << _f ("track %d:", track_i++) << flush;
- i->car_->output (mudela_stream);
- mudela_stream << '\n';
- LOGOUT (NORMAL_ver) << endl;
- }
-
- mudela_stream << "\\score{\n";
- if (mudela_staff_p_list_.size_i () > 1)
- mudela_stream << "< \n";
- for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
- {
- if ( (mudela_staff_p_list_.size_i () != 1)
- && (i->car_ == mudela_staff_p_list_.head_->car_))
- continue;
- mudela_stream << "\\context Staff = \"" << i->car_->id_str () << "\" ";
- mudela_stream << String ("\\" + i->car_->id_str ()) << '\n';
- }
- if (mudela_staff_p_list_.size_i () > 1)
- mudela_stream << ">\n";
-
- mudela_stream << "\\paper{}\n";
-
-#if 1
- mudela_stream << "\\midi{\n";
-
- // let's not use silly 0 track
- last_cons (mudela_staff_p_list_.head_)->car_->mudela_tempo_l_->output (mudela_stream);
- mudela_stream << "}\n";
-#endif
-
- mudela_stream << "}\n";
-}
-
-void
-Mudela_score::process ()
-{
- LOGOUT (NORMAL_ver) << '\n' << _ ("Processing...") << endl;
-
- LOGOUT (DEBUG_ver) << "columns\n";
-
- settle_columns ();
- filter_tempo ();
- quantify_columns ();
- quantify_durations ();
-
- LOGOUT (NORMAL_ver) << '\n' << _ ("Creating voices...") << endl;
- int track_i = 0;
- for (Cons<Mudela_staff>* i = mudela_staff_p_list_.head_; i; i = i->next_)
- {
- LOGOUT (NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush;
- i->car_->process ();
- LOGOUT (NORMAL_ver) << endl;
- }
-}
-
-void
-Mudela_score::filter_tempo ()
-{
- LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl;
-}
-
-void
-Mudela_score::quantify_columns ()
-{
- // ugh
- if (Duration_convert::no_quantify_b_s)
- {
- LOGOUT (NORMAL_ver) << '\n' << _ ("NOT Quantifying columns...") << endl;
- return;
- }
-
- LOGOUT (NORMAL_ver) << '\n' << _ ("Quantifying columns...") << endl;
-
- int current_bar_i = 0;
- Rational bar_mom = mudela_time_signature_l_->bar_mom ();
-
- int n = 5 >? Duration_convert::no_smaller_than_i_s;
- n = Duration_convert::type2_i (n);
- Rational s = Rational (1, n);
- for (int i = 0; i < column_l_array_.size (); i++)
- {
- column_l_array_ [i]->at_mom_ =
- s * Rational ( (int) ( (column_l_array_ [i]->at_mom ()) / s));
-
- int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1;
- if (bar_i > current_bar_i)
-
- {
- LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush;
- current_bar_i = bar_i;
- }
- }
- LOGOUT (NORMAL_ver) << endl;
-}
-
-void
-Mudela_score::quantify_durations ()
-{
-
-}
-
-void
-Mudela_score::settle_columns ()
-{
- LOGOUT (NORMAL_ver) << '\n' << _ ("Settling columns...") << endl;
-
- int n = column_l_array_.size ();
-
- int start_i = 0;
- int end_i = 0;
- Rational start_mom = 0;
-
- Duration smallest_dur;
- smallest_dur.durlog_i_ = 6;
- Rational const noise_mom = Duration_convert::dur2_mom (smallest_dur)
- / Rational (2);
- for (int i = 0; i < n; i++)
- {
- if (!start_i)
- {
- start_i = end_i = i;
- start_mom = column_l_array_ [i]->at_mom ();
- continue;
- }
-
- // find all columns within noise's distance
- while ( (i < n)
- && (column_l_array_ [i]->at_mom () - start_mom < noise_mom))
- end_i = ++i;
-
- // bluntly set all to time of first in group
- for (int j = start_i; j < end_i; j++)
- column_l_array_ [j]->at_mom_ = start_mom;
-
- start_i = end_i = 0;
- }
-}
-
+++ /dev/null
-//
-// mudela-staff.cc -- implement Mudela_staff
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include <ctype.h>
-#include "rational.hh"
-#include "duration-convert.hh"
-#include "string-convert.hh"
-#include "midi2ly-proto.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-#include "mudela-voice.hh"
-#include "mudela-score.hh"
-
-#include "killing-cons.tcc"
-
-extern Mudela_score* mudela_score_l_g;
-
-Mudela_staff::Mudela_staff (int number_i, String copyright_str, String track_name_str, String instrument_str)
-{
- number_i_ = number_i;
- copyright_str_ = copyright_str;
- instrument_str_ = instrument_str;
- name_str_ = track_name_str;
- mudela_key_l_ = 0;
- mudela_time_signature_l_ = 0;
- mudela_tempo_l_ = 0;
-}
-
-void
-Mudela_staff::add_item (Mudela_item* mudela_item_p)
-{
- mudela_item_p_list_.append (new Killing_cons <Mudela_item> (mudela_item_p, 0));
- if (mudela_item_p->mudela_column_l_)
- mudela_item_p->mudela_column_l_->add_item (mudela_item_p);
-}
-/**
- Walk ITEMS and find voices. Remove categorised items.
-
- TODO:
-
- * collect all channels into separate voices. Use chords for sim
- notes on same channel.
- * assume voices/assume chords modes.
-
- */
-void
-Mudela_staff::eat_voice (Cons_list<Mudela_item>& items)
-{
- Mudela_voice* voice_p = new Mudela_voice (this);
- mudela_voice_p_list_.append (new Killing_cons<Mudela_voice> (voice_p, 0));
-
- // Rational mom = items.top ()->at_mom ();
- Rational mom = 0;
-
- for (Cons<Mudela_item>** pp = &items.head_; *pp;)
- {
- Cons<Mudela_item>* i = *pp;
- if (i->car_->at_mom () > mom)
- {
- if (no_rests_b_g && voice_p->last_note_l_)
- {
- voice_p->last_note_l_->end_column_l_ = i->car_->mudela_column_l_;
- }
- else
- {
- /* uh, what about quantisation? This should probably
- use mom2standardised_dur ()
- arg, urg: skip should get duration from start/end columns!
- */
-
- Rational r = i->car_->at_mom () - mom;
- // ugh, need score
- Mudela_column* start = mudela_score_l_g->find_column_l (mom);
- voice_p->add_item (new Mudela_skip (start, r));
- }
-
- mom = i->car_->at_mom ();
- continue; // unnecessary
- }
-
- Link_array<Mudela_item> now_items;
- for (Cons<Mudela_item> *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_)
- now_items.push (i->car_);
-
-#if 0
- /*
- Why don't we use <note>, if voice has:
-
- <note> <key-change>
-
- we'd get last_item == key_change -> last_note == 0;
- */
- Mudela_note * last_note = dynamic_cast<Mudela_note*> (voice_p->last_item_l_);
-#else
- /*
- Not sure, is this better?
- */
- Mudela_note * last_note = voice_p->last_note_l_;
-#endif
-
- Link_array<Mudela_item> candidates;
-
- for (int i=0; last_note && i < now_items.size (); i++)
- {
- Mudela_note * now_note = dynamic_cast<Mudela_note*> (now_items[i]);
- if (now_note && last_note->channel_i_ != now_note->channel_i_)
- candidates.push (now_note);
- }
-
- if (candidates.size())
- {
- now_items = candidates;
- }
-
- Mudela_item * which = 0;
- if (now_items.size () > 1)
- {
- int mindiff = 100000; // ugh
- for (int i=0; last_note && i < now_items.size (); i++)
- {
- Mudela_note *nt = dynamic_cast<Mudela_note*> (now_items[i]);
- if (!nt)
- continue;
- int diff = abs (last_note->pitch_i_ - nt->pitch_i_ );
- if(diff < mindiff)
- {
- mindiff = diff;
- which = now_items [i];
- }
- }
-
- if (which && mindiff > 18) // more than 1.5 octaves apart. Don't put in same voice.
- {
- which =0;
- }
- }
- else if (now_items.size () == 1)
- which = now_items[0];
-
- if (which)
- {
- while ((*pp)->car_ != which)
- pp = &(*pp)->next_;
-
- mom += (*pp)->car_->duration_mom ();
- Cons<Mudela_item>* c = items.remove_cons (pp);
- voice_p->add_item (c->car_);
- delete c;
- }
- else
- {
- pp = &(*pp)->next_;
- continue;
- }
- }
-}
-
-String
-Mudela_staff::id_str ()
-{
- String id (name_str ());
- char *cp = id.ch_l ();
- char *end = cp + id.length_i ();
- for (;cp < end; cp++)
- {
- if (!isalpha (*cp))
- {
- *cp = 'X';
- }
- }
- return id;
-}
-
-String
-Mudela_staff::name_str ()
-{
- if (name_str_.length_i ())
- return name_str_;
- return String ("track") + to_str (char ('A' - 1 + number_i_));
-}
-
-
-
-void
-Mudela_staff::output (Mudela_stream& mudela_stream_r)
-{
- int c =0;
-
- String trackbody = "";
- for (Cons<Mudela_voice>* i = mudela_voice_p_list_.head_; i; i = i->next_)
- {
- String voicename = id_str () + "voice" + to_str (char (c + 'A'));
-
- mudela_stream_r << voicename << " = \\notes ";
-
- trackbody += "\\" + voicename + "\n";
-
- mudela_stream_r << '\n';
- i->car_->output (mudela_stream_r);
- c++;
- }
-
- mudela_stream_r << _ ("% MIDI copyright:") << copyright_str_ << '\n';
- mudela_stream_r << _ ("% MIDI instrument:") << instrument_str_ << '\n';
- mudela_stream_r << id_str () << " = ";
- mudela_stream_r << "<\n " << trackbody << " >\n";
-
- mudela_stream_r << " % " << name_str () << '\n';
-}
-
-void
-Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Rational now_mom, int bar_i)
-{
- Rational bar_mom = mudela_time_signature_l_->bar_mom ();
- Rational into_bar_mom = now_mom - Rational (bar_i - 1) * bar_mom;
- if (bar_i > 1)
- {
- if (!into_bar_mom)
- mudela_stream_r << "|\n";
- }
- mudela_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' ');
- if (into_bar_mom)
- mudela_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom));
- mudela_stream_r << '\n';
-}
-
-
-#if 0 // not used for now
-void
-Mudela_staff::output_mudela_rest (Mudela_stream& mudela_stream_r, Rational begin_mom, Rational end_mom)
-{
- Rational bar_mom = mudela_time_signature_l_->bar_mom ();
- Rational now_mom = begin_mom;
-
- int begin_bar_i = (int) (now_mom / bar_mom) + 1;
- int end_bar_i = (int) (end_mom / bar_mom) + 1;
-
- if (end_bar_i == begin_bar_i)
- {
- output_mudela_rest_remain (mudela_stream_r, end_mom - begin_mom);
- return;
- }
-
- // multiple bars involved
- int bar_i = (int) (now_mom / bar_mom) + 1;
-
- //fill current bar
- Rational begin_bar_mom = Rational (begin_bar_i - 1) * bar_mom;
- if (now_mom > begin_bar_mom)
- {
- int next_bar_i = (int) (now_mom / bar_mom) + 2;
- Rational next_bar_mom = Rational (next_bar_i - 1) * bar_mom;
- assert (next_bar_mom <= end_mom);
-
- Rational remain_mom = next_bar_mom - now_mom;
- if (remain_mom > Rational (0))
- {
- output_mudela_rest_remain (mudela_stream_r, remain_mom);
- now_mom += remain_mom;
- }
-
- bar_i = check_end_bar_i (now_mom, bar_i);
- }
-
- // fill whole bars
- int count_i = end_bar_i - bar_i;
- for (int i = 0; i < count_i; i++)
- {
- int begin_bar_i = check_begin_bar_i (now_mom, bar_i);
- if (begin_bar_i)
- output_mudela_begin_bar (mudela_stream_r, now_mom, begin_bar_i);
- mudela_stream_r << "r1 ";
- // *mudela_stream_r.os_p_ << flush;
- if (begin_bar_i)
- LOGOUT (NORMAL_ver) << begin_bar_i << flush;
- bar_i = check_end_bar_i (now_mom, bar_i);
- now_mom += bar_mom;
- }
-
- // use "int i" here, and gcc 2.7.2 hits internal compiler error
- int ii = check_begin_bar_i (now_mom, bar_i);
- if (ii)
- output_mudela_begin_bar (mudela_stream_r, now_mom, ii);
-
- // bar_i = check_end_bar_i (now_mom, bar_i);
-
- Rational remain_mom = end_mom - Rational (end_bar_i - 1) * bar_mom;
- if (remain_mom > Rational (0))
- {
- output_mudela_rest_remain (mudela_stream_r, remain_mom);
- now_mom += remain_mom;
- }
- assert (now_mom == end_mom);
-}
-
-void
-Mudela_staff::output_mudela_rest_remain (Mudela_stream& mudela_stream_r, Rational mom)
-{
- if (Duration_convert::no_quantify_b_s)
- {
- Duration dur = Duration_convert::mom2_dur (mom);
- mudela_stream_r << "r" << dur.str () << " ";
- // assert (mom == dur.mom ());
- assert (mom == dur.length ());
- return;
- }
-
- Duration dur = Duration_convert::mom2standardised_dur (mom);
- if (dur.type_i_>-10)
- mudela_stream_r << "r" << dur.str () << " ";
-}
-#endif
-
-
-void
-Mudela_staff::process ()
-{
- /*
- group items into voices
- */
-
- assert (mudela_score_l_g);
- mudela_key_l_ = mudela_score_l_g->mudela_key_l_;
- mudela_time_signature_l_ = mudela_score_l_g->mudela_time_signature_l_;
- mudela_tempo_l_ = mudela_score_l_g->mudela_tempo_l_;
-
- Cons_list<Mudela_item> items;
- for (Cons<Mudela_item>* i = mudela_item_p_list_.head_; i; i = i->next_)
- items.append (new Cons<Mudela_item> (i->car_, 0));
-
- while (items.size_i ())
- eat_voice (items);
-}
+++ /dev/null
-//
-// mudela-stream.cc
-//
-// source file of the LilyPond music typesetter
-//
-// (c) 1997--1998, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include <assert.h>
-#include <time.h>
-#include <fstream.h>
-#include "midi2ly-global.hh"
-#include "mudela-item.hh"
-#include "mudela-stream.hh"
-#include "string-convert.hh"
-
-extern String filename_str_g;
-
-static int const INDENT_i = 8;
-
-Mudela_stream::Mudela_stream (String filename_str)
-{
- filename_str_ = filename_str;
- pending_indent_i_ = 0;
- os_p_ = 0;
- indent_i_ = 0;
- comment_mode_b_ = false;
- column_i_ = 0;
- wrap_column_i_ = 68;
- open();
- header();
-}
-
-Mudela_stream::~Mudela_stream ()
-{
- delete os_p_;
- if (indent_i_)
- warning (_f ("lily indent level: %d", indent_i_));
-}
-
-Mudela_stream&
-Mudela_stream::operator << (char c)
-{
- *this << to_str (c);
- return *this;
-}
-
-Mudela_stream&
-Mudela_stream::operator << (String s)
-{
- static String word_sep_str = "{} \t\n";
- while (s.length_i())
- {
- int i = s.index_any_i (word_sep_str) + 1;
- if (!i)
- i = s.length_i();
- String word = s.left_str (i);
- s = s.cut_str (i, s.length_i());
- output_wrapped (word);
- }
- return *this;
-}
-
-Mudela_stream&
-Mudela_stream::operator << (Mudela_item& mudela_item_r)
-{
- mudela_item_r.output (*this);
- *os_p_ << flush;
- return *this;
-}
-
-void
-Mudela_stream::handle_pending_indent()
-{
- *os_p_ << String_convert::char_str ('\t', pending_indent_i_);
- column_i_ += pending_indent_i_ * INDENT_i;
- pending_indent_i_ = 0;
-}
-
-void
-Mudela_stream::header()
-{
- /* Maybe better not to translate these? */
- *os_p_ << _ ("% Creator: ");
- if (no_timestamps_b_g)
- *os_p_ << "GNU LilyPond\n";
- else
- *os_p_ << midi2ly_version_str() << '\n';
- *os_p_ << _ ("% Automatically generated");
- if (no_timestamps_b_g)
- *os_p_ << ".\n";
- else
- {
- *os_p_ << _ (", at ");
- time_t t (time (0));
- *os_p_ << ctime (&t) << "%\n";
- }
- *os_p_ << _ ("% from input file: ");
- // *os_p_ << midi_parser_l_g->filename_str_;
- // ugh
- *os_p_ << filename_str_g;
- *os_p_ << "\n\n";
- // ugh
- *os_p_ << "\\version \"1.3.76\";\n";
-}
-
-void
-Mudela_stream::open()
-{
- os_p_ = new ofstream (filename_str_.ch_C ());
- if (!*os_p_)
- error (_f ("can't open file: `%s'", filename_str_));
-}
-
-void
-Mudela_stream::output (String str)
-{
- for (int i = 0; i < str.length_i(); i++)
- {
- char c = str[ i ];
- switch (c)
- {
- case '{' :
- case '<' :
- handle_pending_indent();
- if (column_i_ == indent_i_ * INDENT_i)
- output ("\t");
- indent_i_++;
- *os_p_ << c;
- column_i_++;
- break;
- case '}' :
- case '>' :
- assert (indent_i_);
- indent_i_--;
- if (pending_indent_i_)
- pending_indent_i_--;
- handle_pending_indent();
- *os_p_ << c;
- column_i_++;
- break;
- case '%' :
- handle_pending_indent();
- comment_mode_b_ = true;
- *os_p_ << c;
- column_i_++;
- break;
- case '\t' :
- handle_pending_indent();
- *os_p_ << c;
- column_i_ += INDENT_i;
- break;
- case '\n' :
- *os_p_ << endl;
- pending_indent_i_ = indent_i_;
- column_i_ = 0;
- comment_mode_b_ = false;
- break;
- default :
- handle_pending_indent();
- *os_p_ << c;
- column_i_++;
- break;
- }
- }
-}
-
-void
-Mudela_stream::output_wrapped (String str)
-{
- // enough room left -> doit
- if (column_i_ + str.length_i() <= wrap_column_i_)
- {
- output (str);
- return;
- }
-
- // we're at BOL already; this will never fit -> doit
- if (column_i_ == indent_i_ * INDENT_i)
- {
- output (str);
- return;
- }
-
- // ok, let's wrap
- // preserve comment mode
- if (comment_mode_b_)
- output (String ("\n%"));
- else
- output (String ("\n"));
-
- output (str);
-}
+++ /dev/null
-//
-// mudela-voice.cc -- implement Mudela_voice
-//
-// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
-
-#include "string-convert.hh"
-#include "midi2ly-global.hh"
-#include "mudela-column.hh"
-#include "mudela-item.hh"
-#include "mudela-staff.hh"
-#include "mudela-stream.hh"
-#include "mudela-voice.hh"
-#include "mudela-score.hh"
-
-extern Mudela_score* mudela_score_l_g;
-
-Mudela_voice::Mudela_voice (Mudela_staff* mudela_staff_l)
-{
- mudela_staff_l_ = mudela_staff_l;
- last_item_l_ =0;
- last_note_l_ =0;
-}
-
-void
-Mudela_voice::add_item (Mudela_item* mudela_item_l)
-{
- last_item_l_ = mudela_item_l;
- if (Mudela_note* n = dynamic_cast<Mudela_note*> (mudela_item_l))
- {
- last_note_l_ = n;
- }
- mudela_item_l_list_.append (new Cons<Mudela_item> (mudela_item_l, 0));
-}
-
-/**
- analyse pitches to determine clef.
- */
-String
-Mudela_voice::get_clef () const
-{
- Mudela_note * n =0;
-
- for (Cons<Mudela_item> *cp = mudela_item_l_list_.head_; !n && cp; cp = cp->next_)
- {
- n = dynamic_cast<Mudela_note*> (cp->car_);
- }
-
- if (!n)
- return "";
-
- int p = n->pitch_i_;
-
- if (p < 56)
- return "\\clef \"bass\";\n";
- else if (p > 67)
- return "\\clef \"treble\";\n";
- else
- return "";
-}
-
-static int const FAIRLY_LONG_VOICE_i = 6;
-
-void
-Mudela_voice::output (Mudela_stream& mudela_stream_r)
-{
- mudela_stream_r << "{ ";
- if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
- mudela_stream_r << '\n';
-
-
- mudela_stream_r << get_clef () << '\n';
-
- int current_bar_i = 0;
- Rational bar_mom = mudela_staff_l_->mudela_time_signature_l_->bar_mom ();
-
- for (Cons<Mudela_item>* i = mudela_item_l_list_.head_; i; i = i->next_)
- {
- Rational at_mom = i->car_->mudela_column_l_->at_mom ();
- int bar_i = (int) (at_mom / bar_mom) + 1;
- if (bar_i > current_bar_i)
- {
- if (current_bar_i)
- {
- if (at_mom == Rational (bar_i - 1) * bar_mom)
- mudela_stream_r << "|";
- mudela_stream_r << "\n% ";
- mudela_stream_r << String_convert::i2dec_str (bar_i, 0, ' ');
- mudela_stream_r << '\n';
- }
- LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush;
- current_bar_i = bar_i;
- }
-
- mudela_stream_r << *i->car_;
- if (Mudela_key* k = dynamic_cast<Mudela_key*> (i->car_))
- mudela_staff_l_->mudela_key_l_ = mudela_score_l_g->mudela_key_l_ = k;
- }
-
- if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
- mudela_stream_r << '\n';
-
- mudela_stream_r << "} ";
-}
-
-
+++ /dev/null
-# mutopia/Makefile
-
-depth = ../../..
-
-SUBDIRS = concerto-in-e-major
-
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/mutopia/mutopia.make
-
+++ /dev/null
-# mutopia/Makefile
-
-depth = ../../../..
-
-SUBDIRS =
-
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-zipped = true
-mutopia-examples = concerto-in-e-major
-
-include $(depth)/mutopia/mutopia.make
-
-
+++ /dev/null
-# mutopia/Makefile
-
-depth = ../../..
-
-SUBDIRS = bach-invention-01
-
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/mutopia/mutopia.make
-
+++ /dev/null
-# mutopia/Makefile
-
-depth = ../../../..
-
-SUBDIRS =
-
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-mutopia-examples = bach-invention-01
-
-include $(depth)/mutopia/mutopia.make
-
-
+++ /dev/null
-# mutopia/Makefile
-
-depth = ../..
-
-SUBDIRS = BWV772 BWV1042
-
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/mutopia/mutopia.make
-
+++ /dev/null
-\header {
- filename = "gnossienne-4.ly";
- title = "Gnossienne";
- subtitle = "4";
- composer = "Erik Satie (1866-1925)";
- enteredby = "jcn";
- copyright = "Public Domain";
-}
-
-%{
- Tested Features: cross staff auto beams and slurs, grace notes, no bars
-%}
-
-\version "1.3.117";
-
-global = \notes {
- \key a \minor;
- \time 6/4;
- \skip 1.*34;
- \bar "|.";
-}
-
-melody = \notes\relative c''{
- \clef violin;
- \property Voice.verticalDirection = #1
- \property Voice.graceFraction = #(make-moment 1 4)
- r2 r r
- r2 r r
- r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- es8 \grace b( ))c r4 r2 r
- r2 r r
- r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- es8 \grace b( ))c r4 r2 r
- r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis
- )d4 \grace fis8()gis4 ~ gis8 r r4 r2
- r4 g16( a bes a g a bes a g a bes a g a bes a g fis es fis
- )d4 \grace fis8()gis4 ~ gis8 r r4 r2
- \grace a8()f4 ~ f8 r r2 r
- r2 r4 a8( b c d c b \grace b8()e \grace a,())g r4 r2 r
- r2 r4 a8( b c d c b a b c d c b a b c d c b
- \grace b8()e \grace a,())g r4 r2 r
- a2( \grace e'8()f4 ~ )f8 r r2
- r2 r r
- fis,4( \grace dis8<)cis4 ais> r2 r
- \grace b'8()a \grace b()a r4 r2 r
- r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- es8 \grace b())c r4 r2 r
- d,4( \grace fis8()gis4 ~ )gis8 r r4 r2
- f4 ~ f8 r r2 r
- f'8( g a b a g f g a b a g
- \grace f8()g \grace d)e r4 r2 r
- f8( g a b a g f g a b a g
- \grace f8()g8 \grace d())e r4 r2 r
- a,2( \grace e'8() f4 ~ )f8 r r2
- r2 r r
- fis,4( \grace dis8<)cis4 ais> r2 r
- <e1*6/4 g b e> ~ <e g b e>
-}
-
-basloopje = \notes\relative c{
- d,8( a' d f a d f d a f d )a
-}
-
-accompany = \notes \relative c {
- % snapnie, hoevaak relative c heeft ze nodig?
- \basloopje
- \basloopje
- \basloopje
- \transpose bes \basloopje
- \transpose bes \basloopje
- \basloopje
- \transpose bes \basloopje
- \transpose bes \basloopje
- \transpose a \basloopje
- \transpose bes \basloopje
- \transpose a \basloopje
- \basloopje
- \basloopje
- % huh? d'
- \transpose d' \basloopje
- \basloopje
- \basloopje
- \transpose d' \basloopje
- \basloopje
- \basloopje
- \transpose e' \basloopje
- \basloopje
- \basloopje
- \transpose bes \basloopje
- \transpose a \basloopje
- \basloopje
- \basloopje
- \transpose d' \basloopje
- \basloopje
- \transpose d' \basloopje
- \basloopje
- \basloopje
- \transpose e' \basloopje
- < e1*6/4 b' e> ~ < e b' e>
-}
-
-\score{
- \notes \context PianoStaff <
- \context Staff=up <
- \global
- \context Voice=foo {
- \stemUp
- \property Voice.Script \override #'direction = #1
-
- \melody
- }
- >
- \context Staff=down <
- \global
- \clef bass;
- \autochange Staff \context Voice \accompany
- >
- >
-
- \paper {
- gourlay_maxmeasures = 4.;
- indent = 8.\mm;
- textheight = 295.\mm;
-
- % ugly is beautiful
- slur_beautiful = 5.0;
-
- \translator{
- \StaffContext
- % don't auto-generate bars: not a good idea: -> no breakpoints
- % barAuto = #f
- defaultBarType = #""
- \remove "Time_signature_engraver";
-
- slurVerticalDirection = #1
- verticalDirection = #-1
- autoBeamSettings \override #'(end * * * *) = #(make-moment 1 2)
- }
- }
- \midi {
- \tempo 4 = 54;
- }
-}
-
+++ /dev/null
-# mutopia/J.S.Bach/Solo-Cello-Suites/Makefile
-
-depth = ../../..
-
-EXTRA_DIST_FILES=
-
-examples=scsii-cello
-LOCALSTEPMAKE_TEMPLATES=mutopia
-
-include $(depth)/make/stepmake.make
-
-tarball=solo-cello-suite-ii
-mutopia-examples=scsii-cello scsii-viola
-mutopia-letter=$(mutopia-examples:%=out-letter/%.ps.gz)
-
+++ /dev/null
-
-
-\version "1.3.117";
-
-\include "allemande-urtext.ly";
-
-allemandeCelloGlobal = \notes{
- \time 4/4;
- \key f \major;
- \clef bass;
- \repeat "volta" 2 {
- \partial 16;
- s16
- s1*11 |
- s2 s4 s8.
- } \repeat "volta" 2 {
- s16
- s1*11
- s16*15
- }
-}
-
-allemandeCelloScripts = \notes{
-}
-
-allemandeCelloStaff = \context Staff <
- \allemande
- \allemandeCelloGlobal
- \allemandeCelloScripts
->
-
-\score{
- \allemandeCelloStaff
- \paper{ }
- \midi{ \tempo 4 = 45; }
- \header{ piece = "Allemande";
- opus = "";
-
- }
-}
+++ /dev/null
-% allemande-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-allemandeA = \context Staff \notes \relative c {
- \context Voice=i
- \stemUp
- a'16 |
- a8 bes16()a \stemBoth
- g()f e()d d()cis d()e a,8 bes16()g |
- f( a )d f, e8 cis' \stemUp d8. e16 \stemBoth f g a bes! |
- %3
- \stemUp c8 d16()es \stemBoth d()c bes()a c()bes a()g d'8. f,16 |
- e( g )bes d c()bes a()g bes()a g()f
- < f8. a> <f16 a > |
- % urg fix
- b f( e )d e cis' d cis \stemUp d8. e16 \stemBoth
- f( e d)e |
- %6
- d( c b )c b( a gis)a gis8-\prall fis16()e e' c( a )g |
- \stemUp e' a, f d d f d b \stemBoth
- gis( b e )gis b d c b |
- %8
- c( a f )e d( f e )d gis8.-\trill()a16 b d e, d |
- % urg
- c e a d \stemUp b8.-\trill a16 a8 s4 s8 \stemBoth |
- %10
- d,!16 gis( a b a gis fis )e \stemUp e8 f16()e \stemBoth
- d()c b()a |
- \stemUp d8 e16()f \stemBoth e d c b
- \stemUp d'16()b c()a \stemBoth e8 gis |
- a,8. cis16 e g! f! e f a d gis, [ a8. ]
- %13
- e16 \stemUp e8. f16 \stemBoth
- g!()e f()a cis,( d )e bes a8.-\trill()g16 |
- f a'(f)d g b,()cis a' g(f e)d fis d()es c( |
- %15
- )bes g'(a, )g fis a d c' bes(fis)g bes d()a bes()g |
- es(d)es g c()a bes()g d c d g bes()fis g()es |
- %17
- c(bes)c bes' a(c)es g, \stemUp fis8-\trill g16 a \stemBoth
- d,8 es16 c |
- bes d g bes, d,8 fis' \stemUp g8. a16 \stemBoth bes d g, f |
- %19
- \stemUp e8.-\trill f16 \stemBoth g e c bes
- a()f' g,()f e g'( a )bes |
- bes( a g )f
- a()e f()d bes d(f)a d()a bes()g |
- %21
- a,()g'cis()d e()g, a()e f()d bes()d gis, f' e d |
- d( cis b )a
- c(a)fis d' c a( b )d
- f!(d )gis, d' |
- %23
- cis(e g!)bes e()a, bes()g f()cis d()gis, a8 cis! |
- % knee
- \stemUp d,16 \stemBoth d''(c!)a bes!(g)e cis' d a f d d,8.
- \bar "|.";
-}
-
-allemandeB = \notes \relative c {
- \context Voice=ii
- \stemDown
- s16 |
- % <d'8 g' f'> s8 s2. |
- <f8 g, d> s8 s2. |
- s2 <a,8. d,> s16 s4 |
- <fis'8 a, d,> s8 s2. |
- s1 |
- %5
- s2 d8. s16 s4 |
- s1 |
- f!16 s16*3 b, s16*3 s2 |
- s1 |
- \slurDown
- s4 e [dis8 ~ dis32 e( fis gis] [a b c d! c b c )a] |
- \slurBoth
- %10
- s2 <a8 c,> s8 s4 |
- <b8 gis,> s8 s4 <e,8 a,> s8 s4 |
- s2 s4 s8.
- s16
- <cis'8 g,> s8 s2. |
- %15
- s1*3 |
- s2 c,8 s8 s4 |
- s2 g8. s16 s4 |
- bes8.
-% }
-}
-
-allemande = \context Staff \notes<
- \allemandeA
- \allemandeB
->
-
-
-\version "1.3.117";
+++ /dev/null
-
-\version "1.3.117";
-
-\include "allemande-urtext.ly";
-
-allemandeViolaGlobal = \notes{
- \time 4/4;
- \key f \major;
- \clef alto;
- \repeat "volta" 2 {
- \partial 16;
- s16
- s1*11 |
- s2 s4 s8.
- } \repeat "volta" 2 {
- s16
- s1*11
- s16*15
- }
-}
-
-allemandeViolaScripts = \notes{
-}
-
-allemandeViolaStaff = \context Staff <
- \notes \transpose c'' \allemande
- \allemandeViolaGlobal
- \allemandeViolaScripts
->
-
-\score{
- \allemandeViolaStaff
- \paper{ }
- \midi{ \tempo 4 = 45; }
- \header{ piece = "Allemande";
- opus = "";
- }
-}
-
+++ /dev/null
-
-\version "1.3.117";
-
-\include "courante-urtext.ly";
-
-couranteCelloGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef bass;
- \repeat "volta" 2 {
- \partial 16;
- s16
- s2.*15
- s2 s8.
- } \repeat "volta" 2 {
- s16
- s2.*15
- s16*11
- }
-}
-
-couranteCelloScripts = \notes{
-}
-
-couranteCelloStaff = \context Staff <
- \courante
- \couranteCelloGlobal
- \couranteCelloScripts
->
-
-\score{
- \couranteCelloStaff
- \paper {}
- \midi{ \tempo 4 = 55; }
- \header{ piece = "Courante";
- opus = "";
- }
-}
-
+++ /dev/null
-% courante-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-couranteA = \context Staff \notes \relative c {
- \context Voice=i
- d'16 |
- d a f a d, f g a bes a bes g |
- \stemUp <g4 a> s4 \stemBoth g16 f g e |
- % urg, a good case for mean-distance-beam-dir-algorithm!
- f d e c! bes(a)bes a' g f e d |
- %4
- cis e a,(b cis d e f )g bes-- a e |
- f a d,( e f g a bes )c bes-- d c |
- \stemUp <c4 f,> ~ < c16 f,> bes a g \stemBoth f()es d()es |
- %7
- d bes(a)bes d bes e! bes f' bes, g' bes, |
- e, g c d e f g a bes a bes g |
- a f(e)f a f bes f c' f, d' f, |
- %10
- cis( e )a b cis d e f g()f g()e |
- d,( a' )f' e d()c d()c b()a b()a |
- gis( a )b e, f()e f()d e()c d()b |
- %13
- c a'( b c b a gis)a d, a' e a |
- f a( b c b a gis)a f a e a |
- dis, a'( b c b a gis)a e a e gis |
- a e cis e a, cis e gis [ a8. ]
- e'16
- %17
- e cis a cis e, f g a bes()g cis()g |
- \stemUp d'4 ~ d16 a d e f d a c! \stemBoth |
- b16 f(d)f g, d' f g b f d' f, |
- %20
- e g c, d e f g a bes! d c g |
- \stemUp a s16*3 s4 s4
- d, ~ d16 e! f g \stemBoth a bes c d |
- %23
- e, bes a g a f' g,()f c g' f' e |
- f a bes a g f e f g e f d |
- cis g' b, g' a, g' b, g' cis, g' a, g' |
- %26
- f d f a d a d e f a, f d |
- g, d' g a bes g' a, f' g, e' f, d' |
- cis(d)e cis a cis bes cis a cis g cis |
- %29
- f, d'(e f e d cis)d g, d' a d |
- bes d e f e d cis d bes d a d |
- gis, d'(e f e d cis)d a d a cis |
- d a f a d, f a, d
- d,8.
- \bar "|.";
-}
-
-couranteB = \notes \relative c {
- \context Voice=ii
- \stemDown
- s16 |
- s2. |
- %2
- cis4 ~ cis16 d e f s4 |
- s2.*3 |
- %6
- a,4 s2
- s2.*9
- % 16
- s2 s8.
- s16
- s2.
- %18
- f'4 s s |
- s2.*2
- %21
- \slurUp
- f16 c'(bes a g f es d )es c' f, es |
- \slurBoth
- bes4 s s
- s2.*9
- s2 s8.
-}
-
-courante = \context Staff \notes<
- \couranteA
- \couranteB
->
-
-\version "1.3.117";
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "courante-urtext.ly";
-
-couranteViolaGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef alto;
- \repeat "volta" 2 {
- \partial 16;
- s16
- s2.*15
- s2 s8.
- } \repeat "volta" 2 {
- s16
- s2.*15
- s16*11
- }
-}
-
-couranteViolaScripts = \notes{
-}
-
-couranteViolaStaff = \context Staff <
- \notes \transpose c'' \courante
- \couranteViolaGlobal
- \couranteViolaScripts
->
-
-\score{
- \couranteViolaStaff
- \paper{ }
- \midi{ \tempo 4 = 55; }
- \header{
- opus= "" ;
- piece ="Courante";
- }
-}
-
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "gigue-urtext.ly";
-
-gigueCelloGlobal = \notes{
- \time 3/8;
- \key f \major;
- \clef bass;
- \repeat "volta" 2 {
- \partial 8;
- s8
- s4.*31
- s4
- %\partial 4;
- } \repeat "volta" 2 {
- % urg
- %s16 \partial 8; s16
- s8
- s4.*43
- s4
- %\partial 4;
- }
-}
-
-gigueCelloScripts = \notes{
-}
-
-gigueCelloStaff = \context Staff <
- \gigue
- \gigueCelloGlobal
- \gigueCelloScripts
->
-
-\score{
- \gigueCelloStaff
- \paper{
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
- autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4)
- }
- }
- \midi{ \tempo 4 = 60; }
- \header{
- opus= "" ;
-piece = "Gigue"; }
-}
-
+++ /dev/null
-% gigue-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-%
-% this must be redone a bit:
-%
-% * slurs/ties in two different threads (like beams): urtext, and additionals
-%
-
-gigueNotes = \context Staff \notes \relative c {
- \context Voice=i
- a'8 |
- d,4 bes'8 | cis,4 g'8 | f16 e f g a8 |
- d,4 d'8 | e,16(f)g8 bes | c,16(d)e8 c' | a16 g a bes c a |
- %8
- f4-\trill a8 | b,()g' cis, | d f16( c bes )a | g8()es' a, |
- bes d16( a g )f | e!8()cis' bes' a g16( f e)d |
- %15
- \stemUp e(f g e f)d \stemBoth e8()a, c'! |
- \stemUp c16(d es c d)a bes8 r bes |
- bes16(c d bes c)g a8 r a |
- %21
- b16()c d()b c()a | d()e f()d e()c | b()c d()b c()a | e'4 gis,8 |
- a16()b c()a d()b |
- a()b c()a d()b |
- %27
- a()b c()a d()b |
- a()b c()a d()b |
- f'8 e16()d c()b \stemBoth |
- e,, e''(d)c b()gis | a f(e)d e()cis | a4
- %33
- c'!8 |
- f,4 d'8 | e,4 bes'8 | a16 g a bes c8 | f,4 a8 |
- d,16(e)f d(c)b | g' a g f e d |
- %39
- e(d)e f(g)e | c4 e8 | fis16(g)a c, bes a |
- bes(d)g bes, a g | fis(a)c es d c | bes(a)bes d g bes |
- %45
- as(g)as fis g es' | d,8 g fis | g16 es(d)c d()bes | g4 bes'8
- % what about this?
- \stemUp\stemDown e,!16(f)g e f d\stemBoth
- c(d e) c d bes | a(bes)c a bes g | f4 a'8
- % what about this?
- \stemUp\stemDown d,16(e)f d e c\stemBoth bes(c)d bes c a
- g16(a)bes g a f | e4 g'8
- %57
- a,16(b cis d)e g-. | f(g a cis )d f, | e(f g a)bes d,-. |
- cis(d)e a, bes g
- \stemUp
- d'()e f()d g()e |
- %62
- d()e f()d g()e |
- d()e f()d g()e |
- d()e f()d g()e |
- \stemBoth
- cis bes'(a g f)e | f, a' g f e cis |
- %67
- d bes a g a f | d a' d e f d |
- \stemUp es()f g()es f()d | g()a bes()g a()f es()f g()es f()d |
- %72
- cis'4 \stemBoth d16()c | bes(a g f e)d | cis(b a g f)e | d f a d f a |
- d4
- \bar "|.";
-}
-
-gigueB = \context Staff \notes \relative c {
- \context Voice=ii
- \stemDown
- s8
- s4.*14
- a4. | s d | d8 g, d' | e4. | f8 f, f' |
- %21
- d d d d d d d d d |
- % one could type r here...
- d4 s8 | <e c> s s | d s s | e s s | f s s | gis s4 |
- s4. s s4
- %33
- s8
- s4.*16
- \stemUp bes4 s8
- s4. s s
- a8 s4 \stemDown
- s4.*7
- <a,8 f> s s g s s a s s bes s s
- s4.*4
- g8 g g g g g g g g
- %72
- <g4 e'>
-}
-
-gigueA = \context Voice \notes<
- \gigueNotes
->
-
-gigue = \notes<
- \gigueA
- \gigueB
->
-
-\version "1.3.117";
+++ /dev/null
-
-
-\version "1.3.117";
-
-\include "gigue-urtext.ly";
-
-gigueViolaGlobal = \notes{
- \time 3/8;
- \key f \major;
- \clef alto;
- \repeat "volta" 2 {
- \partial 8;
- s8
- s4.*31
- s4
- \partial 4;
- } \repeat "volta" 2 {
- % urg
- s16 \partial 8; s16
- s4.*43
- s4
- \partial 4;
- }
-}
-
-gigueViolaScripts = \notes{
-}
-
-gigueViolaStaff = \context Staff <
- \notes \transpose c'' \gigue
- \gigueViolaGlobal
- \gigueViolaScripts
->
-
-\score{
- \gigueViolaStaff
- \paper{
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
- autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 3 4)
- }
- }
- \midi{ \tempo 4 = 60; }
- \header{
- opus= "" ;
- piece ="Gigue"; }
-}
-
+++ /dev/null
-%{
-Header for Solo Cello Suite no. 2.
-
-This is the 2nd cello suite by Bach, in versions for both cello and
-viola. It was coded by JCN following a Baerenreiter
-urtext. Optionally you can add or remove slurs etc. to taste.
-
-The setup of the files is slightly complicated, because sharing of
-information is taken to the extreme.
-
-%}
-
-\header{
- title = "Solo Cello Suites";
- subtitle = "Suite II";
- opus = "BWV 1008";
- composer = "Johann Sebastian Bach (1685-1750)";
- enteredby = "JCN";
- instrument = \instrument;
-
- % mutopia headers.
- mutopiatitle = "Solo Cello Suites, Suite II";
- mutopiacomposer = "J.S.Bach (1685-1750)";
- mutopiaopus = "BWV1008";
- mutopiainstrument = \intrument;
- date = "1710s, 1720s";
- source = "Baerenreiter urtext";
- style = "Baroque";
- copyright = "Public Domain";
- maintainer = "Jan Nieuwenhuizen";
- maintainer_email = "janneke@gnu.org";
- lastupdated = "2001/Jan/31";
- mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small
- \\\\This music is part of the Mutopia project,
- \\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset
- and placed in the public domain by " + \maintainer +
- ".\\\\Unrestricted modification and redistribution is permitted
- and encouraged---copy this music and share it.}";
- tagline = \mutopiapublicdomain;
- footer = "Mutopia-2001/01/31-2";
-}
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "menuetto-urtext.ly";
-
-menuettoICelloGlobal = \notes{
- \context Voice=i
- \time 3/4;
- \key f \major;
- \clef bass;
- \repeat "volta" 2 {
- \skip 2.*8;
- }
- \repeat "volta" 2 {
- \skip 2.*1;
- %\slurDotted
- \skip 2.*14;
- \emptyText
- s2._"Fine"
- }
-}
-
-menuettoICelloScripts = \notes{
- \context Voice=i
- s2.
- s8^"~"^1_2_4 s8 s4 s^4
- s4^0_1 s_4 s
- s2.*5
- s2^3 s4
- s4 s8_1 s s4
- s2.
- s2 s8^4 s
- s2.
- s8 s^2 s^4
- s_2 s s s_0 s_4 s_1
- s2.*2
- s4^3_1
- s^1_3 s4
- s2.
- s4_2 s2
- s8^2_3 s s s^1 s4^1
-}
-
-menuettoICelloStaff = \context Staff <
- \menuettoI
- \menuettoICelloGlobal
-% \menuettoICelloScripts
->
-
-\score{
- \menuettoICelloStaff
- \paper{
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
- }
- }
- \midi{ \tempo 4 = 110; }
- \header{
- opus= "" ;
- piece ="Menuetto I"; }
-}
-
-menuettoIiCelloGlobal = \notes{
- \context Voice=i
- \time 3/4;
- \key d \major;
- \clef bass;
- \repeat "volta" 2 {
- \skip 2.*8;
- }
- \repeat "volta" 2 {
- \skip 2.*1;
- %\slurDotted
- \skip 2.*14;
- \emptyText
- s2._"Menuetto I da Capo"
- }
-
-}
-
-menuettoIiCelloStaff = \context Staff <
- \menuettoIi
- \menuettoIiCelloGlobal
-% \menuettoIiCelloScripts
->
-
-\score{
- \menuettoIiCelloStaff
- \paper{
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
- }
- }
- \midi{ \tempo 4 = 130; }
- \header{
- piece = "Menuetto II";
- opus = "";
- }
-}
-
+++ /dev/null
-% menuetto-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-menuettoIA = \context Staff \notes \relative c {
- \context Voice=i
- <d2\f f a> bes'4 |
- bes8 a bes g a4 |
- <d,4 bes> g f8 e |
- f8( e )d cis b a |
- <d2 f a> bes'!4 |
- bes8 a bes g c!4 |
- %7
- <a f> <d f, bes,> <e g, g,> |
- <cis2. e, a,> |
- <a2\f e'> d8 e16 f |
- e8 d cis e a, g |
- a4 d cis |
- g'8 f e f d c |
- %13
- bes2 c4 |
- a8 g a f <d'4 e, bes> |
- <c f, a,> bes8 a g a |
- f8 e f a g bes |
- <a2^\trill fis> bes4 |
- c8 bes c a fis4^\trill |
- %19
-% dispute
-% <bes,4 g' d'> <c, g' c> < d,8 bes'(> )a |
- <d'4 g, bes,> <c g c,> bes8 a |
- c8 bes a bes g bes |
- d4 cis d |
- g,8 f g e f4 |
- g,8 g' <{e4.^\trill d8 } a4.> ~ |
- <d2. a d,> |
-}
-
-menuettoIB = \context Staff \notes \relative c {
- \context Voice = ii
- \stemDown
- \skip 2.*1; |
- <e8 c> \skip 8*5; |
- \skip 2.*1; |
- a,8 \skip 8*5; |
- \skip 2.*1; |
- e'8 \skip 8*5; |
- \stemBoth
- s2.*2 |
- s2.
- g8 \skip 8*5; |
- f2 e4
- d8 \skip 8*5; |
- g4 () f e
- f8 \skip 8*5; |
- \skip 2.*3; |
- es8 \skip 8*3; d4 |
- \skip 4*2; d4 |
- <d8 g,> \skip 8*5; |
-% dispute
-% g2 f4 |
- g4 \skip 4*1; f4 |
- cis8 \skip 8*3; d4 |
- s2.*2
- \bar "|.";
-}
-
-% UGH, fix this like in sarabande
-menuettoIAVoiceUrg = \notes{
- \context Voice = i
- \skip 2.*1; \stemUp
- \skip 2.*1; \stemBoth
- \skip 2.*1; \stemUp
- \skip 2.*1; \stemBoth
- \skip 2.*1; \stemUp
- \skip 2.*1; \stemBoth
- \skip 2.*3; \stemUp
- \skip 2.*1; \stemUp
- \skip 2.*3;
- \skip 4*2; \stemBoth
- \skip 4*2; \stemUp
- \skip2.*1; \stemUp
- \skip 4*2; \stemBoth
- \skip2.*1; \stemUp
- \skip 2.*1; \stemBoth
- \skip 2*1; \stemUp
- \skip 4*1;
- \skip 2.*4; \stemBoth
- \skip 2.*1;
-}
-
-menuettoIAVoiceUrgUrg = \notes<
- \menuettoIAVoiceUrg
- \menuettoIA
->
-
-menuettoIBVoiceUrg = \notes{
- \context Voice=ii
- \stemDown
- % urg urg, huh?
- \skip 2.*8; \stemDown
-}
-
-menuettoIBVoiceUrgUrg = \notes<
- \menuettoIBVoiceUrg
- \menuettoIB
->
-
-menuettoI = \context Staff \notes<
- \repeat "volta" 2 { \menuettoIAVoiceUrgUrg }
- \repeat "volta" 2 { \menuettoIBVoiceUrgUrg }
->
-
-menuettoIi = \context Staff\notes \relative c {
- \context Voice=i
- fis4^\trill d8 e fis g |
- a4 fis, a' |
- g,8 b e4 g |
- d8( cis )b cis a g |
- % ugh, forcing knee
- % Lily's not yet smart enough to decide for herself.
- \stemUp fis \stemBoth d''( cis b a )g |
- b( a g fis e )d |
- %7
- cis d g4 fis8( g16 )a |
- <\stemDown a,2. \stemUp e'> |
- \stemBoth
- cis4^\prall e8( d cis )b |
- cis4 g, cis' |
- fis,8()a d4 fis |
- b,8()a g()fis g b |
- %13
- e, d'( cis )b cis()ais |
- d, b'( a! g fis )e |
- g( fis e d cis )d |
- b( cis d e fis )g |
- a( g fis g a )b |
- c4 dis,, c'' |
- %19
- b8()a c( b a )g |
- fis() g a()fis g()e |
- cis4^\trill a8 b cis d |
- e( fis g )b a4 |
- g8()fis e()d e()cis |
- d2.
- \bar "|.";
-}
-
-\version "1.3.117";
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "menuetto-urtext.ly";
-
-menuettoIViolaGlobal = \notes{
- \context Voice=i
- \time 3/4;
- \key f \major;
- \clef alto;
- \repeat "volta" 2 {
- \skip 2.*8;
- \clef violin;
- \skip 2.*1;
- } \repeat "volta" 2 {
- %\slurDotted
- \skip 2.*3;
- \clef alto;
- \skip 2.*11;
- \emptyText
- s2._"Fine"
- }
-}
-
-menuettoIViolaScripts = \notes{
- \context Voice=i
- s2.
- s8^"~"^1_2_4 s8*5
- s2.*5
- s4 s-\upbow s-\downbow
- s2.-\upbow
- s2.*5
- s2 s4-\upbow
- s4-\downbow s2
- s2.*1
- s2^0 s4
- s2.*1
- s4-\downbow s4-\upbow
-}
-
-menuettoIViolaStaff = \context Staff <
- \notes \transpose c'' \menuettoI
- \menuettoIViolaGlobal
-% \menuettoIViolaScripts
->
-
-\score{
- \menuettoIViolaStaff
- \paper{
- gourlay_maxmeasures = 7.0;
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
- }
- }
- \midi{ \tempo 4 = 110; }
- \header{
- opus= "" ;
- piece ="Menuetto I";
- }
-}
-
-menuettoIiViolaGlobal = \notes{
- \context Voice=i
- \time 3/4;
- \key d \major;
- \clef alto;
- \repeat "volta" 2 {
- \skip 2.*8;
- } \repeat "volta" 2 {
- \skip 2.*1;
- %\slurDotted
- \skip 2.*14;
- \emptyText
- s2._"Menuetto I da Capo"
- }
-}
-
-menuettoIiViolaStaff = \context Staff <
- \notes \transpose c'' \menuettoIi
- \menuettoIiViolaGlobal
-% \menuettoIiViolaScripts
->
-
-\score{
- \menuettoIiViolaStaff
- \paper{
- \translator{
- \VoiceContext
- autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 3 4)
-
- }
- }
- \midi{ \tempo 4 = 130; }
- \header{
- opus= "" ;
- piece ="Menuetto II"; }
-}
-
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "prelude-urtext.ly";
-
-preludeCelloGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef bass;
- \skip 2.*63;
- \bar "|.";
-}
-
-preludeCelloScripts = \notes{
-}
-
-preludeCelloStaff = \context Staff <
- \prelude
- \preludeCelloGlobal
- \preludeCelloScripts
->
-
-\score{
- \preludeCelloStaff
- \paper{ }
- \midi{ \tempo 4 = 40; }
- \header{
- opus= "" ;
- piece ="Pr\\'elude"; }
-}
-
+++ /dev/null
-% prelude-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% who is going to make a -violin.ly?
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet see viola_scripts .
-%}
-
-preludeNotes = \notes \relative c {
- \context Voice=i
- d8 f a4 ~ a16 f e d |
- cis e g a bes4 ~ bes16 a g f |
- e g bes cis e8. bes16 a16 g f e |
- f g a f d8 c! bes a |
- %5
- bes16 d f a d8. c16 bes a g f |
- e g bes d c a bes g f e g bes, |
- a c e g c8. bes16 a g f e |
- d f a c bes g a f e f a f |
- %9
- g, bes d f bes8. a16 g f e g |
- a, c e g c a e g f a d, es |
- d a bes d g bes a c bes g d' f, |
- %12
- e b c e g d e c bes g e' bes |
- f8 a c4 ~ c16 bes a g |
- fis a bes c d, c' bes a fis' es d c |
- bes a g bes d4 ~ d16 c bes a |
- %16
- gis b c d e, d' c b gis' f e d |
- c b a c f e f gis a f d c |
- b d gis b d8. c16 b a gis a |
- %19
- c, e a c e8. c16 b a gis a |
- d, f a d f8. e16 d c b d |
- e, d' c b a c b a d, b' a gis |
- %22
- c, a' g! f cis g' f e d f e d |
- gis, d' e f b f e d gis, d' c b |
- a b c e a b c a e c a g! |
- % 25
- % B"arenreiter and Chester say "c bes c"
- fis a c d es8. d16 c bes c a' |
- bes, a bes d g, es' f g a, g' f es |
- d c d f bes, g' a bes cis, bes' a g |
- % 28
- f e f a d, bes' c! d e,! d' c bes |
- a g a c f, d' e f g, f' e d |
- cis g f e a, e' f g cis bes! a g |
- %31
- f g a cis d a g f a f e d |
- gis d e f a, f' e d gis f! e d |
- cis b cis e a e cis e a, g'! f e |
- %34
- f e f a d a f a d, c'! bes a |
- g f g cis e cis g cis a, g' f e |
- d a' d e f d a f d c'! bes a |
- %37
- g a bes d, es f g a bes g es' g, |
- f g a cis, d e! f g a f d' f, |
- e f g bes, a b cis d e bes g' bes, |
- %40
- cis,8 a' g'4 ~ g16 bes a g |
- f e d e f d a' f d' a f d |
- gis,8 f' d'4 ~ d16 f e d |
- cis b a b cis a d a e' a, f' a, |
- %44
- g' e cis e a, cis e f g f g e |
- f d cis d a cis d e f e f d |
- e cis b cis a b cis d e d e cis |
- %47
- d b a b f gis b cis d cis d b |
- \stemUp <cis4^\fermata e,> \stemBoth r r |
- bes16 g fis g es g d g es g bes d, |
- cis-- e! g a bes8. a16 g fis g e' |
- %51
- f,! d' bes g a f e g f d cis e |
- d bes a g fis-- a c! es d c bes a |
- bes g fis g es g d g es g bes d, |
- %54
- \stemUp g'8. f16
- e!16 d cis b a g f e \stemBoth |
- d-- a' d e f e d c! bes! a g f |
- e-- a cis e g f e d cis b a g |
- f a d f a d, f a d bes! c! a |
- g, d' g a bes g fis g es' g, d' g, |
- \stemUp <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,>
-}
-
-preludeB = \notes \relative c {
- \context Voice=ii
- \stemDown
- s2.*47
- %48
- g4 s2 |
- s2.*5
- %54
- <cis,4 bes'> s2 |
- s2.*4
- a'2. a a a <a d,>
-}
-
-
-figB = \notes{ s16( s s )s }
-figC = \notes{ s16( s ) s s }
-figD = \notes{ s16 s( s )s }
-figE = \notes{ s16( s s s s s s )s }
-figF = \notes{ s8.()s16 }
-
-% of course, i just type fig1, and add the \ and the silly $ later
-preludeSlurs = \notes{
- \context Voice=i
- s4 s4 \figD |
- \figB s4 \figD |
- \figB s4 \figD |
- \figB s8( s s )s |
- %5
- \figD s2 |
- s2. |
- s2 \figB |
- s2 \figB |
- s2 \figB |
- %10
- \figD \figD \figB |
- \figD \figD s4 |
- \figD s2 |
- s4 s4 \figD |
- \figD \figD \figD |
- %15
- s4 s s16 s s8 |
- \figD \figD s4 |
- s2. |
- \figB s4 \figB |
- s2 \figB |
- %20
- \figB s4 \figB |
- s4 \figD \figD |
- \figD \figD \figD |
- s2 \figB |
- s2. |
- %25
- \figD s4 \figB |
- \figC \figD \figD |
- \figC \figD \figD |
- \figC \figD s4 |
- \figC \figD \figD |
- %30
- \figD \figD \figB |
- \figC \figD \figD |
- s2. |
- s4 \figD \figD |
- \figC \figD \figD |
- %35
- \figC s2 |
- s2. |
- s2. |
- s2. |
- s2. |
- %40
- s4 s4 \figD |
- \figB s2 |
- s2 \figD |
- \figC s2 |
- s2. |
- %45
- s2. |
- s4 \figC s4 |
- \figD \figC s4 |
- s2. |
- \figD s2 |
- %50
- \figD s4 \figC |
- s2. |
- s4 \figD s4 |
- s2 \figC |
-% s8()s \figE |
-% s8.()s16 \figE |
- \figF \figE |
- %55
- \figD \figE |
- \figD \figE |
- \figD \figD s4 |
- s4 \figD s4 |
-}
-
-preludeA = \notes<
- \preludeNotes
- \preludeSlurs
->
-
-prelude = \context Staff \notes<
- \preludeA
- \preludeB
->
-
-\version "1.3.117";
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "prelude-urtext.ly";
-
-preludeViolaGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef alto;
- \skip 2.*63;
- \bar "|.";
-}
-
-preludeViolaScripts = \notes{
-}
-
-preludeViolaStaff = \context Staff <
- \notes \transpose c'' \prelude
- \preludeViolaGlobal
- \preludeViolaScripts
->
-
-\score{
- \preludeViolaStaff
- \paper{ }
- \midi{ \tempo 4 = 40; }
- \header{
- opus= "" ;
- piece ="Pr\\'elude"; }
-}
-
+++ /dev/null
-
-
-
-\version "1.3.117";
-
-\include "sarabande-urtext.ly";
-
-sarabandeCelloGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef bass;
- \repeat "volta" 2 {
- s2.*12
- } \repeat "volta" 2 {
- s2.*16
- }
-}
-
-sarabandeCelloScripts = \notes{
-}
-
-sarabandeCelloStaff = \context Staff <
- \sarabande
- \sarabandeCelloGlobal
- \sarabandeCelloScripts
->
-
-\score{
- \sarabandeCelloStaff
- \paper{ }
- \midi{ \tempo 4 = 40; }
- \header{
- opus= "" ;
- piece ="Sarabande"; }
-}
-
+++ /dev/null
-% sarabande-urtext.ly
-% belongs together with -cello.ly and -viola.ly
-% (who is going to make a -violin.ly?)
-
-%{
-Well, there are still some scripts in this "urtext".
-But merging melodic and scripts doen't work too well yet (see viola_scripts).
-%}
-
-sarabandeA = \context Staff \notes \relative c {
- \context Voice=i
- \stemUp d8. e16 e4.-\trill d16 e |
- f4. \stemBoth e8 d c |
- [bes g'] f e16(f g a bes)d, |
- cis4.-\trill b8 a g |
- % copy bar 1, half bar 2
- \stemUp d'8. e16 f4.-\trill d16 e |
- %5
- f4. \stemBoth d8 e f |
- g bes16()a c()bes a()g d'8 f, |
- \stemUp e4.-\trill \stemBoth d8 c bes |
- %8
- \stemUp f' g16()a a4. g16()f |
- g8 a16()bes bes4. c16()d |
- % 11
- \stemBoth e,8 f c, g' f' e |
- f4 f,2 |
- \stemUp a'4 a4.-\trill bes8 |
- c bes16 a \stemBoth fis8.-\trill es16 d8 c |
- bes g' a, fis' es' d |
- %16
- \stemUp bes4.-\trill \stemBoth a8 g f! |
- e bes a f' g a |
- d, as g es' f g |
- cis, bes' a g16 f e!8 f16 d |
- cis8 e16 a a,8. g'16 f8()e |
- %21
- \stemUp d e16()f f4. e16()d |
- e8 f16()g g4. a16()bes |
- a8 cis16 d d,8 e16 f32 g f8-\trill e16()d |
- d4 d,16 a'( b cis d e f )g |
- %25
- a(b c)b c4. b16()a |
- b cis d cis d4. e16()f |
- \stemBoth d(cis)d f, a,8 e' d' cis |
- d4 d,,2 |
-}
-
-sarabandeB = \context Staff \notes \relative c {
- \context Voice=ii
- \stemDown
-% dispute
-% d4 a2 |
-% this avoids the clash bug
- d8. s16 a2 |
- <a4. d,> s8*3 |
- s2.*2
- %5
-%disp
-% <a4 f> a2 |
- <a8. f> s16 a2 |
- <a4. d,> s8*3 |
- s2. |
- % 8
- <g4. c,> s8*3 |
- a4 <bes4. d> r8 |
- %10
- bes4 <g2 f'> |
- s2.*2 |
- f'8 es es4. r8 |
- d4 s2 |
- %15
- s2. |
- <d4. g,> s8*3 |
- s2.*4 |
- %21
- bes4 g2 |
- g4 <bes4. cis,> s8 |
- <d8 a f> r r g, a4 |
- s2. |
- f'4 fis4. s8 |
- <d4 g,> gis4. s8 |
- s2.*2
- \bar "|.";
-}
-
-
-sarabande = \context Staff \notes<
- \sarabandeA
- \sarabandeB
->
-
-\version "1.3.117";
+++ /dev/null
-\version "1.3.117";
-
-\include "sarabande-urtext.ly";
-
-sarabandeViolaGlobal = \notes{
- \time 3/4;
- \key f \major;
- \clef alto;
- \repeat "volta" 2 {
- s2.*12
- } \repeat "volta" 2 {
- s2.*16
- }
-}
-
-sarabandeViolaScripts = \notes{
-}
-
-sarabandeViolaStaff = \context Staff <
- \notes \transpose c'' \sarabande
- \sarabandeViolaGlobal
- \sarabandeViolaScripts
->
-
-\score{
- \sarabandeViolaStaff
- \paper{ }
- \midi{ \tempo 4 = 40; }
- \header{
- opus= "" ;
- piece ="Sarabande"; }
-}
-
+++ /dev/null
-instr="cello"
-instrument="Violoncello"
-\include "solo-cello-suite-ii.ly"
-
+++ /dev/null
-instr="viola"
-instrument="Viola"
-\include "solo-cello-suite-ii.ly"
-
+++ /dev/null
-\include "header.ly"
-
-\paper {
-linewidth = 180.\mm;
-% \translator { \BarNumberingStaffContext }
-}
-
-% \include "prelude-" + \instr + ".ly";
-i = "prelude-" + \instr + ".ly"
-ii = "allemande-" + \instr + ".ly"
-iii = "courante-" + \instr + ".ly"
-iv = "sarabande-" + \instr + ".ly"
-v = "menuetto-" + \instr + ".ly"
-vi = "gigue-" + \instr + ".ly"
-
-\include \i
-\include \ii
-\include \iii
-\include \iv
-\include \v
-\include \vi
+++ /dev/null
-# mutopia/mutopia.make
-
-#
-# Magic: find and include LilyPond's StepMake rules
-#
-# 0: follow LILYPONDPREFIX
-# 1: try source tree
-# 2: try installed tree in $HOME
-# 3: try system installed tree
-#
-make-root=$(wildcard $(LILYPONDPREFIX)/make)
-make-root?=$(wildcard $(HOME)/usr/src/lilypond/make)
-make-root?=$(wildcard /usr/share/lilypond/make)
-make-root?=$(wildcard /usr/share/lilypond/make)
-#make-root=<LilyPond's datadir>/make
-ifneq ($(make-root),)
-### some versions apparently choke on $(message)
-### $(message running from $(make-root))
-depth=$(make-root)/..
-LOCALSTEPMAKE_TEMPLATES=ly mutopia
-include $(make-root)/stepmake.make
-else
-$(error can't find LilyPond's stepmake installation)
-endif
-#
-
+++ /dev/null
-# Yolily_Debian_rules.make
-
-#empty
+++ /dev/null
-# Yolily_Debian_targets.make
-
-default: $(OUTCONF_FILES)
-
-$(outdir)/%: %
- rm -f $@
- ln $< $@
-
-$(outdir)/control: $(addprefix $(outdir)/, $(BLURBS))
-
-$(outdir)/%: $(doc-dir)/%.in
- rm -f $@
- cat $< | sed 's%^% %' > $@
-
-localdist: default
+++ /dev/null
-# Yolily_Debian_vars.make
-
-#empty
-
+++ /dev/null
-# Yolily_topdoc_rules.make
-
-# empty
-
+++ /dev/null
-# Yolily_topdoc_targets.make
-
-default: local-doc
-
-# urg
-$(outdir)/%.html: %.yo
- $(YODL2HTML) -doutdir=$(outdir) --live-data=3 -o $@.in $<
- $(sed-version) < $@.in > $@
- rm -f $@.in
-
-local-WWW: copy-to-top
-
-copy-to-top: $(TO_TOP_FILES)
- $(foreach i, $(TO_TOP_FILES), \
- cp $(i) $(depth)/ && ) true
- -cp $(outdir)/*png $(outdir)/index.html $(depth) # don't fail if not making website
+++ /dev/null
-# Yolily_topdoc_vars.make
-
-TO_TOP_FILES=$(addprefix $(outdir)/, $(README_TOP_FILES))
-
+++ /dev/null
-# -*-Makefile-*-
-# title Yolily_Toplevel_rules.make
-
-# empty
+++ /dev/null
-# -*-Makefile-*-
-# title Yolily_Toplevel_targets.make
-
-local-dist: do-top-doc
-
-$(package-icon):
- $(MAKE) -C Documentation/pictures icon
-
-do-top-doc:
- -$(MAKE) -C Documentation/topdocs/ README_TOP_FILES="$(README_TXT_FILES)" copy-to-top
-
-$(README_TXT_FILES): do-top-doc
-
-local-clean:
-
-
-# if you fix this, please fix yodl too!
-check-top-web:
- $(MAKE) -C Documentation/topdocs WWW
-
+++ /dev/null
-# -*-Makefile-*-
-# title Yolily_Toplevel_vars.make
-
-include $(stepdir)/documentation-vars.make
-
+++ /dev/null
-
-\def\file#1{\verb+#1+}
-
-% ugh: trick to get examples not generate par
-% these are for 16pt
-\def\lilypondpaperlinewidth{-28.452756}%
-\def\lilypondpaperindent{28.452756}%
-\def\lilypondpaperrulethickness{0.400000}%
-\def\lilypondpaperbarsize{16.000000}%
-\def\lilypondpaperinterline{4.000000}%
-\def\lilypondpapernotewidth{5.930000}%
-\def\lilypondpaperwholewidth{8.640000}%
-\def\lilypondpaperunitspace{22.000000}%
-\def\lilypondpaperbasicspace{4.000000}%
-\def\lilypondpapergeometric{0.000000}%
-\def\lilypondpaperarithmetic_basicspace{2.000000}%
-\def\lilypondpaperarithmetic_multiplier{4.800000}%
-\def\lilypondpaperinterbeam{3.140000}%
-\def\lilypondpapergourlay_energybound{100000.000000}%
-\def\lilypondpapergourlay_maxmeasures{14.000000}%
-% huh?
-% \def\exampleheight{2\lilypondpaperbarsize pt}
-\def\exampleheight{2cm}
-
-% ful of pars, needs the above
-\input lilyponddefs
-
-% generates par
-\def\interscoreline{}
-% generates par
-%\musixsixteendefs
-%\def\musixsixteendefs{}
-\def\nolilyfooter{}
-%urg: missing \begin{document}?
-%0ef\noindent{}
+++ /dev/null
-% pedal.tex
-
-\hsize = 296mm
-\vsize = 210mm
-
-% fix chord.cc::banter_str before removing these
-\def\fetdef#1#2{%
- \def#1{\hbox{\char#2}}}
-
-\fetdef\pedalasterisk{101}
-\fetdef\pedaldash{102}
-\fetdef\pedaldot{103}
-\fetdef\pedalP{104}
-\fetdef\pedald{105}
-\fetdef\pedale{106}
-
-%\font\fetatwentysixfontt=feta26 scaled \magstep 4
-%\font\fetatwentysixfontt=feta26 scaled 18842
-\font\fetatwentysixfontt=feta26 scaled 2407
-\magnification \magstep 4
-
-\def\fetafont{\fetatwentysixfontt}
-
-\baselineskip 12mm
-
-\vbox{
-\kern 20mm
-
-\hbox{
-\fetatwentysixfontt
-\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot}
-\kern 50mm
-\pedalasterisk
-}
-}
-
-\end
-
-%\endinput