21 #ifndef DRUMSTICK_QSMF_H 22 #define DRUMSTICK_QSMF_H 26 #include <QScopedPointer> 47 const quint32
MThd = 0x4d546864;
48 const quint32
MTrk = 0x4d54726b;
99 void readFromStream(QDataStream *stream);
100 void readFromFile(
const QString& fileName);
101 void writeToStream(QDataStream *stream);
102 void writeToFile(
const QString& fileName);
104 void writeMetaEvent(
long deltaTime,
int type,
const QByteArray& data);
105 void writeMetaEvent(
long deltaTime,
int type,
const QString& data);
106 void writeMetaEvent(
long deltaTime,
int type,
int data);
107 void writeMetaEvent(
long deltaTime,
int type);
109 void writeMidiEvent(
long deltaTime,
int type,
int chan,
int b1);
110 void writeMidiEvent(
long deltaTime,
int type,
int chan,
int b1,
int b2);
111 void writeMidiEvent(
long deltaTime,
int type,
int chan,
const QByteArray& data);
112 void writeMidiEvent(
long deltaTime,
int type,
long len,
char* data);
114 void writeTempo(
long deltaTime,
long tempo);
115 void writeBpmTempo(
long deltaTime,
int tempo);
116 void writeTimeSignature(
long deltaTime,
int num,
int den,
int cc,
int bb);
117 void writeKeySignature(
long deltaTime,
int tone,
int mode);
118 void writeSequenceNumber(
long deltaTime,
int seqnum);
120 long getCurrentTime();
121 long getCurrentTempo();
125 void setDivision(
int division);
127 void setTracks(
int tracks);
129 void setFileFormat(
int fileFormat);
130 QTextCodec* getTextCodec();
131 void setTextCodec(QTextCodec *codec);
138 void signalSMFError(
const QString& errorStr);
145 void signalSMFHeader(
int format,
int ntrks,
int division);
152 void signalSMFNoteOn(
int chan,
int pitch,
int vol);
159 void signalSMFNoteOff(
int chan,
int pitch,
int vol);
166 void signalSMFKeyPress(
int chan,
int pitch,
int press);
173 void signalSMFCtlChange(
int chan,
int ctl,
int value);
179 void signalSMFPitchBend(
int chan,
int value);
185 void signalSMFProgram(
int chan,
int patch);
191 void signalSMFChanPress(
int chan,
int press);
196 void signalSMFSysex(
const QByteArray& data);
201 void signalSMFSeqSpecific(
const QByteArray& data);
208 void signalSMFMetaUnregistered(
int typ,
const QByteArray& data);
214 void signalSMFMetaMisc(
int typ,
const QByteArray& data);
219 void signalSMFSequenceNum(
int seq);
224 void signalSMFforcedChannel(
int channel);
229 void signalSMFforcedPort(
int port);
235 void signalSMFText(
int typ,
const QString& data);
244 void signalSMFSmpte(
int b0,
int b1,
int b2,
int b3,
int b4);
252 void signalSMFTimeSig(
int b0,
int b1,
int b2,
int b3);
258 void signalSMFKeySig(
int b0,
int b1);
263 void signalSMFTempo(
int tempo);
267 void signalSMFendOfTrack();
271 void signalSMFTrackStart();
275 void signalSMFTrackEnd();
280 void signalSMFWriteTempoTrack();
285 void signalSMFWriteTrack(
int track);
298 QScopedPointer<QSmfPrivate> d;
303 void putByte(quint8 value);
306 quint16 to16bit(quint8 c1, quint8 c2);
307 quint32 to32bit(quint8 c1, quint8 c2, quint8 c3, quint8 c4);
310 void write16bit(quint16 data);
311 void write32bit(quint32 data);
312 void writeVarLen(quint64 value);
313 double ticksToSecs(quint64 ticks, quint16 division, quint64 tempo);
315 void readExpected(
const QString& s);
316 void addTempo(quint64 tempo, quint64 time);
318 void SMFError(
const QString& s);
319 void channelMessage(quint8 status, quint8 c1, quint8 c2);
321 void msgAdd(quint8 b);
322 void metaEvent(quint8 b);
324 void badByte(quint8 b,
int p);
325 quint8 lowerByte(quint16 x);
326 quint8 upperByte(quint16 x);
328 void writeHeaderChunk(
int format,
int ntracks,
int division);
329 void writeTrackChunk(
int track);
const quint8 text_event
SMF Text event.
const quint8 control_change
MIDI event Control change.
const quint8 lyric
SMF Lyric.
const quint8 key_signature
SMF Key signature.
const quint8 meta_event
SMF Meta Event prefix.
const quint8 midi_command_mask
Mask to extract the command from the status byte.
The QObject class is the base class of all Qt objects.
const quint8 forced_channel
SMF Forced MIDI channel.
const quint8 note_on
MIDI event Note On.
Drumstick visibility macros.
const quint8 sequencer_specific
SMF Sequencer specific.
const quint8 instrument_name
SMF Instrument name.
const quint8 marker
SMF Marker.
const quint32 MThd
SMF Header prefix.
const quint8 poly_aftertouch
MIDI event Polyphonic pressure.
const quint8 sequence_name
SMF Sequence name.
const quint8 end_of_track
SMF End of track.
const quint8 major_mode
Major mode scale.
const quint8 minor_mode
Minor mode scale.
const quint8 set_tempo
SMF Tempo change.
const quint8 program_chng
MIDI event Program change.
const quint8 midi_channel_mask
Mask to extract the channel from the status byte.
const quint32 MTrk
SMF Track prefix.
const quint8 note_off
MIDI event Note Off.
const quint8 forced_port
SMF Forced MIDI port.
const quint8 copyright_notice
SMF Copyright notice.
Standard MIDI Files input/output.
const quint8 end_of_sysex
MIDI event System Exclusive end.
const quint8 smpte_offset
SMF SMPTE offset.
const quint8 pitch_wheel
MIDI event Bender.
const quint8 time_signature
SMF Time signature.
const quint8 sequence_number
SMF Sequence number.
const quint8 channel_aftertouch
MIDI event Channel after-touch.
const quint8 system_exclusive
MIDI event System Exclusive begin.
const quint8 cue_point
SMF Cue point.