49 lines
971 B
C++
49 lines
971 B
C++
#pragma once
|
|
|
|
namespace trnr {
|
|
|
|
enum midi_event_type {
|
|
note_on = 0,
|
|
note_off,
|
|
pitch_wheel,
|
|
mod_wheel
|
|
};
|
|
|
|
class midi_event {
|
|
public:
|
|
midi_event_type type;
|
|
int offset = 0;
|
|
int midi_note = 0;
|
|
float velocity = 1.f;
|
|
double data = 0;
|
|
|
|
void make_note_on(int _midi_note, float _velocity, int _offset = 0)
|
|
{
|
|
type = midi_event_type::note_on;
|
|
midi_note = _midi_note;
|
|
velocity = _velocity;
|
|
offset = _offset;
|
|
}
|
|
|
|
void make_note_off(int _midi_note, float _velocity, int _offset = 0)
|
|
{
|
|
type = midi_event_type::note_off;
|
|
midi_note = _midi_note;
|
|
velocity = _velocity;
|
|
offset = _offset;
|
|
}
|
|
|
|
void make_pitch_wheel(double _pitch, int _offset = 0)
|
|
{
|
|
type = midi_event_type::pitch_wheel;
|
|
data = _pitch;
|
|
}
|
|
|
|
void make_mod_wheel(double _mod, int _offset = 0)
|
|
{
|
|
type = midi_event_type::pitch_wheel;
|
|
data = _mod;
|
|
}
|
|
};
|
|
}
|