diff --git a/docs/Doxygen/d0/d30/1_8Volume-Controlled-USB-DAC_8ino-example.html b/docs/Doxygen/d0/d30/1_8Volume-Controlled-USB-DAC_8ino-example.html index 529278e440..fa445bb087 100644 --- a/docs/Doxygen/d0/d30/1_8Volume-Controlled-USB-DAC_8ino-example.html +++ b/docs/Doxygen/d0/d30/1_8Volume-Controlled-USB-DAC_8ino-example.html @@ -74,11 +74,11 @@
This is an example of the VolumeControl class of the Control Surface library. It acts as a USB Audio DAC (Digital-to-Analog Converter).
This specific example uses an I²S DAC, but you can use other interfaces of the Teensy Audio library as well. For testing, I'm using a PCM5102a.
Connect the left terminal of the potentiometer to ground, and the right one to VCC.
Select a USB audio option from the Tools menu in the IDE.
-Upload the sketch, and select the Control Surface as the audio output of your computer. Connect the output of the DAC to a pair of headphones or powered speakers, and play some music.
You can now adjust the volume using the potentiometer.
None.
Written by PieterP, 2019-08-09
diff --git a/docs/Doxygen/d0/d32/MIDI-Input-Callback_8ino-example.html b/docs/Doxygen/d0/d32/MIDI-Input-Callback_8ino-example.html
index 2e22eea8ee..a9b1d25294 100644
--- a/docs/Doxygen/d0/d32/MIDI-Input-Callback_8ino-example.html
+++ b/docs/Doxygen/d0/d32/MIDI-Input-Callback_8ino-example.html
@@ -74,19 +74,19 @@
This is an example on how to attach your own callbacks for receiving MIDI input data.
None.
-None.
Written by PieterP, 2019-08-07
diff --git a/docs/Doxygen/d4/dbe/namespaceMIDI__CC.html b/docs/Doxygen/d4/dbe/namespaceMIDI__CC.html
index 864913060f..3bd07abc07 100644
--- a/docs/Doxygen/d4/dbe/namespaceMIDI__CC.html
+++ b/docs/Doxygen/d4/dbe/namespaceMIDI__CC.html
@@ -395,7 +395,7 @@
Definition at line 23 of file Control_Change.hpp.
@@ -495,6 +495,8 @@Definition at line 28 of file Control_Change.hpp.
@@ -519,6 +521,8 @@Definition at line 29 of file Control_Change.hpp.
@@ -1223,6 +1227,8 @@Definition at line 70 of file Control_Change.hpp.
@@ -1247,6 +1253,8 @@Definition at line 71 of file Control_Change.hpp.
@@ -1271,6 +1279,8 @@Definition at line 72 of file Control_Change.hpp.
@@ -1295,6 +1305,8 @@Definition at line 73 of file Control_Change.hpp.
@@ -1561,6 +1573,8 @@Definition at line 88 of file Control_Change.hpp.
@@ -1585,6 +1599,8 @@Definition at line 89 of file Control_Change.hpp.
@@ -1609,6 +1625,8 @@Definition at line 90 of file Control_Change.hpp.
@@ -1633,6 +1651,8 @@Definition at line 91 of file Control_Change.hpp.
diff --git a/docs/Doxygen/d5/d2d/classIncrementDecrementSelectorLEDs.html b/docs/Doxygen/d5/d2d/classIncrementDecrementSelectorLEDs.html index 813dd543bb..074ee3b1c2 100644 --- a/docs/Doxygen/d5/d2d/classIncrementDecrementSelectorLEDs.html +++ b/docs/Doxygen/d5/d2d/classIncrementDecrementSelectorLEDs.html @@ -206,6 +206,8 @@Definition at line 99 of file SelectorLEDs.hpp.
Instructions on how to install the library and its dependencies can be found on the page Installation.
Include the library so that you have access to all the classes and functions.
Each of the eight analog inputs of the multiplexer can be connected to the wiper of one potentiometer.
We'll connect the three address lines of the multiplexer (S0
, S1
and S2
) to digital pins 3
, 4
and 5
. The output of the multiplexer goes to analog pin A0
. Connect the enable pin (Ē
) to ground.
Now, we can specify the objects that read the input of the potentiometers and send out MIDI events accordingly.
Again, I'll refer to the overview of MIDI Output Elements here.
@@ -187,7 +187,7 @@-Note: Using blocking code like delays will interfere with the Control Surface, so try to use Blink Without Delay techniques instead.
That's it!
Now you can just upload the sketch to your Arduino, open up your favorite audio software, map the potentiometers, and start playing!
Include the library so that you have access to all the classes and functions.
See First Output: Instantiate a MIDI Interface.
See First Output: Add Extended Input/Output elements.
In this example, we'll use a 74HC595 8-bit serial in/parallel out shift register. This allows us to drive eight LEDs using just the SPI bus and a single digital pin. You can daisy chain as many shift registers as you want, without requiring any more pins.
@@ -258,7 +258,7 @@The 8
between angle brackets (<>
) is the number of bits of the shift register. If you daisy chain two 8-bit shift registers together, you would use 16
instead of 8
, for example.
The bit order determines which pin of the shift register is the first pin in the program. MSBFIRST
means "most significant bit first". You can also use LSBFIRST
(least significant bit first).
Now, we can specify the objects that listen for MIDI input, and update the status of the LEDs accordingly.
I'll refer to the overview of MIDI Input Elements here.
@@ -285,19 +285,19 @@See First Output: Initialize the Control Surface.
See First Output: Continuously Update the Control Surface.
That's it!
Now you can just upload the sketch to your Arduino, open up your favorite audio software, redirect the MIDI output to the Arduino, and start playing!
An ExtIO version of the Arduino function.
-Definition at line 36 of file ExtendedInputOutput.cpp.
@@ -298,7 +298,7 @@An ExtIO version of the Arduino function.
-Definition at line 47 of file ExtendedInputOutput.cpp.
diff --git a/docs/Doxygen/d7/d42/Channel_8hpp.html b/docs/Doxygen/d7/d42/Channel_8hpp.html index 282c09b615..3b27eb99b3 100644 --- a/docs/Doxygen/d7/d42/Channel_8hpp.html +++ b/docs/Doxygen/d7/d42/Channel_8hpp.html @@ -157,7 +157,7 @@Definition at line 111 of file Channel.hpp.
@@ -183,7 +183,7 @@Definition at line 112 of file Channel.hpp.
@@ -209,7 +209,7 @@Definition at line 113 of file Channel.hpp.
@@ -235,7 +235,7 @@Definition at line 114 of file Channel.hpp.
@@ -261,7 +261,7 @@Definition at line 115 of file Channel.hpp.
@@ -287,7 +287,7 @@Definition at line 116 of file Channel.hpp.
@@ -313,7 +313,7 @@Definition at line 117 of file Channel.hpp.
@@ -339,7 +339,7 @@Definition at line 118 of file Channel.hpp.
@@ -365,6 +365,8 @@Definition at line 119 of file Channel.hpp.
@@ -389,6 +391,8 @@Definition at line 120 of file Channel.hpp.
@@ -413,6 +417,8 @@Definition at line 121 of file Channel.hpp.
@@ -437,6 +443,8 @@Definition at line 122 of file Channel.hpp.
diff --git a/docs/Doxygen/d7/dc0/classBankable_1_1CCPotentiometer.html b/docs/Doxygen/d7/dc0/classBankable_1_1CCPotentiometer.html index 9681bb19dc..49af66362f 100644 --- a/docs/Doxygen/d7/dc0/classBankable_1_1CCPotentiometer.html +++ b/docs/Doxygen/d7/dc0/classBankable_1_1CCPotentiometer.html @@ -184,7 +184,7 @@A class of MIDIOutputElements that read the analog input from a potentiometer or fader, and send out 7-bit MIDI Control Change events.
The analog input is filtered and hysteresis is applied for maximum stability.
This version can be banked.
Definition at line 22 of file Bankable/CCPotentiometer.hpp.
diff --git a/docs/Doxygen/d8/d4a/md_pages_MIDI-over-USB.html b/docs/Doxygen/d8/d4a/md_pages_MIDI-over-USB.html index 37e5e2644f..7d230859ca 100644 --- a/docs/Doxygen/d8/d4a/md_pages_MIDI-over-USB.html +++ b/docs/Doxygen/d8/d4a/md_pages_MIDI-over-USB.html @@ -75,7 +75,7 @@There are some differences in MIDI over USB implementation between different types of Arduino-compatible boards.
-Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro, Arduino LilyPad USB ...
Some of the newer boards have native USB support (i.e. the USB connection goes directly to the main MCU) this means that they can pretend to be a USB MIDI device. This is based on PluggableUSB, using the MIDIUSB library.
All you have to do to get it working, is installing the library, and upload a sketch.
The computer will then automatically detect the Arduino as a MIDI device.
Teensy 2.0, Teensy++ 2.0, Teensy LC, Teensy 3.0, Teensy 3.1, Teensy 3.2, Teensy 3.5, Teensy 3.6
Teensy boards have native USB support as well. You don't even need to install anything, because MIDI over USB is implemented in the Teensy Core.
You just need to select the 'MIDI' USB type from Tools > USB Type > MIDI.
Arduino Uno, Arduino Mega
Finally, when you know that everything is working fine, you can change the baud rate to the official MIDI baud rate of 31250, by using the default USBMIDI_Interface
(don't explicitly instantiate any interfaces) uploading the sketch, and flashing the HIDUINO MIDI firmware using Flip or dfu-programmer.
You can now just plug it into your computer, and it will be recognized as a MIDI device, you don't need to run Hairless anymore.
Arduino Nano, Arduino Duemilanove, Chinese Uno & Mega clones ...
HairlessMIDI_Interface
at the top of your sketch. I strongly recommend getting a Teensy 3.x for building a Control Surface. MIDI over USB is supported right of the box, and it's the only platform that currently supports USB audio output. On top of that, it has plenty of memory to create large MIDI Controllers, and drive lots of displays.
If you just want a very small MIDI Controller, the Arduino Leonardo/Micro are good choices as well, just keep in mind that they don't have a lot of RAM.
diff --git a/docs/Doxygen/d8/da8/md_pages_Installation.html b/docs/Doxygen/d8/da8/md_pages_Installation.html index 6cbe7e740e..8f6aec0a15 100644 --- a/docs/Doxygen/d8/da8/md_pages_Installation.html +++ b/docs/Doxygen/d8/da8/md_pages_Installation.html @@ -77,35 +77,35 @@This document assumes that the Arduino IDE is already installed, as well as the necessary hardware support packages, such as Teensyduino or the ESP32 Core.
You have to install the Control Surface library itself, as well as some dependencies.
If you want to keep up to date with the latest developments, or if you want an easy way to update, the git install is recommended. Otherwise, you can use the no git install.
-Download the repository as a ZIP archive by going to the home page of the repository and click the green Clone or download button on the top right.
-Open the Arduino IDE, and go to the Sketch > Include Library > Add .ZIP Library menu.
Then navigate to your downloads directory where you just downloaded the library.
Select it, and click Ok.
If you haven't already, install git from https://git-scm.com/downloads or use your system's package manager.
On Ubuntu and other Debian-based distros:
Open a terminal window and change the directory to your Arduino folder.
On Linux:
If you installed the library using git, you can easily update it when a new version comes out.
To update to the latest master
version:
If you are using an Arduino board with on-board USB capabilities, you need the MIDIUSB library. Install it as explained before, or by using the Library Manager.
The Control Surface Library depends on the PJRC Encoder library for reading the input from rotary encoders. Download and install it if you plan on using those.
diff --git a/docs/Doxygen/d8/de6/VU-Meter-Bridge_8ino-example.html b/docs/Doxygen/d8/de6/VU-Meter-Bridge_8ino-example.html index 715ebb83b5..dc99fb69c3 100644 --- a/docs/Doxygen/d8/de6/VU-Meter-Bridge_8ino-example.html +++ b/docs/Doxygen/d8/de6/VU-Meter-Bridge_8ino-example.html @@ -74,12 +74,12 @@This is an example on how to use an OLED display to display the VU meters and mute/solo states of the eight first tracks, by using the Arduino as a Mackie Control Universal. This is an example modified to work with the ESP32 only, using MIDI over Bluetooth Low Energy.
This example drives two SSD1306 OLED displays over SPI
Add a capacitor between the reset pin of the display and ground, and a resistor from reset to 3.3V. The values are not critical, 0.1µF and 10kΩ work fine.
You do need some way to reset the display, without it, it won't work.
Alternatively, you could use an IO pin from the ESP32 to reset the display, but this just "wastes" a pin.
The first display should now display the level meters and mute/solo states of the first 8 tracks.
-Map "Control Surface" as a Mackie Control Universal unit in your DAW.
This example shows the usage of the AudioVU and AnalogVUDisplay classes of the Control Surface library.
It acts as a USB Audio DAC (Digital-to-Analog Converter).
Add a capacitor between the reset pin of the displays and ground, and a resistor from reset to 3.3V. The values are not critical, 0.1µF and 10kΩ work fine.
You do need some way to reset the displays, without it, it won't work.
Alternatively, you could use an IO pin from the Teensy to reset the displays, but this just "wastes" a pin.
Upload the sketch, and select the Control Surface as the audio output of your computer. Connect the output of the DAC to a pair of headphones or powered speakers, and play some music.
You should see the VU meters come to life and jump around to the music.
You can now adjust the volume using the potentiometer on pin A0, and the gain/sensitivity of the meters using the potentiometer on pin A1.
-None.
-Written by PieterP, 2019-08-09
diff --git a/docs/Doxygen/da/d2d/Transposer_8ino-example.html b/docs/Doxygen/da/d2d/Transposer_8ino-example.html
index 3b24642ef6..91174cca78 100644
--- a/docs/Doxygen/da/d2d/Transposer_8ino-example.html
+++ b/docs/Doxygen/da/d2d/Transposer_8ino-example.html
@@ -74,11 +74,11 @@
This is an example that demonstrates the use a Transposer to transpose the note events sent out by NoteButtons.
The internal pull-up resistor for the buttons will be enabled automatically.
-Route the Arduino MIDI port into a synth to play the notes.
Written by PieterP, 2019-10-26
diff --git a/docs/Doxygen/db/dbd/classBank.html b/docs/Doxygen/db/dbd/classBank.html
index cb109fb6e4..1a79099f64 100644
--- a/docs/Doxygen/db/dbd/classBank.html
+++ b/docs/Doxygen/db/dbd/classBank.html
@@ -158,7 +158,7 @@
-
Definition at line 77 of file Bank.hpp.
diff --git a/docs/Doxygen/dc/d05/Keyboard-Matrix-BCD_8ino-example.html b/docs/Doxygen/dc/d05/Keyboard-Matrix-BCD_8ino-example.html index 75d4d867e7..de2f2e6106 100644 --- a/docs/Doxygen/dc/d05/Keyboard-Matrix-BCD_8ino-example.html +++ b/docs/Doxygen/dc/d05/Keyboard-Matrix-BCD_8ino-example.html @@ -74,7 +74,7 @@This examples shows how to use a button matrix to read many switches using a BD to decimal decoder.
https://forum.arduino.cc/index.php?topic=651047
Initialize the Control_Surface.
-Definition at line 25 of file Control_Surface_Class.cpp.
@@ -385,7 +385,7 @@Update all MIDI elements, send MIDI events and read MIDI input.
-Definition at line 48 of file Control_Surface_Class.cpp.
diff --git a/docs/Doxygen/dc/d69/namespaceAH.html b/docs/Doxygen/dc/d69/namespaceAH.html index a98d0b99a2..aeb151d3df 100644 --- a/docs/Doxygen/dc/d69/namespaceAH.html +++ b/docs/Doxygen/dc/d69/namespaceAH.html @@ -454,7 +454,7 @@The type for Arduino pins (and ExtendedIOElement pins).
-Definition at line 17 of file Hardware-Types.hpp.
diff --git a/docs/Doxygen/dd/ddf/ExtendedInputOutput_8hpp.html b/docs/Doxygen/dd/ddf/ExtendedInputOutput_8hpp.html index 76cf46f1c3..d76a1b4c6c 100644 --- a/docs/Doxygen/dd/ddf/ExtendedInputOutput_8hpp.html +++ b/docs/Doxygen/dd/ddf/ExtendedInputOutput_8hpp.html @@ -272,7 +272,7 @@Definition at line 50 of file ExtendedInputOutput.hpp.
diff --git a/docs/Doxygen/de/d26/MIDI_controller-97_8ino-example.html b/docs/Doxygen/de/d26/MIDI_controller-97_8ino-example.html new file mode 100644 index 0000000000..8fec091d24 --- /dev/null +++ b/docs/Doxygen/de/d26/MIDI_controller-97_8ino-example.html @@ -0,0 +1,213 @@ + + + + + + + +
+ Control Surface
+ master
+
+ MIDI Control Surface library for Arduino
+ |
+
https://github.com/tttapa/MIDI_controller/issues/97#issuecomment-564247602
+Many bankable potentiometers and buttons.
+Definition at line 22 of file Bankable/NoteButton.hpp.
diff --git a/docs/Doxygen/de/daf/md_pages_Debug.html b/docs/Doxygen/de/daf/md_pages_Debug.html index 270f27f61b..c75b320929 100644 --- a/docs/Doxygen/de/daf/md_pages_Debug.html +++ b/docs/Doxygen/de/daf/md_pages_Debug.html @@ -77,7 +77,7 @@If you are going to be debugging a lot, it might be useful to just add a menu option in the IDE to disable/enable debugging.
This can be easily done by editing the boards.txt
file.
An Arduino library for MIDI control surfaces (input and output).
-This library turns your Arduino-compatible board into a MIDI control surface.
If you are using a Teensy 3.x, you can use it as a USB audio interface. Just add an I²S DAC (e.g. PCM5102), and 5 lines of code, and you can start playing audio through your Teensy.
You can also add volume controls and VU meters for these audio connections.
Thanks to the structure of the library, you can easily add your own MIDI or display elements, using some minimal, high level code. All low level stuff is completely reusable (e.g. all MIDI operations, debouncing switches, filtering analog inputs, and so on).
-A complete sketch for a MIDI controller with a potentiometer that sends out MIDI Control Change message can be written in just five lines of code:
You might already have found my other Arduino MIDI library, MIDI Controller, and are wondering which one you should use for your project.
First, some background:
@@ -160,7 +160,7 @@
For a new project, I would recommend Control Surface, because I think it has some great features compared to MIDI Controller.
The only caveat is that this library is still under development. Master should always be relatively stable, but I might change the API of some parts of the library for future releases if necessary.
Another thing is that not everything is implemented yet, and many features are not yet fully documented. If you have a specific feature request that is not yet fully implemented, feel free to open an issue, so I know where to focus on first.
See the Getting Started document to get started using the library.
-The automatically generated Doxygen documentation for this library can be found here:
Documentation
@@ -182,7 +182,7 @@
Have a look at the modules for an overview of the features of the library.
-For each commit, the continuous integration tests compile the examples for the following boards:
Note that MIDI over USB and MIDI over Bluetooth are not supported on all boards.
For MIDI over USB support, check out the MIDI over USB documentation page. As a general rule of thumb, if your board is supported by the MIDIUSB library or if it's a Teensy, MIDI over USB should be supported.
MIDI over BLE is currently only supported on ESP32.
Information for people that would like to help improve the Control Surface library can be found here: https://tttapa.github.io/Pages/Arduino/Control-Surface/Developers/index.html
It covers installation instructions for developers, instructions for running the tests and generating documentation, a style guide, etc.