
These programs are all based on F. Richard Moore's phase vocoder
as found in his book "Elements of Computer Music".  The programs
are all in slightly different stages of repair and they each may
have subtle interface differences.  Your interest was in window 
filtering so I will explain this program "furious" in some detail.
I can give summaries of the other programs and if you wish I'll 
give better descriptions of them.

furious:

	"furious" performs arbitrary window filtering on an input
	signal by multiplying a user-defined filter window by
	the signal's average spectral amplitudes as calculated
	by an FFT.  Here is the command-line usage summary
	as given by the program.

        furious   [flags] < floatsams > floatsams
               N:      fft length [2^n]
               R:      sampling rate
               M:      window size in samples
               D:      decimation factor in samples
               I:      interpolation factor in samples
               f:      filter function filename
	       h:      this menu

	The user must provide a filter function file that contains
	N/2 float values.  This function should directly correspond
	to the desired frequency response of your filter.  Its 
	implicit frequency bounds are 0Hz and one-half the sampling
	rate (nyquist frequency) of the sampled signal.  Here is a
	typical commandline

	(furious -R44100 -N1024 -D128 -ffilter-function < float-input-samples \
		) > float-output-samples

	If you plan on using NeXT format soundfiles as input, you will
	need to strip the soundfile headers off of the input stream
	and convert the fixed point data to floating point.  I have
	some pipe oriented programs that do this if you need them.

pv
	"pv" is Dick Moore's phase vocoder.  An extremely useful
	program for signal manipulation and analysis.

pexp	"pexp" is an experimental spectral expander and compressor.

pinv	"pinv" is a strange program that can take small spectral
	bands of a signal and invert their frequencies within
	the bounds of the bands.  It also works recursively with
	overlapping bands.

turnip	"turnip" is a interesting time-varying filter program that
	filters an input signal with another.

saint	"saint" creates the spectral average of two input signals.
	This program, coupled with very intelligent filtering,
	could achieve some remarkable cross-synthesis effects.

	I have other programs as well that rely on Mark Dolson's
	phase vocoder "pvoc".  They perform all sorts of interesting
	spectral modifications.

Christopher Penrose
{ucsd, seismo}!esosun!jesus!penrose
cpenrose@ucsd.edu

