|
|
|
@ -34,10 +34,10 @@ |
|
|
|
|
#else |
|
|
|
|
#include "mdaEPianoData.h" |
|
|
|
|
#endif |
|
|
|
|
//#include <Bounce.h>
|
|
|
|
|
//#include "Encoder4.h"
|
|
|
|
|
//#include "LiquidCrystalPlus_I2C.h"
|
|
|
|
|
//#include "UI.h"
|
|
|
|
|
#include <Bounce.h> |
|
|
|
|
#include "Encoder4.h" |
|
|
|
|
#include <LiquidCrystal_I2C.h> |
|
|
|
|
#include <LiquidMenu.h> |
|
|
|
|
#include "midi_devices.hpp" |
|
|
|
|
|
|
|
|
|
//*************************************************************************************************
|
|
|
|
@ -87,6 +87,10 @@ AudioConnection patchCord13(volume_l, 0, pt8211_1, 0); |
|
|
|
|
|
|
|
|
|
// Objects
|
|
|
|
|
mdaEPiano* ep; |
|
|
|
|
LiquidCrystal_I2C lcd(LCD_I2C_ADDRESS, LCD_CHARS, LCD_LINES); |
|
|
|
|
Encoder4 enc[2] = {Encoder4(ENC_L_PIN_A, ENC_L_PIN_B), Encoder4(ENC_R_PIN_A, ENC_R_PIN_B)}; |
|
|
|
|
int32_t enc_val[2] = {INITIAL_ENC_L_VALUE, INITIAL_ENC_R_VALUE}; |
|
|
|
|
Bounce but[2] = {Bounce(BUT_L_PIN, BUT_DEBOUNCE_MS), Bounce(BUT_R_PIN, BUT_DEBOUNCE_MS)}; |
|
|
|
|
|
|
|
|
|
// Variables
|
|
|
|
|
uint8_t midi_channel = DEFAULT_MIDI_CHANNEL; |
|
|
|
@ -105,6 +109,11 @@ elapsedMillis cpu_mem_millis; |
|
|
|
|
|
|
|
|
|
enum MDA_EP_PARAM { DECAY, RELEASE, HARDNESS, TREBLE, PAN_TREM, LFO_RATE, VELOCITY_SENSE, STEREO, MAX_POLY, TUNE, DETUNE, OVERDRIVE }; |
|
|
|
|
|
|
|
|
|
LiquidLine welcome_line1(1, 0, "MicroMDAEPiano"); |
|
|
|
|
LiquidLine welcome_line2(0, 1, "(c)parasiTstudio"); |
|
|
|
|
LiquidScreen welcome_screen(welcome_line1, welcome_line2); |
|
|
|
|
LiquidMenu menu(lcd); |
|
|
|
|
|
|
|
|
|
//*************************************************************************************************
|
|
|
|
|
//* SETUP FUNCTION
|
|
|
|
|
//*************************************************************************************************
|
|
|
|
@ -115,26 +124,22 @@ void setup() |
|
|
|
|
Serial.begin(SERIAL_SPEED); |
|
|
|
|
delay(220); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
// LCD display setup
|
|
|
|
|
lcd.init(); |
|
|
|
|
lcd.blink_off(); |
|
|
|
|
lcd.cursor_off(); |
|
|
|
|
lcd.backlight(); |
|
|
|
|
lcd.noAutoscroll(); |
|
|
|
|
lcd.clear(); |
|
|
|
|
lcd.display(); |
|
|
|
|
lcd.show(0, 0, 20, " MicroMDAEPiano"); |
|
|
|
|
lcd.show(1, 0, 16, "(c)parasiTstudio"); |
|
|
|
|
|
|
|
|
|
// Encoder setup
|
|
|
|
|
enc[0].write(INITIAL_ENC_L_VALUE); |
|
|
|
|
enc_val[0] = enc[0].read(); |
|
|
|
|
enc[1].write(INITIAL_ENC_R_VALUE); |
|
|
|
|
enc_val[1] = enc[1].read(); |
|
|
|
|
but[0].update(); |
|
|
|
|
but[1].update(); |
|
|
|
|
*/ |
|
|
|
|
// LCD display setup
|
|
|
|
|
lcd.init(); |
|
|
|
|
lcd.blink_off(); |
|
|
|
|
lcd.cursor_off(); |
|
|
|
|
lcd.backlight(); |
|
|
|
|
lcd.noAutoscroll(); |
|
|
|
|
|
|
|
|
|
menu.add_screen(welcome_screen); |
|
|
|
|
|
|
|
|
|
// Encoder setup
|
|
|
|
|
enc[0].write(INITIAL_ENC_L_VALUE); |
|
|
|
|
enc_val[0] = enc[0].read(); |
|
|
|
|
enc[1].write(INITIAL_ENC_R_VALUE); |
|
|
|
|
enc_val[1] = enc[1].read(); |
|
|
|
|
but[0].update(); |
|
|
|
|
but[1].update(); |
|
|
|
|
|
|
|
|
|
// Debug output
|
|
|
|
|
Serial.println(F("MicroMDAEPiano based on https://sourceforge.net/projects/mda-vst")); |
|
|
|
@ -208,6 +213,8 @@ void setup() |
|
|
|
|
mixer_l.gain(1, 0.3); |
|
|
|
|
|
|
|
|
|
AudioInterrupts(); |
|
|
|
|
menu.update(); |
|
|
|
|
|
|
|
|
|
Serial.println(F("<setup end>")); |
|
|
|
|
|
|
|
|
|
#if defined (DEBUG) && defined (SHOW_CPU_LOAD_MSEC) |
|
|
|
|