squiggy

version 1.5.2
(PPC R3 only)

an instrument for the BeOS.

by douglas irving repetto

screen shot
download squiggy

squiggy is a real-time spectral manipulation tool for the BeOS. with it you can create, record, manipulate and play back sound-images called sonograms.

squiggy is meant to be an instrument for live performance. with that in mind, i have gone for speed over accuracy in writing the processing routines. some of them are pretty noisy. become one with the pain. i've also chosen to go with a largely keyboard based interface. this gives squiggy a bit of a learning curve (you have to learn a bunch of key combinations) but i think it's worthwhile. you might want to keep "squiggy keyboard reference" (Styled Edit) or "skr.html" (NetPositive) open while learning to play squiggy.


new in squiggy 1.5:


mixer - allows you to play all 10 sonograms at once.
stereo - each sonogram can be individually panned.
time stretch/compress - each sonogram has its own frame rate.
window size - each sonogram has its own window size (which means they can all loop at different rates!)
stream to disk - squiggy's output can be saved to disk.
MIDI - mixing, panning, sonogram selection can be controlled via midi.
squiggy is now more stable and less RAM hungry. it should run better on a wide variety of machines. i'd still recommend at least 32MB of RAM to use squiggy.


playing squiggy:

the image in the black window is called a sonogram (or sometimes spectrogram.) it is a way of displaying information about the time-varying spectrum (frequency content) of a sound. when you draw or record a sonogram, what you end up with is a graph that shows how much energy (amplitude) the sound has in a number of frequency regions called bands. try this: record yourself counting or whistling, then try to associate the resulting image with the sound you are hearing. it's also nice to record from a CD and just watch as the sound passes by. sonograms are often quite beautiful.

in the sonogram, the x axis is time and the y axis is frequency. the grey level of a pixel is its magnitude (amplitude.)

what does what:

these are all just basic processes - the really interesting part is figuring out how to combine them to make wacky new sounds. dup-swap-drop!

MIDI control:
right now the MIDI setup is hard-coded. sorry. i'll change this in the future. all MIDI functions are accessible via keyboard commands, in case you can't use this MIDI setup.

neat things to try:

other stuff (excuses, bugs, etc.):

squiggy was written and tested on an apple powermac 8500/120, 7600/132 and 8500/233. it should run great on faster machines, but i'm not sure how it will fair on slower ones, like the dual 66Mhz BeBoxen.

performing operations on images with lots of energy can result in some nasty clipping. this may or may not be what you're going for. to avoid clipping, gain down the sonogram before processing it, or record at a lower level to begin with. some clipping is also caused by the arbitrary nature of many of the processes (it's possible to create representations of sounds that are 'impossible' - upon resynthesis, these sounds will usually cause clipping.)

you will have to play with the input fader in the Sound preferences panel to get a good recording level. you'll probably need a different setting depending on whether you're using the internal CD player or an external sounce.

the line-level inputs (RCA jacks) don't work on powermacs running the BeOS. this is a major bummer, but it doesn't look like Be is going to be able to fix it. you can use the mic input of your mac as a line-level input by using a regular stereo mini-plug instead of the custom mac mic thingy. you'll need to work out some funky adapter chain. if you do select "Aux" in the Sound preferences panel, unpredictable things may happen.

squiggy is a memory hog! you'll need around 15MB to run squiggy. i don't recommend trying to run squiggy on a machine with less than 32MB of ram.

license:

squiggy is "artware" - that is, if you use and like it, send me something you've made. really. a picture, a CD, a necklace, a guanabana . . . whatever!

please ask me before including squiggy on any sort of software compilations, CD's, etc.

contact info:

douglas irving repetto

email: glmrboy@shoko.calarts.edu
email: douglas.repetto@dartmouth.edu
web: http://dappu.calarts.edu/~glmrboy

other BeOS software i've written:
SineClock
allPossibleImages
Yesh!

permanent land:
2046 bellemead ave
havertown, pa
19083-2221 USA

current land (good at least thru 1999):
6187 hinman
electro-acoustic music
hanover, n.h.
03755 USA

acknowledgments:

tom erbe, larry polansky and many people at the bregman electro-acoustic music studio at dartmouth college have made valuable contributions/suggestions during squiggy's youth. thanks!

music from Lovely Music Ltd., artifact recordings or Frog Peak Music (A Composers' Collective) was often playing while squiggy was being debugged.

thanks to Attila Mezei and Jon Watte for helping me get my stream-to-disk code worked out.

references:

much of squiggy was inspired by tom erbe's SoundHack program for the macintosh, especially his QT-coder. Spectral Assistant, which is included in the SoundHack download, is a great place to start mucking around with writing spectral domain processing algorithms.

A Digital Signal Processing Primer by Ken Steiglitz is a good place to learn about phasors, the FFT, digital filters, etc.

Curtis Roads' gigantic book, A Computer Music Tutorial has interesting information on some other attempts at frequency domain sound editors. there is also lots of information available on the web in relation to image->sound conversion. wouldn't it be cool if you could hook squiggy up to a video camera . . .

lots more that i can't think of this late at night.

the Be Operating System and the BeBook. QED.

to do (in some sort of 3/4 arbitrary order):

release history:

may 1, 1998: squiggy 1.5 released. big changes: mixer, panning, variable window sizes, MIDI.
february 26, 1998: squiggy 1.0 released! yeeehaw!
february 16, 1998: gave up on change history. too much to list!
january 6, 1998: added more features, processes, autoplay, etc.
december 15, 1997: lots of changes/additions. too many to mention. freesh! working on optimizations.
december 7, 1997: totally re-wrote squiggy, threw out lots of unused/confused code, simplified everything! added recording, scrubbing, image storage
december 3, 1997: updated to do list
november 30, 1997: pre-alpha sooper not-done version 0.0.1 release