Sample cut-up
Hi I'm trying to create a patch that will take live vocals in that I can cut up into separate samples for playback and manipulation using some kind of iterative trigger (haven't quite decided what this will be yet). I'd usually use a product like ableton for this kind of thing but it is a college project and everything has to be max.
My problem is I'm using buffers and groove~ to play the recorded vocal but I'm having trouble cutting them up. Any help would be appreciated.
Have a look at [waverform~] for selecting a portion of your soundfile. You could use [peek~] or [poke~] to write your selection into a new [buffer~]. There's also the [slice~] external which analyses a [buffer~] and chops it into seperate parts, good for drum loops and the like. Have a look for it at www.maxobjects.com
lh
That slice external seems like what I'm looking for but the link on maxobjects.com is down. Any chance you could send me the object and help file?
krosullivan@gmail.com wrote on Sun, 29 March 2009 13:17Hi I'm trying to create a patch that will take live vocals in that I can cut up into separate samples for playback and manipulation using some kind of iterative trigger (haven't quite decided what this will be yet). I'd usually use a product like ableton for this kind of thing but it is a college project and everything has to be max.
My problem is I'm using buffers and groove~ to play the recorded vocal but I'm having trouble cutting them up. Any help would be appreciated.
Waveform~ is probably the way to go. You can use presets of where the loops are, so you don't have to cut up your samples (though you always can). This way you simply jump around however you want. There's also ways to do scrubbing etc., plus a lot of other settings available. IMO one of the best UI objects in Max (though they're all cool of course
here's an example with some tools and explanations, hope it helps.
I've gotten that far with waveform~ but is there any way of just playing back the selection without it looping. If I turn loop off on the groove~ it starts at the right place but goes past the end selection point and plays the whole file.
The Idea is to cut up some live vocals and play them like an instrument with a sequencer.
Hmm almost there but the playback speed isn't correct. Am I missing something stupid? I've heard that slice~ external is quite good for doing what I want but the author site is dead. Anyone know another place I could find it? Or even send me on the external and help?
{
"patcher" : {
"fileversion" : 1,
"rect" : [ 0.0, 44.0, 1280.0, 726.0 ],
"bglocked" : 0,
"defrect" : [ 0.0, 44.0, 1280.0, 726.0 ],
"openrect" : [ 0.0, 0.0, 0.0, 0.0 ],
"openinpresentation" : 0,
"default_fontsize" : 12.0,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 0,
"gridsize" : [ 15.0, 15.0 ],
"gridsnaponopen" : 0,
"toolbarvisible" : 1,
"boxanimatetime" : 200,
"imprint" : 0,
"metadata" : [ ],
"boxes" : [ {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 870.0, 675.0, 140.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-58",
"fontname" : "Arial",
"numoutlets" : 2,
"presentation_rect" : [ 734.0, 679.0, 0.0, 0.0 ]
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "expr $f2-$f1",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 870.0, 645.0, 75.0, 20.0 ],
"numinlets" : 2,
"id" : "obj-57",
"fontname" : "Arial",
"numoutlets" : 1,
"presentation_rect" : [ 736.0, 647.0, 0.0, 0.0 ]
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 645.0, 450.0, 50.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-53",
"fontname" : "Arial",
"numoutlets" : 2,
"presentation_rect" : [ 718.0, 344.0, 0.0, 0.0 ]
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 585.0, 450.0, 50.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-52",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "pictslider",
"bkgndpict" : "wfmodes.pct",
"outlettype" : [ "int", "int" ],
"imagemask" : 1,
"movehorizontal" : 0,
"patching_rect" : [ 120.0, 120.0, 19.0, 76.0 ],
"inactiveimage" : 0,
"topvalue" : 0,
"bottomvalue" : 3,
"knobpict" : "wfknob.pct",
"numinlets" : 2,
"id" : "obj-51",
"rightvalue" : 0,
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 1050.0, 600.0, 140.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-50",
"fontname" : "Arial",
"numoutlets" : 2,
"presentation_rect" : [ 702.0, 510.0, 0.0, 0.0 ]
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 930.0, 600.0, 95.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-48",
"fontname" : "Arial",
"numoutlets" : 2,
"presentation_rect" : [ 627.0, 509.0, 0.0, 0.0 ]
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 870.0, 600.0, 50.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-47",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "unpack 0. 0. 0.",
"outlettype" : [ "float", "float", "float" ],
"fontsize" : 12.0,
"patching_rect" : [ 855.0, 555.0, 89.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-46",
"fontname" : "Arial",
"numoutlets" : 3
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "expr $f2-$f1",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 645.0, 480.0, 75.0, 20.0 ],
"numinlets" : 2,
"id" : "obj-45",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "pack 0. 0. 250.",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 585.0, 510.0, 89.0, 20.0 ],
"numinlets" : 3,
"id" : "obj-11",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "s end",
"fontsize" : 12.0,
"patching_rect" : [ 525.0, 180.0, 40.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-8",
"fontname" : "Arial",
"numoutlets" : 0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "s start",
"fontsize" : 12.0,
"patching_rect" : [ 450.0, 180.0, 43.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-6",
"fontname" : "Arial",
"numoutlets" : 0
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "line~",
"outlettype" : [ "signal", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 585.0, 555.0, 36.0, 20.0 ],
"numinlets" : 2,
"id" : "obj-4",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "play~ wave",
"outlettype" : [ "signal" ],
"fontsize" : 12.0,
"patching_rect" : [ 585.0, 585.0, 71.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-3",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "umenu",
"outlettype" : [ "int", "", "" ],
"fontsize" : 11.595187,
"types" : [ ],
"patching_rect" : [ 900.0, 210.0, 83.0, 20.0 ],
"items" : [ "stop", ",", "play", ",", "mute", ",", "unmute", ",", "read", ",", "write", ",", "record" ],
"numinlets" : 1,
"id" : "obj-36",
"fontname" : "Arial",
"numoutlets" : 3
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "mtr 2",
"outlettype" : [ "", "", "" ],
"fontsize" : 11.595187,
"patching_rect" : [ 900.0, 233.0, 50.600002, 20.0 ],
"numinlets" : 3,
"id" : "obj-35",
"fontname" : "Arial",
"numoutlets" : 3
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "startloop",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 209.0, 324.0, 62.700001, 18.0 ],
"numinlets" : 2,
"id" : "obj-34",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "loadbang",
"outlettype" : [ "bang" ],
"fontsize" : 11.595187,
"patching_rect" : [ 255.0, 267.0, 63.800003, 20.0 ],
"hidden" : 1,
"numinlets" : 1,
"id" : "obj-33",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "loop 1",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 255.0, 289.0, 47.299999, 18.0 ],
"hidden" : 1,
"numinlets" : 2,
"id" : "obj-32",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "gain~",
"outlettype" : [ "signal", "int" ],
"patching_rect" : [ 465.0, 570.0, 32.0, 78.0 ],
"numinlets" : 2,
"id" : "obj-26",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "ezdac~",
"patching_rect" : [ 465.0, 660.0, 45.0, 45.0 ],
"numinlets" : 2,
"id" : "obj-24",
"numoutlets" : 0
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 199.0, 269.0, 50.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-23",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "sig~",
"outlettype" : [ "signal" ],
"fontsize" : 11.595187,
"patching_rect" : [ 197.0, 291.0, 35.200001, 20.0 ],
"numinlets" : 1,
"id" : "obj-22",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "groove~ wave",
"outlettype" : [ "signal", "signal" ],
"fontsize" : 11.595187,
"patching_rect" : [ 200.0, 415.0, 91.300003, 20.0 ],
"numinlets" : 3,
"id" : "obj-21",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "read",
"outlettype" : [ "" ],
"fontsize" : 12.0,
"patching_rect" : [ 197.0, 203.0, 38.5, 18.0 ],
"numinlets" : 2,
"id" : "obj-20",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "comment",
"text" : "use arrow keys for quick access to stored loop lengths in presets",
"linecount" : 3,
"fontsize" : 12.0,
"patching_rect" : [ 180.0, 120.0, 169.900009, 48.0 ],
"numinlets" : 1,
"id" : "obj-19",
"fontname" : "Arial",
"numoutlets" : 0
}
}
, {
"box" : {
"maxclass" : "number",
"outlettype" : [ "int", "bang" ],
"minimum" : 1,
"fontsize" : 12.0,
"patching_rect" : [ 404.0, 66.287521, 50.0, 20.0 ],
"maximum" : 24,
"numinlets" : 1,
"id" : "obj-18",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "set $1",
"outlettype" : [ "" ],
"fontsize" : 8.68129,
"patching_rect" : [ 405.0, 90.0, 41.299999, 14.0 ],
"hidden" : 1,
"numinlets" : 2,
"id" : "obj-17",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "set $1",
"outlettype" : [ "" ],
"fontsize" : 8.68129,
"patching_rect" : [ 462.0, 315.712494, 41.299999, 14.0 ],
"hidden" : 1,
"numinlets" : 2,
"id" : "obj-15",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "message",
"text" : "set $1",
"outlettype" : [ "" ],
"fontsize" : 8.68129,
"patching_rect" : [ 413.0, 314.712494, 41.299999, 14.0 ],
"hidden" : 1,
"numinlets" : 2,
"id" : "obj-14",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "preset",
"outlettype" : [ "preset", "int", "preset", "int" ],
"patching_rect" : [ 465.0, 60.0, 100.0, 40.0 ],
"numinlets" : 1,
"id" : "obj-12",
"numoutlets" : 4,
"preset_data" : [ {
"number" : 1,
"data" : [ 5, "obj-30", "flonum", "float", 703.288025, 5, "obj-29", "flonum", "float", 515.374146 ]
}
, {
"number" : 2,
"data" : [ 5, "obj-30", "flonum", "float", 202.562363, 5, "obj-29", "flonum", "float", 109.909302 ]
}
, {
"number" : 3,
"data" : [ 5, "obj-30", "flonum", "float", 804.943359, 5, "obj-29", "flonum", "float", 214.467133 ]
}
, {
"number" : 4,
"data" : [ 5, "obj-30", "flonum", "float", 764.489807, 5, "obj-29", "flonum", "float", 653.605469 ]
}
, {
"number" : 5,
"data" : [ 5, "obj-30", "flonum", "float", 999.977356, 5, "obj-29", "flonum", "float", 0.0 ]
}
]
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "scale 0. 1. 0. 1000.",
"outlettype" : [ "float" ],
"fontsize" : 11.595187,
"patching_rect" : [ 313.0, 348.0, 118.800003, 20.0 ],
"numinlets" : 6,
"id" : "obj-7",
"fontname" : "Arial",
"numoutlets" : 1
}
}
, {
"box" : {
"maxclass" : "multislider",
"outlettype" : [ "", "" ],
"setminmax" : [ 0.0, 1.0 ],
"patching_rect" : [ 315.0, 330.0, 309.0, 17.0 ],
"contdata" : 1,
"orientation" : 0,
"numinlets" : 1,
"id" : "obj-5",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 525.0, 150.0, 63.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-30",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "flonum",
"outlettype" : [ "float", "bang" ],
"fontsize" : 12.0,
"patching_rect" : [ 450.0, 150.0, 63.0, 20.0 ],
"numinlets" : 1,
"id" : "obj-29",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "buffer~ wave 1000.",
"outlettype" : [ "float", "bang" ],
"fontsize" : 11.595187,
"patching_rect" : [ 194.0, 223.0, 119.900002, 20.0 ],
"numinlets" : 1,
"id" : "obj-27",
"fontname" : "Arial",
"numoutlets" : 2
}
}
, {
"box" : {
"maxclass" : "waveform~",
"waveformcolor" : [ 1.0, 0.0, 0.0, 1.0 ],
"outlettype" : [ "float", "float", "float", "float", "list", "" ],
"labels" : 0,
"ruler" : 0,
"patching_rect" : [ 330.0, 225.0, 308.0, 64.0 ],
"textcolor" : [ ],
"selectioncolor" : [ 0.34902, 0.894118, 0.992157, 0.501961 ],
"buffername" : "wave",
"setmode" : 2,
"numinlets" : 5,
"id" : "obj-25",
"vticks" : 0,
"numoutlets" : 6,
"bgcolor" : [ 0.0, 0.0, 0.0, 1.0 ]
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-45", 0 ],
"destination" : [ "obj-11", 2 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-21", 0 ],
"destination" : [ "obj-26", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-46", 2 ],
"destination" : [ "obj-50", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-46", 1 ],
"destination" : [ "obj-48", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-46", 0 ],
"destination" : [ "obj-47", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-11", 0 ],
"destination" : [ "obj-46", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-11", 0 ],
"destination" : [ "obj-4", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-11", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-53", 0 ],
"destination" : [ "obj-11", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-57", 0 ],
"destination" : [ "obj-58", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-48", 0 ],
"destination" : [ "obj-57", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-47", 0 ],
"destination" : [ "obj-57", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-53", 0 ],
"destination" : [ "obj-45", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-52", 0 ],
"destination" : [ "obj-45", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 3 ],
"destination" : [ "obj-53", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 2 ],
"destination" : [ "obj-52", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-51", 0 ],
"destination" : [ "obj-25", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-3", 0 ],
"destination" : [ "obj-26", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-30", 0 ],
"destination" : [ "obj-8", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-29", 0 ],
"destination" : [ "obj-6", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-15", 0 ],
"destination" : [ "obj-30", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 3 ],
"destination" : [ "obj-15", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-14", 0 ],
"destination" : [ "obj-29", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 2 ],
"destination" : [ "obj-14", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-7", 0 ],
"destination" : [ "obj-29", 0 ],
"hidden" : 0,
"midpoints" : [ 322.5, 170.0, 459.5, 177.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-5", 0 ],
"destination" : [ "obj-7", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-4", 0 ],
"destination" : [ "obj-3", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-20", 0 ],
"destination" : [ "obj-27", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-29", 0 ],
"destination" : [ "obj-25", 2 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-30", 0 ],
"destination" : [ "obj-25", 3 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-12", 0 ],
"destination" : [ "obj-29", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-12", 0 ],
"destination" : [ "obj-30", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-12", 1 ],
"destination" : [ "obj-17", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-18", 0 ],
"destination" : [ "obj-12", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-17", 0 ],
"destination" : [ "obj-18", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-23", 0 ],
"destination" : [ "obj-22", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-22", 0 ],
"destination" : [ "obj-21", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 3 ],
"destination" : [ "obj-21", 2 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 2 ],
"destination" : [ "obj-21", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-26", 0 ],
"destination" : [ "obj-24", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-26", 0 ],
"destination" : [ "obj-24", 1 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-32", 0 ],
"destination" : [ "obj-21", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-33", 0 ],
"destination" : [ "obj-32", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-34", 0 ],
"destination" : [ "obj-21", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
, {
"patchline" : {
"source" : [ "obj-35", 1 ],
"destination" : [ "obj-29", 0 ],
"hidden" : 1,
"midpoints" : [ 925.299988, 264.0, 642.0, 264.0, 642.0, 135.0, 459.5, 135.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-35", 2 ],
"destination" : [ "obj-30", 0 ],
"hidden" : 1,
"midpoints" : [ 941.099976, 264.0, 642.0, 264.0, 642.0, 135.0, 534.5, 135.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 2 ],
"destination" : [ "obj-35", 1 ],
"hidden" : 1,
"midpoints" : [ 455.100006, 281.0, 885.0, 281.0, 885.0, 207.0, 925.299988, 207.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-25", 3 ],
"destination" : [ "obj-35", 2 ],
"hidden" : 1,
"midpoints" : [ 512.900024, 282.0, 951.0, 282.0, 951.0, 231.0, 941.099976, 231.0 ]
}
}
, {
"patchline" : {
"source" : [ "obj-36", 1 ],
"destination" : [ "obj-35", 0 ],
"hidden" : 0,
"midpoints" : [ ]
}
}
]
}
}
The speed is controlled by the float value to sig~ if you're using groove~, and by the numbers sent to play~ using line~ (like 0, 1000 1000 means play 1 sec at orig. speed, 0, 1000 500 would play at double speed = play 1000 ms of the buffer~ but only take 500 ms to do it). Two ways to get similar results--- line~/play~ lets you specify exactly how long a specific-length chunk will take, sig~/groove~ lets you specify the speed of arbitrarily-sized chunks. if you'll be changing speeds a lot, sig~ might be easier, but for exact control over how much and how long, play~ probably will be.
I'm in exactly the same position. I've successfully made patches like the above that can specify and remember particular loop lengths and starting positions, but need to find an object that will scan through a buffer looking for sections above a certain threshold. I imagine slice~ would do just this but link looks long dead...
Ho hum.
I've taken a bit of a break from this for a while as I'm ridiculously busy with other stuff but if you haven't looked into it all ready there is an external object called [bonk~] that will detect attack peaks in a signal. Search for it at maxobjects.com. I going to cut samples visually using waveform and by ear but I might include peak detection. I'll put up the patch if I get it done soon.
Thanks for your reply. A friend suggested determining the length of buffer in samples, using uzi to cycle through samples and output peak or RMS values into a coll object. It looks like I could get these from bonk~. Looking into it now...!
you might also like to have a look at this thread:
You might be interested in my project, Fracture.
I'll be putting it up for download along with the source once I've ironed out a couple of bugs.
Check out midibounce.com for more info and subscribe to the RSS feed for updates.
K.