5#ifndef MOSTLYHARMLESS_MOSTLYHARMLESS_IENGINE_H
6#define MOSTLYHARMLESS_MOSTLYHARMLESS_IENGINE_H
9#include <mostly_harmless/mostlyharmless_Concepts.h>
10#include <marvin/containers/marvin_BufferView.h>
11#include <marvin/library/marvin_Concepts.h>
39 marvin::containers::BufferView<float>
buffer;
80 virtual
void reset() noexcept = 0;
90 virtual
void handleNoteOn([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t note, [[maybe_unused]]
double velocity) {}
100 virtual void handleNoteOff([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t note, [[maybe_unused]]
double velocity) {}
111 virtual void handleControlChange([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t controlNumber, [[maybe_unused]] std::uint8_t
data) {}
120 virtual void handleProgramChange([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t programNumber) {};
131 virtual void handlePolyAftertouch([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t note, [[maybe_unused]] std::uint8_t pressure) {}
141 virtual void handleChannelAftertouch([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]] std::uint8_t pressure) {}
150 virtual void handlePitchWheel([[maybe_unused]] std::uint16_t portIndex, [[maybe_unused]] std::uint8_t channel, [[maybe_unused]]
double value) {}
Interface for the plugin's audio processing functionality.
Definition mostlyharmless_IEngine.h:56
virtual ~IEngine() noexcept=default
virtual void process(ProcessContext context) noexcept=0
virtual void reset() noexcept=0
virtual void initialise(InitContext context) noexcept=0
virtual void handleNoteOff(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t note, double velocity)
Definition mostlyharmless_IEngine.h:100
virtual void handleProgramChange(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t programNumber)
Definition mostlyharmless_IEngine.h:120
virtual void handleNoteOn(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t note, double velocity)
Definition mostlyharmless_IEngine.h:90
virtual void handleChannelAftertouch(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t pressure)
Definition mostlyharmless_IEngine.h:141
virtual void handlePolyAftertouch(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t note, std::uint8_t pressure)
Definition mostlyharmless_IEngine.h:131
virtual void handleControlChange(std::uint16_t portIndex, std::uint8_t channel, std::uint8_t controlNumber, std::uint8_t data)
Definition mostlyharmless_IEngine.h:111
virtual void handlePitchWheel(std::uint16_t portIndex, std::uint8_t channel, double value)
Definition mostlyharmless_IEngine.h:150
Contains core functionality of the framework.
Definition mostlyharmless_PluginBase.h:15
Contains classes and functions related to data management.
Definition mostlyharmless_DatabaseState.h:16
Container for context passed to IEngine::initialise.
Definition mostlyharmless_IEngine.h:17
double sampleRate
Definition mostlyharmless_IEngine.h:21
std::uint32_t maxBufferSize
Definition mostlyharmless_IEngine.h:29
std::uint32_t minBufferSize
Definition mostlyharmless_IEngine.h:25
Container for context passed to IEngine::process.
Definition mostlyharmless_IEngine.h:35
std::optional< mostly_harmless::TransportState > transportState
Definition mostlyharmless_IEngine.h:43
marvin::containers::BufferView< float > buffer
Definition mostlyharmless_IEngine.h:39