44 using TrackIndex =
unsigned int;
69 [[nodiscard]] Format get_format ()
const;
104 const std::filesystem::path &full_path,
121 static void export_midi_lane_to_sequence (
122 juce::MidiMessageSequence &message_sequence,
126 dsp::MidiEventVector * events,
127 std::optional<double> start,
128 std::optional<double> end,
129 bool lanes_as_tracks,
130 bool use_track_or_lane_pos);
147 static void export_track_to_sequence (
148 juce::MidiMessageSequence &message_sequence,
151 dsp::MidiEventVector * events,
152 std::optional<double> start,
153 std::optional<double> end,
155 bool lanes_as_tracks,
158 std::unique_ptr<dsp::MidiEventVector> own_events;
159 if (!lanes_as_tracks && use_track_pos)
161 z_return_if_fail (!events);
162 midiTrackAddText (mf, track_index, textTrackName, name_.c_str ());
163 own_events = std::make_unique<dsp::MidiEventVector> ();
166 for (
auto &lane : laned_track_mixin_->lanes ())
168 lane->write_to_midi_file (
169 mf, own_events ? own_events.get () : events, start, end,
170 lanes_as_tracks, use_track_pos);
175 own_events->write_to_midi_file (mf, midi_track_pos);
181 juce::MidiFile midi_file_;
182 Format format_ = Format::MIDI0;
183 bool for_reading_ =
false;
static void export_midi_region_to_midi_file(const structure::arrangement::MidiRegion ®ion, const std::filesystem::path &full_path, int midi_version, bool export_full)
Exports the Region to a specified MIDI file.