FFTease: a collection of spectral signal processors for Max/MSPSkip other details (including permanent urls, DOI, citation information)
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 3.0 License. Please contact firstname.lastname@example.org to use this work in a way not covered by the license. :
For more information, read Michigan Publishing's access and usage policy.
Page 00000001 FFTease: a collection of spectral signal processors for Max/MSP Christopher Penrose Keio University penrose @sfc.keio.ac.jp Abstract FFTease is a collection of Max/MSP objects implementing various forms of spectral processing. These include cross synthesis, morphing, noise reduction, spectral compositing, and other unique and unusual forms of spectral processing. This paper will discuss the functionality of these processors, and discuss architectural issues pertinent to spectral signal processing within the framework of Max/MSP. Introduction The processors within FFTease are derived from two larger families of spectral signal processing software for UNIX, PowerPVand PVNation, http://arcana.dartmouth.edu/-eric/POWERPV/ http://www.sfc.keio.ac.jp/-penrose/PVNation/ each developed and maintained by the respective authors, Eric Lyon and Christopher Penrose. The processors perform a wide variety of unique functions: subtractive synthesis, cross synthesis, spectral compositing and several other more unusual forms of signal processing. Eric Lyon Dartmouth College eric.lyon @dartmouth.edu probing the depths of their inner workings. Those foolhardy enough to receive the social stigma that deservedly comes from holding an understanding of such details may consult the bibliography to gain such knowledge. FFTease objects are currently designed with the fastest available signal path. Double buffering of the input and output of the processors is avoided by relating our FFT (Fast Fourier Transform) analysis input size, or decimation size, to the signal vector size of MSP. The FFT size of the processor is also derived from this vector size. The overlap factor of the analysis is hard-wired. In the publicly released version of FFTease, the overlap factor is 4, however, most of the processors can effectively utilize an overlap of 2 instead -- providing a factor of two improvement in computation. Several objects using an analysis overlap of 2 already have been coded and should be available for download at the time of this pressing. Though this current encapsulated and closed design does not allow the user the greatest flexibility of use, it does provide the simplest interface and it provides the greatest potential for computational efficiency given the fixed runtime vector size of MSP. The processors found in the first release of FFTease can be roughly described by three categories: * Filtering processors that affect amplitude alterations to a single audio source. * Frequency tickling processors that affect frequency alterations to a single audio source. * Cross synthesis processors that construct a composite signal from two separate audio sources. Implementation The software architecture varies subtly from processor to processor; they all utilize some form of Short-Time Fourier Analysis. Most FFTease processors accept audio signals as their principal input and provide an audio signal as output. Several require two signal inputs allowing cross synthesis and spectral compositing capabilities. The processors work effectively as black boxes as they are compiled Max/MSP shared object libraries; the user need not understand those pesky details of discrete fourier analysis in order to use them effectively. Users can even develop a deep intuition describing the behavior of the processes without ever
Page 00000002 Filtering Processors Cross Synthesis Processors drown burrow drown- was designed to function as a noise reduction processor. It is an adaptive spectral filter which scales the amplitude of frequencies that fall below a specifiable threshold by scaling them by a specifiable amplitude factor; this results in either noise reduction or noise increase. drown- thus provides a variety of possibly dramatic spectral modifications that will bring you award-winning acclaim or your money back. dentistdentist- resynthesizes a subset of randomly selected frequencies from the input signal, zeroing all other spectral components. The number of partials to use is selectable at run-time. Drilling has never sounded or felt more sweet. thresher-- thresher- acts as a sample and hold gate for each individual frequency, resulting in colorful and economical spectral transformations of background noise. Instead of trying to eradicate noise like like a loopy exterminator, why not transform it into scintillating sound? burrow- is another adaptive filter that acts in a manner very similar to drown-, yet in contrast, it utilizes the amplitudes of a second signal input to compare with the threshold reference. Thus the amplitudes of frequencies within the second signal can trigger the application of a filter in the corresponding frequencies of the first signal. The name is a useful metaphor -- the shape of the second signal burrows a spectral hole in the first signal. The threshold behavior can also be inverted by sending an invert message to the object at runtime. burrow- was inspired by a particular habit of bunny rabbits. swingerswinger- is a simple processor that resynthesizes the first input signal using the phase values of the second input signal. The result often sounds evocative of the music played in circa 1970's key parties, but for U.S. citizens and residents, this processor can only be legally used in the state of Nevada. The phases of the first signal can also be set to zero by simply neglecting to provide a second input signal which acts somewhat like a comb filter tuned to the fundamental frequency of the fourier transform. shapee Frequency Tickling Processors pvoc-- pvoc- is an implementation of a phase vocoder algorithm with the added feature that the range of resynthesized frequencies are specifiable with a minimum and maximum delimited bandwidth. This frugal resynthesis design allows both for computational feasibility and for real-time pitch transposition of the input signal. Furthermore, the effects of extreme elision of the spectrum can often add a startlingly artistic panache to your sound. You'll receive more handshakes and smiles at those all-important receptions when you use pvoc-. shapee- shapes the frequency evolution of one signal with that of another. The overall spectral envelope of the second input signal will be maintained, but the polyphonic frequencies of the first input signal will be present in the output. shapee- can do interesting things, such as allow sounds to be mixed without dissonance, and to impart upon the timbre of an arbitrary sound an equally arbitrary melody, harmony, polyphonic vibrato or all of the above simultaneously. And of course, synthetic sounds can also be inputs to the process, so the Hilliard Ensemble or Tiny Tim may soon be singing your very own music.
Page 00000003 morphinemorphine- performs spectral morphing, creating a new transitional spectrum from its two inputs. The extent of the transition is controlled by an index value within the range [0,..., 1]. We neither condemn nor condone the recreational use of morphine-. See (6). tainttaint- multiplies the spectra of two input signals. The multiplication is not performed in the complex domain, it is instead calculated in the polar domain. Thus taint- will generate a different output signal if the first and second input signals are swapped as the phases of the signal are taken directly from the first input. taint- is sure to add enough spice and excitement to your music that you will experience heightened self-confidence and surprising levels of poise. etherether- is an adaptive spectral compositing processor. etherselects portions of two input signals and creates a composite output spectrum based upon the amplitude of the inputs. The strongest band of the two inputs will be selected. Sending the inverse message will reverse this behavior selecting the weakest. ether- might be more appropriately named, triage-, or marketcapitalism-. See (6). vacancyvacancy-, derived from ether-, also performs spectral compositing. An amplitude threshold is added to the selection criterion. Threshold inversion is available via the invert message. The threshold can also be adjusted by the value of the first input signal through the rms message. Optionally, phases can be taken from the selected input, otherwise the phases from the first input are always used. After using vacancy- in your work for 6 weeks and you don't find yourself reveling in high-paying commissions, you can return it for a full refund. Conclusion With a genuine respect for convention and courtesy we feel compelled to say something meaningful here. The FFTease processors were developed with ease of use as a design goal. Although some parameters of the Fourier analysis process are either inaccessible to the user or at least difficult to access, these limitations seem to be a reasonable tradeoff for the advantages of real-time spectral processing in an environment where the processors can mingle freely with the many other useful DSP objects in Max/MSP with ease. Hooray. References (1) Jont B. Allen, "Short Term Spectral Analysis, Synthesis, and Modification by Discrete Fourier Transform." IEEE Transactions on Acoustics, Speech, and Signal Processing, ASSP-25(3), pp. 235-238 (1977) (2) R. E. Crochiere, "A Weighted Overlap-Add Method of Short-Time Fourier Analysis/Synthesis", IEEE Transactions on Acoustics, Speech, and Signal Processing, ASSP-28(1), pp. 99-102 (1980) (3) Mark Dolson, "The Phase Vocoder: A Tutorial," Computer Music Journal, vol. 10, no. 4, pp. 14-27 (1984) (4) F. Richard Moore, "Elements of Computer Music." Prentice-Hall, (1988) (5) James A. Moorer, "The Use of the Phase Vocoder in Computer Music Applications. "Journal of the Audio Engineering Society 24(9). pp. 717-727 (1978) (6) Christopher Penrose, "Extending Musical Mixing: Adaptive Composite Signal Processing." Proceedings of the International Computer Music Conference (ICMC), Beijing, China (1999) (7) Michael R. Portnoff, "Time-Frequency Prepresentation of Digital Signals and Systems Based on Short-Time Fourier Analysis." IEEE Transactions on Acoustics, Speech, and Signal Processing, ASSP-28(1), pp. 55-69 (1980) (8) Puckette, M., "Pure Data." Proceedings, International Computer Music Conference. International Computer Music Association, pp. 269-272. (1996) (9) Puckette, M. and Apel, T., "Real-time audio analysis tools for Pd and MSP." Proceedings, International Computer Music Conference. International Computer Music Association, pp. 109-112.(1998)