#include <SMFReader.hpp>
Public Member Functions | |
SMFReader (const std::string filename="") | |
bool | open (const std::string &filename) throw (std::logic_error, UnsupportedTime) |
bool | seek_to_track (unsigned track) throw (std::logic_error) |
uint16_t | type () const |
uint16_t | ppqn () const |
size_t | num_tracks () |
int | read_event (size_t buf_len, uint8_t *buf, uint32_t *ev_size, uint32_t *ev_delta_time) throw (std::logic_error, PrematureEOF, CorruptFile) |
void | close () |
Static Public Member Functions | |
static uint32_t | read_var_len (FILE *fd) throw (PrematureEOF) |
Protected Attributes | |
std::string | _filename |
FILE * | _fd |
uint16_t | _type |
uint16_t | _ppqn |
uint16_t | _num_tracks |
uint32_t | _track |
uint32_t | _track_size |
Static Protected Attributes | |
static const uint32_t | HEADER_SIZE = 22 |
size of SMF header, including MTrk chunk header |
Currently this only reads SMF files with tempo-based timing.