Renamed menu.ino to menu.cpp
This change required lots of other changes to have it compile. I had to declare all variables from NuEVI.ino used by the menu as extern in a separate header file (globals.h). Also I moved all defines from NuEVI.ino to a config.h file. I think some of these could be moved back or even moved into menu.cpp. I declared many variables and functions in menu.cpp as static and moved them around to avoid forward declarations. For simplicity I did some forward declarations anyway. Some varibles only used in menu.cpp was moved from NuEVI.ino instead of having them as externals.
This commit is contained in:
parent
f0010cb08c
commit
4bf2a3a91e
5 changed files with 1643 additions and 1451 deletions
139
NuEVI/NuEVI.ino
139
NuEVI/NuEVI.ino
|
@ -8,6 +8,7 @@
|
|||
#include "hardware.h"
|
||||
#include "midi.h"
|
||||
#include "menu.h"
|
||||
#include "config.h"
|
||||
|
||||
/*
|
||||
NAME: NuEVI
|
||||
|
@ -23,127 +24,6 @@ PROGRAMME FUNCTION: EVI Wind Controller using the Freescale MP3V5004GP breath
|
|||
|
||||
//_______________________________________________________________________________________________ DECLARATIONS
|
||||
|
||||
// Compile options, comment/uncomment to change
|
||||
|
||||
#define FIRMWARE_VERSION "1.3.5" // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
|
||||
//#define CASSIDY
|
||||
//#define CVSCALEBOARD
|
||||
|
||||
#define ON_Delay 20 // Set Delay after ON threshold before velocity is checked (wait for tounging peak)
|
||||
//#define touch_Thr 1200 // sensitivity for Teensy touch sensors
|
||||
#define CCN_Port 5 // Controller number for portamento level
|
||||
#define CCN_PortOnOff 65// Controller number for portamento on/off
|
||||
|
||||
|
||||
// Send breath CC data no more than every CC_INTERVAL (other CC is sent with double interval)
|
||||
// milliseconds (due to timing errors, the value should be about half the actual wanted value)
|
||||
#define CC_INTERVAL 2
|
||||
|
||||
|
||||
// The three states of our main state machine
|
||||
|
||||
// No note is sounding
|
||||
#define NOTE_OFF 1
|
||||
|
||||
// We've observed a transition from below to above the
|
||||
// threshold value. We wait a while to see how fast the
|
||||
// breath velocity is increasing
|
||||
#define RISE_WAIT 2
|
||||
|
||||
// A note is sounding
|
||||
#define NOTE_ON 3
|
||||
|
||||
|
||||
// EEPROM addresses for settings
|
||||
#define VERSION_ADDR 0
|
||||
#define BREATH_THR_ADDR 2
|
||||
#define BREATH_MAX_ADDR 4
|
||||
#define PORTAM_THR_ADDR 6
|
||||
#define PORTAM_MAX_ADDR 8
|
||||
#define PITCHB_THR_ADDR 10
|
||||
#define PITCHB_MAX_ADDR 12
|
||||
#define TRANSP_ADDR 14
|
||||
#define MIDI_ADDR 16
|
||||
#define BREATH_CC_ADDR 18
|
||||
#define BREATH_AT_ADDR 20
|
||||
#define VELOCITY_ADDR 22
|
||||
#define PORTAM_ADDR 24
|
||||
#define PB_ADDR 26
|
||||
#define EXTRA_ADDR 28
|
||||
#define VIBRATO_ADDR 30
|
||||
#define DEGLITCH_ADDR 32
|
||||
#define EXTRAC_THR_ADDR 34
|
||||
#define EXTRAC_MAX_ADDR 36
|
||||
#define PATCH_ADDR 38
|
||||
#define OCTAVE_ADDR 40
|
||||
#define CTOUCH_THR_ADDR 42
|
||||
#define BREATHCURVE_ADDR 44
|
||||
#define VEL_SMP_DL_ADDR 46
|
||||
#define VEL_BIAS_ADDR 48
|
||||
#define PINKY_KEY_ADDR 50
|
||||
#define FP1_ADDR 52
|
||||
#define FP2_ADDR 54
|
||||
#define FP3_ADDR 56
|
||||
#define FP4_ADDR 58
|
||||
#define FP5_ADDR 60
|
||||
#define FP6_ADDR 62
|
||||
#define FP7_ADDR 64
|
||||
#define DIPSW_BITS_ADDR 66
|
||||
#define PARAL_ADDR 68
|
||||
#define ROTN1_ADDR 70
|
||||
#define ROTN2_ADDR 72
|
||||
#define ROTN3_ADDR 74
|
||||
#define ROTN4_ADDR 76
|
||||
#define PRIO_ADDR 78
|
||||
#define VIB_SENS_ADDR 80
|
||||
#define VIB_RETN_ADDR 82
|
||||
#define VIB_SQUELCH_ADDR 84
|
||||
#define VIB_DIRECTION_ADDR 86
|
||||
|
||||
//"factory" values for settings
|
||||
#define VERSION 31
|
||||
#define BREATH_THR_FACTORY 1400
|
||||
#define BREATH_MAX_FACTORY 4000
|
||||
#define PORTAM_THR_FACTORY 2600
|
||||
#define PORTAM_MAX_FACTORY 3300
|
||||
#define PORTPR_THR_FACTORY 1200
|
||||
#define PORTPR_MAX_FACTORY 2000
|
||||
#define PITCHB_THR_FACTORY 1400
|
||||
#define PITCHB_MAX_FACTORY 2300
|
||||
#define EXTRAC_THR_FACTORY 1200
|
||||
#define EXTRAC_MAX_FACTORY 2400
|
||||
#define TRANSP_FACTORY 12 // 12 is 0 transpose
|
||||
#define MIDI_FACTORY 1 // 1-16
|
||||
#define BREATH_CC_FACTORY 2 //thats CC#2, see ccList
|
||||
#define BREATH_AT_FACTORY 0 //aftertouch default off
|
||||
#define VELOCITY_FACTORY 0 // 0 is dynamic/breath controlled velocity
|
||||
#define PORTAM_FACTORY 2 // 0 - OFF, 1 - ON, 2 - SW
|
||||
#define PB_FACTORY 1 // 0 - OFF, 1 - 12
|
||||
#define EXTRA_FACTORY 2 // 0 - OFF, 1 - Modulation wheel, 2 - Foot pedal, 3 - Filter Cutoff, 4 - Sustain pedal
|
||||
#define VIBRATO_FACTORY 4 // 0 - OFF, 1 - 9 depth
|
||||
#define DEGLITCH_FACTORY 20 // 0 - OFF, 5 to 70 ms in steps of 5
|
||||
#define PATCH_FACTORY 1 // MIDI program change 1-128
|
||||
#define OCTAVE_FACTORY 3 // 3 is 0 octave change
|
||||
#define CTOUCH_THR_FACTORY 125 // MPR121 touch threshold
|
||||
#define BREATHCURVE_FACTORY 4 // 0 to 12 (-4 to +4, S1 to S4)
|
||||
#define VEL_SMP_DL_FACTORY 15 // 0 to 30
|
||||
#define VEL_BIAS_FACTORY 0 // 0 to 9
|
||||
#define PINKY_KEY_FACTORY 12 // 0 - 11 (QuickTranspose -12 to -1), 12 (pb/2), 13 - 22 (QuickTranspose +1 to +12)
|
||||
#define DIPSW_BITS_FACTORY 0 // virtual dip switch settings for special modes (work in progress)
|
||||
#define PARAL_FACTORY 31 // 7 (+ 24) Rotator parallel
|
||||
#define ROTN1_FACTORY 19 // -5 (+24) Rotation 1
|
||||
#define ROTN2_FACTORY 14 // -10 (+24) Rotation 2
|
||||
#define ROTN3_FACTORY 17 // -7 (+24) Rotation 3
|
||||
#define ROTN4_FACTORY 10 // -14 (+24) Rotation 4
|
||||
#define PRIO_FACTORY 0 // Mono priority 0 - BAS(e note), 1 - ROT(ating note)
|
||||
#define VIB_SENS_FACTORY 6 // 1 least sensitive, higher more sensitive
|
||||
#define VIB_RETN_FACTORY 2 // 0, no return, 1 slow return, higher faster return
|
||||
#define VIB_SQUELCH_FACTORY 15 // 0 to 30, vib signal squelch
|
||||
#define VIB_DIRECTION_FACTORY 0
|
||||
|
||||
|
||||
//variables setup
|
||||
|
||||
unsigned short breathThrVal;// = 350;
|
||||
|
@ -210,27 +90,14 @@ int pitchbStep;
|
|||
int extracStep;
|
||||
int ctouchStep;
|
||||
|
||||
|
||||
|
||||
byte ccList[11] = {0,1,2,7,11,1,2,7,11,74,20}; // OFF, Modulation, Breath, Volume, Expression (then same sent in hires), CC74 (cutoff/brightness), CC20
|
||||
|
||||
int pbDepthList[13] = {8192,8192,4096,2731,2048,1638,1365,1170,1024,910,819,744,683};
|
||||
|
||||
byte cursorNow;
|
||||
byte forcePix = 0;
|
||||
byte forceRedraw = 0;
|
||||
|
||||
int pos1;
|
||||
int pos2;
|
||||
|
||||
// the following variables are unsigned longs because the time, measured in
|
||||
// milliseconds, will quickly become a bigger number than can be stored in an int.
|
||||
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
|
||||
unsigned long debounceDelay = 30; // the debounce time; increase if the output flickers
|
||||
unsigned long buttonRepeatTime = 0;
|
||||
unsigned long buttonPressedTime = 0;
|
||||
unsigned long buttonRepeatInterval = 50;
|
||||
unsigned long buttonRepeatDelay = 400;
|
||||
|
||||
unsigned long pixelUpdateTime = 0;
|
||||
unsigned long pixelUpdateInterval = 80;
|
||||
unsigned long cursorBlinkTime = 0; // the last time the cursor was toggled
|
||||
|
@ -292,8 +159,6 @@ int oldpb=8192;
|
|||
int vibSignal=0;
|
||||
int pbUp=0;
|
||||
int pbDn=0;
|
||||
int lastPbUp=0;
|
||||
int lastPbDn=0;
|
||||
byte vibLedOff = 0;
|
||||
byte oldpkey = 0;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue