18 #ifndef RAUL_SMF_WRITER_HPP
19 #define RAUL_SMF_WRITER_HPP
24 #include "raul/MIDISink.hpp"
25 #include "raul/TimeStamp.hpp"
38 bool start(
const std::string& filename,
39 TimeStamp start_time)
throw (std::logic_error);
41 TimeUnit unit()
const {
return _unit; }
45 const unsigned char* ev)
throw (std::logic_error);
49 void finish()
throw (std::logic_error);
52 static const uint32_t VAR_LEN_MAX = 0x0FFFFFFF;
57 void write_chunk_header(
const char id[4], uint32_t length);
58 void write_chunk(
const char id[4], uint32_t length,
void* data);
61 std::string _filename;
Pure virtual base for anything you can write MIDI to.
Definition: MIDISink.hpp:31
Standard Midi File (Type 0) Writer.
Definition: SMFWriter.hpp:33
uint32_t _header_size
size of SMF header, including MTrk chunk header
Definition: SMFWriter.hpp:67
SMFWriter(TimeUnit unit)
Create a new SMF writer.
Definition: SMFWriter.cpp:43
void write_event(TimeStamp time, size_t ev_size, const unsigned char *ev)
Write an event at the end of the file.
Definition: SMFWriter.cpp:100
bool start(const std::string &filename, TimeStamp start_time)
Start a write to an SMF file.
Definition: SMFWriter.cpp:70
Raul::TimeStamp _last_ev_time
Time last event was written relative to _start_time.
Definition: SMFWriter.hpp:65
size_t write_var_len(uint32_t val)
Write an SMF variable length value.
Definition: SMFWriter.cpp:222
A real-time time stamp (possible units: frame, absolute (s), or beat).
Definition: TimeStamp.hpp:80
A type of time stamp.
Definition: TimeStamp.hpp:33