|
svcore
1.9
|
Write a MIDI file. More...
#include <MIDIFileWriter.h>

Public Member Functions | |
| MIDIFileWriter (QString path, const NoteExportable *exportable, int sampleRate, float tempo=120.f) | |
| virtual | ~MIDIFileWriter () |
| virtual bool | isOK () const |
| virtual QString | getError () const |
| virtual 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, MIDITrack > | MIDIComposition |
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 NoteExportable * | m_exportable |
| int | 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 |
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 43 of file MIDIFileWriter.h.
typedef std::vector<MIDIEvent *> MIDIFileWriter::MIDITrack [protected] |
Definition at line 58 of file MIDIFileWriter.h.
typedef std::map<unsigned int, MIDITrack> MIDIFileWriter::MIDIComposition [protected] |
Definition at line 59 of file MIDIFileWriter.h.
enum MIDIFileWriter::MIDIFileFormatType [protected] |
| MIDI_SINGLE_TRACK_FILE | |
| MIDI_SIMULTANEOUS_TRACK_FILE | |
| MIDI_SEQUENTIAL_TRACK_FILE | |
| MIDI_FILE_BAD_FORMAT |
Definition at line 61 of file MIDIFileWriter.h.
| MIDIFileWriter::MIDIFileWriter | ( | QString | path, |
| const NoteExportable * | exportable, | ||
| int | sampleRate, | ||
| float | tempo = 120.f |
||
| ) |
Definition at line 39 of file MIDIFileWriter.cpp.
| MIDIFileWriter::~MIDIFileWriter | ( | ) | [virtual] |
Definition at line 52 of file MIDIFileWriter.cpp.
References m_midiComposition.
| bool MIDIFileWriter::isOK | ( | ) | const [virtual] |
Definition at line 69 of file MIDIFileWriter.cpp.
References m_error.
| QString MIDIFileWriter::getError | ( | ) | const [virtual] |
Definition at line 75 of file MIDIFileWriter.cpp.
References m_error.
| void MIDIFileWriter::write | ( | ) | [virtual] |
Definition at line 81 of file MIDIFileWriter.cpp.
References writeComposition().
| string MIDIFileWriter::intToMIDIBytes | ( | int | number | ) | const [protected] |
Definition at line 87 of file MIDIFileWriter.cpp.
Referenced by writeHeader().
| string MIDIFileWriter::longToMIDIBytes | ( | unsigned long | number | ) | const [protected] |
Definition at line 102 of file MIDIFileWriter.cpp.
Referenced by writeTrack().
| string MIDIFileWriter::longToVarBuffer | ( | unsigned long | number | ) | const [protected] |
Definition at line 127 of file MIDIFileWriter.cpp.
Referenced by writeTrack().
| unsigned long MIDIFileWriter::getMIDITimeForTime | ( | RealTime | t | ) | const [protected] |
| bool MIDIFileWriter::writeHeader | ( | ) | [protected] |
Definition at line 161 of file MIDIFileWriter.cpp.
References intToMIDIBytes(), m_format, m_midiFile, m_numberOfTracks, m_timingDivision, and MIDIConstants::MIDI_FILE_HEADER.
Referenced by writeComposition().
| bool MIDIFileWriter::writeTrack | ( | int | track | ) | [protected] |
Definition at line 183 of file MIDIFileWriter.cpp.
References longToMIDIBytes(), longToVarBuffer(), m_midiComposition, m_midiFile, MIDIConstants::MIDI_CHNL_AFTERTOUCH, MIDIConstants::MIDI_CTRL_CHANGE, MIDIConstants::MIDI_FILE_META_EVENT, MIDIConstants::MIDI_NOTE_OFF, MIDIConstants::MIDI_NOTE_ON, MIDIConstants::MIDI_PITCH_BEND, MIDIConstants::MIDI_POLY_AFTERTOUCH, MIDIConstants::MIDI_PROG_CHANGE, MIDIConstants::MIDI_SYSTEM_EXCLUSIVE, and MIDIConstants::MIDI_TRACK_HEADER.
Referenced by writeComposition().
| bool MIDIFileWriter::writeComposition | ( | ) | [protected] |
Definition at line 277 of file MIDIFileWriter.cpp.
References m_error, m_midiFile, m_numberOfTracks, m_path, writeHeader(), and writeTrack().
Referenced by write().
| bool MIDIFileWriter::convert | ( | ) | [protected] |
Definition at line 313 of file MIDIFileWriter.cpp.
References NoteExportable::getNotes(), m_exportable, m_format, m_midiComposition, m_numberOfTracks, m_sampleRate, m_tempo, m_timingDivision, MIDIConstants::MIDI_CUE_POINT, MIDIConstants::MIDI_END_OF_TRACK, MIDIConstants::MIDI_FILE_META_EVENT, MIDIConstants::MIDI_NOTE_OFF, MIDIConstants::MIDI_NOTE_ON, MIDIConstants::MIDI_SET_TEMPO, MIDI_SINGLE_TRACK_FILE, and notes.
Referenced by MIDIFileWriter().
QString MIDIFileWriter::m_path [protected] |
Definition at line 80 of file MIDIFileWriter.h.
Referenced by writeComposition().
const NoteExportable* MIDIFileWriter::m_exportable [protected] |
Definition at line 81 of file MIDIFileWriter.h.
Referenced by convert().
int MIDIFileWriter::m_sampleRate [protected] |
Definition at line 82 of file MIDIFileWriter.h.
Referenced by convert().
float MIDIFileWriter::m_tempo [protected] |
Definition at line 83 of file MIDIFileWriter.h.
Referenced by convert().
int MIDIFileWriter::m_timingDivision [protected] |
Definition at line 84 of file MIDIFileWriter.h.
Referenced by convert(), and writeHeader().
MIDIFileFormatType MIDIFileWriter::m_format [protected] |
Definition at line 85 of file MIDIFileWriter.h.
Referenced by convert(), and writeHeader().
unsigned int MIDIFileWriter::m_numberOfTracks [protected] |
Definition at line 86 of file MIDIFileWriter.h.
Referenced by convert(), writeComposition(), and writeHeader().
MIDIComposition MIDIFileWriter::m_midiComposition [protected] |
Definition at line 88 of file MIDIFileWriter.h.
Referenced by convert(), writeTrack(), and ~MIDIFileWriter().
std::ofstream* MIDIFileWriter::m_midiFile [protected] |
Definition at line 90 of file MIDIFileWriter.h.
Referenced by writeComposition(), writeHeader(), and writeTrack().
QString MIDIFileWriter::m_error [protected] |
Definition at line 91 of file MIDIFileWriter.h.
Referenced by getError(), isOK(), MIDIFileWriter(), and writeComposition().