66 lines
2.0 KiB
JSON
66 lines
2.0 KiB
JSON
{
|
|
"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"
|
|
}
|
|
]
|
|
} |