|
|
@ -1,34 +1,38 @@ |
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* Open.Theremin control software for Arduino UNO |
|
|
|
* Open Theremin V3 with MIDI interface control software for Arduino UNO
|
|
|
|
* Version 3.0 |
|
|
|
* Based on Open Theremin V3 version 3.0 Copyright (C) 2010-2016 by Urs Gaudenz |
|
|
|
* Copyright (C) 2010-2016 by Urs Gaudenz |
|
|
|
|
|
|
|
* |
|
|
|
* |
|
|
|
* Open.Theremin control software is free software: you can redistribute it and/or |
|
|
|
* |
|
|
|
* modify it under the terms of the GNU General Public License as published |
|
|
|
* Open Theremin V3 with MIDI interface control software is free software:
|
|
|
|
|
|
|
|
* you can redistribute it and/or modify it under the terms of
|
|
|
|
|
|
|
|
* the GNU General Public License as published |
|
|
|
* by the Free Software Foundation, either version 3 of the License, or |
|
|
|
* by the Free Software Foundation, either version 3 of the License, or |
|
|
|
* (at your option) any later version. |
|
|
|
* (at your option) any later version. |
|
|
|
* |
|
|
|
* |
|
|
|
* Open.Theremin control software is distributed in the hope that it will be useful, |
|
|
|
* Open Theremin V3 with MIDI interface control software is distributed
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
* in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
|
|
|
|
* without even the implied warranty of |
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
* GNU General Public License for more details. |
|
|
|
* GNU General Public License for more details. |
|
|
|
* |
|
|
|
* |
|
|
|
* You should have received a copy of the GNU General Public License along with |
|
|
|
* You should have received a copy of the GNU General Public License along with |
|
|
|
* the Open.Theremin control software. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* the Open Theremin V3 with MIDI interface control software.
|
|
|
|
|
|
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* |
|
|
|
* |
|
|
|
* With important contributions by
|
|
|
|
* Urs Gaudenz also credits for their important contributions to Open Theremin V3:
|
|
|
|
* David Harvey |
|
|
|
* David Harvey |
|
|
|
* Michael Margolis |
|
|
|
* Michael Margolis |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Midi added by Vincent Dhamelincourt - September 2017.
|
|
|
|
|
|
|
|
* Serial com' removed from the original Open Theremin V3 's code for midi purpose.
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
Building the code |
|
|
|
Building the code |
|
|
|
================= |
|
|
|
================= |
|
|
|
build.h contains #defines that control the compilation of the code |
|
|
|
build.h contains #defines that control the compilation of the code |
|
|
|
|
|
|
|
|
|
|
|
ENABLE_SERIAL - if non-0, the build will include code to write the detected |
|
|
|
|
|
|
|
pitch to the serial connection every 100 milliseconds. Set serial |
|
|
|
|
|
|
|
receive baud to 115200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENABLE_CV - if non-0, emit cv output on pin 6 (EXPERIMENTAL!) |
|
|
|
ENABLE_CV - if non-0, emit cv output on pin 6 (EXPERIMENTAL!) |
|
|
|
|
|
|
|
|
|
|
@ -43,6 +47,7 @@ Main application object. Holds the state of the app (playing, calibrating), deal |
|
|
|
with initialisation and the app main loop, reads pitch and volume changed flags |
|
|
|
with initialisation and the app main loop, reads pitch and volume changed flags |
|
|
|
from the interrupt handlers and sets pitch and volume values which the timer |
|
|
|
from the interrupt handlers and sets pitch and volume values which the timer |
|
|
|
interrupt sends to the DAC. |
|
|
|
interrupt sends to the DAC. |
|
|
|
|
|
|
|
Midi is also managed here |
|
|
|
|
|
|
|
|
|
|
|
** OTPinDefs.h ** |
|
|
|
** OTPinDefs.h ** |
|
|
|
Pin definitions for the DAC. |
|
|
|
Pin definitions for the DAC. |
|
|
|