svcore  1.9
MIDIFileWriter Class Reference

Write a MIDI file. More...

#include <MIDIFileWriter.h>

Collaboration diagram for MIDIFileWriter:

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, 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
 
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
 

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 43 of file MIDIFileWriter.h.

Member Typedef Documentation

◆ MIDITrack

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

Definition at line 58 of file MIDIFileWriter.h.

◆ MIDIComposition

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

Definition at line 59 of file MIDIFileWriter.h.

Member Enumeration Documentation

◆ MIDIFileFormatType

Enumerator
MIDI_SINGLE_TRACK_FILE 
MIDI_SIMULTANEOUS_TRACK_FILE 
MIDI_SEQUENTIAL_TRACK_FILE 
MIDI_FILE_BAD_FORMAT 

Definition at line 61 of file MIDIFileWriter.h.

Constructor & Destructor Documentation

◆ MIDIFileWriter()

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

Definition at line 39 of file MIDIFileWriter.cpp.

References convert(), and m_error.

◆ ~MIDIFileWriter()

MIDIFileWriter::~MIDIFileWriter ( )
virtual

Definition at line 52 of file MIDIFileWriter.cpp.

References m_midiComposition.

Member Function Documentation

◆ isOK()

bool MIDIFileWriter::isOK ( ) const
virtual

Definition at line 69 of file MIDIFileWriter.cpp.

References m_error.

◆ getError()

QString MIDIFileWriter::getError ( ) const
virtual

Definition at line 75 of file MIDIFileWriter.cpp.

References m_error.

◆ write()

void MIDIFileWriter::write ( )
virtual

Definition at line 81 of file MIDIFileWriter.cpp.

References writeComposition().

◆ intToMIDIBytes()

string MIDIFileWriter::intToMIDIBytes ( int  number) const
protected

Definition at line 87 of file MIDIFileWriter.cpp.

Referenced by writeHeader().

◆ longToMIDIBytes()

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

Definition at line 102 of file MIDIFileWriter.cpp.

Referenced by writeTrack().

◆ longToVarBuffer()

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

Definition at line 127 of file MIDIFileWriter.cpp.

Referenced by writeTrack().

◆ getMIDITimeForTime()

unsigned long MIDIFileWriter::getMIDITimeForTime ( RealTime  t) const
protected

◆ writeHeader()

bool MIDIFileWriter::writeHeader ( )
protected

◆ writeTrack()

◆ 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().

◆ convert()

Member Data Documentation

◆ m_path

QString MIDIFileWriter::m_path
protected

Definition at line 80 of file MIDIFileWriter.h.

Referenced by writeComposition().

◆ m_exportable

const NoteExportable* MIDIFileWriter::m_exportable
protected

Definition at line 81 of file MIDIFileWriter.h.

Referenced by convert().

◆ m_sampleRate

int MIDIFileWriter::m_sampleRate
protected

Definition at line 82 of file MIDIFileWriter.h.

Referenced by convert().

◆ m_tempo

float MIDIFileWriter::m_tempo
protected

Definition at line 83 of file MIDIFileWriter.h.

Referenced by convert().

◆ m_timingDivision

int MIDIFileWriter::m_timingDivision
protected

Definition at line 84 of file MIDIFileWriter.h.

Referenced by convert(), and writeHeader().

◆ m_format

MIDIFileFormatType MIDIFileWriter::m_format
protected

Definition at line 85 of file MIDIFileWriter.h.

Referenced by convert(), and writeHeader().

◆ m_numberOfTracks

unsigned int MIDIFileWriter::m_numberOfTracks
protected

Definition at line 86 of file MIDIFileWriter.h.

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

◆ m_midiComposition

MIDIComposition MIDIFileWriter::m_midiComposition
protected

Definition at line 88 of file MIDIFileWriter.h.

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

◆ m_midiFile

std::ofstream* MIDIFileWriter::m_midiFile
protected

Definition at line 90 of file MIDIFileWriter.h.

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

◆ m_error

QString MIDIFileWriter::m_error
protected

Definition at line 91 of file MIDIFileWriter.h.

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


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