Newsgroups: alt.sources From: wware@world.std.com (Will Ware) Subject: Re: Fourier synthesis tool Message-ID: Date: Fri, 29 Dec 2000 21:34:19 GMT References: Organization: The World Public Access UNIX, Brookline, MA Will Ware (wware@world.std.com) wrote: > /* Sound blitter, accepts blip descriptors and outputs a .WAV file. > * Blip descriptor file works like this. The first line is a float, > * the blip duration, and an int, the total number of blips in the > * file. This is followed by the blip descriptors. Each blip descriptor > * starts with one line, the number of sinusoids in this blip. For each > * sinusoid there is a line with three floats, the frequency, amplitude, > * and phase. Oops, documentation error. That should be _five_ floats (in fact they're really doubles): frequency, left amplitude, left phase, right amplitude, right phase. "Blips" are sound spectrum snapshots. Like the persistence of vision that makes movies work, the human ear can only make sense of about twenty or thirty sound spectra per second. Blip descriptors can be computed in any language (Perl, Python, Scheme, whatever) and fed to the sound blitter to efficiently do the laborious part of computing time-domain samples and compiling them into a WAV file. -- import string,time,os;print string.join((lambda x:x[:10]+x[8:])(map( lambda x:string.center("*"*(lambda x:((x<24) ### Seasons Greetings, Will Ware *(x-3))+3)(x),24),range(1,28, 2))),"\n") ################ wware@world.std.com