This patch started out in Brooklyn w/ Chris Kelly and was finished in Burkina Faso w/ Zack Settel. Two years later, I stumbled across my modsquad patch in the Max4MSP2 distribution. A fresh look at the old problem brings up some new insights. The goal of the original patch (today adored and referred to as "Old School") was to create a sample-accurate relooper. In order to do this, I created a huge comparison matrix in the signal domain. Les Stuck proposed a scheduler version centered around seq~ for the Max4 distribution. Here I have made a new and improved version using signal lookup tables, bringing things back into the pure signal domain. I feel that this guarantees a rhythmic tightness that is appreciable ___The Problem____ The problem is that looping using Max millisecond scheduler creates temporal artifacts that are audible on tight rhythms. "Old School" was a way to keep everything in the signal domain from the output of the multislider all the way to the sampler player. Seq~ looked like it could be a solution because it is a signal controled event sequencer. But the problem is that the output of Seq~ is.... events.... bringing us back into the milllisecond scheduler world. Since the link between Seq~ and the sample player are Max control events, we lose our time-tightness here - and I think it's perceivable. ___The "Solution"___ The Peek~/Wave~ version brings everything back to signal-only - in fact multislider is used simply to update a signal based lookup table. The whole patch is signal, and is ultra-tight and solid as a rock. ___ Listen......______ The best way to understand is to listen for yourself. A couple of caveats: - The patch should crank up automatically. However, the example sound may not have had time to load. If in doubt, manually click to load the "jongly" sound and restart the DSP. - The "jongly" sample sound is neat, but it may sound a bit "out" in its original state - perhaps not the best example. But when you start to remap, you hear why it's an interesting example for tightness tests. What do to: Try the different presets. Play with the tempo knob and see how the pitch compensation kicks in. Try the cut-time modes, especially on multislider settings with lots of blank slots (like Preset 5) __How it works___ To see why there's all the math in the patcher "peeker~", double click on "wave~" to see the signal representation of the multislider settings. Note that a linear staircase in multislider (Preset 1) needs to create a smooth ramp in wave~ - in this case, wave~ reduces to be the same as phasor~. Changing multislider is like scrambling and reshuffling the phasor~ in 16 segments. Between the 16 points, the ramp has to continue at the same rate for the audio to play at normal speed. Try looking at wave~ after changing multislider or changing presets to see what I mean. Thanks to Chris Kelly for the original idea, to Zack Settel for MSP consultation in the bush of Burkina Faso, and to Les Stuck for his advice and enthusiasm for this patch. Atau Tanaka Paris 11jan2003 please note that these examples require ./examples/sounds/jongly.aif and ./examples/misc-max-trix/notes-and-pitch/pitch-to-freq-ratio/transratio.pat