40 lines
1.4 KiB
JSON
40 lines
1.4 KiB
JSON
{
|
|
"source": "JSON",
|
|
"data": "BLOCK",
|
|
"version": "0.0.1",
|
|
"type": "playback",
|
|
"language": "javascript",
|
|
"extension": "webaudio",
|
|
"help": "Playback",
|
|
"label": "Playback",
|
|
"color": "150:150:250:150",
|
|
"group": "Sound",
|
|
"codes": {
|
|
"declaration": "\nvar block_$id$ = context.createBufferSource();\nvar $port[output]$ = block_$id$;\n",
|
|
"html": "\n$prop[label]$ <input type=\"file\" id=\"pb_$id$\" onchange=\"handleFile_$id$(this.files)\">\n",
|
|
"execution": "\nfunction handleFile_$id$() {\n var input_pb_$id$ = document.getElementById(\"pb_$id$\");\n input_pb_$id$.addEventListener(\"change\", handleFile_$id$, false);\n\n var reader = new FileReader();\n reader.onload = function(ev) {\n context.decodeAudioData(ev.target.result, function(buffer) {\n block_$id$.buffer = buffer;\n block_$id$.loop = (\"$prop[loop]$\" == \"True\");\n });\n };\n reader.readAsArrayBuffer(input_pb_$id$.files[0]);\n $port[output]$.start();\n}\n",
|
|
"onload": ""
|
|
},
|
|
"properties": [
|
|
{
|
|
"name": "loop",
|
|
"label": "Loop",
|
|
"type": "Check",
|
|
"value": "True"
|
|
},
|
|
{
|
|
"name": "label",
|
|
"label": "Label",
|
|
"type": "String",
|
|
"value": "Playback"
|
|
}
|
|
],
|
|
"ports": [
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
|
|
"label": "Output",
|
|
"conn_type": "Output",
|
|
"name": "output"
|
|
}
|
|
]
|
|
} |