TR123e - EMCT Computing Final Project Version 1.0
Research Project Translation from gen~ to embedded Moog synth
Loading...
Searching...
No Matches
MidiHandler.h
Go to the documentation of this file.
1
50
51#pragma once
52#include <Bela.h>
53#include <vector>
54#include <queue>
55
85
101
114};
115
152public:
174 MidiHandler(float sampleRate, float delayMs = 1.0f);
175
202 void processMidiMessage(int noteNumber, int velocity, float currentTimeMs);
203
231 void update(float currentTimeMs);
232
252 bool hasDelayedMessage();
253
280
297 int msToSamples(float milliseconds) const;
298
315 float samplesToMs(int samples) const;
316
317private:
329
343
356 std::queue<MidiNoteMessage> incomingMessages;
357
370 std::queue<MidiNoteMessage> delayedMessages;
371};
372
float samplesToMs(int samples) const
Convert sample count to milliseconds at current sample rate.
Definition MidiHandler.cpp:226
std::queue< MidiNoteMessage > incomingMessages
Queue for incoming MIDI messages awaiting delay processing.
Definition MidiHandler.h:356
void update(float currentTimeMs)
Update temporal processing and transfer delayed messages.
Definition MidiHandler.cpp:86
MidiNoteMessage popDelayedMessage()
Retrieve and remove next processed MIDI message.
Definition MidiHandler.cpp:152
float sampleRate
Audio system sample rate in Hz.
Definition MidiHandler.h:328
bool hasDelayedMessage()
Check availability of processed MIDI messages.
Definition MidiHandler.cpp:134
void processMidiMessage(int noteNumber, int velocity, float currentTimeMs)
Process incoming MIDI note message with timestamping.
Definition MidiHandler.cpp:49
MidiHandler(float sampleRate, float delayMs=1.0f)
Construct MidiHandler with timing parameters.
Definition MidiHandler.cpp:29
float delayTimeMs
Delay compensation period in milliseconds.
Definition MidiHandler.h:342
std::queue< MidiNoteMessage > delayedMessages
Queue for processed messages ready for audio consumption.
Definition MidiHandler.h:370
int msToSamples(float milliseconds) const
Convert milliseconds to sample count at current sample rate.
Definition MidiHandler.cpp:196
Encapsulates MIDI note event data with high-precision timing.
Definition MidiHandler.h:72
int noteNumber
MIDI note number [0-127].
Definition MidiHandler.h:84
float timestamp
High-precision timestamp in milliseconds.
Definition MidiHandler.h:113
int velocity
MIDI velocity value [0-127].
Definition MidiHandler.h:100