RESOURCES

Useful resources (links, tutorials, example code, readings) will be posted here. Please be sure to check back in from time to time, as this page will be updated throughout the course.

Week 1

Syllabus

Context

Code

https://cycling74.com/downloads/


Max Resources


Sound Design


Helpful Tools


Unhelpful Tools


Max Workshop 1: Intro to Max / Jitter

MAX INTERFACE BASICS

1. What is Max?

  • Who has used it?
  • Why?

2. Interface overview

  • Menus, object instantiation
  • Locking / unlocking patches
  • Tool palettes
  • Connecting objects
  • Inspector
  • Debugging via the Max window
  • Options menu, incl. file path, audio status
  • Extras window, incl. audio tester
  • Presentation mode
  • Shift-drag to patch in Max 8

3. How to get help / about the documentation

BASIC OBJECTS

  • object
  • message
  • comment
  • bang
  • toggle
  • loadbang
  • loadmess

ORDER OF EVENTS

  • right-to-left, bottom-to-top
  • trigger
  • loadbang
  • loadmess

DATA TYPES

  • bang
  • int
  • float
  • symbol
  • list
  • signal

THE BIG BANG

  • metro
  • qmetro

WHAT IS THE MATRIX?

JITTER UI OBJECTS

  • jit.pwindow
  • jit.window
  • jit.fpsgui

VIDEO FILES

  • jit.movie

VIDEO COMPRESSION

  • Intra-frame vs. inter-frame coding
  • Photo JPEG is your friend (Apple ProRes too)
  • Easy compression using QuickTime 7 Pro
  • More easy compression using MPEG StreamClip

VIDEO I/O

  • jit.grab
  • jit.rota

VIDEO MIXING

  • jit.xfade

BASIC / VIDEO MATHS

  • +, -, *, /, !+, !-, !/, %
  • jit.op

ARGUMENTS VS. ATTRIBUTES

  • attrui

BASIC UI CONTROLS

  • hslider, vslider
  • multislider

LISTS

  • pack
  • pak
  • $1

GOING FULLSCREEN

  • fullscreen $1
  • ;jitter cursor $1
  • jit.window attributes: @fsmenubar, @interp
  • jit.world for pillarboxing / letterboxing

Week 2

Context

Code

Max Workshop 2: MSP + Digital Audio Basics

BASIC MSP OBJECTS

  • ezdac~ and ezadc~
  • dac~ and adc~
  • number~
  • cycle~
  • meter~
  • scope~
  • spectroscope~

RECORDING TO DISK / PLAYING BACK FROM DISK

  • sfplay~
  • sfrecord~
  • autonaming recordings w/ sprintf, date

Max Workshop 3: Advanced Digital Audio Processing + Synthesis Fundamentals

LIVE MULTITRACKING

  • Recording multichannel files (note: 2Gb limit for both .aif & .wav)
  • What if your patch crashes (or goes over 2Gb limit) before writing the header?
  • Stereo files: Soundhack
  • Multichannel files: cf. Diemo Schwarz's aifffixlength.c
  • Splitting multichannel files using De-Interleaver.

MIXING / CROSSFADING

  • +~
  • *~
  • gain~
  • !-
  • line~
  • curve~
  • gates & switches

FUN WITH MEMORY BUFFERED AUDIO

  • buffer~
  • play~
  • groove~
  • wave~
  • syncing wave~ w/ rate & @sync 1
  • record~
  • feedback with buffers

Week 3

Context

Code

Max Workshop 4: Data Shaping + Manipulation

LISTS

  • pack, pak
  • unpack
  • zl

RANDOMNESS

  • decide
  • drunk
  • random
  • urn

Max Workshop 5: Sound, Automation + Trickery

LOGIC / DATA FLOW

  • <, <=, ==, >=, >
  • if / else
  • select
  • change / route

DATA SCALING

  • zmap
  • scale
  • osav.scale
  • expr
  • vexpr
  • jit.expr

VARIABLES, DATA STORAGE

  • sprintf
  • coll

MINING FOR / RECALLING QT LOOPS

HANDY OBJECT

  • jit.movie~

SPATIAL AUDIO FUNDAMENTALS

1. Phase-controlled panning

    • frozen cycle~
    • pan4S

2. el.npan~

3. Ambisonics (ICST)

    • 1 signal
    • 2 signals
    • X/Y Controls
    • X/Y/Z & A/E/D Controls

MORE ABOUT SPATIAL AUDIO

  • Max 8 MC (MultiChannel) Wrapper overview
  • Envelop for Live -> HOA Decoder
  • sensel
  • spat5~ (pan / binaural)

Max Workshop 6: Sound / Image Synthesis

SUBTRACTIVE SYNTHESIS

1. Basic waveforms

  • cycle~
  • tri~
  • rect~
  • saw~
  • phasor~

2. Special features

  • Phase offset: cycle~, phasor~
  • Duty cycle: rect~, tri~
  • Syncing oscillators: tri~, rect~, saw~

3. Noise sources

  • noise~
  • pink~
  • rand~

4. Filters

  • filtergraph~
  • biquad~
  • cascade~

MODULATION SYNTHESIS

1. Smooth & stepped randoms

  • train~
  • sah~
  • rampsmooth~

2. Some maths

  • Basic maths: +, -, *, /, !-, !/, %
  • Signal maths: +~, -~, *~, /~, !-~, !/~, %~

3. Fun with volume

  • Tremolo
  • Ring modulation (bipolar)
  • Amplitude modulation (unipolar)

4. Fun with frequency

  • Vibrato
  • Frequency modulation
  • Basic
  • A’la John Chowning
  • A’la F. Richard Moore

SIGNAL ANALYSIS

  • snapshot~
  • meter~
  • zsa.descriptors~

EFFECTS

  • jit.hue
  • jit.brcosa
  • jit.sprinkle
  • jit.streak
  • jit.slide

AUTOMATION

  • controlling Jitter with MSP (basic)
  • controlling Jitter with MSP (with data scaling)

THIRD PARTY VIDEO SYNTHESIS TOOLS

  • VSynth
  • REWEREHERE

Week 4

Context

Code

Max Workshop 7: Advanced Max / Jitter Techniques

TIMING TIPS / TRICKS

  • cascading metros
  • delay / pipe
  • phasor~ sequencing
  • syncing with rate~

TIDYING UP

  • encapsulation (subpatches)
  • patchers
  • presentation mode
  • bpatchers

Max Workshop 8: The Third Dimension and Beyond

KEYING

  • jit.lumakey
  • jit.chromakey
  • suckah

MATRIX CUTTING / SPLICING

  • jit.scissors
  • jit.glue
  • jit.submatrix

VIDEO DELAY

OPEN GL + VIDEO BASICS

  • jit.gl.render
  • jit.gl.gridshape
  • jit.gl.handle
  • jit.gl.videoplane
  • @ortho 2

MULTI-VIDEO / MULTI-COMPUTER SYNCING

  • Local sync with "frame 0"
  • maxhole
  • udpsend / udpreceive
  • route
  • osc-route
  • Network sync with udpsend / udpreceive
  • Multiscreener
  • jit.gl.cornerpin
  • jit.gl.cornerpin with presets

VIDEO & OPEN GL PT. 2

  • loadram
  • Videoplane xfade trick
  • Multiple videoplanes xfading
  • jit.gl.slab basics
  • Blendmodes with jit.gl.slab
  • Feedback with jit.gl.slab
  • Adding video texture to a gridshape

EXTRUDING

  • Basic extrusion
  • Extruding with video texture
  • Adding audio to the extrusion

USING 3D MODELS

  • jit.gl.model basics
  • Texturing a model with video
  • jit.gl.light
  • jit.gl.camera
  • capture to texture
  • jit.gl.world
  • jit.gl.multiple

MORE ABOUT THE STUDIO

Week 5

Context

Code

Max Workshop 9: Interfacing with the External World

FRAME DIFFERENCING

  • Basic Techniques
  • Triggering discrete events based on a threshold value
  • Background subtraction
  • Video event grid

COMPUTER VISION WITH CV.JIT

  • Frame center detection: cv.jit.centroids
  • Blob boundary detection: cv.jit.blobs.bounds
  • Blob center detection: cv.jit.blobs.centroids
  • Feature tracking: cv.jit.features2track
  • Face tracking: cv.jit.faces

Max Workshop 10: Managing Complexity

TIPS + TRICKS

  • Easy probabilities with itable & table
  • Softclip cheat with sinx~
  • Another softclip cheat with tanh~

ABSTRACTIONS

  • #1, #2, etc.
  • Automatic w/ #0
  • patcherargs

MANAGING COMPLEX PATCHES

  • preset
  • pattrui / autopattr
  • pattr_ui
  • nodes

BASICS OF POLY~

  • in + out
  • in~ + out~
  • poly~ "args" (#1, #2...)
  • Using poly~
  • thispoly~
  • Unique identifiers (#0)
  • OSC to poly~
  • Parallel processing
  • Seeding random object with unique IDs inside poly~
  • Voice stealing
  • keeping track of poly~ with poly and midinote messages

FUN WITH POLY~

  • Multitap video delay with poly~
  • Framedifferencing a videogrid with poly~

MIDI

    • ctlin / ctlout
    • notein / noteout
    • pgmin / pgmout
    • midiin / midiout
    • sysexin / sxformat
    • routing with ctlin to handle multiple continuous controls
    • midi mapping

EXTERNAL CONTROLS

    • mousestate
    • key mapping
    • hi (human interface)
    • mobile devices with touchosc
    • fingerpinger externals
    • Sensel Morph
    • Ableton Push 2
    • Livid Instruments Alias 8
    • dmxis