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 @@
1.Volume-Controlled-USB-DAC.ino
-

+

1.Volume-Controlled-USB-DAC

This is an example of the VolumeControl class of the Control Surface library. It acts as a USB Audio DAC (Digital-to-Analog Converter).

Boards:
Teensy 3.x
-

+

Connections

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.

-

+

Behavior

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.

-

+

Mapping

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 @@

MIDI-Input-Callback.ino
-

+

MIDI-Input-Callback

This is an example on how to attach your own callbacks for receiving MIDI input data.

Boards:
AVR, AVR USB, Due, Nano 33, Teensy 3.x, ESP32
-

+

Connections

None.

-

+

Behavior

-

+

Mapping

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 @@

-
Examples
1.First-Output.ino, Control-Change-Potentiometer.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.First-Output.ino, Control-Change-Potentiometer.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

Definition at line 23 of file Control_Change.hpp.

@@ -495,6 +495,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 28 of file Control_Change.hpp.

@@ -519,6 +521,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 29 of file Control_Change.hpp.

@@ -1223,6 +1227,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 70 of file Control_Change.hpp.

@@ -1247,6 +1253,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 71 of file Control_Change.hpp.

@@ -1271,6 +1279,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 72 of file Control_Change.hpp.

@@ -1295,6 +1305,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 73 of file Control_Change.hpp.

@@ -1561,6 +1573,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 88 of file Control_Change.hpp.

@@ -1585,6 +1599,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 89 of file Control_Change.hpp.

@@ -1609,6 +1625,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 90 of file Control_Change.hpp.

@@ -1633,6 +1651,8 @@

+
Examples
MIDI_controller-97.ino.
+

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 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 99 of file SelectorLEDs.hpp.

Member Typedef Documentation

diff --git a/docs/Doxygen/d5/d7d/md_pages_Getting-Started.html b/docs/Doxygen/d5/d7d/md_pages_Getting-Started.html index 43b16e65f1..fc74b5ac50 100644 --- a/docs/Doxygen/d5/d7d/md_pages_Getting-Started.html +++ b/docs/Doxygen/d5/d7d/md_pages_Getting-Started.html @@ -76,22 +76,22 @@

Table of Contents

Note: Using blocking code like delays will interfere with the Control Surface, so try to use Blink Without Delay techniques instead.

-

+

The finished sketch

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!

@@ -238,15 +238,15 @@

allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>

-

+

1. Include the library

Include the library so that you have access to all the classes and functions.

-

+

2. Instantiate a MIDI Interface

See First Output: Instantiate a MIDI Interface.

USBMIDI_Interface midi;
-

+

3. Add Extended Input/Output elements (optional)

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).

-

+

4. Add MIDI Control Elements

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 @@

{sreg.pin(6), note(B, 4)},
{sreg.pin(7), note(C, 5)},
};
-

+

5. Initialize the Control Surface

See First Output: Initialize the Control Surface.

void setup() {
Control_Surface.begin();
}
-

+

6. Continuously Update the Control Surface

See First Output: Continuously Update the Control Surface.

void loop() {
Control_Surface.loop();
}
-

+

The finished sketch

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!

diff --git a/docs/Doxygen/d7/d22/namespaceAH_1_1ExtIO.html b/docs/Doxygen/d7/d22/namespaceAH_1_1ExtIO.html index 047b2ae0b2..ae93d77ddd 100644 --- a/docs/Doxygen/d7/d22/namespaceAH_1_1ExtIO.html +++ b/docs/Doxygen/d7/d22/namespaceAH_1_1ExtIO.html @@ -232,7 +232,7 @@

An ExtIO version of the Arduino function.

-
Examples
1.SPI-Blink.ino, 2.BitBang-Blink.ino, 2.Button.ino, BlinkWithoutDelay-Timer.ino, Keyboard-Matrix-BCD.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.SPI-Blink.ino, 2.BitBang-Blink.ino, 2.Button.ino, BlinkWithoutDelay-Timer.ino, Keyboard-Matrix-BCD.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

Definition at line 36 of file ExtendedInputOutput.cpp.

@@ -298,7 +298,7 @@

An ExtIO version of the Arduino function.

-
Examples
1.SPI-Blink.ino, 2.BitBang-Blink.ino, 2.Button.ino, 2.RGB-LED-Chaser.ino, BlinkWithoutDelay-Timer.ino, Keyboard-Matrix-BCD.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.SPI-Blink.ino, 2.BitBang-Blink.ino, 2.Button.ino, 2.RGB-LED-Chaser.ino, BlinkWithoutDelay-Timer.ino, Keyboard-Matrix-BCD.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

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 @@

-
Examples
1.First-Output.ino, 1.Note-LED.ino, Bank-Button-Matrix.ino, CCButton.ino, Control-Change-Potentiometer.ino, Debug-MIDI-Interface.ino, Encoder-Selector-Bank.ino, Keyboard-Matrix-BCD.ino, MIDI-Controller-Finished-Example.ino, NoteButton.ino, NoteButtonMatrix.ino, One-Pot-Both-PB-and-CC.ino, Pitch-Bend-Potentiometer.ino, and Send-MIDI-Notes.ino.
+
Examples
1.First-Output.ino, 1.Note-LED.ino, Bank-Button-Matrix.ino, CCButton.ino, Control-Change-Potentiometer.ino, Debug-MIDI-Interface.ino, Encoder-Selector-Bank.ino, Keyboard-Matrix-BCD.ino, MIDI-Controller-Finished-Example.ino, MIDI_controller-97.ino, NoteButton.ino, NoteButtonMatrix.ino, One-Pot-Both-PB-and-CC.ino, Pitch-Bend-Potentiometer.ino, and Send-MIDI-Notes.ino.

Definition at line 111 of file Channel.hpp.

@@ -183,7 +183,7 @@

-
Examples
1.First-Output.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.First-Output.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

Definition at line 112 of file Channel.hpp.

@@ -209,7 +209,7 @@

-
Examples
1.First-Output.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.First-Output.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

Definition at line 113 of file Channel.hpp.

@@ -235,7 +235,7 @@

-
Examples
1.First-Output.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
1.First-Output.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

Definition at line 114 of file Channel.hpp.

@@ -261,7 +261,7 @@

-
Examples
1.First-Output.ino.
+
Examples
1.First-Output.ino, and MIDI_controller-97.ino.

Definition at line 115 of file Channel.hpp.

@@ -287,7 +287,7 @@

-
Examples
1.First-Output.ino.
+
Examples
1.First-Output.ino, and MIDI_controller-97.ino.

Definition at line 116 of file Channel.hpp.

@@ -313,7 +313,7 @@

-
Examples
1.First-Output.ino.
+
Examples
1.First-Output.ino, and MIDI_controller-97.ino.

Definition at line 117 of file Channel.hpp.

@@ -339,7 +339,7 @@

-
Examples
1.First-Output.ino.
+
Examples
1.First-Output.ino, and MIDI_controller-97.ino.

Definition at line 118 of file Channel.hpp.

@@ -365,6 +365,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 119 of file Channel.hpp.

@@ -389,6 +391,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 120 of file Channel.hpp.

@@ -413,6 +417,8 @@

+
Examples
MIDI_controller-97.ino.
+

Definition at line 121 of file Channel.hpp.

@@ -437,6 +443,8 @@

+
Examples
MIDI_controller-97.ino.
+

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.

-
Examples
Encoder-Selector-Bank.ino, and MIDI-Controller-Finished-Example.ino.
+
Examples
Encoder-Selector-Bank.ino, MIDI-Controller-Finished-Example.ino, and MIDI_controller-97.ino.

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 boards with native USB support

Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro, Arduino LilyPad USB ...

@@ -83,14 +83,14 @@

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

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 boards with an ATmega16U2 (ATmega8U2)

Arduino Uno, Arduino Mega


@@ -113,7 +113,7 @@

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.

-

+

Boards with a single-purpose USB-to-TTL chip

Arduino Nano, Arduino Duemilanove, Chinese Uno & Mega clones ...


@@ -122,7 +122,7 @@

While MIDI over USB is not supported on these boards, you can still use Hairless. Just instantiate a HairlessMIDI_Interface at the top of your sketch.


-

+

Conclusion

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.

-

+

Installation (no git)

-

+

1. Download

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.

-

+

2. Install the Library in the Arduino IDE

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.

-

+

Installation (git)

-

+

0. Install git

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:

sudo apt install git
-

+

1. Browse to your Arduino Libraries folder

Open a terminal window and change the directory to your Arduino folder.

On Linux:

mkdir -p ~/Arduino/libraries && cd $_
-

+

2. Clone the Library

git clone https://github.com/tttapa/Control-Surface
-

+

3. Updating to the latest version

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:

git pull
-

+

Dependencies

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 @@
VU-Meter-Bridge.ino
-

+

VU-Meter-Bridge

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.

Boards:
ESP32
-

+

Connections

This example drives two SSD1306 OLED displays over SPI

  • SCK: SSD1306 D0
  • @@ -90,15 +90,15 @@

    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.

    -

    +

    Behavior

    The first display should now display the level meters and mute/solo states of the first 8 tracks.

    -

    +

    Mapping

    Map "Control Surface" as a Mackie Control Universal unit in your DAW.

    Note
    There seem to be some differences in the way some applications handle VU meters: some expect the hardware to decay automatically, some don't.
    If you notice that the meters behave strangely, try both MCU::VUDecay::Hold and MCU::VUDecay::Default, or try a different decay time.
    -

    +

    Demo

    +

+ +
+
+
MIDI_controller-97.ino
+
+
+

+MIDI_controller-97

+

https://github.com/tttapa/MIDI_controller/issues/97#issuecomment-564247602

+

Many bankable potentiometers and buttons.

+
Boards:
Mega
+
/**
+
* <https://github.com/tttapa/MIDI_controller/issues/97#issuecomment-564247602>
+
*
+
* Many bankable potentiometers and buttons.
+
*
+
* @boards Mega
+
*/
+
+ +
+
#include <AH/STL/algorithm> // std::any_of
+
+
Bank<4> bank(16);
+
+
// Create a new bank selector that changes the bank setting of the bank we just
+
// created.
+
// It has push buttons connected to pins 21 and 20 that increment or decrement
+
// the bank setting, and 4 LEDs to pins 46, 48, 50, 52 that display the current
+
// bank setting.
+ +
bank,
+
{21, 20}, // button pins
+
{46, 48, 50, 52}, // LED pins
+
};
+
+
using namespace MIDI_CC;
+
Bankable::CCPotentiometer potentiometers[] = {
+ + + + + + + + + + + + +
};
+
+
Bankable::NoteButton muteButtons[] = {
+
{bank, 13, 0x14},
+
{bank, 12, 0x15},
+
{bank, 11, 0x16},
+
{bank, 10, 0x17},
+
{bank, 9, 0x18},
+
{bank, 8, 0x19},
+
{bank, 7, 0x1A},
+
{bank, 6, 0x1B},
+
{bank, 5, 0x1C},
+
{bank, 4, 0x1D},
+
{bank, 3, 0x1E},
+
{bank, 2, 0x1F},
+
{bank, 14, 0x20},
+
{bank, 15, 0x21},
+
{bank, 16, 0x22},
+
{bank, 17, 0x23},
+
{bank, 18, {0x33, CHANNEL_2}},
+
{bank, 19, {0x34, CHANNEL_2}},
+
};
+
+
constexpr pin_t ledPin = 22;
+
+
// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //
+
+
void setup() {
+ +
pinMode(ledPin, OUTPUT);
+
}
+
+
// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //
+
+
void loop() {
+ +
+
// Function that checks if a given button is pressed
+
auto checkButtonPressed = [](const Bankable::NoteButton &button) {
+
return button.getButtonState() == Button::Pressed;
+
};
+
// If any of the push buttons is pressed
+
bool pressed = std::any_of(std::begin(muteButtons), std::end(muteButtons),
+
checkButtonPressed);
+
// Turn on the LED
+
digitalWrite(ledPin, pressed);
+
}
+
+
A class of MIDIOutputElements that read the input of a momentary push button or switch,...
+
A class that groups Bankable BankableMIDIOutputs and BankableMIDIInputs, and allows the user to chang...
Definition: Bank.hpp:77
+
constexpr uint8_t Effects_2
+
constexpr Channel CHANNEL_3
Definition: Channel.hpp:113
+
void pinMode(pin_t pin, uint8_t mode)
An ExtIO version of the Arduino function.
+
constexpr Channel CHANNEL_6
Definition: Channel.hpp:116
+
constexpr Channel CHANNEL_11
Definition: Channel.hpp:121
+
Selector with two buttons (one to increment, one to decrement). This version displays the setting usi...
+
constexpr uint8_t Effects_4
+
constexpr Channel CHANNEL_8
Definition: Channel.hpp:118
+
constexpr Channel CHANNEL_12
Definition: Channel.hpp:122
+
The main header file that includes all Control-Surface header files.
+
A class of MIDIOutputElements that read the analog input from a potentiometer or fader,...
+
constexpr Channel CHANNEL_7
Definition: Channel.hpp:117
+
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
+
constexpr uint8_t Effects_1
+
constexpr Channel CHANNEL_5
Definition: Channel.hpp:115
+
Change the offset of the channel number of the element.
Definition: BankConfig.hpp:21
+
constexpr Channel CHANNEL_4
Definition: Channel.hpp:114
+
constexpr uint8_t Effect_Control_2
+
constexpr Channel CHANNEL_10
Definition: Channel.hpp:120
+
constexpr Channel CHANNEL_9
Definition: Channel.hpp:119
+
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
+
constexpr uint8_t Effect_Control_1
+
constexpr uint8_t Sound_Controller_4
+
constexpr uint8_t Sound_Controller_3
+
constexpr uint8_t Sound_Controller_5
+
void begin()
Initialize the Control_Surface.
+
Names and values for all MIDI Control Change Controller Numbers.
+
constexpr Channel CHANNEL_2
Definition: Channel.hpp:112
+
const uint8_t OUTPUT
+
constexpr uint8_t Effects_3
+
constexpr uint8_t Sound_Controller_6
+
constexpr uint8_t Channel_Volume
+
constexpr Channel CHANNEL_1
Definition: Channel.hpp:111
+
void loop()
Update all MIDI elements, send MIDI events and read MIDI input.
+
void digitalWrite(pin_t pin, uint8_t val)
An ExtIO version of the Arduino function.
+ + + + diff --git a/docs/Doxygen/de/d36/classBankable_1_1NoteButton.html b/docs/Doxygen/de/d36/classBankable_1_1NoteButton.html index 18314849f7..988ddfc554 100644 --- a/docs/Doxygen/de/d36/classBankable_1_1NoteButton.html +++ b/docs/Doxygen/de/d36/classBankable_1_1NoteButton.html @@ -182,7 +182,7 @@ The button is debounced in software.
This version can be banked.

-
Examples
Transposer.ino.
+
Examples
MIDI_controller-97.ino, and Transposer.ino.

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 @@
See also
Module Debug for more information.
Debug.ino for example usage.
-

+

Adding a 'Debug' menu in the Arduino IDE

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.

diff --git a/docs/Doxygen/examples.html b/docs/Doxygen/examples.html index fe6bcb5f3e..09461809f0 100644 --- a/docs/Doxygen/examples.html +++ b/docs/Doxygen/examples.html @@ -149,6 +149,8 @@
  • MIDI-Input-Callback.ino
  • +
  • MIDI_controller-97.ino
  • +
  • Multiple-Control-Change-Potentiometers.ino
  • NoteButton.ino
  • diff --git a/docs/Doxygen/index.html b/docs/Doxygen/index.html index e72fbb677c..0a3be1e5a5 100644 --- a/docs/Doxygen/index.html +++ b/docs/Doxygen/index.html @@ -75,10 +75,10 @@

    Build Status Test Coverage Build Status GitHub

    -

    +

    Control Surface

    An Arduino library for MIDI control surfaces (input and output).

    -

    +

    Overview

    This library turns your Arduino-compatible board into a MIDI control surface.

    @@ -97,7 +97,7 @@

    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).

    -

    +

    Example usage

    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:

    @@ -147,7 +147,7 @@

    void setup() { Control_Surface.begin(); }
    void loop() { Control_Surface.loop(); }
    -

    +

    The Control Surface library vs. The MIDI Controller library

    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.

    -

    +

    Work in progress

    • Adding support for motorized faders
    • @@ -170,10 +170,10 @@

    • Adding more examples and adding comments to existing examples
    • Finishing the documentation
    -

    +

    Getting Started

    See the Getting Started document to get started using the library.

    -

    +

    Documentation

    The automatically generated Doxygen documentation for this library can be found here:
    Documentation
    @@ -182,7 +182,7 @@

    Arduino examples can be found here:
    Examples

    Have a look at the modules for an overview of the features of the library.

    -

    +

    Supported boards

    For each commit, the continuous integration tests compile the examples for the following boards:

      @@ -199,11 +199,11 @@

      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 developers

      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.

      -

      +

      Recent Breaking Changes

      • bca6e11b2b3e02df5f600f65c81676708a81155b