- str += _(", at ");
- time_t t (time (0));
- str += ctime (&t);
- str = str.left_str (str.length_i() - 1);
- }
- Midi_text generate (Midi_text::TEXT, str);
- midi_track.add (Moment (0), &generate);
-
- str = _f ("from musical definition: %s", origin_str_);
-
- Midi_text from (Midi_text::TEXT, str);
- midi_track.add (Moment (0), &from);
-
- Midi_text track_name (Midi_text::TRACK_NAME, "Track "
- + String_convert::i2dec_str (0, 0, '0'));
- midi_track.add (Moment (0), &track_name);
-
- Midi_tempo tempo (midi_l_->get_tempo_i (Moment (1, 4)));
- midi_track.add (Moment (0), &tempo);
-
- midi_stream_r << midi_track;
-}
+ Audio_staff *s = audio_staffs_[i];
+ if (be_verbose_global)
+ progress_indication ("[" + to_string (i));
+
+ /*
+ MIDI players tend to ignore instrument settings on
+ channel 10, the percussion channel by default.
+ */
+ if (channel % 16 == 9)
+ channel++;
+
+ /*
+ Huh? Why does each staff also have a separate channel? We
+ should map channels to voices, not staves. --hwn.
+ */
+ if (channel > 15)
+ {
+ warning (_ ("MIDI channel wrapped around"));
+ warning (_ ("remapping modulo 16"));
+ }