mirror of
https://github.com/jhbruhn/eurorack.git
synced 2025-03-15 02:55:49 +00:00
54 lines
881 B
C++
54 lines
881 B
C++
#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
|