58 lines
1.7 KiB
JSON
58 lines
1.7 KiB
JSON
{
|
|
"source": "JSON",
|
|
"data": "BLOCK",
|
|
"version": "0.0.1",
|
|
"type": "metronome",
|
|
"language": "javascript",
|
|
"extension": "webaudio",
|
|
"help": "Metronome",
|
|
"label": "Metronome",
|
|
"color": "150:150:250:150",
|
|
"group": "Input Device",
|
|
"codes": {
|
|
"declaration": "\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",
|
|
"execution": "\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",
|
|
"onload": ""
|
|
},
|
|
"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": [
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
|
"label": "Float",
|
|
"conn_type": "Output",
|
|
"name": "float"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
|
"label": "Start",
|
|
"conn_type": "Input",
|
|
"name": "start"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
|
"conn_type": "Input",
|
|
"label": "Stop",
|
|
"name": "stop"
|
|
}
|
|
]
|
|
}
|