MIPI - Physical Interface for MIDI Files
Loading...
Searching...
No Matches
MidiEvent.h
Go to the documentation of this file.
1//
2// Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu>
3// Creation Date: Sat Feb 14 21:47:39 PST 2015
4// Last Modified: Sat Apr 21 10:52:19 PDT 2018 Removed using namespace std;
5// Filename: midifile/include/MidiEvent.h
6// Website: http://midifile.sapp.org
7// Syntax: C++11
8// vim: ts=3 noexpandtab
9//
10// Description: A class which stores a MidiMessage and a timestamp
11// for the MidiFile class.
12//
13
14#ifndef _MIDIEVENT_H_INCLUDED
15#define _MIDIEVENT_H_INCLUDED
16
17#include "MidiMessage.h"
18
19#include <ostream>
20#include <vector>
21
22
23namespace smf {
24
25class MidiEvent : public MidiMessage {
26 public:
27 MidiEvent (void);
28 MidiEvent (int command);
29 MidiEvent (int command, int param1);
30 MidiEvent (int command, int param1, int param2);
31 MidiEvent (const MidiMessage& message);
32 MidiEvent (const MidiEvent& mfevent);
33 MidiEvent (int aTime, int aTrack,
34 std::vector<uchar>& message);
35
36 ~MidiEvent ();
37
38 MidiEvent& operator= (const MidiEvent& mfevent);
39 MidiEvent& operator= (const MidiMessage& message);
40 MidiEvent& operator= (const std::vector<uchar>& bytes);
41 MidiEvent& operator= (const std::vector<char>& bytes);
42 MidiEvent& operator= (const std::vector<int>& bytes);
43 MidiEvent& operator= (const std::initializer_list<int>& list);
44
45 void clearVariables (void);
46
47 // functions related to event linking (note-ons to note-offs).
48 void unlinkEvent (void);
49 void unlinkEvents (void);
50 void linkEvent (MidiEvent* mev);
51 void linkEvents (MidiEvent* mev);
52 void linkEvent (MidiEvent& mev);
53 void linkEvents (MidiEvent& mev);
54 int isLinked (void) const;
55 int hasLink (void) const { return isLinked(); }
57 const MidiEvent* getLinkedEvent (void) const;
58 int getTickDuration (void) const;
59 double getDurationInSeconds (void) const;
60
61 int tick; // delta or absolute MIDI ticks
62 int track; // [original] track number of event in MIDI file
63 double seconds; // calculated time in sec. (after doTimeAnalysis())
64 int seq; // sorting sequence number of event
65
66 private:
67 MidiEvent* m_eventlink; // used to match note-ons and note-offs
68
69};
70
71
72std::ostream& operator<<(std::ostream& out, MidiEvent& event);
73
74
75} // end of namespace smf
76
77#endif /* _MIDIEVENT_H_INCLUDED */
78
79
80
Definition MidiEvent.h:25
int track
Definition MidiEvent.h:62
double getDurationInSeconds(void) const
Definition MidiEvent.cpp:274
int getTickDuration(void) const
Definition MidiEvent.cpp:251
MidiEvent(int aTime, int aTrack, std::vector< uchar > &message)
int isLinked(void) const
Definition MidiEvent.cpp:237
void linkEvents(MidiEvent *mev)
int hasLink(void) const
Definition MidiEvent.h:55
void unlinkEvents(void)
double seconds
Definition MidiEvent.h:63
int tick
Definition MidiEvent.h:61
void unlinkEvent(void)
Definition MidiEvent.cpp:174
MidiEvent(void)
Definition MidiEvent.cpp:27
MidiEvent & operator=(const MidiEvent &mfevent)
Definition MidiEvent.cpp:107
void linkEvent(MidiEvent *mev)
Definition MidiEvent.cpp:191
void clearVariables(void)
Definition MidiEvent.cpp:93
int seq
Definition MidiEvent.h:64
~MidiEvent()
Definition MidiEvent.cpp:78
MidiEvent(const MidiMessage &message)
void linkEvents(MidiEvent &mev)
MidiEvent * m_eventlink
Definition MidiEvent.h:67
MidiEvent * getLinkedEvent(void)
Definition MidiEvent.cpp:220
Definition MidiMessage.h:29
Definition Binasc.h:22
std::ostream & operator<<(std::ostream &out, MidiEvent &event)
Definition MidiEvent.cpp:296