Twisty-2 MIDI Controller by rheslip
Twisty-2 MIDI Controller by rheslip

Twisty-2 MIDI Controller by rheslip

The Twisty-2 MIDI Controller, developed by rheslip, is a second-generation open-source project built around the low-cost Raspberry Pi Pico or Pico 2 microcontroller. It features a 4×4 grid of 16 rotary encoders with integrated switches for parameter control, plus two additional menu encoders, resulting in 18 total controls. Each encoder is paired with an SK6812 RGB LED for visual feedback on value and state, while a 128×32 pixel OLED display shows page information, control details, MIDI messages, and custom labels. The design supports USB MIDI natively, TRS MIDI Out for hardware connectivity, and Bluetooth LE MIDI when using the wireless-enabled Pico W or Pico 2W variantsโ€”making it particularly appealing for cable-free mobile setups.

For iPad and iPhone music making, the Bluetooth option stands out as an especially great and affordable solution for wireless MIDI control in apps that support BLE MIDI, such as GarageBand, AUM, or Cubasis. Users can map the encoders to tweak synth parameters, effects, or mixer controls hands-on without cables, leveraging the high customizability through an onboard menu system for MIDI channels, CC numbers, ranges, switch behaviors, and more. Up to 16 configurations can be saved in flash memory, enabling quick preset switches during sessions. As an open-source project with full schematics, code, Gerber files, and 3D-printable enclosure designs available on GitHub, enthusiasts who code can modify the firmware to add features or repurpose it entirely.

Additionally, the project includes experimental code for a Moog SubHarmonicon-inspired sequencer mode, expanding its role beyond pure controller duties into generative sequencing workflows. This DIY approach keeps costs low while delivering professional-grade tactile control and expandability, ideal for iOS-based producers interested in custom hardware integration.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *