~/projects/entropic-synth · published
Weather Music Machine
An Arduino synth that plays the weather: transistor noise fires the notes, live space weather and the air in the room shape the sound.

A synth on an Arduino MKR WiFi 1010, made for a C programming lab at Metropolia University of Applied Sciences in Helsinki. Its codename is entropic-synth.
Avalanche noise from a transistor decides when notes play. Live space weather from NOAA and a BME280 sensor (air pressure and room temperature) decide how they sound. Pitch is digital, a sawtooth from the DAC. Tone and volume are analog, through an LM13700 filter and VCA.
What plays what
- Geomagnetic activity (Kp) picks the scale: pentatonic when it's quiet, natural minor when it's unsettled, whole tone in a storm.
- Air pressure sets the key.
- Room temperature sets the brightness. A fingertip on the sensor is enough to hear it.
- The noise triggers replay the solar wind: the last hour of wind speed and density advances one minute every few triggers.
It also works offline: without a network it replays a bundled hour of solar wind.
Three modes
A three-way switch picks the mode, and the RGB LED shows which one is on.
- Drone (blue): a continuous tone. Live wind speed sets the base pitch, the replayed speed plays the melody and the density swells the volume.
- Rain (green): silence, and a note on every trigger. Wind speed sets how far the notes leap, and busier triggering sounds brighter.
- Sequencer (red): an 8-step loop that starts as an arpeggio. Wind speed sets the tempo, and each trigger rewrites one step.
The hardware
The analog side runs on ±12 V: a BC547 avalanche noise source into an LM393 comparator, then the LM13700 filter and VCA and a TL074 output buffer to a 3.5 mm jack. An MCP4728 DAC drives the filter cutoff and VCA level. Everything that touches the Arduino stays at 3.3 V.
It's hand-wired on stripboard in a 3D-printed case. The schematic (KiCad), stripboard layout, enclosure (STEP) and Arduino code are all in the repository, under the GPL v3.





