import_status.freeze = false;
import_status.quality = quality;
import_status.replace_existing_source = replace;
+ import_status.split_midi_channels = (disposition == Editing::ImportDistinctChannels);
import_status.mode = mode;
import_status.pos = pos;
tags_entry.set_sensitive (false);
if (ms) {
- channels_value.set_text (to_string(ms->num_tracks(), std::dec));
+ if (ms->is_type0()) {
+ channels_value.set_text (to_string(ms->channels().size(), std::dec));
+ } else {
+ if (ms->num_tracks() > 1) {
+ channels_value.set_text (to_string(ms->num_tracks(), std::dec) + _("(Tracks)"));
+ } else {
+ channels_value.set_text (to_string(ms->num_tracks(), std::dec));
+ }
+ }
length_clock.set (ms->length(ms->timeline_position()));
} else {
channels_value.set_text ("");
vector<string> channel_strings;
if (mode == ImportAsTrack || mode == ImportAsTapeTrack || mode == ImportToTrack) {
+ /// XXX needs special casing for MIDI type-1 files
channel_strings.push_back (_("one track per file"));
if (selection_includes_multichannel) {
Evoral::SMF reader;
reader.open(*i);
if (reader.num_tracks() > 1) {
- multichannel = true; // "channel" == track here...
+ /* NOTE: we cannot merge midi-tracks.
+ * they will always be on separate tracks
+ * "one track per file" is not possible.
+ */
+ //multichannel = true; // "channel" == track here...
+ }
+ if (reader.is_type0 () && reader.channels().size() > 1) {
+ /* for type-0 files, we can split
+ * "one track per channel"
+ */
+ multichannel = true;
}
/* XXX we need err = true handling here in case