PyScape is a soundscape generator, i.e. a tool that plays various sound samples simultaneously, with randomly determined or fixed values for volume and panning for each. Unlike Boodler, PyScape has an interactive GUI to control sound parameters, add or delete sounds, etc. The goal here is not to have a tool with dozens of sliders like Atmosphere Deluxe, but instead something more simple and straightfoward that still fits most needs.
The program also includes several presets and CC-licensed WAV files, e.g. pink and brown noise, the FM3 Buddha Machine loops, and various nature sounds from Freesound.org that can serve as a starting point for your own custom soundscapes.
Downloads
Get it from the GitHub repo, either by cloning the repo (git clone git://github.com/mdoege/PyScape.git) or by downloading the latest archive.
If you are running Arch Linux (and you should), you can simply install the pyscape package from the Arch User Repository.
Requirements
PyScape requires Python 2 and the OpenAL and FreeALUT libraries. If the Python Imaging Library is also present, pretty background images are displayed.
Usage
Run it as
python2 pyscape.py [preset.pyscape]
or via the included .desktop file.
Notes
The horizontal axis is left/right panning, the vertical axis is volume. The circles are individual sound files/sources.
Try the presets first ("Load presets").
You can turn sources on and off with the middle mouse button (or the "Active" checkbox in the right pane) and select and drag them with the left mouse button. Right mouse button or "Solo" turns on solo mode.
"Animate": Makes the affected source wander around on the map via a random walk process.
"Modulate amplitude": Adds a sinusoidal amplitude modulation to the sound source, e.g. like ocean waves.
"Trigger": The sound does not play continuously but is triggered randomly.
"Load sound directory": Load WAVs from a directory; replaces existing sound sources!
"Add sounds": Adds a single or multiple sound files. New files appear near the center of the canvas.
"Remove unused sounds": Gets rid of all gray (=inactive) sounds.
"Arrange sounds": Arranges sound in a grid for a better overview.
"Load/save preset": Save current configuration as a .pyscape file, which is just a simple CSV-formatted text file.
"Play/Pause": Start/stop audio from program.
"Change wallpaper": Change the background image. Images larger than the canvas are automatically resized to fit. Python Imaging Library is needed for wallpapers.
"Timer": This is a sleep timer that defaults to 30 minutes duration. During the final minute, the sound faded out slowly and then the computer is put into suspend mode (requires dbus). You disable a running timer by clicking on the timer button again.
WAV files should ideally be mono. (You can convert stereo files with stereo2mono.sh, which needs sox.)
Stereo files will also play in PyScape but will not be affected by panning. (This OpenAL "feature" is used deliberately in the rain preset.)
Platforms
So far this has only been tested on Linux, but it should also work on other platforms supported by Python, at least the Unix-like ones like FreeBSD. The code also contains a fix for Windows that converts forward slashes in path names to backward slashes, but again, this has not not been tested.
The jungle preset
License
While the program itself is distributed under the GPL, the sounds and images have various CC licenses, sometimes forbidding commercial uses. Please consult the README files in the respective subdirectories for details.
Acknowledgments
This program is somewhat inspired by Interactive Soundscape Designer and Boodler. And without the excellent content at Freesound.org and Wikimedia Commons this kind of software would be pretty useless, so here's a great thanks to their contribtuors too!