{ "source": "JSON", "data": "BLOCK", "version": "0.0.1", "type": "javascript.metronome", "language": "javascript", "extension": "webaudio", "help": "Metronome", "label": "Metronome", "color": "#24C1D3", "group": "Interface", "codes": [ { "name": "declaration", "code": "\n// block_$id$ = Float Value\nvar block_$id$_timeout;\nvar block_$id$_value = $prop[value]$;\nvar block_$id$_time = $prop[time]$;\nvar $port[float]$ = [];\n\nvar $port[start]$ = function(value){\n timeout_$id$_value();\n return true;\n };\n\nvar $port[stop]$ = function(value){\n if (value > 0) {\n clearTimeout(block_$id$_timeout);\n }\n return true;\n };\n\n" }, { "name": "execution", "code": "\nfunction timeout_$id$_value(){\n for (var i = 0; i < $port[float]$.length ; i++){\n $port[float]$[i](block_$id$_value);\n }\n block_$id$_timeout = setTimeout(timeout_$id$_value, block_$id$_time);\n};\n" }, { "name": "onload", "code": "" } ], "properties": [ { "name": "value", "label": "Value", "type": "Float", "lower": 0, "upper": 20000, "step": 1, "value": 1 }, { "name": "time", "label": "Time (ms)", "type": "Float", "lower": 0, "upper": 20000, "step": 1, "value": 1000 } ], "ports": [ { "conn_type": "output", "name": "float", "label": "Float", "type": "javascript.float" }, { "conn_type": "input", "name": "start", "label": "Start", "type": "javascript.float" }, { "conn_type": "input", "name": "stop", "label": "Stop", "type": "javascript.float" } ] }