Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
midi_file.hpp
Go to the documentation of this file.
1#pragma once
2
4#include <string>
5#include <vector>
6#include <optional>
7
8namespace pulp::midi {
9
10// A MIDI event with absolute time position
15
16// A sequence of timed MIDI events (one track)
17struct MidiTrack {
18 std::string name;
19 std::vector<TimedMidiEvent> events;
20};
21
22// A complete MIDI file
24 double tempo_bpm = 120.0;
26 std::vector<MidiTrack> tracks;
27
28 double duration_seconds() const;
29 size_t total_events() const;
30};
31
32// Read a standard MIDI file (.mid)
33std::optional<MidiFileData> read_midi_file(const std::string& path);
34
35// Write a MIDI file
36bool write_midi_file(const std::string& path, const MidiFileData& data);
37
38} // namespace pulp::midi
Definition custom_node_events.hpp:26
bool write_midi_file(const std::string &path, const MidiFileData &data)
std::optional< MidiFileData > read_midi_file(const std::string &path)
Timestamped MIDI event combining a choc::midi::ShortMessage with timing info.
Definition message.hpp:32
Definition midi_file.hpp:23
size_t total_events() const
int ticks_per_quarter
Definition midi_file.hpp:25
double duration_seconds() const
double tempo_bpm
Definition midi_file.hpp:24
std::vector< MidiTrack > tracks
Definition midi_file.hpp:26
Definition midi_file.hpp:17
std::string name
Definition midi_file.hpp:18
std::vector< TimedMidiEvent > events
Definition midi_file.hpp:19
Definition midi_file.hpp:11
MidiEvent event
Definition midi_file.hpp:13
double time_seconds
Definition midi_file.hpp:12