plugsync~ and step sequencing


    Jun 18 2015 | 1:17 am
    Hi!
    Im trying to build a drum sequencer in max for live & I´ve encountered a problem when it comes to timing. I want to be able to change the number of steps individually between the different drums. With plugsync~I can get a live.grid running in sync with a defined note division using a patch that I found somewhere here on the forum. But if I want to have it counting to for example 15 instead of 16 in 16th notes, how do I make that happen?
    I am not very experienced with max and really new to max for live, any help would be very appreciated!
    Here is the part of my patch that I am trying to explain above:
    { "boxes" : [ { "box" : { "maxclass" : "live.grid", "varname" : "live.grid[2]", "direction_height" : 26.0, "matrixmode" : 1, "outlettype" : [ "", "", "", "", "", "" ], "direction" : 0, "parameter_enable" : 1, "numinlets" : 2, "marker_vertical" : 0, "id" : "obj-20", "numoutlets" : 6, "rows" : 1, "patching_rect" : [ 277.0, 441.0, 537.0, 20.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_longname" : "live.grid[2]", "parameter_shortname" : "live.grid", "parameter_type" : 3, "parameter_invisible" : 1 }
    }
    }
    } , { "box" : { "maxclass" : "number", "style" : "", "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "numinlets" : 1, "id" : "obj-68", "numoutlets" : 2, "patching_rect" : [ 329.0, 205.0, 50.0, 22.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "+ 1", "style" : "", "outlettype" : [ "int" ], "numinlets" : 2, "id" : "obj-23", "numoutlets" : 1, "patching_rect" : [ 277.0, 388.0, 29.5, 22.0 ] }
    } , { "box" : { "maxclass" : "comment", "text" : "Count/Bar", "style" : "", "presentation" : 1, "presentation_rect" : [ 31.0, 111.0, 56.0, 18.0 ], "numinlets" : 1, "fontsize" : 10.0, "fontname" : "Arial", "id" : "obj-11", "numoutlets" : 0, "patching_rect" : [ 291.0, 332.0, 59.0, 18.0 ] }
    } , { "box" : { "maxclass" : "number", "style" : "", "presentation" : 1, "outlettype" : [ "", "bang" ], "parameter_enable" : 0, "presentation_rect" : [ 31.0, 127.0, 50.0, 20.0 ], "numinlets" : 1, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-10", "numoutlets" : 2, "patching_rect" : [ 277.0, 357.0, 50.0, 20.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "%", "style" : "", "outlettype" : [ "int" ], "numinlets" : 2, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-3", "numoutlets" : 1, "patching_rect" : [ 277.0, 306.0, 32.5, 20.0 ] }
    } , { "box" : { "maxclass" : "comment", "text" : "Division", "style" : "", "presentation" : 1, "presentation_rect" : [ 31.0, 31.0, 45.0, 18.0 ], "numinlets" : 1, "fontsize" : 10.0, "fontname" : "Arial", "id" : "obj-8", "numoutlets" : 0, "patching_rect" : [ 288.0, 103.0, 47.0, 18.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "/ 4.", "style" : "", "outlettype" : [ "float" ], "numinlets" : 2, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-13", "numoutlets" : 1, "patching_rect" : [ 214.0, 165.0, 32.5, 20.0 ] }
    } , { "box" : { "maxclass" : "live.numbox", "varname" : "live.numbox[11]", "presentation" : 1, "outlettype" : [ "", "float" ], "parameter_enable" : 1, "presentation_rect" : [ 31.0, 47.0, 36.0, 15.0 ], "fontface" : 0, "numinlets" : 1, "id" : "obj-14", "numoutlets" : 2, "patching_rect" : [ 291.0, 124.0, 36.0, 15.0 ], "saved_attribute_attributes" : { "valueof" : { "parameter_longname" : "live.numbox[21]", "parameter_shortname" : "live.numbox", "parameter_type" : 1, "parameter_mmin" : 1.0, "parameter_mmax" : 128.0, "parameter_initial_enable" : 1, "parameter_initial" : [ 1 ], "parameter_unitstyle" : 0 }
    }
    }
    } , { "box" : { "maxclass" : "newobj", "text" : "change", "style" : "", "outlettype" : [ "", "int", "int" ], "numinlets" : 1, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-15", "numoutlets" : 3, "patching_rect" : [ 200.0, 269.0, 46.0, 20.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "int", "style" : "", "outlettype" : [ "int" ], "numinlets" : 2, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-17", "numoutlets" : 1, "patching_rect" : [ 200.0, 235.0, 32.5, 20.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "* 1.", "style" : "", "outlettype" : [ "float" ], "numinlets" : 2, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-22", "numoutlets" : 1, "patching_rect" : [ 200.0, 199.0, 32.5, 20.0 ] }
    } , { "box" : { "maxclass" : "newobj", "text" : "plugsync~", "style" : "", "outlettype" : [ "int", "int", "int", "float", "list", "float", "float", "int", "int" ], "numinlets" : 1, "fontsize" : 10.0, "fontname" : "Arial Bold", "id" : "obj-18", "numoutlets" : 9, "patching_rect" : [ 119.0, 124.0, 127.0, 20.0 ] }
    } ], "lines" : [ { "patchline" : { "source" : [ "obj-10", 0 ], "destination" : [ "obj-23", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-13", 0 ], "destination" : [ "obj-22", 1 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-13", 0 ], "destination" : [ "obj-68", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-14", 0 ], "destination" : [ "obj-13", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-14", 0 ], "destination" : [ "obj-3", 1 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-15", 0 ], "destination" : [ "obj-3", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-17", 0 ], "destination" : [ "obj-15", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-18", 6 ], "destination" : [ "obj-22", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-22", 0 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-3", 0 ], "destination" : [ "obj-10", 0 ], "hidden" : 0, "disabled" : 0 }
    } , { "patchline" : { "source" : [ "obj-23", 0 ], "destination" : [ "obj-20", 0 ], "hidden" : 0, "disabled" : 0 }
    } ], "appversion" : { "major" : 7, "minor" : 0, "revision" : 3, "architecture" : "x64", "modernui" : 1 }
    }

    • Jun 18 2015 | 2:47 am
      Max Patcher
      In Max, select New From Clipboard.
      counter might work
    • Jun 18 2015 | 9:01 am
    • Jun 18 2015 | 9:33 am
      The problem I encountered using counter is that I quickly get my different drum parts out of sync when changing the number of steps. I would like a polyrhythmic step sequencer that when given a new step number waits until the beginning of a new bar & then sets the new value.
      Sofar I have not been able to build something that use counters which does not run out of sync when changing the values. I´ve tried using the bar count from plugsync~ to push the new value to the counter & then reset the counter with its fourth inlet but this also results in the the tracks running out of sync. Any ideas?
    • Jun 18 2015 | 10:14 am
      Max Patcher
      In Max, select New From Clipboard.
      You could store the division value and trigger at the next 0 from modulo.
    • Jun 18 2015 | 10:35 am
      Max Patcher
      In Max, select New From Clipboard.
      Yes, but that will also change the note length, and what I want to do is just change the number of steps. I´ve made this ugly piece of patch that illustrates what I want to accomplish. I think maybe I have a little trouble explaining what it is I want to do. This patch works, but having 32 counters run at the same time just seems like an ugly way to do it. Anyway, what I can achieve this way is having all my tracks in the step sequencer in sync.