--- /dev/null
+\header {
+texidoc = "First and second bes (tied across line break)
+should get an accidental, but others should not";
+}
+
+\score {
+ \notes {
+ bes1 ~ | \break
+ bes2 ~ bes4 ~ bes4 ~ | bes1
+ }
+ \paper {
+ linewidth = 40*\staffspace;
+ }
+}
extern bool dependency_global_b;
extern String dependency_prefix_global;
extern Array<String> dump_header_fieldnames_global;
+extern bool midi_debug_global_b;
extern bool no_paper_global_b;
extern bool no_timestamps_global_b;
extern String output_format_global;
/* Name of initialisation file. */
String init_name_global;
+/* Write midi as formatted ascii stream? */
+bool midi_debug_global_b;
+
/* Do not calculate and write paper output? */
bool no_paper_global_b = false;
{0, "version", 'v', _i ("print version number")},
{0, "verbose", 'V', _i("verbose")},
{0, "warranty", 'w', _i ("show warranty and copyright")},
+ {0, "midi-debug", 'X', _i ("write midi ouput in formatted ascii")},
{0,0,0,0}
};
case 'T':
no_timestamps_global_b = true;
break;
+ case 'X':
+ midi_debug_global_b = true;
+ break;
default:
assert (false);
break;
*/
#include "debug.hh"
+#include "main.hh"
#include "misc.hh"
#include "string.hh"
#include "string-convert.hh"
// 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
Midi_track::data_str () const
{
String str = Midi_chunk::data_str ();
- if (flower_dstream && !flower_dstream->silent_b ("Midistrings"))
+ if (midi_debug_global_b)
str += "\n";
for (Cons<Midi_event> *i=event_p_list_.head_; i; i = i->next_)
{
str += i->car_->str ();
- if (flower_dstream && !flower_dstream->silent_b ("Midistrings"))
+ if (midi_debug_global_b)
str += "\n";
}
return str;
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 (midi_debug_global_b)
{
- 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)
{
Audio_item* ptr = (*item_l_arr_l_)[index_];
Moment stop_mom = note_p->length_mom () + ptr->audio_column_l_->at_mom ();
+
+ bool play_start = true;
for (int i=0; i < stop_note_queue.size(); i++)
{
+ /* if this pith already in queue */
if (stop_note_queue[i].val->pitch_i() == note_p->pitch_i ())
{
if (stop_note_queue[i].key < stop_mom)
- stop_note_queue[i].ignore_b_ = true;
- else {
- // skip the stopnote
- delete note_p;
- return;
+ {
+ /* let stopnote in queue be ignored,
+ new stop note wins */
+ stop_note_queue[i].ignore_b_ = true;
+ /* don't replay start note, */
+ play_start = false;
+ break;
+ }
+ else
+ {
+ /* skip this stopnote,
+ don't play the start note */
+ delete note_p;
+ note_p = 0;
+ break;
}
}
}
- Midi_note_event e;
- e.val = new Midi_note_off (note_p);
- e.key = stop_mom;
- stop_note_queue.insert (e);
-
- output_event (ptr->audio_column_l_->at_mom (), note_p);
+ if (note_p)
+ {
+ Midi_note_event e;
+ e.val = new Midi_note_off (note_p);
+ e.key = stop_mom;
+ stop_note_queue.insert (e);
+
+ if (play_start)
+ output_event (ptr->audio_column_l_->at_mom (), note_p);
+ }
}
/**
/*
THIS IS A MEMORY LEAK. FIXME.
- */
- //Midi_item* p = ptr->midi_item_p ();
+ where's the leak? Everything goet to Midi_track, in a killing_cons.
+ */
if (Midi_item* midi_p = Midi_item::midi_p (audio_p))
{
midi_p->channel_i_ = track_l_->number_i_;
/*
- separating-line-group-engraver.cc -- implement Separating_line_group_engraver
+' separating-line-group-engraver.cc -- implement Separating_line_group_engraver
source file of the GNU LilyPond music typesetter
(c) 1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-#include "swallow-engraver.hh"
+#include "engraver.hh"
+/**
+ This engraver swallows everything given to it silently. The purpose of
+ this is to prevent spurious "request junked" warnings.
+ */
+class Swallow_engraver : public Engraver
+{
+public:
+ VIRTUAL_COPY_CONS (Translator);
+protected:
+ bool try_music (Music*) ;
+};
-ADD_THIS_TRANSLATOR(Swallow_engraver);
-
+ADD_THIS_TRANSLATOR (Swallow_engraver);
bool
Swallow_engraver::try_music (Music*)
*/
-#include "tie-engraver.hh"
#include "command-request.hh"
#include "rhythmic-head.hh"
#include "musical-request.hh"
+% 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.";
+
+ %{
+
+ From Ouverture Coriolan is no Urtext edition available, although
+ there are Urtext editions of Beethoven's symphonys. The Eulenburg
+ edition is commonly regarded as the Coriolan Urtext.
+
+ Edition Eulenburg is the ``first after many years'' that tries to
+ stay as close to the original text as possible. During the 1900s,
+ it was customary for editors not to respect the original text and
+ make any changes they thought necessary. Unger made corrections for
+ a few ``small and obvious'' inaccuracies. This is the only score
+ edition to abbreviate (LilyPond source notation)
+
+ [es16 es g g] [b b c c]
+
+ using the notation
+
+ [es8:16 g: b: c:]
+
+ however, editions of individual parts by Breitkopf and Haertel use
+ this common practice abbreviation too.
+
+ Edition Beethoven's Werke by Breitkopf and Haertel comes without any
+ commentary, copyright mark or date. There are no significant
+ differences with ed. Unger. The copy was very old and worn, but is
+ probably younger than ed. Unger.
+
+ Edition Beethoven Werke by G. Henle was a new study based upon the
+ three main sources, the score autograph, the published parts
+ Stimmen-Drucke N.Simrock Bonn (most probably from 1807) and
+ Industriekontor Vienna (1807). They reinforce the assumptions made
+ by Unger that both published parts were first prints, noting that
+ both must have worked from a different copy of the autograph (and
+ not from the autograph itself), and that Simrock's is a bit closer
+ to the original autograph. This edition is supposed to deviate from
+ the autograph only in using `modernised notation' for the following
+ cases (LilyPond source notation).
+
+ i. Use dots instead of ties for sustaining of notes when there's no
+ measure break:
+
+ c4 ~ c8 -> c4.
+
+ ii. Don't repeat accidentals within the same measure:
+
+ \key es \major; b4 c b! c | -> \key es \major; b4 c b c
+
+ iii. Start slurring from first tied note, not from second:
+
+ c4 ~ c8 ( d ) e -> c4 ( ~ c8 d ) e
+
+ From these deviations, the third is the only one unique to this
+ edition, but these are easy to spot and mostly parenthesed; the
+ other two deviations are standard modern day music notation practice
+ and thus common to all editions.
+
+ %}
+
+ source = "i. Ed. Eulenburg, edited by 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";
maintainer_email = "janneke@gnu.org";
- lastupdated = "2001/Jan/31";
+ lastupdated = "2001/Feb/27";
mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small
\\\\This music is part of the Mutopia project,
\\texttt{http://www.mutopiaproject.org/}\\\\It has been typeset