<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet href="_c74_vig.xsl" type="text/xsl"?>
<vignette name="Gen"  package="Gen">
  <metadatalist>
    <metadata name="author">Cycling '74</metadata>
    <metadata name="tag">Gen</metadata>
    <metadata name="tag">code export</metadata>
  </metadatalist>
  <h1>Gen</h1>
  <p>
	  Gen is an extension of the Max patching environment that converts what you build visually into efficient compiled code as you go. Not only does it extend the capabilities of Max, but Gen code can be used outside of Max, with Code Export. Gen includes the <o>gen~</o> object for audio, and the <o>jit.pix</o> and <o>jit.gen</o> objects for matrix and texture processing. Use Gen if you want to make efficient audio and video processes at a very low level and get immediate feedback.
  </p>
  <h2>The gen~ for Beginners Series</h2>
  <cr/>
  <ul>
    <li><a href=" https://cycling74.com/tutorials/gen~-for-beginners-part-1-a-place-to-start">gen~ for Beginners, Part 1: A Place to Start</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-2-similarities-and-differences-1">gen~ for Beginners, Part 2: Similarities and Differences</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-3-counting-and-a-world-without-bang-messages">gen~ for Beginners, Part 3: Counting, and a World without bang Messages</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-4-working-with-buffers-%C2%ABand-data%C2%BB">gen~ for Beginners, Part 4: Working with buffers (and data)</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-5-the-codebox-operator">gen~ for Beginners, Part 5: The codebox Operator</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-6-thinking-inside-the-codebox">gen~ for Beginners, Part 6: Thinking Inside the Codebox</a></li>
	<li><a href="https://cycling74.com/tutorials/gen~-for-beginners-part-7-creating-reusable-tools">gen~ for Beginners, Part 7: Creating Reusable Tools</a></li>
  </ul>
  <h2>Online Tutorials</h2>
  <cr/>
  <ul>
    <li><a href="https://cycling74.com/tutorials/gen-tutorial-1-the-garden-of-earthly-delays">Gen Tutorial 1 - The Garden of Earthly Delays</a></li>
	<li><a href="https://cycling74.com/tutorials/gen-tutorial-2a-the-joy-of-swiz">Gen Tutorial 2a - The Joy of Swiz</a></li>
	<li><a href="https://cycling74.com/tutorials/gen-tutorial-2b-adventures-in-vectorland">Gen Tutorial 2b - Adventures in Vectorland</a></li>
	<li><a href="https://cycling74.com/tutorials/gen-tutorial-3-the-fine-art-of-surfacing">Gen Tutorial 3 - The Fine Art of Surfacing</a></li>
  </ul>
  <cr/>
  <h2>Gen Patcher Collections</h2>
  <cr/>
  <ul>
    <li><a href="http://cycling74.com/forums/topic/gen-patch-a-day/">Gen Patch-a-Day Tutorials</a></li>
  </ul>
  <cr/>

  <h2>gen~ Example Patches</h2>
  <cr/>
  <ul>

<li>
<openfilelink filename="gen~.7_segment_envelope.maxpat">
gen~.7_segment_envelope.maxpat</openfilelink> -
7-segment linear envelope generator
</li>

<li>
<openfilelink filename="gen~.band_limited_saw_using_feedback_fm.maxpat">
gen~.band_limited_saw_using_feedback_fm.maxpat</openfilelink> -
Band-limited sawtooth with feedback
</li>

<li>
<openfilelink filename="gen~.band_limited_saw.maxpat">
gen~.band_limited_saw.maxpat</openfilelink> -
Band-limited sawtooth
</li>

<li>
<openfilelink filename="gen~.biquad.maxpat">
gen~.biquad.maxpat</openfilelink> -
An implementation of the biquad~ object
</li>

<li>
<openfilelink filename="gen~.bitcrush.maxpat">
gen~.bitcrush.maxpat</openfilelink> -
Bit crusher
</li>

<li>
<openfilelink filename="gen~.buffir.maxpat">
gen~.buffir.maxpat</openfilelink> -
Time-domain convolution for finite impulse responses
</li>

<li>
<openfilelink filename="gen~.centroid.maxpat">
gen~.centroid.maxpat</openfilelink> -
Centroid calculator
</li>

<li>
<openfilelink filename="gen~.chaos.maxpat">
gen~.chaos.maxpat</openfilelink> -
Some attractors
</li>

<li>
<openfilelink filename="gen~.chopper_repeat.maxpat">
gen~.chopper_repeat.maxpat</openfilelink> -
Waveset segmentation and repeating playback
</li>

<li>
<openfilelink filename="gen~.chopper.maxpat">
gen~.chopper.maxpat</openfilelink> -
Segmenting waveforms by zero crossings
</li>

<li>
<openfilelink filename="gen~.comb.maxpat">
gen~.comb.maxpat</openfilelink> -
An implementation of the comb~ object
</li>

<li>
<openfilelink filename="gen~.computed_sine.maxpat">
gen~.computed_sine.maxpat</openfilelink> -
A computed sine wave
</li>

<li>
<openfilelink filename="gen~.count.maxpat">
gen~.count.maxpat</openfilelink> -
An implementation of the count~ object
</li>

<li>
<openfilelink filename="gen~.crossover.maxpat">
gen~.crossover.maxpat</openfilelink> -
Crossover filter
</li>

<li>
<openfilelink filename="gen~.deltaclip.maxpat">
gen~.deltaclip.maxpat</openfilelink> -
An implementation of the deltaclip~ object
</li>

<li>
<openfilelink filename="gen~.drunk.maxpat">
gen~.drunk.maxpat</openfilelink> -
An implementation of the drunk~ object
</li>

<li>
<openfilelink filename="gen~.edge.maxpat">
gen~.edge.maxpat</openfilelink> -
An implementation of the edge~ object
</li>

<li>
<openfilelink filename="gen~.feedback_am.maxpat">
gen~.feedback_am.maxpat</openfilelink> -
Second order feedback FM
</li>

<li>
<openfilelink filename="gen~.feedback_fm.maxpat">
gen~.feedback_fm.maxpat</openfilelink> -
Feedback FM
</li>

<li>
<openfilelink filename="gen~.filters.maxpat">
gen~.filters.maxpat</openfilelink> -
Filter implementations
</li>

<li>
<openfilelink filename="gen~.flange_chorus.maxpat">
gen~.flange_chorus.maxpat</openfilelink> -
Flanger and Chorus
</li>

<li>
<openfilelink filename="gen~.flute.maxpat">
gen~.flute.maxpat</openfilelink> -
Slide flute physical model
</li>

<li>
<openfilelink filename="gen~.fm_bells.maxpat">
gen~.fm_bells.maxpat</openfilelink> -
FM synthesis with decaying envelope
</li>

<li>
<openfilelink filename="gen~.freeverb.maxpat">
gen~.freeverb.maxpat</openfilelink> -
An implementation of the freeverb
</li>

<li>
<openfilelink filename="gen~.gigaverb.maxpat">
gen~.gigaverb.maxpat</openfilelink> -
An implementation of the gigaverb
</li>

<li>
<openfilelink filename="gen~.interpolation.maxpat">
gen~.interpolation.maxpat</openfilelink> -
Varieties of waveform interpolation
</li>

<li>
<openfilelink filename="gen~.karplus_strong_strange.maxpat">
gen~.karplus_strong_strange.maxpat</openfilelink> -
Karplus Strong string model with feedback
</li>

<li>
<openfilelink filename="gen~.karplus_strong.maxpat">
gen~.karplus_strong.maxpat</openfilelink> -
Karplus Strong string model
</li>

<li>
<openfilelink filename="gen~.livelooper.maxpat">
gen~.livelooper.maxpat</openfilelink> -
A live looper
</li>

<li>
<openfilelink filename="gen~.minmax.maxpat">
gen~.minmax.maxpat</openfilelink> -
Calculate minimum/mean/maximum values
</li>

<li>
<openfilelink filename="gen~.modfm.maxpat">
gen~.modfm.maxpat</openfilelink> -
ModFM
</li>

<li>
<openfilelink filename="gen~.moogladder.maxpat">
gen~.moogladder.maxpat</openfilelink> -
Moog ladder filter
</li>

<li>
<openfilelink filename="gen~.overdrive.maxpat">
gen~.overdrive.maxpat</openfilelink> -
Waveshapers
</li>

<li>
<openfilelink filename="gen~.performance.maxpat">
gen~.performance.maxpat</openfilelink> -
gen~ performance comparison
</li>

<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>

<li>
<openfilelink filename="gen~.phasor.maxpat">
gen~.phasor.maxpat</openfilelink> -
An implementation of the phasor~ object
</li>

<li>
<openfilelink filename="gen~.pitchshift.maxpat">
gen~.pitchshift.maxpat</openfilelink> -
Overlap-add pitch shifting with stochastic blur
</li>

<li>
<openfilelink filename="gen~.pulsar.maxpat">
gen~.pulsar.maxpat</openfilelink> -
Pulsar synthesis
</li>

<li>
<openfilelink filename="gen~.random.maxpat">
gen~.random.maxpat</openfilelink> -
An implementation of the rand~ object
</li>

<li>
<openfilelink filename="gen~.shaker.maxpat">
gen~.shaker.maxpat</openfilelink> -
A shaker
</li>

<li>
<openfilelink filename="gen~.sincinterpolation.forloop.maxpat">
gen~.sincinterpolation.forloop.maxpat</openfilelink> -
16-Point Windowed-Sinc Interpolation
</li>

<li>
<openfilelink filename="gen~.sincinterpolation.maxpat">
gen~.sincinterpolation.maxpat</openfilelink> -
16-Point windowed-sinc interpolation
</li>

<li>
<openfilelink filename="gen~.slicer.maxpat">
gen~.slicer.maxpat</openfilelink> -
Pitch-shift by overlap-add
</li>

<li>
<openfilelink filename="gen~.slide.maxpat">
gen~.slide.maxpat</openfilelink> -
An implementation of the slide~ object
</li>

<li>
<openfilelink filename="gen~.spectraldelay_feedback.maxpat">
gen~.spectraldelay_feedback.maxpat</openfilelink> -
Spectral delay with feedback
</li>

<li>
<openfilelink filename="gen~.spectraldelay.maxpat">
gen~.spectraldelay.maxpat</openfilelink> -
Spectral delay
</li>

<li>
<openfilelink filename="gen~.thresh.maxpat">
gen~.thresh.maxpat</openfilelink> -
An implementation of the thresh~ object
</li>

<li>
<openfilelink filename="gen~.trapezoid.maxpat">
gen~.trapezoid.maxpat</openfilelink> -
An implementation of the trapezoid~ object
</li>

<li>
<openfilelink filename="gen~.vosim.maxpat">
gen~.vosim.maxpat</openfilelink> -
VOSIM
</li>

<li>
<openfilelink filename="gen~.waveguide.maxpat">
gen~.waveguide.maxpat</openfilelink> -
Waveguide string physical model
</li>

<li>
<openfilelink filename="gen~.waveset.maxpat">
gen~.waveset.maxpat</openfilelink> -
Waveset distortion
</li>

<li>
<openfilelink filename="gen~.zerox.maxpat">
gen~.zerox.maxpat</openfilelink> -
Zero crossing detector/counter
</li>
  </ul>
  <cr/>

  <h2>Gen Code Export Tutorials</h2>
  <cr/>
  <ul>
    <li><a href="https://cycling74.com/tutorials/gen-code-export-audiounits">Code Export for Audio Units</a></li>
    <li><a href="https://cycling74.com/tutorials/gen-code-export-vst">Code Export for VST</a></li>
  	<li><a href="https://cycling74.com/tutorials/gen-code-export-ios">Code Export for iOS</a></li>
  	<li><a href="https://cycling74.com/tutorials/gen-code-export-isf">Code Export for ISF</a></li>
  </ul>
  <cr/>
  <seealsolist>
	  gen_common_operators.maxvig.xml
	  gen_genexpr.maxvig.xml
	  gen_jitter_operators.maxvig.xml
	  gen_overview.maxvig.xml
	  gen~_operators.maxvig.xml
  	<seealso name="gen_overview" type="vignette" module="gen" />
  	<seealso name="gen_common_operators" type="vignette" module="gen" />
  	<seealso name="gen~_operators" type="vignette" module="gen" />
  	<seealso name="gen_jitter_operators" type="vignette" module="gen" />
  	<seealso name="gen_genexpr" type="vignette" module="gen" />
	<seealso name="gen~"/>
	<seealso name="jit.gen"/>
	<seealso name="jit.pix"/>
  </seealsolist>
</vignette>
