Speedlim stops


    May 15 2008 | 7:16 pm
    Hello all,
    I am having a strange problem with speedlim. At some point and at random times, all speedlim objects in my patch stop sending outputs...
    I haven't written about it so far because when I first started to have the problems I decided to stop using the object rather than spend time trying to figure out what happens.
    And specially since I seem to be the only one with this problem, a search on the list only showed this unresolved mail.
    Why I decide to write now, is because someone passed me a patch were there are several speedlim objects and the behaviour came back. But the most surprising thing is that I used to have the problem on Windows, and now I am on mac, and it also happens...
    It happens in Max 4.6.3 on leopard, in Max5(demo) on leopard and in max5 (demo) on tiger !!!
    If anyone can lead me to where I should start looking... Would this happen if I send some 'not accepted' value to speedlim ? But then why do all speedlim objects stop.
    One thing which is similar to the other times I had the problems is that the speedlim objects are mostly placed in bpatchers, and this was a similar setup I used to have when the problems occured on windows.
    In the case of Max5 am using the standard version, and although I am loading a set of externals, I only use the following ones:
    monoverb~ v1.1, ) 2003,2007 Olaf Matthes OpenSoundControl Version 1.9.9, by Matt Wright. Copyright (c) 1996,97,98,99,2000,01,02,03,04,05 Regents of the University of California. All rights reserved. centroid~ v1.1 Mach-O bonk~ v1.3 Mach-O Analyzer~ object version 1.4.1 by Tristan Jehan, Adrian Freed, Matt Wright, and Michael Zbyszynski copyright ) 2001 Massachusetts Institute of Technology, 2007-8 UC Regents Pitch tracker based on Miller Puckette's fiddle~ copyright ) 1997-1999 Music Department UCSD
    Thanks for any clues...
    Sorry for the long mail.
    Alain Baumann

    • Sep 18 2008 | 12:38 am
      I also have this problem! I never encountered it until using Max/MSP/Jitter on OS 10.5.x
      I have one patch I use often where every once in a while one or all of the speedlim objects will just stop working and the only way to get them back without closing the patch is to re-instantiate them by retyping the name or argument. Really annoying. That just can't happen on stage!
      Right now I am running a patch to test this that just feeds a bunch of metros and the data from a mousestate into a speedlim while I am working to see if i can get it to stop at any point, then send the patch to cycling with a bug report if i can reproduce it.
      It seems to happen mostly for me with speedlims that either go to or come from jitter processing stuff. But maybe that is just because that is where I end up throttling down message speed the most.
      In the patch where it happens the data inputs are coming from bluetooth via the serial object, so stuff may be run in a different scheduler thread from normal priority... ???
      For the moment I'll see if i can write a satisfactory abstraction that duplicates speedlim and post it here.
      Anyway - anyone else have this problem?
    • Sep 18 2008 | 1:29 am
      Here is a Max 5 abstraction that mostly simulates speedlim. It may send the last value out twice if it did not change since it was last sent, but I am not going to fuss with it any longer.
      I've also attached a screenshot for those still using Max4.x. I think the right inlet of the message box in Max 5 is the same as the "set" message to the left inlet in Max 4.
      Here's the patch:
      { "boxes" : [ { "box" : { "maxclass" : "message", "outlettype" : [ "" ], "id" : "obj-49", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 94.0, 225.0, 73.0, 18.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "comment", "text" : "To work around bizarre bug in which speedlim stop working", "linecount" : 3, "id" : "obj-46", "fontname" : "Arial", "numinlets" : 1, "patching_rect" : [ 336.0, 154.0, 150.0, 48.0 ], "numoutlets" : 0, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "comment", "text" : "Arvid Tomayko-Petersn2007narvidtp.net", "linecount" : 3, "id" : "obj-42", "fontname" : "Arial", "numinlets" : 1, "patching_rect" : [ 336.0, 92.0, 150.0, 48.0 ], "numoutlets" : 0, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "comment", "text" : "atp.speedlim", "id" : "obj-40", "fontname" : "Arial", "numinlets" : 1, "patching_rect" : [ 335.0, 61.0, 150.0, 20.0 ], "numoutlets" : 0, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "inlet", "hint" : "Output Interval", "outlettype" : [ "" ], "id" : "obj-30", "numinlets" : 0, "patching_rect" : [ 298.0, 16.0, 25.0, 25.0 ], "numoutlets" : 1, "comment" : "" }
      } , { "box" : { "maxclass" : "inlet", "hint" : "Input Data", "outlettype" : [ "" ], "id" : "obj-24", "numinlets" : 0, "patching_rect" : [ 114.0, 15.0, 25.0, 25.0 ], "numoutlets" : 1, "comment" : "" }
      } , { "box" : { "maxclass" : "outlet", "hint" : "Speedlim'd Output", "id" : "obj-23", "numinlets" : 1, "patching_rect" : [ 93.0, 277.0, 25.0, 25.0 ], "numoutlets" : 0, "comment" : "" }
      } , { "box" : { "maxclass" : "newobj", "text" : "t l l b", "outlettype" : [ "", "", "bang" ], "id" : "obj-22", "fontname" : "Arial", "numinlets" : 1, "patching_rect" : [ 114.0, 80.0, 46.0, 20.0 ], "numoutlets" : 3, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "newobj", "text" : "t b 0 1", "outlettype" : [ "bang", "int", "int" ], "id" : "obj-21", "fontname" : "Arial", "numinlets" : 1, "patching_rect" : [ 58.0, 169.0, 46.0, 20.0 ], "numoutlets" : 3, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "newobj", "text" : "1", "outlettype" : [ "int" ], "id" : "obj-20", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 225.0, 225.0, 32.5, 20.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "newobj", "text" : "0", "outlettype" : [ "int" ], "id" : "obj-19", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 189.0, 225.0, 32.5, 20.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "newobj", "text" : "delay #1", "outlettype" : [ "bang" ], "id" : "obj-18", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 189.0, 189.0, 56.0, 20.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "newobj", "text" : "gate", "outlettype" : [ "" ], "id" : "obj-17", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 58.0, 116.0, 34.0, 20.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "toggle", "outlettype" : [ "int" ], "id" : "obj-10", "numinlets" : 1, "patching_rect" : [ 190.0, 115.0, 20.0, 20.0 ], "numoutlets" : 1 }
      } , { "box" : { "maxclass" : "newobj", "text" : "metro #1", "outlettype" : [ "bang" ], "id" : "obj-6", "fontname" : "Arial", "numinlets" : 2, "patching_rect" : [ 190.0, 143.0, 58.0, 20.0 ], "numoutlets" : 1, "fontsize" : 12.0 }
      } , { "box" : { "maxclass" : "panel", "bordercolor" : [ 1.0, 0.34902, 0.0, 1.0 ], "border" : 6, "id" : "obj-47", "numinlets" : 1, "patching_rect" : [ 326.0, 51.0, 172.0, 169.0 ], "numoutlets" : 0, "bgcolor" : [ 1.0, 0.701961, 0.0, 1.0 ], "rounded" : 30 }
      } ], "lines" : [ { "patchline" : { "source" : [ "obj-6", 0 ], "destination" : [ "obj-49", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-18", 0 ], "destination" : [ "obj-49", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-49", 0 ], "destination" : [ "obj-23", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-22", 0 ], "destination" : [ "obj-49", 1 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-22", 2 ], "destination" : [ "obj-18", 0 ], "hidden" : 0, "midpoints" : [ 198.5, 176.0 ] }
      } , { "patchline" : { "source" : [ "obj-24", 0 ], "destination" : [ "obj-22", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-22", 1 ], "destination" : [ "obj-17", 1 ], "hidden" : 0, "midpoints" : [ 137.0, 113.0, 82.5, 113.0 ] }
      } , { "patchline" : { "source" : [ "obj-21", 2 ], "destination" : [ "obj-10", 0 ], "hidden" : 0, "midpoints" : [ 94.5, 194.0, 165.0, 194.0, 165.0, 101.0, 199.5, 101.0 ] }
      } , { "patchline" : { "source" : [ "obj-17", 0 ], "destination" : [ "obj-21", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-21", 1 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "midpoints" : [ 81.0, 200.0, 45.0, 200.0, 45.0, 107.0, 67.5, 107.0 ] }
      } , { "patchline" : { "source" : [ "obj-30", 0 ], "destination" : [ "obj-18", 1 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-30", 0 ], "destination" : [ "obj-6", 1 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-17", 0 ], "destination" : [ "obj-23", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-20", 0 ], "destination" : [ "obj-17", 0 ], "hidden" : 0, "midpoints" : [ 234.5, 317.0, 35.0, 317.0, 35.0, 96.0, 67.5, 96.0 ] }
      } , { "patchline" : { "source" : [ "obj-18", 0 ], "destination" : [ "obj-20", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-19", 0 ], "destination" : [ "obj-10", 0 ], "hidden" : 0, "midpoints" : [ 198.5, 255.0, 174.0, 255.0, 174.0, 110.0, 199.5, 110.0 ] }
      } , { "patchline" : { "source" : [ "obj-18", 0 ], "destination" : [ "obj-19", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } , { "patchline" : { "source" : [ "obj-10", 0 ], "destination" : [ "obj-6", 0 ], "hidden" : 0, "midpoints" : [ ] }
      } ] }
    • Sep 02 2015 | 5:25 pm
      I'm still encountering this problem with Max 7 on Yosemite (OSX 10.10) when using an oculus. Once it's idle, the speedlim object will stop working. I need to delete it and then undo to make it work. I've found this to be an issue with several objects. You would think they would have a reset button.
    • Sep 25 2015 | 2:49 am
      i'm having this issue on max 6. speedlim will work for the first interval, and then shut off after. seems to be ok on max 7.
    • Sep 25 2015 | 12:48 pm
      i've had similar problems. i still don't really understand this stuff, but i think it has something to do with process scheduling. really can't say for sure, but i think speedlim defers processes (...if this is of any help at all).
    • Nov 26 2016 | 6:48 pm
      I also have a problem with speedlim which stop passing the messages (max 7.3.1, yosemite) Is there any progress on the question?
    • Aug 26 2017 | 3:16 am
      Me too! Sometimes only a few of the speedlim objects in my patches stop outputting while others continue. Behaviour seems fairly random but occurrences do seem to increase as the patch complexity increases...
    • Aug 26 2017 | 3:46 am
      I have found both [speedlim] and [qlim] have a similar problem but [qlim] seems to do this more frequently. Usually the problem occurs when I'm inputting a lot of lists into those objects - for example routing outputs from [mira.multitouch]. I'm trying [metro] --> [zl reg] --> [zl change] now instead and so far it seems to work more consistently (i.e. after a few minutes of messing around with it hasn't messed up yet compared to speedlim/qlim which were choking up within seconds sometimes).