I am beginning to cobble together an “Export MIDI” function and I have run into an issue with te::MidiClip::getSequence() which, in fact, does not return a sequence but instead returns a te::MidiList.
File file;
FileChooser fileChooser("Choose Midi File", file, "*.mid");
if (fileChooser.browseForFileToSave(true))
{
file = fileChooser.getResult();
MidiFile midiFile;
midiFile.setTicksPerQuarterNote(960);
MidiMessageSequence midiMessageSequence;
if (const auto clipTrack{ dynamic_cast<te::ClipTrack*> (trackPtr) })
{
Array<te::MidiClip*> midiClips;
for (const auto& clip : clipTrack->getClips())
{
if (const auto & midiClip{ dynamic_cast<te::MidiClip*> (clip) })
{
midiMessageSequence.addSequence(midiClip->getSequence(), 0.0);//??????
}
}
midiMessageSequence.updateMatchedPairs();
}
midiMessageSequence.addEvent(MidiMessage::endOfTrack());
midiFile.addTrack(midiMessageSequence);
const auto stream = file.createOutputStream();
midiFile.writeTo(*stream);
}
This made me think that I am missing something here. Or perhaps there is already an “Export MIDI” function somewhere that I have overlooked.