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 <Adafruit_SSD1306.h>
|
||||||
#include <Filters.h> // for the breath signal LP filtering, https://github.com/edgar-bonet/Filters
|
#include <Filters.h> // for the breath signal LP filtering, https://github.com/edgar-bonet/Filters
|
||||||
|
|
||||||
|
#include "hardware.h"
|
||||||
#include "midi.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 FIRMWARE_VERSION "1.3.2" // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
|
||||||
#define REVB
|
|
||||||
|
|
||||||
//#define CASSIDY
|
//#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 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 touch_Thr 1200 // sensitivity for Teensy touch sensors
|
||||||
|
@ -820,35 +731,35 @@ void loop() {
|
||||||
if (exSensor >= ((extracThrVal+extracMaxVal)/2)){ // instant midi setting
|
if (exSensor >= ((extracThrVal+extracMaxVal)/2)){ // instant midi setting
|
||||||
if ((fingeredNoteUntransposed >= 73) && (fingeredNoteUntransposed <= 88)) {
|
if ((fingeredNoteUntransposed >= 73) && (fingeredNoteUntransposed <= 88)) {
|
||||||
MIDIchannel = fingeredNoteUntransposed - 72; // Mid C and up
|
MIDIchannel = fingeredNoteUntransposed - 72; // Mid C and up
|
||||||
digitalWrite(13,LOW);
|
digitalWrite(statusLedPin, LOW);
|
||||||
delay(150);
|
delay(150);
|
||||||
digitalWrite(13,HIGH);
|
digitalWrite(statusLedPin, HIGH);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!pinkyKey){ // note number to patch number
|
if (!pinkyKey){ // note number to patch number
|
||||||
if (patch != fingeredNoteUntransposed){
|
if (patch != fingeredNoteUntransposed){
|
||||||
patch = fingeredNoteUntransposed;
|
patch = fingeredNoteUntransposed;
|
||||||
doPatchUpdate = 1;
|
doPatchUpdate = 1;
|
||||||
digitalWrite(13,LOW);
|
digitalWrite(statusLedPin, LOW);
|
||||||
delay(150);
|
delay(150);
|
||||||
digitalWrite(13,HIGH);
|
digitalWrite(statusLedPin, HIGH);
|
||||||
}
|
}
|
||||||
} else { // hi and lo patch numbers
|
} else { // hi and lo patch numbers
|
||||||
if (fingeredNoteUntransposed > 75){
|
if (fingeredNoteUntransposed > 75){
|
||||||
if (patch != patchLimit(fingeredNoteUntransposed + 24)){
|
if (patch != patchLimit(fingeredNoteUntransposed + 24)){
|
||||||
patch = patchLimit(fingeredNoteUntransposed + 24); // add 24 to get high numbers 108 to 127
|
patch = patchLimit(fingeredNoteUntransposed + 24); // add 24 to get high numbers 108 to 127
|
||||||
doPatchUpdate = 1;
|
doPatchUpdate = 1;
|
||||||
digitalWrite(13,LOW);
|
digitalWrite(statusLedPin, LOW);
|
||||||
delay(150);
|
delay(150);
|
||||||
digitalWrite(13,HIGH);
|
digitalWrite(statusLedPin, HIGH);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (patch != patchLimit(fingeredNoteUntransposed - 36)){
|
if (patch != patchLimit(fingeredNoteUntransposed - 36)){
|
||||||
patch = patchLimit(fingeredNoteUntransposed - 36); // subtract 36 to get low numbers 0 to 36
|
patch = patchLimit(fingeredNoteUntransposed - 36); // subtract 36 to get low numbers 0 to 36
|
||||||
doPatchUpdate = 1;
|
doPatchUpdate = 1;
|
||||||
digitalWrite(13,LOW);
|
digitalWrite(statusLedPin, LOW);
|
||||||
delay(150);
|
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"
|
#include "midi.h"
|
||||||
|
#include "hardware.h"
|
||||||
//Need this define here for now
|
|
||||||
#define NEWTEENSYDUINO
|
|
||||||
|
|
||||||
int midiChannel = 1;
|
int midiChannel = 1;
|
||||||
|
|
||||||
|
@ -71,17 +69,17 @@ void midiPanic() { // all notes off
|
||||||
|
|
||||||
// Send a three byte din midi message
|
// Send a three byte din midi message
|
||||||
void midiSend3B(byte midistatus, byte data1, byte data2) {
|
void midiSend3B(byte midistatus, byte data1, byte data2) {
|
||||||
MidiSerial.write(midistatus);
|
MIDI_SERIAL.write(midistatus);
|
||||||
MidiSerial.write(data1);
|
MIDI_SERIAL.write(data1);
|
||||||
MidiSerial.write(data2);
|
MIDI_SERIAL.write(data2);
|
||||||
}
|
}
|
||||||
|
|
||||||
//**************************************************************
|
//**************************************************************
|
||||||
|
|
||||||
// Send a two byte din midi message
|
// Send a two byte din midi message
|
||||||
void midiSend2B(byte midistatus, byte data) {
|
void midiSend2B(byte midistatus, byte data) {
|
||||||
MidiSerial.write(midistatus);
|
MIDI_SERIAL.write(midistatus);
|
||||||
MidiSerial.write(data);
|
MIDI_SERIAL.write(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
//**************************************************************
|
//**************************************************************
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue