(max) end of semester patcher dump

It’s going to be impossible to describe the backlog of patchers that I need to post. You should be able to follow them from in-class presentations and documentation in the patchers.

  • RecordNGroove2.maxpat: introduces the dropfile object, allowing you to drag and drop audio files from your desktop finder window into a max patcher; and shows how to use MIDI note input. along with MIDI base key, to set playback rations for groove~.
  • WaveformGroove.maxpat: uses the waveform~ object to allow for graphical interaction with the contents of an audio buffer, allowing for the selection of loop points, zooming in and out, and even redrawing parts of a wave.
  • WaveformGrooveGlitch.maxpat: adds a section to WaveformGroove that determines the length of the selected loop, divides it into 10 equal sections, and then randomly selects a loop portion to go to in groove~. It scrambles the audio.
    • WaveformGlitch.maxpat is a previous version of this patcher. I didn’t show it in class, but it adds an envelope with adjustable duration. It allows you to play very short segments in random order. Follow the comments.
  • fiddleBasic.maxpat: the fiddle~ object uses fft analysis to track pitch. You need to download fiddle~ and install the object and its help file in the appropriate places. (Applications/Max6/Cycling ’74/msp-externals for fiddle~, and Applications/Max6/Cycling ’74/msp-help for the fiddle~ help patcher)
  • fiddleLiveInput.maxpat: adds a live input component to the fiddleBasic patch. With live input you should see more detected pitch and amplitude new notes being generated.
  • WavePlay.maxpat: uses wave~ instead of groove~ to play looping audio from a buffer~. Wave~ is controlled via phase location. The patcher also uses a waveform~ object with a slider overlay to show playback position.
  • WavePlayOffset.maxpat: adds controls to set the loop amount to something less than the entire file, and to have the loop start at different places in the file (with wraparound). It can create changeable stutter effects. The first modulo object (%~) sets the loop amount, keeping the same pb ratio speed. The second modulo object allows for the wraparound if the loop start point (offset) and amount would take you past the end of the buffer.
  • WavePlayOffsetDist.maxpat: adds a frequency shifter (freqshift~) that uses ring modulation to shift pitch (positive band only by default), and the degrade~ object to reduce the bit resolution of the signal. The frequency shifter distorts the ratio of partials, creating some nice robot effects. The degrade~ object can also reduce the Sampling Rate, but bit reduction produces an attractive sort of quantizing noise commonly used in a lot of rock and techno. You can put the bit resolution back to 16 to hear only the effects of the freqshift~.