<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="_c74_vig.xsl" type="text/xsl"?>
<vignette name="Spectral Processing" package="MSP">
  <metadatalist>
    <metadata name="author">Cycling '74</metadata>
    <metadata name="tag">spectral</metadata>
    <metadata name="tag">cross-synthesis</metadata>
    <metadata name="tag">phase vocoder</metadata>
    <metadata name="tag">convolution</metadata>
  </metadatalist>
  <h1>Spectral Processing</h1>
  <p>
  The <o>pfft~</o> object provides an interface and management tool for spectral audio processing, utilizing the Fast Fourier Transform (FFT). FFT allows you to translate audio data from the time domain into the frequency domain. With this, you can create dynamic processing effects like time stretching, filtering, and cross synthesis. In combination with Gen, you can make even more efficient frequency-domain processing such as spectral delays using <o>gen~</o> inside <o>pfft~</o>.
  </p>
  <h2>Online Tutorials</h2>
  <cr/>
  <ul>
    <li><a href="http://cycling74.com/2006/11/02/the-phase-vocoder-%E2%80%93-part-i/">Phase Vocoder Tutorial, Part 1</a></li>
    <li><a href="http://cycling74.com/2007/07/02/the-phase-vocoder-part-ii/">Phase Vocoder Tutorial, Part 2</a></li>
  </ul>
  <cr/>
  <h2>MSP Example Patches</h2>
  <cr/>
  <ul>
    <li><openfilelink filename="convolution-workshop.maxpat">convolution-workshop.maxpat</openfilelink> - Some convolution examples</li>
    <li><openfilelink filename="cross-dog.maxpat">cross-dog.maxpat</openfilelink> - Cross synthesis demonstration</li>
    <li><openfilelink filename="forbidden-planet.maxpat">forbidden-planet.maxpat</openfilelink> - FFT-based graphic EQ</li>
    <li><openfilelink filename="phase-vocoder-sampler.maxpat">phase-vocoder-sampler.maxpat</openfilelink> - A phase vocoder sampler</li>
    <li><openfilelink filename="sonograph.maxpat">sonograph.maxpat</openfilelink> - An FFT-based sonograph</li>
  </ul>
  <cr/>
  <h2>gen~ Example Patches</h2>
    <cr/>
  <ul>
    <li><openfilelink filename="gen~.pfft_centroid.maxpat">gen~.pfft_centroid.maxpat</openfilelink> - gen~-based spectral centroid calculator</li>
    <li><openfilelink filename="gen~.pfft_example.maxpat">gen~.pfft_example.maxpat</openfilelink> - gen~-based FFT filter</li>
    <li><openfilelink filename="gen~.pfft.vectral.maxpat">gen~.pfft.vectral.maxpat</openfilelink> - gen~-based lowpass smoothing of FFT filter bins</li>
  </ul>
  <cr/>
  <h2>Max for Live Devices</h2>
  <cr/>
  <ul>
    <li><openfilelink filename="Max SpectralDelay.amxd">Max SpectralDelay.amxd</openfilelink> - Spectral delay</li>
    <li><openfilelink filename="Max SpectralHarm.amxd">Max SpectralHarm.amxd</openfilelink> - Spectral harmonizer</li>
    <li><openfilelink filename="Spectral Filter.amxd">Spectral Filter.amxd</openfilelink> - Spectral filter</li>
  </ul>
  <cr/>
  <seealsolist>
	<seealso name="cartopol" />
	<seealso name="cartopol~" />
	<seealso name="fft~" />
	<seealso name="fftin~" />
	<seealso name="fftinfo~" />
	<seealso name="fftout~" />
	<seealso name="frameaccum~" />
	<seealso name="framedelta~" />
	<seealso name="ifft~" />
	<seealso name="in" />
	<seealso name="out" />
	<seealso name="poltocar" />
	<seealso name="poltocar~" />
	<seealso name="vectral~" />
  </seealsolist>
</vignette>
