Controlling the speed and playback position of a sound.


    Aug 16 2013 | 9:16 pm
    I'd like to play back a sample in time with a movement (probably a wiimote gesture in future but a cursor movement is fine for now).
    I've got no idea how to go about doing this but this video suggests it is possible, though I don't need the gesture/ shape recognition, just the ability to scrub through a sound file with the speed of the sample increasing or decreasing relative to the input.
    Essentially I'm after the same effect you might get using a DJ controller to slow down/ speed up a sample, though ideally at a steady pitch.
    Any ideas?
    Thanks.

    • Aug 17 2013 | 6:55 am
      have a look at buffer~, groove~, play~,... for the sound part. And the cv.jit externals maybe. Jit.op and absdiff are your friends too. If you use max for live, there are devices (one is called 'motion... something') made to do this kind of things.
    • Aug 17 2013 | 6:46 pm
      Thanks for the tips, though unfortunately I'm not a max for live user.
      Here's what I've got so far (taken from another thread on here). It almost does what I'm trying to do but ideally the pitch would remain constant and the sound would only be played when the slider value is increasing. I'm trying to use grainstretch to shift the pitch up relative to the slowness of the movement but I'm not entirely confident this will work.
      ----------begin_max5_patcher----------
      {
      "boxes" : [ {
      "box" : {
      "maxclass" : "flonum",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "bang" ],
      "patching_rect" : [ 374.0, 543.0, 50.0, 20.0 ],
      "id" : "obj-19",
      "fontname" : "Arial",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "bang" ],
      "patching_rect" : [ 85.0, 531.0, 50.0, 20.0 ],
      "id" : "obj-6",
      "fontname" : "Arial",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "button",
      "numoutlets" : 1,
      "outlettype" : [ "bang" ],
      "patching_rect" : [ 50.0, 395.0, 20.0, 20.0 ],
      "id" : "obj-2",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "bang" ],
      "patching_rect" : [ 533.0, 410.0, 50.0, 20.0 ],
      "id" : "obj-30",
      "fontname" : "Arial",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "/ 2.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 533.0, 373.0, 32.5, 20.0 ],
      "id" : "obj-29",
      "fontname" : "Arial",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "0",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 434.0, 430.0, 32.5, 18.0 ],
      "id" : "obj-28",
      "fontname" : "Arial",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "ctlin a1 3",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "int", "int" ],
      "patching_rect" : [ 431.0, 395.0, 59.0, 20.0 ],
      "id" : "obj-26",
      "fontname" : "Arial",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 533.0, 255.0, 20.0, 20.0 ],
      "id" : "obj-25",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "bang" ],
      "patching_rect" : [ 533.0, 322.0, 50.0, 20.0 ],
      "id" : "obj-24",
      "fontname" : "Arial",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "gate",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 533.0, 286.0, 34.0, 20.0 ],
      "id" : "obj-16",
      "fontname" : "Arial",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "button",
      "numoutlets" : 1,
      "outlettype" : [ "bang" ],
      "patching_rect" : [ 533.0, 218.0, 20.0, 20.0 ],
      "id" : "obj-14",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "ctlin a1 2",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "int", "int" ],
      "patching_rect" : [ 533.0, 172.0, 59.0, 20.0 ],
      "id" : "obj-10",
      "fontname" : "Arial",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "1",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 450.0, 256.0, 32.5, 18.0 ],
      "id" : "obj-7",
      "fontname" : "Arial",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "scale 0. 127. 0. 1.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 597.0, 234.0, 105.0, 20.0 ],
      "id" : "obj-5",
      "fontname" : "Arial",
      "numinlets" : 6
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "ctlin a1 1",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "int", "int" ],
      "patching_rect" : [ 597.0, 207.0, 59.0, 20.0 ],
      "id" : "obj-4",
      "fontname" : "Arial",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "replace",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 316.0, 437.0, 50.0, 18.0 ],
      "id" : "obj-3",
      "fontname" : "Arial",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "slider",
      "numoutlets" : 1,
      "outlettype" : [ "" ],
      "relative" : 1,
      "floatoutput" : 1,
      "size" : 1.0,
      "patching_rect" : [ 180.0, 481.0, 511.0, 44.0 ],
      "id" : "obj-91",
      "parameter_enable" : 0,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "p speed&scale",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 180.0, 596.0, 97.0, 21.0 ],
      "id" : "obj-89",
      "fontname" : "Verdana",
      "numinlets" : 2,
      "patcher" : {
      "fileversion" : 1,
      "appversion" : {
      "major" : 6,
      "minor" : 1,
      "revision" : 3,
      "architecture" : "x86"
      }
      ,
      "rect" : [ 494.0, 344.0, 212.0, 233.0 ],
      "bglocked" : 0,
      "openinpresentation" : 0,
      "default_fontsize" : 12.0,
      "default_fontface" : 0,
      "default_fontname" : "Verdana",
      "gridonopen" : 0,
      "gridsize" : [ 5.0, 5.0 ],
      "gridsnaponopen" : 0,
      "statusbarvisible" : 2,
      "toolbarvisible" : 1,
      "boxanimatetime" : 200,
      "imprint" : 0,
      "enablehscroll" : 1,
      "enablevscroll" : 1,
      "devicewidth" : 0.0,
      "description" : "",
      "digest" : "",
      "tags" : "",
      "boxes" : [ {
      "box" : {
      "maxclass" : "newobj",
      "text" : "scale 0. 1. 500. 10.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 50.0, 145.0, 128.0, 21.0 ],
      "id" : "obj-50",
      "fontname" : "Verdana",
      "numinlets" : 6
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "abs 0.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 50.0, 120.0, 48.0, 21.0 ],
      "id" : "obj-36",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "- 0.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 50.0, 95.0, 32.5, 21.0 ],
      "id" : "obj-18",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "bucket",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 75.0, 70.0, 51.0, 21.0 ],
      "id" : "obj-16",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "inlet",
      "numoutlets" : 1,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 50.0, 40.0, 25.0, 25.0 ],
      "id" : "obj-86",
      "numinlets" : 0,
      "comment" : ""
      }
      }
      , {
      "box" : {
      "maxclass" : "inlet",
      "numoutlets" : 1,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 75.0, 40.0, 25.0, 25.0 ],
      "id" : "obj-87",
      "numinlets" : 0,
      "comment" : ""
      }
      }
      , {
      "box" : {
      "maxclass" : "outlet",
      "numoutlets" : 0,
      "patching_rect" : [ 50.0, 170.0, 25.0, 25.0 ],
      "id" : "obj-88",
      "numinlets" : 1,
      "comment" : ""
      }
      }
      ],
      "lines" : [ {
      "patchline" : {
      "source" : [ "obj-87", 0 ],
      "destination" : [ "obj-16", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-86", 0 ],
      "destination" : [ "obj-18", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-50", 0 ],
      "destination" : [ "obj-88", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-36", 0 ],
      "destination" : [ "obj-50", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-18", 0 ],
      "destination" : [ "obj-36", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-16", 0 ],
      "destination" : [ "obj-18", 1 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      ]
      }
      ,
      "saved_object_attributes" : {
      "default_fontface" : 0,
      "default_fontname" : "Verdana",
      "default_fontsize" : 12.0,
      "description" : "",
      "digest" : "",
      "fontface" : 0,
      "fontname" : "Verdana",
      "fontsize" : 12.0,
      "globalpatchername" : "",
      "tags" : ""
      }
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "p amp",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "signal" ],
      "patching_rect" : [ 285.0, 596.0, 49.0, 21.0 ],
      "id" : "obj-85",
      "fontname" : "Verdana",
      "numinlets" : 2,
      "patcher" : {
      "fileversion" : 1,
      "appversion" : {
      "major" : 6,
      "minor" : 1,
      "revision" : 3,
      "architecture" : "x86"
      }
      ,
      "rect" : [ 54.0, 94.0, 121.0, 220.0 ],
      "bglocked" : 0,
      "openinpresentation" : 0,
      "default_fontsize" : 12.0,
      "default_fontface" : 0,
      "default_fontname" : "Verdana",
      "gridonopen" : 0,
      "gridsize" : [ 5.0, 5.0 ],
      "gridsnaponopen" : 0,
      "statusbarvisible" : 2,
      "toolbarvisible" : 1,
      "boxanimatetime" : 200,
      "imprint" : 0,
      "enablehscroll" : 1,
      "enablevscroll" : 1,
      "devicewidth" : 0.0,
      "description" : "",
      "digest" : "",
      "tags" : "",
      "boxes" : [ {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pipe 50",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 35.0, 75.0, 55.0, 21.0 ],
      "id" : "obj-74",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "line~",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "signal", "bang" ],
      "patching_rect" : [ 35.0, 130.0, 42.0, 21.0 ],
      "id" : "obj-67",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pack f 50",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 35.0, 105.0, 66.0, 21.0 ],
      "id" : "obj-68",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "inlet",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 35.0, 45.0, 25.0, 25.0 ],
      "id" : "obj-82",
      "numinlets" : 0,
      "comment" : ""
      }
      }
      , {
      "box" : {
      "maxclass" : "inlet",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 65.0, 45.0, 25.0, 25.0 ],
      "id" : "obj-83",
      "numinlets" : 0,
      "comment" : ""
      }
      }
      , {
      "box" : {
      "maxclass" : "outlet",
      "numoutlets" : 0,
      "patching_rect" : [ 35.0, 155.0, 25.0, 25.0 ],
      "id" : "obj-84",
      "numinlets" : 1,
      "comment" : ""
      }
      }
      ],
      "lines" : [ {
      "patchline" : {
      "source" : [ "obj-83", 0 ],
      "destination" : [ "obj-68", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-82", 0 ],
      "destination" : [ "obj-74", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-74", 0 ],
      "destination" : [ "obj-68", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-68", 0 ],
      "destination" : [ "obj-67", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-67", 0 ],
      "destination" : [ "obj-84", 0 ],
      "hidden" : 0,
      "disabled" : 0
      }
      }
      ]
      }
      ,
      "saved_object_attributes" : {
      "default_fontface" : 0,
      "default_fontname" : "Verdana",
      "default_fontsize" : 12.0,
      "description" : "",
      "digest" : "",
      "fontface" : 0,
      "fontname" : "Verdana",
      "fontsize" : 12.0,
      "globalpatchername" : "",
      "tags" : ""
      }
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "*~",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "signal" ],
      "patching_rect" : [ 125.0, 716.0, 32.5, 21.0 ],
      "id" : "obj-69",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "gain~",
      "numoutlets" : 2,
      "outlettype" : [ "signal", "int" ],
      "patching_rect" : [ 125.0, 746.0, 43.0, 136.0 ],
      "id" : "obj-55",
      "parameter_enable" : 0,
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "line~",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "signal", "bang" ],
      "patching_rect" : [ 125.0, 656.0, 42.0, 21.0 ],
      "id" : "obj-40",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pack f 100",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "" ],
      "patching_rect" : [ 125.0, 626.0, 74.0, 21.0 ],
      "id" : "obj-39",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "* 1.",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "float" ],
      "patching_rect" : [ 125.0, 596.0, 35.0, 21.0 ],
      "id" : "obj-37",
      "fontname" : "Verdana",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t 0 f f f 1",
      "numoutlets" : 5,
      "fontsize" : 12.0,
      "outlettype" : [ "int", "float", "float", "float", "int" ],
      "patching_rect" : [ 180.0, 536.0, 73.0, 21.0 ],
      "id" : "obj-17",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "play~ test",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "signal", "bang" ],
      "patching_rect" : [ 125.0, 686.0, 72.0, 21.0 ],
      "id" : "obj-15",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "loadbang",
      "numoutlets" : 1,
      "fontsize" : 12.0,
      "outlettype" : [ "bang" ],
      "patching_rect" : [ 60.0, 436.0, 66.0, 21.0 ],
      "id" : "obj-12",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "info~ test",
      "numoutlets" : 9,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "list", "float", "float", "float", "float", "float", "", "int" ],
      "patching_rect" : [ 60.0, 461.0, 113.5, 21.0 ],
      "id" : "obj-11",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "ezdac~",
      "numoutlets" : 0,
      "patching_rect" : [ 125.0, 896.0, 45.0, 45.0 ],
      "id" : "obj-9",
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "buffer~ test jongly.aif",
      "numoutlets" : 2,
      "fontsize" : 12.0,
      "outlettype" : [ "float", "bang" ],
      "patching_rect" : [ 118.0, 401.0, 143.0, 21.0 ],
      "id" : "obj-8",
      "fontname" : "Verdana",
      "numinlets" : 1
      }
      }
      ],
      "lines" : [ {
      "patchline" : {
      "source" : [ "obj-24", 0 ],
      "destination" : [ "obj-91", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 360.0, 273.0, 360.0, 273.0, 468.0, 189.5, 468.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-91", 0 ],
      "destination" : [ "obj-19", 0 ],
      "hidden" : 0,
      "midpoints" : [ 189.5, 531.0, 264.0, 531.0, 264.0, 540.0, 383.5, 540.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-11", 6 ],
      "destination" : [ "obj-6", 0 ],
      "hidden" : 0,
      "midpoints" : [ 140.375, 516.0, 94.5, 516.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-2", 0 ],
      "destination" : [ "obj-11", 0 ],
      "hidden" : 0,
      "midpoints" : [ 59.5, 456.0, 69.5, 456.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-91", 0 ],
      "destination" : [ "obj-17", 0 ],
      "hidden" : 0,
      "midpoints" : [ 189.5, 525.0, 189.5, 525.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-89", 0 ],
      "destination" : [ "obj-39", 1 ],
      "hidden" : 0,
      "midpoints" : [ 189.5, 618.0, 189.5, 618.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-85", 0 ],
      "destination" : [ "obj-69", 1 ],
      "hidden" : 0,
      "midpoints" : [ 294.5, 717.0, 159.0, 717.0, 159.0, 711.0, 148.0, 711.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-8", 1 ],
      "destination" : [ "obj-11", 0 ],
      "hidden" : 0,
      "midpoints" : [ 251.5, 432.0, 57.0, 432.0, 57.0, 456.0, 69.5, 456.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-69", 0 ],
      "destination" : [ "obj-55", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 738.0, 134.5, 738.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-55", 0 ],
      "destination" : [ "obj-9", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 882.0, 134.5, 882.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-55", 0 ],
      "destination" : [ "obj-9", 1 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 891.0, 160.5, 891.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-5", 0 ],
      "destination" : [ "obj-16", 1 ],
      "hidden" : 0,
      "midpoints" : [ 606.5, 273.0, 557.5, 273.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-40", 0 ],
      "destination" : [ "obj-15", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 678.0, 134.5, 678.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-4", 0 ],
      "destination" : [ "obj-5", 0 ],
      "hidden" : 0,
      "midpoints" : [ 606.5, 228.0, 606.5, 228.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-39", 0 ],
      "destination" : [ "obj-40", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 648.0, 134.5, 648.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-37", 0 ],
      "destination" : [ "obj-39", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 618.0, 134.5, 618.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-3", 0 ],
      "destination" : [ "obj-8", 0 ],
      "hidden" : 0,
      "midpoints" : [ 325.5, 456.0, 273.0, 456.0, 273.0, 387.0, 127.5, 387.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-29", 0 ],
      "destination" : [ "obj-30", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 393.0, 542.5, 393.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-28", 0 ],
      "destination" : [ "obj-91", 0 ],
      "hidden" : 0,
      "midpoints" : [ 443.5, 468.0, 189.5, 468.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-26", 0 ],
      "destination" : [ "obj-28", 0 ],
      "hidden" : 0,
      "midpoints" : [ 440.5, 426.0, 443.5, 426.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-25", 0 ],
      "destination" : [ "obj-16", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 276.0, 542.5, 276.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-24", 0 ],
      "destination" : [ "obj-29", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 342.0, 542.5, 342.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-17", 2 ],
      "destination" : [ "obj-89", 0 ],
      "hidden" : 0,
      "midpoints" : [ 216.5, 582.0, 189.5, 582.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-17", 3 ],
      "destination" : [ "obj-89", 1 ],
      "hidden" : 0,
      "midpoints" : [ 230.0, 582.0, 267.5, 582.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-17", 0 ],
      "destination" : [ "obj-85", 0 ],
      "hidden" : 0,
      "midpoints" : [ 189.5, 582.0, 294.5, 582.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-17", 4 ],
      "destination" : [ "obj-85", 1 ],
      "hidden" : 0,
      "midpoints" : [ 243.5, 582.0, 324.5, 582.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-17", 1 ],
      "destination" : [ "obj-37", 0 ],
      "hidden" : 0,
      "midpoints" : [ 203.0, 582.0, 134.5, 582.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-16", 0 ],
      "destination" : [ "obj-24", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 306.0, 542.5, 306.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-15", 0 ],
      "destination" : [ "obj-69", 0 ],
      "hidden" : 0,
      "midpoints" : [ 134.5, 708.0, 134.5, 708.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-14", 0 ],
      "destination" : [ "obj-7", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 240.0, 459.5, 240.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-14", 0 ],
      "destination" : [ "obj-25", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 240.0, 542.5, 240.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-12", 0 ],
      "destination" : [ "obj-11", 0 ],
      "hidden" : 0,
      "midpoints" : [ 69.5, 459.0, 69.5, 459.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-11", 6 ],
      "destination" : [ "obj-37", 1 ],
      "hidden" : 0,
      "midpoints" : [ 140.375, 516.0, 150.5, 516.0 ],
      "disabled" : 0
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 0 ],
      "destination" : [ "obj-14", 0 ],
      "hidden" : 0,
      "midpoints" : [ 542.5, 192.0, 542.5, 192.0 ],
      "disabled" : 0
      }
      }
      ],
      "appversion" : {
      "major" : 6,
      "minor" : 1,
      "revision" : 3,
      "architecture" : "x86"
      }
      }
      -----------end_max5_patcher-----------
    • Aug 17 2013 | 9:30 pm
      Something went wrong pasting your patcher in, I think. I can't open it.
      Sounds a lot like granular synthesis, or fft analysis/resynthesis.
      Using granular synthesis to pitch up what went down when you play back at slower rates is certainly interesting but somewhat missed the point of granular stuff.
      With granular sampling you can play back an audio file at any speed without changing the pitch (there are downsides also as everywhere in life). There should be a nice example that come with max but I can't find it right now.
      But you can find tons of granular samplers online.
      hope that helps
      cheers
    • Aug 18 2013 | 5:14 am
      grainstretch~ (32bit) is useful for this kind of thing, especially if you are reading from a buffer, because it opens the possibility of great effects.
    • Aug 18 2013 | 9:42 am
      grainstretch~
      Does exactly wot it sez on the tin
    • Aug 18 2013 | 11:57 am
      . . . and here's a super simple grain stretcher, which decorrelates playback speed and pitch.
      Brendan