Move hardware definitions to separate file
This commit is contained in:
parent
1d8cd1a3ef
commit
18f3131d8a
3 changed files with 115 additions and 106 deletions
107
NuEVI.ino
107
NuEVI.ino
|
@ -7,6 +7,7 @@
|
|||
#include <Adafruit_SSD1306.h>
|
||||
#include <Filters.h> // for the breath signal LP filtering, https://github.com/edgar-bonet/Filters
|
||||
|
||||
#include "hardware.h"
|
||||
#include "midi.h"
|
||||
|
||||
/*
|
||||
|
@ -27,99 +28,9 @@ PROGRAMME FUNCTION: EVI Wind Controller using the Freescale MP3V5004GP breath
|
|||
|
||||
#define FIRMWARE_VERSION "1.3.2" // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
#define REVB
|
||||
|
||||
//#define CASSIDY
|
||||
|
||||
//Comment out the following line if you have Teensyduino 1.4.0 or earlier, to make pitch bend over USB-MIDI work.
|
||||
#define NEWTEENSYDUINO
|
||||
|
||||
|
||||
// Pin definitions
|
||||
|
||||
// Teensy pins
|
||||
|
||||
#define specialKeyPin 0 // SK or S2
|
||||
#define halfPitchBendKeyPin 1 // PD or S1
|
||||
|
||||
#define bitePin 17
|
||||
#define extraPin 16
|
||||
#define pbUpPin 23
|
||||
#define pbDnPin 22
|
||||
#define vibratoPin 15
|
||||
|
||||
#define breathSensorPin A0
|
||||
|
||||
#define dPin 3
|
||||
#define ePin 4
|
||||
#define uPin 5
|
||||
#define mPin 6
|
||||
|
||||
#define bLedPin 10
|
||||
#define pLedPin 9
|
||||
#define statusLedPin 13
|
||||
|
||||
#define vMeterPin A11
|
||||
|
||||
#define PBD 12
|
||||
#define UPWD 1
|
||||
#define DNWD 0
|
||||
|
||||
#if defined(REVB)
|
||||
|
||||
// MPR121 pins Rev B (angled pins at top edge for main keys and rollers)
|
||||
|
||||
#define R1Pin 0
|
||||
#define R2Pin 2
|
||||
#define R3Pin 4
|
||||
#define R4Pin 6
|
||||
#define R5Pin 8
|
||||
|
||||
#define K4Pin 10
|
||||
#define K1Pin 1
|
||||
#define K2Pin 3
|
||||
#define K3Pin 5
|
||||
#define K5Pin 7
|
||||
#define K6Pin 9
|
||||
#define K7Pin 11
|
||||
|
||||
/*
|
||||
* PINOUT ON PCB vs PINS ON MPR121 - Rev. B
|
||||
*
|
||||
* (R1) (R2) (R3/6) (R4) (R5) (K4) <-> (00) (02) (04) (06) (08) (10)
|
||||
*
|
||||
* (K1) (K2) (K3) (K5) (K6) (K7) <-> (01) (03) (05) (07) (09) (11)
|
||||
*
|
||||
*/
|
||||
|
||||
# else
|
||||
|
||||
// MPR121 pins Rev A (upright pins below MPR121 for main keys and rollers)
|
||||
|
||||
#define R1Pin 10
|
||||
#define R2Pin 11
|
||||
#define R3Pin 8
|
||||
#define R4Pin 9
|
||||
#define R5Pin 6
|
||||
|
||||
#define K4Pin 7
|
||||
#define K1Pin 4
|
||||
#define K2Pin 5
|
||||
#define K3Pin 2
|
||||
#define K5Pin 3
|
||||
#define K6Pin 0
|
||||
#define K7Pin 1
|
||||
|
||||
/*
|
||||
* PINOUT ON PCB vs PINS ON MPR121 - Rev. A
|
||||
*
|
||||
* (R2) (R4) (K4) (K2) (K5) (K7) <-> (11) (09) (07) (05) (03) (01)
|
||||
*
|
||||
* (R1) (R3/6) (R5) (K1) (K3) (K6) <-> (10) (08) (06) (04) (02) (00)
|
||||
*
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
#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
|
||||
|
@ -820,35 +731,35 @@ void loop() {
|
|||
if (exSensor >= ((extracThrVal+extracMaxVal)/2)){ // instant midi setting
|
||||
if ((fingeredNoteUntransposed >= 73) && (fingeredNoteUntransposed <= 88)) {
|
||||
MIDIchannel = fingeredNoteUntransposed - 72; // Mid C and up
|
||||
digitalWrite(13,LOW);
|
||||
digitalWrite(statusLedPin, LOW);
|
||||
delay(150);
|
||||
digitalWrite(13,HIGH);
|
||||
digitalWrite(statusLedPin, HIGH);
|
||||
}
|
||||
} else {
|
||||
if (!pinkyKey){ // note number to patch number
|
||||
if (patch != fingeredNoteUntransposed){
|
||||
patch = fingeredNoteUntransposed;
|
||||
doPatchUpdate = 1;
|
||||
digitalWrite(13,LOW);
|
||||
digitalWrite(statusLedPin, LOW);
|
||||
delay(150);
|
||||
digitalWrite(13,HIGH);
|
||||
digitalWrite(statusLedPin, HIGH);
|
||||
}
|
||||
} else { // hi and lo patch numbers
|
||||
if (fingeredNoteUntransposed > 75){
|
||||
if (patch != patchLimit(fingeredNoteUntransposed + 24)){
|
||||
patch = patchLimit(fingeredNoteUntransposed + 24); // add 24 to get high numbers 108 to 127
|
||||
doPatchUpdate = 1;
|
||||
digitalWrite(13,LOW);
|
||||
digitalWrite(statusLedPin, LOW);
|
||||
delay(150);
|
||||
digitalWrite(13,HIGH);
|
||||
digitalWrite(statusLedPin, HIGH);
|
||||
}
|
||||
} else {
|
||||
if (patch != patchLimit(fingeredNoteUntransposed - 36)){
|
||||
patch = patchLimit(fingeredNoteUntransposed - 36); // subtract 36 to get low numbers 0 to 36
|
||||
doPatchUpdate = 1;
|
||||
digitalWrite(13,LOW);
|
||||
digitalWrite(statusLedPin, LOW);
|
||||
delay(150);
|
||||
digitalWrite(13,HIGH);
|
||||
digitalWrite(statusLedPin, HIGH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
100
hardware.h
Normal file
100
hardware.h
Normal file
|
@ -0,0 +1,100 @@
|
|||
#ifndef __HARDWARE_H
|
||||
#define __HARDWARE_H
|
||||
|
||||
#define REVB
|
||||
|
||||
//Comment out the following line if you have Teensyduino 1.4.0 or earlier, to make pitch bend over USB-MIDI work.
|
||||
#define NEWTEENSYDUINO
|
||||
|
||||
|
||||
// Pin definitions
|
||||
|
||||
// Teensy pins
|
||||
|
||||
#define specialKeyPin 0 // SK or S2
|
||||
#define halfPitchBendKeyPin 1 // PD or S1
|
||||
|
||||
#define bitePin 17
|
||||
#define extraPin 16
|
||||
#define pbUpPin 23
|
||||
#define pbDnPin 22
|
||||
#define vibratoPin 15
|
||||
|
||||
#define breathSensorPin A0
|
||||
|
||||
#define dPin 3
|
||||
#define ePin 4
|
||||
#define uPin 5
|
||||
#define mPin 6
|
||||
|
||||
#define bLedPin 10
|
||||
#define pLedPin 9
|
||||
#define statusLedPin 13
|
||||
|
||||
#define vMeterPin A11
|
||||
|
||||
#define PBD 12
|
||||
#define UPWD 1
|
||||
#define DNWD 0
|
||||
|
||||
//Which serial port to use for MIDI
|
||||
#define MIDI_SERIAL Serial3
|
||||
|
||||
#if defined(REVB)
|
||||
|
||||
// MPR121 pins Rev B (angled pins at top edge for main keys and rollers)
|
||||
|
||||
#define R1Pin 0
|
||||
#define R2Pin 2
|
||||
#define R3Pin 4
|
||||
#define R4Pin 6
|
||||
#define R5Pin 8
|
||||
|
||||
#define K4Pin 10
|
||||
#define K1Pin 1
|
||||
#define K2Pin 3
|
||||
#define K3Pin 5
|
||||
#define K5Pin 7
|
||||
#define K6Pin 9
|
||||
#define K7Pin 11
|
||||
|
||||
/*
|
||||
* PINOUT ON PCB vs PINS ON MPR121 - Rev. B
|
||||
*
|
||||
* (R1) (R2) (R3/6) (R4) (R5) (K4) <-> (00) (02) (04) (06) (08) (10)
|
||||
*
|
||||
* (K1) (K2) (K3) (K5) (K6) (K7) <-> (01) (03) (05) (07) (09) (11)
|
||||
*
|
||||
*/
|
||||
|
||||
# else
|
||||
|
||||
// MPR121 pins Rev A (upright pins below MPR121 for main keys and rollers)
|
||||
|
||||
#define R1Pin 10
|
||||
#define R2Pin 11
|
||||
#define R3Pin 8
|
||||
#define R4Pin 9
|
||||
#define R5Pin 6
|
||||
|
||||
#define K4Pin 7
|
||||
#define K1Pin 4
|
||||
#define K2Pin 5
|
||||
#define K3Pin 2
|
||||
#define K5Pin 3
|
||||
#define K6Pin 0
|
||||
#define K7Pin 1
|
||||
|
||||
/*
|
||||
* PINOUT ON PCB vs PINS ON MPR121 - Rev. A
|
||||
*
|
||||
* (R2) (R4) (K4) (K2) (K5) (K7) <-> (11) (09) (07) (05) (03) (01)
|
||||
*
|
||||
* (R1) (R3/6) (R5) (K1) (K3) (K6) <-> (10) (08) (06) (04) (02) (00)
|
||||
*
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
14
midi.ino
14
midi.ino
|
@ -1,7 +1,5 @@
|
|||
#include "midi.h"
|
||||
|
||||
//Need this define here for now
|
||||
#define NEWTEENSYDUINO
|
||||
#include "hardware.h"
|
||||
|
||||
int midiChannel = 1;
|
||||
|
||||
|
@ -71,17 +69,17 @@ void midiPanic() { // all notes off
|
|||
|
||||
// Send a three byte din midi message
|
||||
void midiSend3B(byte midistatus, byte data1, byte data2) {
|
||||
MidiSerial.write(midistatus);
|
||||
MidiSerial.write(data1);
|
||||
MidiSerial.write(data2);
|
||||
MIDI_SERIAL.write(midistatus);
|
||||
MIDI_SERIAL.write(data1);
|
||||
MIDI_SERIAL.write(data2);
|
||||
}
|
||||
|
||||
//**************************************************************
|
||||
|
||||
// Send a two byte din midi message
|
||||
void midiSend2B(byte midistatus, byte data) {
|
||||
MidiSerial.write(midistatus);
|
||||
MidiSerial.write(data);
|
||||
MIDI_SERIAL.write(midistatus);
|
||||
MIDI_SERIAL.write(data);
|
||||
}
|
||||
|
||||
//**************************************************************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue