- midi_stream_r << Midi_header (1, tracks_i, clocks_per_4_i);
- output_header_track (midi_stream_r);
- int n = 1;
- for (PCursor<Audio_staff*> i (audio_staff_l_list_); i.ok(); i++)
- i->output (midi_stream_r, n++);
+
+ midi_stream << Midi_header (1, tracks_i, clocks_per_4_i);
+ output_header_track (midi_stream);
+ progress_indication ("\n");
+ progress_indication (_ ("Track ... "));
+ int channel = 0;
+ for (int i =0; i < audio_staff_l_arr_.size (); i++)
+ {
+ Audio_staff *s = audio_staff_l_arr_[i];
+ if (verbose_global_b)
+ progress_indication ("[" + to_str (i)) ;
+
+ /*
+ MIDI players tend to ignore instrument settings on
+ channel 10, the percussion channel by default.
+ */
+ if (channel == 9)
+ channel++;
+ if (s->channel_i_ < 0)
+ s->channel_i_ = channel;
+ s->output (midi_stream, channel++);
+ if (verbose_global_b)
+ progress_indication ("]");
+ }