Write a MIDI file. More...

#include <MIDIFileWriter.h>

Collaboration diagram for MIDIFileWriter:
Collaboration graph

Public Member Functions

 MIDIFileWriter (QString path, const NoteExportable *exportable, sv_samplerate_t sampleRate, float tempo=120.f)
 
 ~MIDIFileWriter ()
 
bool isOK () const
 
QString getError () const
 
void write ()
 

Protected Types

enum  MIDIFileFormatType { MIDI_SINGLE_TRACK_FILE = 0x00, MIDI_SIMULTANEOUS_TRACK_FILE = 0x01, MIDI_SEQUENTIAL_TRACK_FILE = 0x02, MIDI_FILE_BAD_FORMAT = 0xFF }
 
typedef std::vector< MIDIEvent * > MIDITrack
 
typedef std::map< unsigned int, MIDITrackMIDIComposition
 

Protected Member Functions

std::string intToMIDIBytes (int number) const
 
std::string longToMIDIBytes (unsigned long number) const
 
std::string longToVarBuffer (unsigned long number) const
 
unsigned long getMIDITimeForTime (RealTime t) const
 
bool writeHeader ()
 
bool writeTrack (int track)
 
bool writeComposition ()
 
bool convert ()
 

Protected Attributes

QString m_path
 
const NoteExportablem_exportable
 
sv_samplerate_t m_sampleRate
 
float m_tempo
 
int m_timingDivision
 
MIDIFileFormatType m_format
 
unsigned int m_numberOfTracks
 
MIDIComposition m_midiComposition
 
std::ofstream * m_midiFile
 
QString m_error
 

Detailed Description

Write a MIDI file.

This includes file write code for generic simultaneous-track MIDI files, but the conversion stage only supports a single-track MIDI file with fixed tempo, time signature and timing division.

Definition at line 44 of file MIDIFileWriter.h.

Member Typedef Documentation

typedef std::vector<MIDIEvent *> MIDIFileWriter::MIDITrack
protected

Definition at line 59 of file MIDIFileWriter.h.

typedef std::map<unsigned int, MIDITrack> MIDIFileWriter::MIDIComposition
protected

Definition at line 60 of file MIDIFileWriter.h.

Member Enumeration Documentation

Enumerator
MIDI_SINGLE_TRACK_FILE 
MIDI_SIMULTANEOUS_TRACK_FILE 
MIDI_SEQUENTIAL_TRACK_FILE 
MIDI_FILE_BAD_FORMAT 

Definition at line 62 of file MIDIFileWriter.h.

Constructor & Destructor Documentation

MIDIFileWriter::MIDIFileWriter ( QString  path,
const NoteExportable exportable,
sv_samplerate_t  sampleRate,
float  tempo = 120.f 
)

Definition at line 44 of file MIDIFileWriter.cpp.

References convert(), and m_error.

MIDIFileWriter::~MIDIFileWriter ( )

Definition at line 57 of file MIDIFileWriter.cpp.

References m_midiComposition.

Member Function Documentation

bool MIDIFileWriter::isOK ( ) const

Definition at line 74 of file MIDIFileWriter.cpp.

References m_error.

QString MIDIFileWriter::getError ( ) const

Definition at line 80 of file MIDIFileWriter.cpp.

References m_error.

void MIDIFileWriter::write ( )

Definition at line 86 of file MIDIFileWriter.cpp.

References writeComposition().

string MIDIFileWriter::intToMIDIBytes ( int  number) const
protected

Definition at line 92 of file MIDIFileWriter.cpp.

Referenced by writeHeader().

string MIDIFileWriter::longToMIDIBytes ( unsigned long  number) const
protected

Definition at line 107 of file MIDIFileWriter.cpp.

Referenced by writeTrack().

string MIDIFileWriter::longToVarBuffer ( unsigned long  number) const
protected

Definition at line 132 of file MIDIFileWriter.cpp.

Referenced by writeTrack().

unsigned long MIDIFileWriter::getMIDITimeForTime ( RealTime  t) const
protected
bool MIDIFileWriter::writeHeader ( )
protected
bool MIDIFileWriter::writeComposition ( )
protected

Definition at line 282 of file MIDIFileWriter.cpp.

References m_error, m_midiFile, m_numberOfTracks, m_path, writeHeader(), and writeTrack().

Referenced by write().

Member Data Documentation

QString MIDIFileWriter::m_path
protected

Definition at line 81 of file MIDIFileWriter.h.

Referenced by writeComposition().

const NoteExportable* MIDIFileWriter::m_exportable
protected

Definition at line 82 of file MIDIFileWriter.h.

Referenced by convert().

sv_samplerate_t MIDIFileWriter::m_sampleRate
protected

Definition at line 83 of file MIDIFileWriter.h.

Referenced by convert().

float MIDIFileWriter::m_tempo
protected

Definition at line 84 of file MIDIFileWriter.h.

Referenced by convert().

int MIDIFileWriter::m_timingDivision
protected

Definition at line 85 of file MIDIFileWriter.h.

Referenced by convert(), and writeHeader().

MIDIFileFormatType MIDIFileWriter::m_format
protected

Definition at line 86 of file MIDIFileWriter.h.

Referenced by convert(), and writeHeader().

unsigned int MIDIFileWriter::m_numberOfTracks
protected

Definition at line 87 of file MIDIFileWriter.h.

Referenced by convert(), writeComposition(), and writeHeader().

MIDIComposition MIDIFileWriter::m_midiComposition
protected

Definition at line 89 of file MIDIFileWriter.h.

Referenced by convert(), writeTrack(), and ~MIDIFileWriter().

std::ofstream* MIDIFileWriter::m_midiFile
protected

Definition at line 91 of file MIDIFileWriter.h.

Referenced by writeComposition(), writeHeader(), and writeTrack().

QString MIDIFileWriter::m_error
protected

Definition at line 92 of file MIDIFileWriter.h.

Referenced by getError(), isOK(), MIDIFileWriter(), and writeComposition().


The documentation for this class was generated from the following files: