44 using TrackIndex =
unsigned int;
69 [[nodiscard]] Format get_format ()
const;
103 const std::filesystem::path &full_path,
120 static void export_midi_lane_to_sequence (
121 juce::MidiMessageSequence &message_sequence,
125 dsp::MidiEventVector * events,
126 std::optional<double> start,
127 std::optional<double> end,
128 bool lanes_as_tracks,
129 bool use_track_or_lane_pos);
146 static void export_track_to_sequence (
147 juce::MidiMessageSequence &message_sequence,
150 dsp::MidiEventVector * events,
151 std::optional<double> start,
152 std::optional<double> end,
154 bool lanes_as_tracks,
157 std::unique_ptr<dsp::MidiEventVector> own_events;
158 if (!lanes_as_tracks && use_track_pos)
160 z_return_if_fail (!events);
161 midiTrackAddText (mf, track_index, textTrackName, name_.c_str ());
162 own_events = std::make_unique<dsp::MidiEventVector> ();
165 for (
auto &lane : laned_track_mixin_->lanes ())
167 lane->write_to_midi_file (
168 mf, own_events ? own_events.get () : events, start, end,
169 lanes_as_tracks, use_track_pos);
174 own_events->write_to_midi_file (mf, midi_track_pos);
180 juce::MidiFile midi_file_;
181 Format format_ = Format::MIDI0;
182 bool for_reading_ =
false;
static void export_midi_clip_to_midi_file(const structure::arrangement::MidiClip &clip, const std::filesystem::path &full_path, int midi_version, bool export_full)
Exports the Clip to a specified MIDI file.