Copy from Alexandre repository

This commit is contained in:
fls committed 2026-09-17 18:13:02 -03:00
commit 355594d3c8
102 files changed
+5948

No files matched your search

+33
View File
@@ -0,0 +1,33 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "brackground",
"language": "javascript",
"extension": "webaudio",
"help": "Change Background color",
"label": "Background",
"color": "50:150:0:150",
"group": "GUI",
"codes": {
"declaration": "\nvar $port[rgb]$ = function(value){\n document.body.style.backgroundColor = value;\n return true;\n };\n",
"onload": "\n$port[rgb]$('$prop[color]$');\n\n"
},
"properties": [
{
"name": "color",
"label": "Color",
"value": "#F00",
"format": "FF00FF",
"type": "Color"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.color",
"name": "rgb",
"conn_type": "Input",
"label": "RGB COlor"
}
]
}
+42
View File
@@ -0,0 +1,42 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "button",
"language": "javascript",
"extension": "webaudio",
"help": "Button",
"label": "Button",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar block_$id$_value = $prop[value]$;\nvar $port[click]$ = [];\n",
"execution": "\nfunction click$id$(){\n value = document.getElementById(\"block_$id$\").value;\n for (var i = 0; i < $port[click]$.length ; i++){\n $port[click]$[i](value);\n }\n};\n",
"html": "\n<button type=\"button\" value=\"$prop[value]$\" onClick=\"click$id$();\"\nid=\"block_$id$\">$prop[label]$</button><br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "Float",
"lower": 0,
"upper": 20000,
"step": 1,
"value": 1
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Click",
"conn_type": "Output",
"name": "click"
}
]
}
+45
View File
@@ -0,0 +1,45 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "check",
"language": "javascript",
"extension": "webaudio",
"help": "Check",
"label": "Check",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[value]$ = [];\n\nvar $port[invalue]$ = function(value){\n if (value)\n document.getElementById(\"block_$id$\").checked = true;\n else\n document.getElementById(\"block_$id$\").checked = false;\n return true;\n };\n\n",
"execution": "\nfunction change_value$id$(e){\n value = document.getElementById(\"block_$id$\").checked;\n for (var i = 0; i < $port[value]$.length ; i++){\n if (value)\n $port[value]$[i](1);\n else\n $port[value]$[i](0);\n }\n};\n",
"html": "\n<input type=\"checkbox\" onchange=\"change_value$id$(event);\" id=\"block_$id$\"> $prop[label]$ <br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "Float",
"value": "0"
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Output",
"name": "value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Input",
"name": "invalue"
}
]
}
+45
View File
@@ -0,0 +1,45 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "color",
"language": "javascript",
"extension": "webaudio",
"help": "Color",
"label": "Color",
"color": "50:150:0:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[value]$ = [];\n\nvar $port[invalue]$ = function(value){\n document.getElementById(\"block_$id$\").value = value;\n return true;\n };\n\n",
"execution": "\nfunction enter_value$id$(e){\n value = document.getElementById(\"block_$id$\").value;\n for (var i = 0; i < $port[value]$.length ; i++){\n $port[value]$[i](value);\n }\n};\n",
"html": "\n$prop[label]$ <input type=\"color\" value=\"$prop[value]$\" oninput=\"enter_value$id$(event);\" id=\"block_$id$\"><br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "Color",
"value": "#FFFFFF"
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.color",
"label": "Value",
"conn_type": "Output",
"name": "value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.color",
"label": "Value",
"conn_type": "Input",
"name": "invalue"
}
]
}
+44
View File
@@ -0,0 +1,44 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "freqbar",
"language": "javascript",
"extension": "webaudio",
"help": "Freq Bar",
"label": "Freq Bar",
"color": "150:050:050:150",
"group": "GUI",
"codes": {
"onload": "draw_freqbar$id$();",
"declaration": "\n// block_$id$ = $label$\nvar block_$id$ = context.createAnalyser();\nblock_$id$.fftSize = 256;\nvar $port[input]$ = block_$id$;\n",
"execution": "\nfunction draw_freqbar$id$(){\n var canvas = document.getElementById(\"canvas$id$\");\n var canvasCtx = canvas.getContext(\"2d\");\n var bufferLength = 64;\n var dataArray = new Uint8Array(bufferLength);\n var bufferLengthAlt = block_$id$.frequencyBinCount;\n\n canvasCtx.clearRect(0, 0, canvas.width, canvas.height);\n canvasCtx.lineWidth = 2;\n canvasCtx.strokeStyle = 'rgb(0, 0, 0)';\n\n block_$id$.getByteFrequencyData(dataArray);\n\n canvasCtx.clearRect(0, 0, canvas.width, canvas.height);\n canvasCtx.beginPath();\n\n\n var barWidth = (canvas.width / bufferLengthAlt) * 2.5;\n var barHeight;\n var x = 0;\n\n for(var i = 0; i < bufferLengthAlt; i++) {\n barHeight = dataArray[i];\n canvasCtx.fillStyle = 'rgb(' + (barHeight+100) + ',50,50)';\n canvasCtx.fillRect(x, canvas.height - barHeight/2, barWidth, barHeight/2);\n x += barWidth + 1;\n }\n canvasCtx.stroke();\n drawVisual = requestAnimationFrame(draw_freqbar$id$);\n}\n",
"html": "\n<canvas id=\"canvas$id$\" class=\"visualizer\" width=\"$prop[width]$\" height=\"$prop[height]$\"></canvas>\n"
},
"properties": [
{
"name": "width",
"label": "Width",
"type": "Float",
"lower": 0,
"upper": 32000,
"value": 640
},
{
"name": "height",
"label": "Height",
"type": "Float",
"lower": 0,
"upper": 32000,
"value": 240
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
"label": "Sound",
"conn_type": "Input",
"name": "input"
}
]
}
+63
View File
@@ -0,0 +1,63 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "number",
"language": "javascript",
"extension": "webaudio",
"help": "Number",
"label": "Number",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[value]$ = [];\n\nvar $port[invalue]$ = function(value){\n document.getElementById(\"block_$id$\").value = value;\n return true;\n };\n\n",
"execution": "\nfunction change_value$id$(e){\n value = document.getElementById(\"block_$id$\").value;\n for (var i = 0; i < $port[value]$.length ; i++){\n $port[value]$[i](value);\n }\n};\n",
"html": "\n$prop[label]$ <input type=\"number\" min=\"$prop[min]$\" max=\"$prop[max]$\" onchange=\"change_value$id$(event);\" id=\"block_$id$\"><br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "Float",
"value": "0"
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
},
{
"name": "min",
"label": "Min",
"type": "Float",
"lower": 0,
"upper": 20000,
"step": 1,
"value": 0
},
{
"name": "max",
"label": "Max",
"type": "Float",
"lower": 0,
"upper": 20000,
"step": 1,
"value": 100
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Output",
"name": "value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Input",
"name": "invalue"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "print",
"language": "javascript",
"extension": "webaudio",
"help": "Print value",
"label": "Print",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// $label$\nvar $port[float_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = value;\n return true;\n };\n\nvar $port[char_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = value;\n return true;\n };\n\nvar $port[color_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = value;\n return true;\n };\n\nvar $port[string_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = value;\n return true;\n };\n\nvar $port[point_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = \"(\"+value+\")\";\n return true;\n };\n \nvar $port[bool_value]$ = function(value){\n document.getElementById(\"block_$id$\").innerHTML = \"(\"+value+\")\";\n return true;\n }; \n",
"html": "\n$prop[label]$ <span id=\"block_$id$\"></span><br>\n"
},
"properties": [
{
"name": "label",
"label": "Label",
"value": "Label",
"type": "String"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"name": "float_value",
"conn_type": "Input",
"label": "Float Value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.char",
"conn_type": "Input",
"name": "char_value",
"label": "Char Value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.color",
"conn_type": "Input",
"name": "color_value",
"label": "Color Value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.string",
"conn_type": "Input",
"name": "string_value",
"label": "String Value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
"conn_type": "Input",
"name": "point_value",
"label": "Point Value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.bool",
"conn_type": "Input",
"name": "bool_value",
"label": "Bool Value"
}
]
}
+63
View File
@@ -0,0 +1,63 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "range",
"language": "javascript",
"extension": "webaudio",
"help": "Range",
"label": "Range",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[value]$ = [];\n\nvar $port[invalue]$ = function(value){\n document.getElementById(\"block_$id$\").value = value;\n change_value$id$(value);\n return true;\n };\n\n",
"execution": "\nfunction change_value$id$(e){\n value = document.getElementById(\"block_$id$\").value;\n for (var i = 0; i < $port[value]$.length ; i++){\n $port[value]$[i](value);\n }\n};\n",
"html": "\n$prop[label]$ <input type=\"range\" min=\"$prop[min]$\" max=\"$prop[max]$\" onchange=\"change_value$id$(event);\" id=\"block_$id$\"><br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "Float",
"value": "0"
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
},
{
"name": "min",
"label": "Min",
"type": "Float",
"lower": 0,
"upper": 20000,
"step": 1,
"value": 0
},
{
"name": "max",
"label": "Max",
"type": "Float",
"lower": 0,
"upper": 20000,
"step": 1,
"value": 100
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Output",
"name": "value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Value",
"conn_type": "Input",
"name": "invalue"
}
]
}
+47
View File
@@ -0,0 +1,47 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "select",
"language": "javascript",
"extension": "webaudio",
"help": "Select",
"label": "Select",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[str_value]$ = [];\nvar $port[float_value]$ = [];\n",
"function": "\nfunction populateCombo(combo, text_values){\n var values = text_values.split(',');\n for (var i = 0 ; i < values.length ; i++){\n var c = document.createElement(\"option\");\n c.text = values[i];\n combo.options.add(c, combo.options.length);\n }\n }\n",
"onload": "populateCombo(document.getElementById('block_$id$'), '$prop[values]$');",
"execution": "\nfunction change$id$(){\n el = document.getElementById(\"block_$id$\");\n value = el.options[el.selectedIndex].value;\n for (var i = 0; i < $port[str_value]$.length ; i++){\n $port[str_value]$[i](value);\n }\n for (var i = 0; i < $port[float_value]$.length ; i++){\n $port[float_value]$[i](el.selectedIndex);\n }\n};\n",
"html": "\n$prop[label]$ <select onchange=\"change$id$();\" id=\"block_$id$\"></select><br>\n"
},
"properties": [
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
},
{
"name": "values",
"label": "Values",
"type": "String",
"value": "values"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.string",
"label": "String Value",
"conn_type": "Output",
"name": "str_value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
"label": "Float Value",
"conn_type": "Output",
"name": "float_value"
}
]
}
+44
View File
@@ -0,0 +1,44 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "sinewave",
"language": "javascript",
"extension": "webaudio",
"help": "Sine Wave",
"label": "Sine Wave",
"color": "150:050:050:150",
"group": "GUI",
"codes": {
"onload": "draw_sinewave$id$();",
"declaration": "\n// block_$id$ = $label$\nvar block_$id$ = context.createAnalyser();\nvar $port[input]$ = block_$id$;\n",
"execution": "\nfunction draw_sinewave$id$(){\n var canvas = document.getElementById(\"canvas$id$\");\n var canvasCtx = canvas.getContext(\"2d\");\n var bufferLength = 64;\n var dataArray = new Uint8Array(bufferLength);\n\n canvasCtx.clearRect(0, 0, canvas.width, canvas.height);\n canvasCtx.lineWidth = 2;\n canvasCtx.strokeStyle = 'rgb(0, 0, 0)';\n\n block_$id$.getByteTimeDomainData(dataArray);\n\n canvasCtx.clearRect(0, 0, canvas.width, canvas.height);\n canvasCtx.beginPath();\n\n var sliceWidth = canvas.width * 1.0 / bufferLength;\n var x = 0;\n\n for(var i = 0; i < bufferLength; i++) {\n\n var v = dataArray[i] / 128.0;\n var y = v * canvas.height/2;\n\n if(i === 0) {\n canvasCtx.moveTo(x, y);\n } else {\n canvasCtx.lineTo(x, y);\n }\n\n x += sliceWidth;\n }\n\n canvasCtx.stroke();\n drawVisual = requestAnimationFrame(draw_sinewave$id$);\n}\n",
"html": "\n<canvas id=\"canvas$id$\" class=\"visualizer\" width=\"$prop[width]$\" height=\"$prop[height]$\"></canvas>\n"
},
"properties": [
{
"name": "width",
"label": "Width",
"type": "Float",
"lower": 0,
"upper": 32000,
"value": 640
},
{
"name": "height",
"label": "Height",
"type": "Float",
"lower": 0,
"upper": 32000,
"value": 240
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
"label": "Sound",
"conn_type": "Input",
"name": "input"
}
]
}
+26
View File
@@ -0,0 +1,26 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "spectrogram",
"language": "javascript",
"extension": "webaudio",
"help": "Spectrogram",
"label": "Spectrogram",
"color": "150:150:250:150",
"group": "GUI",
"codes": {
"onload": "\n(function () {\n function SpectrogramVisualizer(audioContext, canvasElement) {\n this.analyserNode = audioContext.createAnalyser();\n this.analyserNode.fftSize = 8192;\n this.fftData = new Float32Array(this.analyserNode.frequencyBinCount);\n\n this.graphicWidth = parseInt(getComputedStyle(canvasElement).width, 10);\n this.graphicHeight = parseInt(getComputedStyle(canvasElement).height, 10);\n\n var gc = this.graphicContext = canvasElement.getContext(\"2d\");\n gc.fillStyle = '#000000';\n\n this.pixel = gc.createImageData(1,1);\n this.pixel.data[3] = 255;\n\n this.gain = 0;\n this.stopping = false;\n\n this.draw();\n }\n\n SpectrogramVisualizer.prototype.acceptConnection = function (connectedNode) {\n connectedNode.connect(this.analyserNode);\n this.connectedNode = connectedNode;\n };\n\n SpectrogramVisualizer.prototype.draw = function () {\n if (this.stopping) {\n this.stopping = false;\n return;\n }\n\n var gc = this.graphicContext;\n var gw = this.graphicWidth;\n var gh = this.graphicHeight;\n\n if (!this.connectedNode) {\n gc.fillRect(0, 0, gw, gh);\n }\n else {\n var slideImage = gc.getImageData(0, 0, gw - 1, gh);\n gc.putImageData(slideImage, 1, 0);\n\n var i, y, n;\n\n this.analyserNode.getFloatFrequencyData(this.fftData);\n\n for (i = 0; i < gh; ++i) {\n n = Math.min(Math.max((this.fftData[i] + this.gain + 80) * 4, 0), 255);\n this.pixel.data[0] = n;\n this.pixel.data[1] = n;\n this.pixel.data[2] = n;\n gc.putImageData(this.pixel, 0, gh - i);\n }\n }\n\n this.animationHandle = requestAnimationFrame(function () { this.draw(); }.bind(this));\n };\n\n SpectrogramVisualizer.prototype.releaseConnection = function () {\n this.connectedNode.disconnect(this.analyserNode);\n delete this.connectedNode;\n };\n\n SpectrogramVisualizer.prototype.stop = function () {\n this.stopping = true;\n };\n\n window.App = window.App || {};\n window.App.SpectrogramVisualizer = SpectrogramVisualizer;\n})();\n\n(function () {\n var visCanvas_$id$ = document.getElementById('spectrogram_$id$')\n var visualizer_$id$ = new App.SpectrogramVisualizer(context, visCanvas_$id$);\n visualizer_$id$.gain = 1;\n visualizer_$id$.acceptConnection(block_$id$);\n})();\n",
"declaration": "\nvar block_$id$ = context.createGain();\nblock_$id$.gain = 1;\nvar $port[input]$ = block_$id$;\n",
"html": "\n<h2>SpectrogramVisualizer_Block$id$</h2>\n<div>\n <canvas id=\"spectrogram_$id$\" width=\"1024\" height=\"300\"></canvas>\n</div>\n\n"
},
"properties": [],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
"label": "Input",
"conn_type": "Input",
"name": "input"
}
]
}
+45
View File
@@ -0,0 +1,45 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "text",
"language": "javascript",
"extension": "webaudio",
"help": "Text",
"label": "Text",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\n// block_$id$ = $label$\nvar $port[value]$ = [];\n\nvar $port[invalue]$ = function(value){\n document.getElementById(\"block_$id$\").value = value;\n return true;\n };\n\n",
"execution": "\nfunction enter_value$id$(e){\n e = e || window.event;\n if (e.keyCode != 13) //Ignore if it is not enter\n return;\n value = document.getElementById(\"block_$id$\").value;\n for (var i = 0; i < $port[value]$.length ; i++){\n $port[value]$[i](value);\n }\n};\n",
"html": "\n$prop[label]$ <input type=\"text\" value=\"$prop[value]$\" onkeypress=\"enter_value$id$(event);\"\nid=\"block_$id$\"><br>\n"
},
"properties": [
{
"name": "value",
"label": "Value",
"type": "String",
"value": ""
},
{
"name": "label",
"label": "Label",
"type": "String",
"value": "Label"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.string",
"label": "Value",
"conn_type": "Output",
"name": "value"
},
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.string",
"label": "Value",
"conn_type": "Input",
"name": "invalue"
}
]
}
+32
View File
@@ -0,0 +1,32 @@
{
"source": "JSON",
"data": "BLOCK",
"version": "0.0.1",
"type": "title",
"language": "javascript",
"extension": "webaudio",
"help": "Window Title",
"label": "Title",
"color": "50:150:250:150",
"group": "GUI",
"codes": {
"declaration": "\nvar $port[title]$ = function(value){\n window.document.title = value;\n return 1;\n}\n",
"onload": "\n$port[title]$('$prop[title]$');\n \n"
},
"properties": [
{
"name": "title",
"label": "Value",
"type": "String",
"value": "Mosaicode - Document Title"
}
],
"ports": [
{
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.string",
"label": "Value",
"conn_type": "Input",
"name": "title"
}
]
}