tttapa/Control-Surface
Arduino library for creating MIDI controllers and other MIDI devices.
📋 Changes
- Disable NimBLE encryption by default (#1170)
📋 What's Changed
- Support for the latest arduino-esp32 BLE APIs
- Secure connection support in ESP32 NimBLE backend
- Add compiler defines for RPi Pico 2W to Bluetooth MIDI by @tuulikauri in https://github.com/tttapa/Control-Surface/pull/1156
- Fix compile error with Teensyduino 1.59.0 and Teensy++2.0 board by @BlinxFox in https://github.com/tttapa/Control-Surface/pull/1150
✨ New Contributors
- @tuulikauri made their first contribution in https://github.com/tttapa/Control-Surface/pull/1156
- @BlinxFox made their first contribution in https://github.com/tttapa/Control-Surface/pull/1150
- Full Changelog: https://github.com/tttapa/Control-Surface/compare/2.1.0...2.1.1
**Added support for version 3.3.0 of the [arduino-esp32](https://github.com/espressif/arduino-esp32) core**: The Bluedroid-based Bluetooth stacks for all boards except the original ESP32 have been replaced by NimBLE-based stacks. For these configurations, Control Surface now automatically switches to the `ESP32NimBLEBackend` for [MIDI over BLE](https://tttapa.github.io/Control-Surface/Doxygen/db/d99/md_pages_MIDI-over-BLE.html). More details about the migration from Bluedroid to NimBLE can be found in https://github.com/espressif/arduino-esp32/discussions/10991. **Full Changelog**: https://github.com/tttapa/Control-Surface/compare/2.0.0...2.1.0
💥 Breaking changes w.r.t. version 1.2.0
- ([7bd5268](https://github.com/tttapa/Control-Surface/commit/7bd5268fe8906ba4fbd01024fbddc8598ffd9eb3))
- The `pin_t` type is now a distinct type rather than an alias to an integer.
- This improves type safety, because `pin_t` is no longer implicitly
- convertible to an integer (although integers are still convertible to
- `pin_t`), and it is no longer possible to accidentally use incorrect
- constructs such as `mux.digitalRead(mux.pin(0))`. A new type, `pin_int_t`,
- was added to represent sizes and offsets of pins (e.g. “the sixth pin of this
- multiplexer)”, and the argument types of the member functions of the
- + 65 more
📋 Other significant changes
- MIDI parser and pipe staller overhaul (63d51ef).
- ESP32 3.0.0 compatibility and updates (806beca, 48c87ad, e9c06a2, 34334518, 6e2c3585).
- Full BLE MIDI support across multiple backends:
- ESP32 NimBLE and Bluedroid backend support, with security, privacy, async send improvements (59ac8ef, 7419b6c, 7209429, dc72207).
- BLE MIDI support for Raspberry Pi Pico W (e910569, 99c98cc, 01620b0, d7a4e69).
- Cleaner BLE backend abstraction and thread-safe ring buffers (6851687, 8aa7d3c).
- USB MIDI multi-cable support (up to 16 cables) on RP2040 (5f492cf).
- Added encoder support for Arduino UNO R4 (e20e32f, e9d555e, 6f57a56).
- + 7 more
📋 Changes
- Arduino Nano Every support
- Buffered Extended IO
- Support daisy-chained MAX7219 chips
- Support for rotary encoders connected through MCP23017 port expanders
- Thread-safe `Updatable` class
- AppleMIDI support
- "Smart" bankable potentiometers
- MIDI pipes for routing MIDI traffic between Control Surface and MIDI interfaces
- + 4 more
📋 Changes
- Shorter filenames for examples (Windows limitation)
- Small bug fixes and improvements
- Documentation improvements
- More examples
This version adds support for Arduino Due and Arduino Nano 33. The directory structure has been improved, and some parts of the library have been moved to a separate repository, [Arduino Helpers](https://github.com/tttapa/Arduino-Helpers).
This is the last version before changing the structure to use the [Arduino Helpers](https://github.com/tttapa/Arduino-Helpers) library.
