
The same naming convention for enum as was used in menu should also apply to new enum. Fixed some compiler warnings in menu. Moved enum and struct in globals.h away from the middle of #define block.
232 lines
7.6 KiB
C
232 lines
7.6 KiB
C
#ifndef __GLOBALS_H
|
|
#define __GLOBALS_H
|
|
|
|
#include "wiring.h"
|
|
|
|
|
|
// 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
|
|
|
|
|
|
//Magic values
|
|
#define PBD 12
|
|
#define EC2 25
|
|
#define ECSW 26
|
|
#define LVL 27
|
|
#define LVLP 28
|
|
#define GLD 29
|
|
#define ECH 30
|
|
#define QTN 31
|
|
|
|
#define MOD 13
|
|
|
|
//Vibrato direction
|
|
#define UPWD 1
|
|
#define DNWD 0
|
|
|
|
|
|
enum PolySelect : unsigned short {
|
|
EHarmonizerOff = 0,
|
|
ETriadMajorGospelRoot = 1, // MGR
|
|
ETriadMajorGospelDominant = 2, // MGD
|
|
EMajorAddNine = 3,
|
|
EMinorDorian = 4,
|
|
EMinorAeolian = 5,
|
|
EMinorFourVoiceHip = 6,
|
|
EFourWayCloseHarmonizer = 7,
|
|
ERotatorA = 8,
|
|
ERotatorB = 9,
|
|
ERotatorC = 10,
|
|
};
|
|
|
|
struct Rotator
|
|
{
|
|
uint16_t parallel; // Semitones
|
|
uint16_t rotations[4];
|
|
};
|
|
|
|
|
|
extern const unsigned short* const curves[];
|
|
extern const unsigned short curveIn[];
|
|
|
|
#if defined(NURAD)
|
|
extern int calOffsetRollers[6];
|
|
extern int calOffsetRH[12];
|
|
extern int calOffsetLH[12];
|
|
#endif
|
|
|
|
extern unsigned short breathThrVal;
|
|
extern unsigned short breathMaxVal;
|
|
extern unsigned short portamThrVal;
|
|
extern unsigned short portamMaxVal;
|
|
extern unsigned short pitchbThrVal;
|
|
extern unsigned short pitchbMaxVal;
|
|
extern unsigned short extracThrVal;
|
|
extern unsigned short extracMaxVal;
|
|
extern unsigned short ctouchThrVal;
|
|
extern unsigned short leverThrVal;
|
|
extern unsigned short leverMaxVal;
|
|
extern unsigned short transpose;
|
|
extern unsigned short MIDIchannel;
|
|
extern unsigned short breathCC; // OFF:MW:BR:VL:EX:MW+:BR+:VL+:EX+:CF:UNO
|
|
extern unsigned short breathCC2; // OFF:1-127
|
|
extern unsigned short breathCC2Rise; // 1X:2X:3X:4X:5X
|
|
extern unsigned short breathAT;
|
|
extern unsigned short velocity;
|
|
extern unsigned short portamento;// switching on cc65? just cc5 enabled? SW:ON:OFF
|
|
extern unsigned short portLimit; // 1-127
|
|
extern unsigned short PBdepth; // OFF:1-12 divider
|
|
extern unsigned short extraCT; // OFF:MW:FP:CF:SP
|
|
extern unsigned short vibrato; // OFF:1-9
|
|
extern unsigned short deglitch; // 0-70 ms in steps of 5
|
|
extern unsigned short patch; // 1-128
|
|
extern unsigned short octave;
|
|
extern unsigned short curve;
|
|
extern unsigned short velSmpDl; // 0-30 ms
|
|
extern unsigned short velBias; // 0-9
|
|
extern unsigned short pinkySetting; // 0 - 11 (QuickTranspose -12 to -1), 12 (pb/2), 13 - 24 (QuickTranspose +1 to +12), 25 (EC2), 26 (ECSW), 27 (LVL), 28 (LVLP)
|
|
extern unsigned short dipSwBits; // virtual dip switch settings for special modes (work in progress)
|
|
extern unsigned short priority; // mono priority for rotator chords
|
|
extern unsigned short vibSens; // vibrato sensitivity
|
|
extern unsigned short vibRetn; // vibrato return speed
|
|
extern unsigned short vibSquelch; //vibrato signal squelch
|
|
extern unsigned short vibDirection; //direction of first vibrato wave UPWD or DNWD
|
|
extern unsigned short vibSensBite; // vibrato sensitivity (bite)
|
|
extern unsigned short vibSquelchBite; //vibrato signal squelch (bite)
|
|
extern unsigned short vibControl;
|
|
extern unsigned short fastPatch[7];
|
|
extern unsigned short extraCT2; // OFF:1-127
|
|
extern unsigned short levelCC; // 0-127
|
|
extern unsigned short levelVal; // 0-127
|
|
extern unsigned short fingering; // 0-4 EWI,EWX,SAX,EVI,EVR
|
|
extern unsigned short lpinky3; // 0-25 (OFF, -12 - MOD - +12)
|
|
extern unsigned short batteryType; // 0-2 ALK,NIM,LIP
|
|
extern unsigned short harmSetting; // 0-7
|
|
extern unsigned short harmSelect; // 0-5
|
|
extern unsigned short brHarmSetting; // 0-7
|
|
extern unsigned short brHarmSelect; // 0-3
|
|
extern PolySelect polySelect; // OFF, MGR, MGD, MND, MNH, FWC, RTA, RTB or RTC
|
|
extern unsigned short fwcType; // 6, m6, 7, m7
|
|
extern unsigned short fwcLockH; // OFF:ON
|
|
extern unsigned short fwcDrop2; // OFF:ON
|
|
extern unsigned short hmzKey; // 0-11 (0 is C)
|
|
extern unsigned short hmzLimit; // 2-5
|
|
extern unsigned short otfKey; //OFF:ON
|
|
extern unsigned short breathInterval; // 3-15
|
|
extern unsigned short biteControl; // OFF, VIB, GLD, CC
|
|
extern unsigned short leverControl; // OFF, VIB, GLD, CC
|
|
extern unsigned short biteCC; // 0 - 127
|
|
extern unsigned short leverCC; // 0 -127
|
|
extern unsigned short cvTune; // 1 - 199 representing -99 to +99 in menu (offset of 100 to keep postitive)
|
|
extern unsigned short cvScale; // 1 - 199 representing -99 to +99 in menu (offset of 100 to keep postitive)
|
|
extern unsigned short cvVibRate; // OFF, 1 - 8 CV extra controller LFO vibrato rate 4.5Hz to 8Hz
|
|
extern uint16_t gateOpenEnable;
|
|
extern uint16_t specialKeyEnable;
|
|
extern byte rotatorOn;
|
|
extern byte currentRotation;
|
|
|
|
extern Rotator rotations_a;
|
|
extern Rotator rotations_b;
|
|
extern Rotator rotations_c;
|
|
|
|
extern uint16_t bcasMode; //Legacy CASSIDY compile flag
|
|
extern uint16_t trill3_interval;
|
|
extern uint16_t fastBoot;
|
|
extern uint16_t dacMode;
|
|
|
|
|
|
extern int touch_Thr;
|
|
|
|
extern int leverPortZero;
|
|
|
|
extern unsigned long cursorBlinkTime; // the last time the cursor was toggled
|
|
|
|
extern byte activePatch;
|
|
extern byte doPatchUpdate;
|
|
|
|
extern uint16_t legacy;
|
|
extern uint16_t legacyBrAct;
|
|
|
|
extern byte widiOn;
|
|
|
|
extern int pressureSensor; // pressure data from breath sensor, for midi breath cc and breath threshold checks
|
|
extern int lastPressure;
|
|
|
|
extern int biteSensor; // capacitance data from bite sensor, for midi cc and threshold checks
|
|
extern int lastBite;
|
|
extern byte biteJumper;
|
|
extern byte widiJumper;
|
|
extern int exSensor;
|
|
extern int exSensorIndicator;
|
|
|
|
extern int pitchBend;
|
|
extern int pbSend;
|
|
|
|
extern int pbUp;
|
|
extern int pbDn;
|
|
|
|
extern byte vibLedOff;
|
|
extern byte oldpkey;
|
|
|
|
extern int vibThr; // this gets auto calibrated in setup
|
|
extern int vibThrLo;
|
|
extern int vibZero;
|
|
extern int vibZeroBite;
|
|
extern int vibThrBite;
|
|
extern int vibThrBiteLo;
|
|
|
|
extern int battAvg;
|
|
|
|
extern int breathLevel;
|
|
extern byte portIsOn;
|
|
extern int oldport;
|
|
|
|
#if defined(NURAD)
|
|
// Key variables, TRUE (1) for pressed, FALSE (0) for not pressed
|
|
extern byte LHs;
|
|
extern byte LH1; // Left Hand key 1 (pitch change -2)
|
|
extern byte LHb; // Left Hand bis key (pitch change -1 unless both LH1 and LH2 are pressed)
|
|
extern byte LH2; // Left Hand key 2 (with LH1 also pressed pitch change is -2, otherwise -1)
|
|
extern byte LH3; // Left Hand key 3 (pitch change -2)
|
|
extern byte LHp1; // Left Hand pinky key 1 (pitch change +1)
|
|
extern byte LHp2; // Left Hand pinky key 2 (pitch change -1)
|
|
extern byte LHp3;
|
|
extern byte RHs; // Right Hand side key (pitch change -2 unless LHp1 is pressed)
|
|
extern byte RH1; // Right Hand key 1 (with LH3 also pressed pitch change is -2, otherwise -1)
|
|
extern byte RH2; // Right Hand key 2 (pitch change -1)
|
|
extern byte RH3; // Right Hand key 3 (pitch change -2)
|
|
extern byte RHp1; // Right Hand pinky key 1 (pitch change +1)
|
|
extern byte RHp2; // Right Hand pinky key 2 (pitch change -1)
|
|
extern byte RHp3; // Right Hand pinky key 3 (pitch change -2)
|
|
extern byte Tr1; // Trill key 1 (pitch change +2) (EVI fingering)
|
|
extern byte Tr2; // Trill key 2 (pitch change +1)
|
|
extern byte Tr3; // Trill key 3 (pitch change +4)
|
|
#endif
|
|
|
|
// Key variables, TRUE (1) for pressed, FALSE (0) for not pressed
|
|
extern byte K1; // Valve 1 (pitch change -2)
|
|
extern byte K2; // Valve 2 (pitch change -1)
|
|
extern byte K3; // Valve 3 (pitch change -3)
|
|
extern byte K4; // Left Hand index finger (pitch change -5)
|
|
extern byte K5; // Trill key 1 (pitch change +2)
|
|
extern byte K6; // Trill key 2 (pitch change +1)
|
|
extern byte K7; // Trill key 3 (pitch change +4)
|
|
|
|
extern byte halfPitchBendKey;
|
|
extern byte quarterToneTrigger;
|
|
extern byte specialKey;
|
|
extern byte pinkyKey;
|
|
|
|
extern unsigned int multiMap(unsigned short val, const unsigned short * _in, const unsigned short * _out, uint8_t size);
|
|
|
|
#endif
|