From 34554d452da6a8403adf642dcdbea5c13ff0f880 Mon Sep 17 00:00:00 2001 From: Jan-Henrik Bruhn Date: Fri, 4 Oct 2019 09:29:45 +0200 Subject: [PATCH] Start Part class --- midi2cv/midi2cv.cc | 1 + midi2cv/part.cc | 0 midi2cv/part.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 midi2cv/part.cc create mode 100644 midi2cv/part.h diff --git a/midi2cv/midi2cv.cc b/midi2cv/midi2cv.cc index 057d150..0db43b4 100644 --- a/midi2cv/midi2cv.cc +++ b/midi2cv/midi2cv.cc @@ -4,6 +4,7 @@ #include "drivers/gpio.h" #include "stmlib/system/system_clock.h" #include "ui.h" +#include "part.h" using namespace stmlib; diff --git a/midi2cv/part.cc b/midi2cv/part.cc new file mode 100644 index 0000000..e69de29 diff --git a/midi2cv/part.h b/midi2cv/part.h new file mode 100644 index 0000000..0d11071 --- /dev/null +++ b/midi2cv/part.h @@ -0,0 +1,54 @@ +#ifndef MIDI2CV_PART_H +#define MIDI2CV_PART_H + +enum MIDIThruMode { OFF, + ON, + POLYCHAIN }; + +enum BiOutputMode { + PITCH_UNI, + PITCH_BI, + SAW, + SQUARE, + SINE, + TRI +}; + +enum UniOutputMode { + PITCH, + VELOCITY, + AFTERTOUCH +}; + +enum GateOutputMode { + GATE, + TRIGGER +}; + +class Part { + public: + Part() + : voice_count(1) + , midi_filter_channel_enabled(true) + , midi_filter_channel(1) + , midi_thru_mode(OFF) + , output_mode_0(PITCH_UNI) + , output_mode_1(VELOCITY) + , output_mode_2(AFTERTOUCH) + , output_mode_3(GATE) + { + } + void ProcessMidiInput(/* TODO: Inputs */); + + private: + uint8_t voice_count; + bool midi_filter_channel_enabled; + uint8_t midi_filter_channel; + MIDIThruMode midi_thru_mode; + BiOutputMode output_mode_0; + UniOutputMode output_mode_1; + UniOutputMode output_mode_2; + GateOutputMode output_mode_3; +}; + +#endif