Ripple

Ripple

Ripple is a free, open source sound design tool and extendible framework built in the SuperCollider programming environment. It is designed to be used “out-of-the-box” as it is packaged, but also as a container for new SuperCollider patches. Ripple’s power is in its simple, intuitive interface and its encouragement of a hands-on, pattern-based experimentation. Using Ripple’s extendable control plugin architecture, sound sculpters can algorythmically modulate any parameter of a sound. These modulations can be stacked, creating complex and fascinating interactions. I find working this way to be an extremely satisfying way to breathe a sense life and intelligence in to the loop-based work I do.

While Ripple is built around my own work style, it can also serve as a handy starting point for other SuperCollider programmers. With a few simple lines of code, Ripple can be configured to generate a gui for any SuperCollider patch. It also handles common behind-the-scenes audio sample management tasks (automatic buffer proxying, automatic buffer clearing when a voice is unloaded). Additionally, Ripple includes the ability to save a collection of voices (patches) in their current state, making recall of settings for future performance a trivial task.

Ripple is far from done, and certainly not perfect. I am very open to feedback, both on the functionality from a user perspective, and the underlying code.

Download

Ripple plus SuperCollider (if you don’t have SuperCollider installed)
Ripple Class Library Only (if you want to install Ripple in your own SuperCollider instance)

Notes to those installing only the Ripple library (experienced SuperCollider users only):

*Some of the default Ripple synthdefs rely on the LoopBuf plugin. I’ve included it in the zip file. Copy it in to you plugins directory.
*My file browser is currentlyvery limited. It can only open files which are one level deep inside the Sounds folder in your SC directory. So, files loaded in to Ripple have to be like: SCRoot/Sounds/SOME_FOLDER/YOUR_SOUND

Known Issues

* Ripple can only play stereo files.
* The file browser leaves much to be desired.

If you run in to problems, please let me know.

System Requirements

Ripple should run ok on most macs running OSX. If you run in to problems, please let me know.

Launching Ripple

MOST USERS:
If you downloaded Ripple Bundled with Supercollider, launch the SuperCollider application, which is set up to load Ripple automatically.

EXPERIENCE SUPERCOLLIDER USERS:
If you have installed the Ripple class library in your own SuperCollider install, run:
(
Ripple.init
)

Creating Voices

Ripple now comes with a handful of “factory” voice types. These are all different varieties of sample players. To try them out, choose a sound file from the left (directories are on top, files are on the bottom), then click on one of the yellow buttons. Your voice should appear as a white button on the right side of the screen.

To launch a voice, click on the white button, and press “play” in the window that opens. You’ll see a number of sliders, each of which controls a different synth parameter. There’s also the “rand” number box, which accepts numbers between 0 and 1. This controls the degree of randomness given to the value coming from each slider. Try randomizing the start position, the pan, the speed, etc.

There are currently four different voice flavors: HiPassPulse, RipplSampler, Stutter, FilterSampler. These are all sample players, but with different capabilities. I’m not going to go in to great detail explaining the differences right now. See if you can get a feel for how each one works.

Controls and Control Plugins

Every time a voice is triggered, Ripple gathers information from every control slider, and passes that information to the newly triggered voice. In addition to changing the position of the slider, you can change the value a control sends in a few other way. One is to randomize the value, by typing a number between 0 and 1 in to the “rand” box next to a control slider. A low value (e.g. 0.01) will add just a little randomness to the value the control sends. A high value (e.g. 1) will make the value entirely random.

Another way to change the value output by a control is by inserting a Control Plugin. You do this by clicking the “plugin” button next to a slider. There are currently several types of plugin (and with a little programming, you can add as many of your own as you like.)

Try adding a RampUpDown plugin to the ‘StartOffset’ control. You’ll need to set the intensity to something above zero and no greater than one. A small number, 0.1, will be enough for you to hear the effects. Plugins always work by *decreasing* the value sent by the control, so make sure the slider isn’t all the way to the left, which corresponds to a zero value.

The EvolverPlugin is one I like a lot. It works by creating a looping pattern which slowly evolves over time. It works very nicely on the StartOffset control, with the ‘4ths bitcrush’ sound.

Recording

If you want to record the sounds you’re making, hit “prepare record” on the “localhost server” window.

General Info

This is a very early version of my “for share” app. I want to make it as easy as possible to get up and running. Please let me know what is confusing, where you have trouble, what you think could be improved.

Ripple is built on top of the SuperCollider platform. For more info on SuperCollider, go to audiosynth.com.

If you give it a try and find it interesting, please let me know. I’d love to keep working on it, and to find folks who are also interested in using and contributing to the project.

You can email me at morgan@morganpackard.com

Email: morgan@morganpackard.com
Site powered by WordPress