X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fperformance.cc;h=f25b63eea11c5d25175cb7bb27007667938f3202;hb=4c98b01aebe68dfd73d4954ad67143d4a85a250b;hp=e10a51c229e258d3595f534ce9518b0cee214463;hpb=73be5f6fe264e90a56e45f2d70129b133731188b;p=lilypond.git diff --git a/lily/performance.cc b/lily/performance.cc index e10a51c229..f25b63eea1 100644 --- a/lily/performance.cc +++ b/lily/performance.cc @@ -29,12 +29,6 @@ Performance::Performance () audio_elem_p_list_ = 0; } -void -Performance::add_column (Audio_column* p) -{ - p->performance_l_ = this; - add_element (p); -} Performance::~Performance() { @@ -51,18 +45,19 @@ Performance::output (Midi_stream& midi_stream) midi_stream << Midi_header (1, tracks_i, clocks_per_4_i); output_header_track (midi_stream); - int n = 1; + int channel = 1; for (int i =0; i < audio_staff_l_arr_.size (); i++) { Audio_staff *s = audio_staff_l_arr_[i]; + /* Aargh, let's hear it for the MIDI standard. MIDI players tend to ignore instrument settings on channel 10, the percussion channel by default. */ - if (n == 10) - n++; - s->output (midi_stream, n++); + if (channel == 9) + channel++; + s->output (midi_stream, channel++); } } @@ -110,15 +105,17 @@ Performance::output_header_track (Midi_stream& midi_stream) midi_stream << midi_track; } -void -Performance::add_staff (Audio_staff* l) -{ - audio_staff_l_arr_.push (l); -} - void Performance::add_element (Audio_element *p) { + if (Audio_staff*s=dynamic_cast (p)) + { + audio_staff_l_arr_.push (s); + } + else if (Audio_column *c = dynamic_cast(p)) + { + c->performance_l_ = this; + } audio_elem_p_list_ = new Killing_cons (p, audio_elem_p_list_); }