Detecting a fast numerical increase or drop
I have incoming numbers of 0 - 127, how would I want to do something like this: if $i1 decreases by 30 in 10ms then bang.
I'm trying to create sword effects triggered by wiimote movements and I want the "clang" sample to be triggered if a sudden decrease in accelerometer data is detected.
Any ideas?
Thanks in advance, you guys have been great in the few days since I got my Max license. Hopefully I'll have learnt enough to be able to help out others before too long.
Not to self promote, but I've made a video tutorial on doing basically exactly what you're describing. You can cheggiddout here:
That being said, if you're looking for something you can copy-paste, something like this might get you started:
One way to detect a large drop between successive input values. Edit: posted this before seeing Sam's response. Different approach to timing but otherwise similar...
Thanks both.
Sam - is there any reason why the patch you describe in your video wouldn't work using the ctlin object rather than udp?
This is what I have at the moment and it doesn't seem to be working. The number object displays incoming MIDI numbers so osculator is working fine.
Edit: I've decided to just go with the UDP method as it seems to be working well. I am curious as to why my patch wasn't working though...
----------begin_max5_patcher----------
{
"boxes" : [ {
"box" : {
"maxclass" : "comment",
"text" : "raw accel data \nx y z",
"linecount" : 2,
"frgb" : 0.0,
"numoutlets" : 0,
"fontname" : "Arial",
"patching_rect" : [ 212.0, 98.0, 210.5, 33.0 ],
"id" : "obj-43",
"fontsize" : 12.0,
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlin a1 2",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 286.0, 132.0, 59.0, 20.0 ],
"id" : "obj-37",
"fontsize" : 12.0,
"outlettype" : [ "int", "int" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlin a1 1",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 212.0, 132.0, 59.0, 20.0 ],
"id" : "obj-33",
"fontsize" : 12.0,
"outlettype" : [ "int", "int" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "button",
"numoutlets" : 1,
"patching_rect" : [ 407.5, 377.0, 20.0, 20.0 ],
"id" : "obj-5",
"outlettype" : [ "bang" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "flonum",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 520.0, 184.0, 50.0, 20.0 ],
"id" : "obj-1",
"parameter_enable" : 0,
"fontsize" : 12.0,
"outlettype" : [ "float", "bang" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "togedge",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 407.5, 325.5, 54.0, 20.0 ],
"id" : "obj-48",
"fontsize" : 12.0,
"outlettype" : [ "bang", "bang" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "> 69.",
"numoutlets" : 1,
"fontname" : "Arial",
"patching_rect" : [ 407.5, 273.0, 38.0, 20.0 ],
"id" : "obj-46",
"fontsize" : 12.0,
"outlettype" : [ "int" ],
"numinlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "- 0.",
"numoutlets" : 1,
"fontname" : "Arial",
"patching_rect" : [ 407.5, 238.0, 32.5, 20.0 ],
"id" : "obj-45",
"fontsize" : 12.0,
"outlettype" : [ "float" ],
"numinlets" : 2
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "t f f",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 407.5, 192.5, 32.5, 20.0 ],
"id" : "obj-44",
"fontsize" : 12.0,
"outlettype" : [ "float", "float" ],
"numinlets" : 1
}
}
, {
"box" : {
"maxclass" : "newobj",
"text" : "ctlin a1 3",
"numoutlets" : 2,
"fontname" : "Arial",
"patching_rect" : [ 361.5, 132.0, 59.0, 20.0 ],
"id" : "obj-40",
"fontsize" : 12.0,
"outlettype" : [ "int", "int" ],
"numinlets" : 1
}
}
],
"lines" : [ {
"patchline" : {
"source" : [ "obj-44", 1 ],
"destination" : [ "obj-45", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-44", 0 ],
"destination" : [ "obj-45", 1 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-48", 0 ],
"destination" : [ "obj-5", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-40", 0 ],
"destination" : [ "obj-1", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-40", 0 ],
"destination" : [ "obj-44", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-46", 0 ],
"destination" : [ "obj-48", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
, {
"patchline" : {
"source" : [ "obj-45", 0 ],
"destination" : [ "obj-46", 0 ],
"hidden" : 0,
"disabled" : 0
}
}
],
"appversion" : {
"major" : 6,
"minor" : 1,
"revision" : 3,
"architecture" : "x86"
}
}
-----------end_max5_patcher-----------