From 606e73249031a9110ac7a754243ab6fb4ead9e05 Mon Sep 17 00:00:00 2001 From: Francois Best Date: Mon, 10 Oct 2016 15:38:08 +0200 Subject: [PATCH] Moved examples & keywords.txt to follow 1.5 lib spec. --- examples/Basic_IO/Basic_IO.ino | 27 +++++++++++ .../Bench/Bench.ino | 0 .../Callbacks/Callbacks.ino | 0 .../DualMerger/DualMerger.ino | 0 .../Input/Input.ino | 0 .../RPN_NRPN/RPN_NRPN.ino | 0 .../RPN_NRPN}/utility.h | 0 .../SimpleSynth/SimpleSynth.ino | 0 .../SimpleSynth}/noteList.cpp | 0 .../SimpleSynth}/noteList.h | 0 .../SimpleSynth}/pitches.h | 0 res/keywords.txt => keywords.txt | 0 res/Examples/MIDI_Basic_IO/MIDI_Basic_IO.ino | 27 ----------- src/MIDI.h | 1 - src/midi_UsbTransport.h | 47 +++++++++++++++++++ 15 files changed, 74 insertions(+), 28 deletions(-) create mode 100644 examples/Basic_IO/Basic_IO.ino rename res/Examples/MIDI_Bench/MIDI_Bench.ino => examples/Bench/Bench.ino (100%) rename res/Examples/MIDI_Callbacks/MIDI_Callbacks.ino => examples/Callbacks/Callbacks.ino (100%) rename res/Examples/MIDI_DualMerger/MIDI_DualMerger.ino => examples/DualMerger/DualMerger.ino (100%) rename res/Examples/MIDI_Input/MIDI_Input.ino => examples/Input/Input.ino (100%) rename res/Examples/MIDI_RPN_NRPN/MIDI_RPN_NRPN.ino => examples/RPN_NRPN/RPN_NRPN.ino (100%) rename {res/Examples/MIDI_RPN_NRPN => examples/RPN_NRPN}/utility.h (100%) rename res/Examples/MIDI_SimpleSynth/MIDI_SimpleSynth.ino => examples/SimpleSynth/SimpleSynth.ino (100%) rename {res/Examples/MIDI_SimpleSynth => examples/SimpleSynth}/noteList.cpp (100%) rename {res/Examples/MIDI_SimpleSynth => examples/SimpleSynth}/noteList.h (100%) rename {res/Examples/MIDI_SimpleSynth => examples/SimpleSynth}/pitches.h (100%) rename res/keywords.txt => keywords.txt (100%) delete mode 100644 res/Examples/MIDI_Basic_IO/MIDI_Basic_IO.ino create mode 100644 src/midi_UsbTransport.h diff --git a/examples/Basic_IO/Basic_IO.ino b/examples/Basic_IO/Basic_IO.ino new file mode 100644 index 0000000..43a3fe3 --- /dev/null +++ b/examples/Basic_IO/Basic_IO.ino @@ -0,0 +1,27 @@ +#include + +// Simple tutorial on how to receive and send MIDI messages. +// Here, when receiving any message on channel 4, the Arduino +// will blink a led and play back a note for 1 second. + +MIDI_CREATE_DEFAULT_INSTANCE(); + +static const ledPin = 13; // LED pin on Arduino Uno + +void setup() +{ + pinMode(ledPin, OUTPUT); + MIDI.begin(4); // Launch MIDI and listen to channel 4 +} + +void loop() +{ + if (MIDI.read()) // If we have received a message + { + digitalWrite(ledPin, HIGH); + MIDI.sendNoteOn(42, 127, 1); // Send a Note (pitch 42, velo 127 on channel 1) + delay(1000); // Wait for a second + MIDI.sendNoteOff(42, 0, 1); // Stop the note + digitalWrite(ledPin, LOW); + } +} diff --git a/res/Examples/MIDI_Bench/MIDI_Bench.ino b/examples/Bench/Bench.ino similarity index 100% rename from res/Examples/MIDI_Bench/MIDI_Bench.ino rename to examples/Bench/Bench.ino diff --git a/res/Examples/MIDI_Callbacks/MIDI_Callbacks.ino b/examples/Callbacks/Callbacks.ino similarity index 100% rename from res/Examples/MIDI_Callbacks/MIDI_Callbacks.ino rename to examples/Callbacks/Callbacks.ino diff --git a/res/Examples/MIDI_DualMerger/MIDI_DualMerger.ino b/examples/DualMerger/DualMerger.ino similarity index 100% rename from res/Examples/MIDI_DualMerger/MIDI_DualMerger.ino rename to examples/DualMerger/DualMerger.ino diff --git a/res/Examples/MIDI_Input/MIDI_Input.ino b/examples/Input/Input.ino similarity index 100% rename from res/Examples/MIDI_Input/MIDI_Input.ino rename to examples/Input/Input.ino diff --git a/res/Examples/MIDI_RPN_NRPN/MIDI_RPN_NRPN.ino b/examples/RPN_NRPN/RPN_NRPN.ino similarity index 100% rename from res/Examples/MIDI_RPN_NRPN/MIDI_RPN_NRPN.ino rename to examples/RPN_NRPN/RPN_NRPN.ino diff --git a/res/Examples/MIDI_RPN_NRPN/utility.h b/examples/RPN_NRPN/utility.h similarity index 100% rename from res/Examples/MIDI_RPN_NRPN/utility.h rename to examples/RPN_NRPN/utility.h diff --git a/res/Examples/MIDI_SimpleSynth/MIDI_SimpleSynth.ino b/examples/SimpleSynth/SimpleSynth.ino similarity index 100% rename from res/Examples/MIDI_SimpleSynth/MIDI_SimpleSynth.ino rename to examples/SimpleSynth/SimpleSynth.ino diff --git a/res/Examples/MIDI_SimpleSynth/noteList.cpp b/examples/SimpleSynth/noteList.cpp similarity index 100% rename from res/Examples/MIDI_SimpleSynth/noteList.cpp rename to examples/SimpleSynth/noteList.cpp diff --git a/res/Examples/MIDI_SimpleSynth/noteList.h b/examples/SimpleSynth/noteList.h similarity index 100% rename from res/Examples/MIDI_SimpleSynth/noteList.h rename to examples/SimpleSynth/noteList.h diff --git a/res/Examples/MIDI_SimpleSynth/pitches.h b/examples/SimpleSynth/pitches.h similarity index 100% rename from res/Examples/MIDI_SimpleSynth/pitches.h rename to examples/SimpleSynth/pitches.h diff --git a/res/keywords.txt b/keywords.txt similarity index 100% rename from res/keywords.txt rename to keywords.txt diff --git a/res/Examples/MIDI_Basic_IO/MIDI_Basic_IO.ino b/res/Examples/MIDI_Basic_IO/MIDI_Basic_IO.ino deleted file mode 100644 index f6efee2..0000000 --- a/res/Examples/MIDI_Basic_IO/MIDI_Basic_IO.ino +++ /dev/null @@ -1,27 +0,0 @@ -#include - -// Simple tutorial on how to receive and send MIDI messages. -// Here, when receiving any message on channel 4, the Arduino -// will blink a led and play back a note for 1 second. - -MIDI_CREATE_DEFAULT_INSTANCE(); - -#define LED 13 // LED pin on Arduino Uno - -void setup() -{ - pinMode(LED, OUTPUT); - MIDI.begin(4); // Launch MIDI and listen to channel 4 -} - -void loop() -{ - if (MIDI.read()) // If we have received a message - { - digitalWrite(LED,HIGH); - MIDI.sendNoteOn(42,127,1); // Send a Note (pitch 42, velo 127 on channel 1) - delay(1000); // Wait for a second - MIDI.sendNoteOff(42,0,1); // Stop the note - digitalWrite(LED,LOW); - } -} diff --git a/src/MIDI.h b/src/MIDI.h index 09961a2..11f0605 100644 --- a/src/MIDI.h +++ b/src/MIDI.h @@ -123,7 +123,6 @@ public: Channel inChannel); inline void endNrpn(Channel inChannel); - public: void send(MidiType inType, DataByte inData1, diff --git a/src/midi_UsbTransport.h b/src/midi_UsbTransport.h new file mode 100644 index 0000000..7d59480 --- /dev/null +++ b/src/midi_UsbTransport.h @@ -0,0 +1,47 @@ +/*! + * @file midi_UsbTransport.h + * Project Arduino MIDI Library + * @brief MIDI Library for the Arduino - Transport layer for USB MIDI + * @version 4.2 + * @author Francois Best + * @date 10/10/2016 + * @license MIT - Copyright (c) 2016 Francois Best + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#pragma once + +#include "midi_Defs.h" + +BEGIN_MIDI_NAMESPACE + +class UsbTransport +{ +public: + inline UsbTransport(); + +public: // Serial / Stream API required for template compatibility + inline void begin(unsigned inBaudrate); + inline int available() const; + inline byte read(); + inline void write(byte); +}; + +END_MIDI_NAMESPACE