Sporth
Sporth (SoundPipe fORTH) is a small stack-based audio programming language.
Compile the latest version here.
Features
- Stack oriented paradigm
- Written in portable C
- 100+ unit generators to choose from
- Powered by the Soundpipe DSP library
- Unix-Friendly
- Small codebase
- Powerful C API
- Live coding capabilities
- Third-party plugin format
Why Sporth?
For composers, Sporth is a different approach to making sound. Stack based languages are somewhat novel in the world of musical languages, and lend themselves well to modular sound design scenarios. Sporth syntax is simple to learn, and rewarding to master. Sound designers and composers fluent in languages like Csound, ChucK, and Supercollider will find Sporth a new and refreshing take on the same basic concepts.
For developers, Sporth has a simple API that allows it to be used inside of other applications. In addition to compiling Sporth code, the API has access to other features of Sporth that would otherwise be unavailable, such as audio-rate software channels, and user defined function callbacks.
Things Using Sporth
- Sporthlings: A collection of Sporth etudes and sketches.
- AudioKit: iOS framework for audio synthesis and analysis. (Sound demos can be found here)
- Ops is an iOS app written using AudioKit that makes extensive use of Sporth.
- Chorth enables Sporth to be run inside of ChucK as a Chugin. It can be found in the Sporth project directory /util/chorth.
- pd-sporth is a Sporth implemented as a pd external. It can be found in the Sporth project directory /util/pd.
- LMMS-Sporth implements a Sporth editor inside of LMMS.
- Moons is an interactive circular sequencer that uses a mixture of Soundpipe and Sporth to generate sound.
Documentation
The Sporth Cookbook
The Sporth Cookbook is the comprehensive text on Sporth. In addition to an introductory chapter on Sporth, it also contains several thoroughly documented patches for more advanced sporthers.
Reference
In the project folder, ugen_reference.txt is a mini reference for all the ugens in Sporth, with names, arguments, outputs, and a brief descriptions. When you install Sporth, a shell script called "ugen_lookup" is installed as well. To look up what 'tenv' does, run the command "ugen_lookup tenv". ugen_lookup also excepts any regular expressions supported by grep.
Soundpipe
Most of the ugens in Sporth exist under the same name in the Soundpipe library, which has much more thorough documentation of each module.
Projects