Ambient Sound Generator. A listening device (or, a jukebox) for ambient soundscapes.
ET-01 1 ASG is a hardware-driven audio system in which a grid of physical switches maps directly to audio behaviors. The interaction model is state-based: the combination of switch positions produces a bitmask that resolves to a single sound, or channel. The 6x4 switch grid gives the machine a theoretical capacity of storing ~16.7 million sounds.
There is no display. The system relies on a single status LED and text-to-speech for user feedback.
Hardware
- Switch grid (6×4 layout → 24 inputs + 4 aux switches)
- Raspberry Pi (3A+)
- MCP23017 I/O expander
- Internal power supply / step down module.
Software
The core system is written in Python. Audio playback is handled by mpv 2, while sound effects and text-to-speech (eSpeak 3) run alongside it, allowing the system to speak, react, and provide feedback. A custom control layer manages buffering, transitions / audio ducking, and failure states. An admin layer enables remote control and debugging over SSH. Data is stored in a simple SQLite database, and a set of Python utility scripts helps curate, condition and manage the various audio sources and files.
ASG> status Currently playing: chichibu yatake [64423] +------------------------------+ | [x] [ ] [ ] [x] [x] [x] | | [x] [ ] [x] [x] [x] [ ] | | [ ] [ ] [x] [x] [x] [x] | | [ ] [ ] [ ] [ ] [ ] [ ] | +------------------------------+ ASG>
Audio Sources
The system supports both live-streamed audio and pre-recorded sound loops. So, depending on the source, it either reproduces something fixed or connects to something ongoing. 4
In its current state, the machine streams a pretty limited selection of live audio - such as the experimental streams from the Locus Sonus 5 project. The bulk of the content, for the time being, is pre-recorded and manually curated.
For fun, there is also a radio mode in which the machine connects to 1,000+ live streaming stations via the Radio Browser 6 API. This effectively transforms the device into a radio, albeit one with possibly the most user-unfriendly channel selection interface ever conceived :)
1) This project is part of a larger modular system, see projects/et-01↩
2) Open source command-line media player: github.com/mpv-player/mpv↩
3) Software speech synthesizer: en.wikipedia.org/wiki/ESpeak↩
4) Finding reliable live audio sources for this project has proven difficult. One promising approach has been to extract audio from live video streams, given the abundance of video content online. However, major platforms (hello youtube) actively discourage or restrict this kind of use, and so far the results have been too unstable for unattended playback.↩
5) locusonus.org↩
6) radio-browser.info↩




