This window allows for the creation of control functions. It actually creates a function of 400 entries (one per pixel) which is then interpolated on during processing. The function controls either binaural position, mutation index, degree of time stretching, amount of pitch shifting, or degree of varispeed depending on which process you are using.
To create a control function, you can simply draw in the
function window (your mouse position is continually tracked and translated
into relevant units) or click on one of the preset waveform buttons. The
waveform buttons will fill the function with as many cycles as are set
in the Cycles: box. If you click a waveform after there is something
already in the function window, the waveform will modulate the function,
rather than replace it. The Set button will allow you to set all
of the points to the same value. The Reverse button will time-reverse
the function. The Invert button will flip it. It Shift button
will rotate the function by up to 399 positions. The Smooth button
will average adjacent entries in the function, this smoothing wraps around
the beginning and end of the function, so watch out. The Normalize
function will increase/decrease the magnitude of the function to fit the
range of the window. The Set Mean button will scale the function
so that the value you enter becomes the mean, or average value.

The boxes in the upper right and lower right corners allow a very primitive type of zooming. There is no facility for selecting, copy, paste or cut. One can read or write control functions as soundfiles by clicking the Read and Write buttons. The Time: legend refers to the time in the input soundfile and the other legend (Scaling:) is updated depending on how the control function is applied.
This simply allows you to select between the open soundfiles. The first ten soundfiles open are given command key equivalents (Command - 1 to Command - 0).
![]() |
This will bring up a window to show the sound whenever SoundHack reads or writes sound (except during file copying and normalization). There are separate windows available for all active soundfiles. |
![]() |
This will bring up a window to show the spectral data in all spectral operations (most everything but varispeed, which I do in the time domain) There are separate windows available for all active soundfiles |
![]() |
This will also show spectral information but over time.
Intensity is represented by different colors where purple-red is the lowest
intensity, green is mid intensity and bright red is the highest intensity.
This display will slow down any Macintosh dramatically.
|
This allows you to pause during a long process. This is especially useful if you would like to here the sound you have processed so far. If you are running a convolution, it sometimes takes a while to pause (up to 3 minutes on a slow Mac II).
This will resume processing where you left off.
This will kill your process and close the output soundfile.
This loads a previously created settings file. This is also done automatically on startup to the "SoundHack Preferences" file in the ":System Folder:Preferences" folder.
This will create a settings file which contains the current settings from the binaural, convolution, spectral analysis, spectral dynamics, mutation, phase vocoder, varispeed, gain and preferences dialog panels. This is done automatically when you quit SoundHack to the "SoundHack Preferences" file in the ":System Folder:Preferences" folder.
This will reset all internal settings to a default set. Recommended if you suspect your "SoundHack Preferences" file is corrupt.
![]() |
This allows you to set a few things. You can set SoundHack to automatically play a soundfile when it is opened. This is a very nice way to set things if you are using SoundHack as your web browser helper application. If you set an editor, then you can use the Close & Edit command (described earlier). The Default File Type, when set, will give you the selected file type and format whenever you create a new soundfile. Play After Processing will play the output file as soon as the current Hack process is done with it. |
| 1.0 | SoundHack is finished. Tom and Betsy take a holiday. |
| .90 | Last major release, only bug-fixes and minor updates
from now on. Make a suggestion for final features.
Time is running out!
Port to IRIX, Linux? Solaris, Rhapsody, Wintel. AppleEvents and scriptablity. MPEG. Spectral plugins? |
| .89 | Mark Dolson phase vocoder enhancements. Simple graphic filtering. SDS, SDI, TX16W, OMF, Sonic, ProTools, AIFF resource soundfile formats. QT coder: log frequency sonograms, new color encodings. Buffered read and write routines. |
| .88 | QT coder - changes soundfiles into QuickTimeô movies into soundfiles. 24&32 bit SDII files, IMA4, MACE3, MACE6, aLaw and µLaw AIFC files, aLaw Sun files. 32-bit float AIFC files compatible with Mills' Csound. Peak sample saved in all 32-bit float files. 32-bit float playback. QuickTime/AIFF files fixed. Increased sample rate conversion quality. Motorola's libmoto library integrated into app. Looping playback. WAVE loops and markers. Enhanced Draw Function dialog. Functions work much more predictably with varispeed (no more fast high pitch - slow low pitch). Tiny soundfile playback fixed. 3rd octave band grouping added to spectral dynamics and irregular mutation. |
| .87 | Spectral files are now treated as soundfiles. Simple spectral analysis/resynthesis added. Quick normalization added. Many cosmetic/GUI changes. New binaural filters added. Spectral dynamics will trigger on an averaged amplitude value (good for hiss removal). Draw function debugged for the umpteenth time. Preferences are now savable. |
| .86 | The shareware version now is just the 68k version. Multiple soundfiles supported. Another sample rate conversion bug (errant pointer deallocation) squashed. CD Audio import added. Channel splitting added. |
| .85 | Soundfile playback now works for all soundfiles which are 8-bit (twos, raw or µLaw) or 16-bit linear (twos). The apple events for open and quit application added. Spectral dynamics fixed again. |
| .84 | Separate display windows for most signals added. Sonogram window added. Off screen drawing keeps windows updated. Most all dialogs now modeless. |
| .83 | Popup bugs fixed, convolution brightening added. |
| .82 | Soundfile recording has been added. |
| .815 | 24 and 32 bit AIFF and AIFC supported. |
| .81 | Spectral extraction added. Spectral dynamics now allows threshold to be set relative to the peak amplitude in a block of sound. |
| .803-6 | Various bug fixes. A full disk now stops any process. Samples which are too loud now clip instead of going out of range. Greater post convolution gain is now possible. Normalization no longer clips. The packmode no longer changes when a new soundfile type is selected. Mixed stereo/mono mutation no longer crashes! |
| .80 | Split into shareware (0.74) and commercial (0.80) versions. Added Mutation functions. Ported to the Power Macintosh. |
| .74 | Fixed early ending sample rate conversion problem. Fixed the spectral display. Added attack/decay time to spectral dynamics. A moving binaural effect is added. Allow raw data files to have text packmode and text files to have raw packmodes. Fixed various GUI complaints (0.743) Double-clicked soundfiles now open correctly in all versions. |
| .73 | Fixed varispeed clicking for the third time. Fixed the output soundfile dialog. Ported the code from Think C to Codewarrior. Spectral display is now broken and needs to be redone (disabled for the present). |
| .72 | Fixed 16 bit Microsoft RIFF/WAVE file bug. |
| .71 | Fixed a minor bug which caused spectral dynamics crashing. Also fixed a typo (thank you Phil Burk). |
| .70 | Added spectral dynamics process. Added AIFC and Microsoft WAVE file support. Added 4-bit ADPCM. Opens double-clicked documents. More types show up in "Open" menu item. Fixed stupid error about number of bands in the phase vocoder and the spectral dynamics processor. It used to refer to the number of FFT points used, it now correctly refers to the number of filter bands used. |
| .68 | Added import and export of SND resources. Limited soundfile playback to AIFF and AIFC until Apple comes up with a stable sound manager. Sound Manager 3.0 is required for playback of 16-bit files. Added a limited spectral gate to the phase vocoder. Fixed old bug in pitch shifting. |
| .67 | Added soundfile playback. |
| .66 | Added windowing selection for both convolution and the phase vocoder. Added "Vary by Pitch" /"Vary by Scale" selection in varispeed. |
| .65 | Fixed crashing at the end of long varispeed calculations, cleaned up memory allocation (especially for convolution), added ring modulation (spectral convolution), cleaned up dialog annoyances. Made output window resizable, and made it white on black (like a scope). Added bibliography screen. |
| .64 | Added varispeed processing, added many things to the function dialog. |
| .63 | Added TEXT soundfile format. Added interpolation, sinc and number of cycles to function dialog. Added ramp enveloping of impulse to convolution. Added popup menus. |
| .62 | Added function window for multirate phase vocoder. |
| .61 | Sped up pitch transposition significantly, allowed pitch transposition by semitone and time warping by desired length. |
| .60 | Added the phase vocoder, phase vocoder Csound analysis and show output. Fixed problem with normalization after moving convolution. |
| .59 | Added moving convolution. |
| .58 | Fixed problems with 8-bit AIFF files. |
| .57 | AIFF files used to read everything from SSND chunk to EOF, now only SSND chunk is read. The Binaural processor often destroyed AIFF headers, I think I have this fixed. DSP Designer files are now written as well as read (though I have no way of checking, please DSP Designer users, give me feedback). |
| .56 | Filter files are now closed properly after convolution. |
| .55 | Normalization feature disabled Binaural filtering, now fixed. Filter sensitivity added to Convolve. |
| .54 | Normalize after processing feature added. Dialogs adjusted for small monitors. |
| .5 | Gain change added, 8-bit linear, 8-bit mulaw and 32-bit float added. (Jan 1992) |
| .4 | Binaural filtering and process control added. |
| .3 | Convolution and NeXT/Sun file formats added. |
| .2 | Sound Designer II files and Header change added. |
| .1 | First release of SoundHack, converts AIFF files to IRCAM and back. (Fall 1991?) |
Apple Computer, Inc., Inside Macintosh, Volume 1-6, Addison
Wesley, Reading, Mass., 1985-91.
Begault, Durand R., Control of Auditory Distance, Ph.D..
dissertation, University of California, San Diego, 1987.
Begault, Durand R., 3-D sound for virtual reality and
multimedia, Academic Press Professional, Cambridge, MA, 1994.
Blauert, J., Spatial Hearing, MIT Press, Cambridge, Mass.,
1983.
Dolson, Mark, "The Phase Vocoder: A Tutorial", Computer
Music Journal 10:4, 1986.
Ellis, Dan, "pvanal.c", part of the Csound distribution,
MIT, 1991.
Gordon, J. W. and Strawn, J., "An Introduction to the
Phase Vocoder", Digital Audio Signal Processing: An Anthology, editor J.
Strawn, Kaufmann, Los Altos, Calif., 1985.
Mark, David and Reed, Cartwright, Macintosh C Programming
PRIMER, Volume I, Addison Wesley, Reading, Mass., 1989.
Moore, F. Richard Elements of Computer Music, Prentice
Hall, Englewood Cliffs, NJ, 1990.
Polansky, L. "More on Morphological Mutations: Recent
Techniques and Developments, "Proceedings of the ICMC., San Jose, 1992.
Polansky, L. and McKinney, M. "Morphological Mutation
Functions: Applications to Motivic Transformations and to a New Class of
Cross-Synthesis Techniques." Proceedings of the ICMC. Montreal, 1991.
Reed, C. E. and Passin, T. B., Signal Processing in C,
John Wiley, New York, NY, 1992.
Settel, Z. and Lippe, C. "Real-time Musical Applications
using FFT-based Resynthesis", Proceedings of the 1994 International Computer
Music Conference. Diem Aarhus, Denmark 1994.
Vaseghi, S. and Frayling-Cork, R., "Restoration of Old
Gramophone Recordings", Journal of the AES, 40:10, 1992.
Betsy Edwards for unending support, for teaching me how to write and for editing this long winded and technical document.
Larry Polansky for his mutation functions, for helping me edit this document. and for his unending encouragement, criticism and support.
Dr. Durand Begault of NASA-Ames for letting me use his
binaural filter
coefficients.
F. Richard Moore, D. Gareth Loy and Mark Dolson for my initial exposure to the wonders of computer music.
Dan Ellis of MIT's Media Lab for helping me with the Csound analysis feature.
Zack Settel for relating his work on spectral extraction to me.
Scott Morgan and Geoff Hufford for all their Macintosh toolbox help.
Tim Walters, Jeanne Parson, Kent Clelland, Vincent Carte, George Taylor, Zach Belica, Phil Burk, Curtis Roads, Richard Boulanger, douglas repetto and many others for their many comments, bug reports and encouragement.
The Bregman Electro-Acoustic Music Studio at Dartmouth College for sponsoring my initial Power Macintosh development.
The Center for Contemporary Music at Mills College and the CalArts School of Music for sponsoring all of the rest of my activities.
All the wonderful people who sent me their music including:
| =cw4t7abs
Murray Anderson Michael Angell Marc Battier Eve Beglarian Eric Belgum Dan Bertolet Philippe Blanchard Greg Boddy Gregory G Booth Chris Brown Richard Brown Ray Brunelle Kim Cascone Damian Castaldi Rudolfo Caesar Jim Croson Matthew Davidson Xopher Davidson Bruno Degazio Rohan De Livera Paul DeMarinus Denis Dion Paul Doornbusch John Duesenberry David Eagle Ambrose Field Devin Fleenor Ryan Francesconi Howard Fredrics Sérgio Freire Joshua Fried Christopher Frye Alex Garvin Raviv Gazit Mark Geller |
Robert Gibson
Chris Grigg Ray Guillette Bernard Günter Jose Halac Geln Hall Jeff Hass Patrick Heilman Peter Heijens Robert Henke Brian Hill Steev Hise Naut Humon John Hudak Joseph Hyde Øivind Idso Katchy Utah Kawasaki Leif Keane Jim Keiser Mendel Kleiner Richard Lerman Gregory Lenczycki Daniel Lenz Polar Levine Eric Lyon Alistair MacDonald A. M. McKenzie Chris Meyer Steve Miller Diego Minciacchi Eric Moe Gary Lee Nelson Loren Nerell Yuko Nexus6 NORSCQ |
João Oliveira
Jim O'Rourke Bob Ostertag John Oswald Bernard Parmegiani Nye Parry Michel Pascal Maggi Payne Heather Perkins Richard Pinhas John Pospisil Richard Power Christopher Preissing Trent Reznor Robert Rich Jeremy Roberts Jøran Rudi Dirk Specht Bruno Spoerri Carl Stone Hans Timmermans Mark Tinley Felix Tod Barry Truax Hans Vallden Chris Vrenna Tim Walters Jeremy Wells Micheal White Beth Wiemann Bob Willey Michael Winnerholt Justin Winokur Stephan Wittwer Erling Wold James Wood |
