From: fred Date: Wed, 27 Mar 2002 00:56:33 +0000 (+0000) Subject: lilypond-1.3.133 X-Git-Tag: release/1.5.59~904 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a87140060f20d125331291ac7a1c46e8f71970ea;p=lilypond.git lilypond-1.3.133 --- diff --git a/input/bugs/tie-break-accidental.ly b/input/bugs/tie-break-accidental.ly new file mode 100644 index 0000000000..0b2c0e8ede --- /dev/null +++ b/input/bugs/tie-break-accidental.ly @@ -0,0 +1,14 @@ +\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; + } +} diff --git a/lily/include/main.hh b/lily/include/main.hh index e495ade889..5405857a4b 100644 --- a/lily/include/main.hh +++ b/lily/include/main.hh @@ -25,6 +25,7 @@ extern void set_inclusion_names (Array); extern bool dependency_global_b; extern String dependency_prefix_global; extern Array 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; diff --git a/lily/main.cc b/lily/main.cc index 8713c7d741..868dbbd077 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -50,6 +50,9 @@ Array dump_header_fieldnames_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; @@ -116,6 +119,7 @@ static Long_option_init options_static[] = { {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} }; @@ -456,6 +460,9 @@ main (int argc, char **argv) case 'T': no_timestamps_global_b = true; break; + case 'X': + midi_debug_global_b = true; + break; default: assert (false); break; diff --git a/lily/midi-item.cc b/lily/midi-item.cc index c0d980d536..64aa262a26 100644 --- a/lily/midi-item.cc +++ b/lily/midi-item.cc @@ -7,6 +7,7 @@ */ #include "debug.hh" +#include "main.hh" #include "misc.hh" #include "string.hh" #include "string-convert.hh" @@ -450,8 +451,8 @@ Midi_note_off::Midi_note_off (Midi_note* n) // Anybody who hears any difference, or knows how this works? // 0 should definitely be avoided, notes stick on some sound cards. // 64 is supposed to be neutral + aftertouch_byte_ = 64; - } String @@ -598,12 +599,12 @@ 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 *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; diff --git a/lily/midi-stream.cc b/lily/midi-stream.cc index 976130a3f0..813694b29e 100644 --- a/lily/midi-stream.cc +++ b/lily/midi-stream.cc @@ -37,11 +37,10 @@ Midi_stream::operator << (String str) Midi_stream& Midi_stream::operator << (Midi_item const& midi_c_r) { -// *this <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) diff --git a/lily/midi-walker.cc b/lily/midi-walker.cc index b99b611c69..986a58ebdb 100644 --- a/lily/midi-walker.cc +++ b/lily/midi-walker.cc @@ -48,26 +48,43 @@ Midi_walker::do_start_note (Midi_note* note_p) { 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); + } } /** @@ -111,8 +128,8 @@ Midi_walker::process() /* 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_; diff --git a/lily/separating-line-group-engraver.cc b/lily/separating-line-group-engraver.cc index 0e726c1d4f..cb3f54040e 100644 --- a/lily/separating-line-group-engraver.cc +++ b/lily/separating-line-group-engraver.cc @@ -1,5 +1,5 @@ /* - 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 diff --git a/lily/swallow-engraver.cc b/lily/swallow-engraver.cc index 26719c8477..3823f2c1f5 100644 --- a/lily/swallow-engraver.cc +++ b/lily/swallow-engraver.cc @@ -5,12 +5,22 @@ (c) 1997--2001 Han-Wen Nienhuys */ -#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*) diff --git a/lily/tie-engraver.cc b/lily/tie-engraver.cc index 75139c817d..2d65a00d02 100644 --- a/lily/tie-engraver.cc +++ b/lily/tie-engraver.cc @@ -7,7 +7,6 @@ */ -#include "tie-engraver.hh" #include "command-request.hh" #include "rhythmic-head.hh" #include "musical-request.hh" diff --git a/mutopia/Coriolan/header.ly b/mutopia/Coriolan/header.ly index dec1d9fae6..004a4de362 100644 --- a/mutopia/Coriolan/header.ly +++ b/mutopia/Coriolan/header.ly @@ -1,7 +1,10 @@ +% Ugh, we need to override some LaTeX titling stuff \header { - title = "Ouverture"; - subtitle = "Coriolan"; + title = "Ouverture\\vrule width0pt height 0pt depth 1ex"; + subtitle = "\\normalsize Zu Heinrich Joseph v. Collins Trauerspiel\\vrule width0pt height 0pt depth 1ex"; + subsubtitle = "\\Large\\bf Coriolan"; opus = "Op. 62"; + piece = "\\normalfont\\large Allegro con brio"; composer = "Ludwig van Beethoven (1770-1827)"; enteredby = "JCN"; instrument = \instrument; @@ -12,12 +15,82 @@ 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