Conrad Parker - Sweep Scratch this Editor here ...
Sweep is a program for editing soundfiles as
well as being a DJ tool. It is available for Linux with a
port to Mac OS X coming up.
What brought you to Linux and how did you get started on Sweep?
I found Linux in '94, in my first year at university. Someone had secretly configured a lab PC to dual boot, and it was so cool to see X11 running on it! The Computer Engineering course was UNIX based, so I was already into that.
I'd been programming audio apps in C on the Amiga for a few years before that, and I wrote my first audio editor about ten years ago on the Amiga ... I did a simple Xt based sample editor when I learned X11 programming, and I worked on some early Linux trackers (maube, the first X11 tracker, which I had to write a custom widget set for because not much else existed back then; and later KegTracker with Peter Ryland).
A few years ago I did some patches for Michael Krause's SoundTracker, mainly on its builtin sample editor -- I added simple features like reverse and select none/all. Eventually I realised this would make a good basis for a standalone sample editor, so I took that widget out and started building Sweep.
Sweep is a bit more than a sample editor. Tell us about its development?
I'd found that many sample editors feel clumsy, and put the user at some distance from the sound. When all you see are the peaks it becomes hard to distinguish features in the sound, especially when you're moving around in a long file. So early on in 2000 I developed the waveform view that shows both peaks and averages, which gives you a more detailed impression of the dynamics; it uses some simple 3D shading to give the impression of editing a solid object, rather than a flat and featureless shape; and it adds some texture to hint at frequency content.
That was pretty, and makes navigation easier, but nothing beats actually hearing the sound. Most sound editors make it fairly tedious to hear the file -- you have to rewind and fast forward around in the file to get where you want, and you have to continually stop and start the file to hear details, always at full playback speed. I always wanted to just grab the playback cursor and drag it around the bit I was interested in.
(Compare this to editing on reel-to-reel tape, where you can move the tape back and forth past the playback head as slowly as you like to find an edit point.)
So last year, when I was tidying Sweep up generally for Pixar, I took some time out to work on the scrubbing function. The idea was to make it as easy to move the playback cursor around as moving the stylus on a vinyl record. I guess it grew naturally from there that the cursor got momentum and the playback window grew a pitch slider, like on a DJ's turntable. Initially it was designed to make editing easier and to put the user inside the sound and in control, but suddenly it became a fun tool for DJing and experimenting with sounds.
What sort of technical hurdles did those ideas present? Is there a minimum spec machine to do those things successfully?
The hard bit was maintaining responsiveness. It's built like a video game with the visuals running at a set framerate and the audio feeding off the user interaction as late as possible. So, Sweep uses separate threads for the interface, playback, processing and recording.
The actual rendering is a lot cheaper than many people seem to think. The scrubbing is quite fiddly, especially maintaining momentum and minimizing noise, but that's more a matter of modelling the stylus -- generating the audio is pretty cheap.
Sweep runs fine on low end Pentiums and iBooks. It's not currently designed for huge files, so you're limited by memory. The speed of the processor is only really an issue when you're playing many files simultaneously or when you're zoomed in full-screen during playback, in which case you're basically generating full-screen video.
So, you can use Sweep as an ordinary editor as well as a DJ machine.
Do you know of anyone doing anything interesting with it? Using it live?
Many of the DJ features are very new -- cueing to headphones is essential for live DJing, and that's new in version 0.8. Even before that though, many of my friends have played with it at small parties, and we've had some great jams using Sweep alongside real instruments.
With Sweep you're not limited to mixing together existing songs -- you can build up a song by playing a whole bunch of loops and spot samples independently, and you're always free to play with the stylus and the pitch controls on any of them. Often it's like having twenty turntables going at once, so you can mix stuff up at a more fine grained level than with normal DJing.
You can even plug in a microphone and scrub on live sounds, so you can make very sample heavy, scratch hip-hop totally live, mixing up a vocalist's words as they are being sung or spoken. You can also set up a virtual tape loop and hear the sound of an instrument backwards while it is actually being played.
And of course you've always got full waveform editing, so you can apply LADSPA plugins and build new samples on the fly.
Support for LADSPA suggests a whole bunch of add-on effects. Is LADSPA working well in practise?
Yep, LADSPA is very cool. The range of plugins is great, and the community is really active in writing new ones. There's heaps of compressors, delays, and filters, standard effects like flangers and chorus, as well as some really interesting things like granular scattering and wierd distortions.
LADSPA also integrates really tightly because the plugins just give apps some processing functions and info about the parameters they need. Apps have to build a GUI for them, but that's ok because it means you can build interfaces that are well tuned to the program, and then the plugins look consistent too.
Bookmark:post to Delicious Digg Reddit Facebook StumbleUpon
Recent on Mstation: music: Vivian Girls, America's Cup, music: Too Young to Fall..., music: Pains of Being Pure At Heart, Berlin Lakes, music: Atarah Valentine, Travel - Copenhagen, House in the Desert