How This Works

This stream is a demonstration of music composed from two applications– a radio signal receiver and a music synthesizer/sampler.  Each operate on Raspberry Pi (RPi) devices running real-time versions of Linux and network via Ethernet over a dedicated switch for lag-free, live play.
The receiver is a modified open-source application of a promiscuous wireless interface  (aka “sniffer”) designed to monitor selected channels of 2.4GHz WiFi signals.  It detects and tabulates TCP/IP packets by their associated MAC addresses, to send messages by OSC (Open Sound Control) protocol to the music synthesizer to trigger the sound production.
The synthesizer software was developed from SuperCollider to translate any tabulated data into sound.  In this application of the software, WiFi activity may trigger sampler and synthesizer sounds,  live-coded SuperCollider synthesizers, or sounds from external devices.  Digital streams are transmitted over networks via the Linux JACK audio framework.  Generated MIDI and OSC information enable production of analog audio streams.

Default view of wlanMusic mixer application.

This software creates and maintains accounts for MAC addresses and edits parameters of music play.  At its core it maps a MAC with a minimum of latency to the same instrument every time the MAC triggers.  The sounds may be generated from digital audio files arranged in pre-set banks, from drag-dropped files on the application, from outboard synthesizer presets or they may be live-coded with Supercollider synths, alone or simultaneously with any combination of the other modalities.  Resembling conventional mixing hardware, the solo and mute buttons with the volume sliders of individual instruments allow a user to alter the expression of any sound.  Several MAC addresses may be combined by drag and drop on an instrument to create new trigger pattern.
A user may also modify the expression of each instrument-channel with pre-note rests and set its play duration.  Synthesizer sounds and sampler playback may be edited with a knob interface to express root, mode and note music values.  A chord progression may be selected from a menu or a custom sequence may be live-coded to cycle through chords.  A user may save and recall any configuration of all on-screen parameters into banks of presets organized as songs.  An auxiliary automation software enables cycling though song parts to be synchronized among any number of instances of the synthesizer software.  From a single workstation, a user may create from many RPi, local or remote, triggered simultaneously from a variety of network environments.

Overview of typical ICECast streaming configuration. (click for large)

For the purpose of this live internet radio stream, an antennae/receiver device triggers 4 or more RPi synthesizer devices.  Each synthesizer device runs up to 4 instances of the synthesizer software and each might trigger an additional outboard MIDI device.  JACK audio networking links streams produced from RPi to a 6th RPi device to mix to a stereo stream.  This stream is sent to a DAC to mix with analog signals of outboard MIDI devices on a traditional hardware audio mixer before converting to a digital stream to transmit to an Icecast or Shoutcast server for streaming broadcast.

As 4 RPi are served by a separate receiver, a single MAC packet captured by the receiver could trigger 32 sounds, as 4 devices x 4 software instances x 2 (synth & sample) = 32.  By grace of Linux JACK MIDI, a software instance may also trigger any number of outboard MIDI devices such as a modular synthesizer or sampler.  This software may also send trigger data to networked, OSC-enabled devices to trigger software, hardware or drive animation.

All RPi devices run almost entirely from RAM at less than 50% CPU capacity, requiring no extra cooling resources than a heat sink and free air flow.

Listening:  A background pattern of WiFi-triggered sound, what the neighborhood generates, is best heard at night.  During commuting hours– 0600 – 1000 EST and 1600 – 1800 EST,  more new WiFi addresses will trigger instruments and increase the activity of the sound, breaking up the background pattern.  A nearby, busy roadway provides new triggers from the WiFi of the cell phones of passing motorists.  In range of this system, a commuter train passes periodically, providing suddenly dozens of new triggers to create a notable storm of activity.

(03/06/23) Testing a new/old 8-channel interface, which might allow more options in mixing outboard audio gear.

(02/24/23)  A portable live rig is in the works (one RPi does it all), triggering outboard synths, including a portable, modular processing rack.

Revisiting development of live video coupled with this sound, last investigated in 2020:

The following video is made only from synth sounds that were sequenced, played and recorded live, as the video was made.  A busy roadway behind the camera provided the network triggers.  This video was a test of cross-fading the video and sound from one scene to another, edited in the field on a free application.

This video was made from a rural cemetery, thus a quiet scene with few WiFi triggers in range as a baseline.  As a car comes down the road, a new voice was created and played by the software, usually before the car enters the scene.