The Raspberry Pi Pico-Powered Pico MIDI (H)Arp Turns Nearby Wireless Signals Into Music to Your Ears

Driven by MicroPython on a Raspberry Pi Pico with Pimoroni Pico Wireless add-on, this music generator plucks Wi-Fi signals from the air.

Pseudonymous electronics and music enthusiast Kevin, of Simple DIY Electronic Music Projects, has shown off a Raspberry Pi Pico-powered MIDI project with a difference: It generates music based on nearby Wi-Fi signals.

The project was inspired by a 2015 device dubbed the MIDI Arp, which used an Arduino Nano board and a Microchip ENC28J60 Ethernet shield to turn address resolution protocol (ARP) requests into music — played through a Roland MT-32 synth module.

"The original MIDI Arp uses an Ethernet interface in promiscuous mode to 'sniff' packets off the wire and use the Internet (IP) addresses of the transactions as the source for MIDI note events," Kevin explains. "With Wi-Fi I wondered about doing something similar."

The Pico MIDI (H)Arp turns nearby Wi-Fi signals into an ever-shifting music track. (📹: Simple DIY Electro Music Projects)

With no native Wi-Fi connectivity on the Raspberry Pi Pico, Kevin turned to Pimoroni's Pico Wireless ESP32-powered add-on. "I’m using MicroPython on the Pico with the Pimoroni 'special' version that includes support for all their add-on modules," he notes.

"How to turn this into MIDI? I used the following scheme: Use each Wi-Fi network observed as inspiration for a single 'track' of music; use the characters in the SSID as the source of MIDI note numbers for that track; use the Wi-Fi radio channel number (1 to 12) to determine the length of the notes for that track; use the RSSI value as the basis of the note velocity."

The result is the generation of "pleasingly complicated patterns," particularly when the local Wi-Fi environment is busy with access points all sharing the same MIDI channel numbers. This is then is piped through a Roland MT-32 synth, which turns the MIDI signals into music.

"I might increase the sophistication and build something that I can program from the Arduino environment directly... but I might not," Kevin writes. "I quite like the 'tinkerability' of this version.

"I'd really like to build this into a self-contained sound generating unit, then I’d be able to take it for a walk and perhaps listen to the local Wi-Fi environment using headphones."

The full write-up is available on the Simple DIY Electronic Music Projects website, while the code is on GitHub under the permissive MIT License.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire:
Related articles
Sponsored articles
Related articles