Copy from Alexandre repository
This commit is contained in:
commit
355594d3c8
102 files changed
+5948
No files matched your search
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"source": "JSON",
|
||||
"data": "BLOCK",
|
||||
"version": "0.0.1",
|
||||
"type": "midi",
|
||||
"language": "javascript",
|
||||
"extension": "webaudio",
|
||||
"help": "MIDI",
|
||||
"label": "MIDI",
|
||||
"color": "250:250:0:150",
|
||||
"group": "MIDI",
|
||||
"codes": {
|
||||
"function": "\n// request MIDI access\n\nif (navigator.requestMIDIAccess) {\n navigator.requestMIDIAccess({sysex: false}).then(MidiSuccess, MidiFailure);\n} else {\n alert(\"No MIDI support in your browser.\");\n}\n\n// midi functions\nfunction MidiSuccess(midi) {\n // when we get a succesful response, run this code\n console.log('MIDI Access Object', midi);\n var inputs = midi.inputs.values();\n\n for (var input = inputs.next(); input && !input.done; input = inputs.next()) {\n // each time there is a midi message call the onMIDIMessage function\n input.value.onmidimessage = MidiMessage;\n }\n}\n\nfunction MidiFailure(e) {\n // when we get a failed response, run this code\n message = \"No access to MIDI devices or your browser doesn't support WebMIDI API. Please use WebMIDIAPIShim \" + e;\n console.log(message);\n alert(message);\n}\n\n// Variable to keep output ports\nvar note_output = [];\nvar control_output = [];\n\nfunction MidiMessage (message) {\n //Note On\n if((message.data[0] == 144 && message.data[2] > 0) ||\n // Note Off\n (message.data[0] === 128 || (message.data[0] == 144 && message.data[2] === 0))\n ){\n for (var i = 0; i < note_output.length ; i++)\n for (var j = 0; j < note_output[i].length ; j++)\n note_output[i][j]([message.data[1],message.data[2]]);\n }\n\n\n //Ctrl\n if (message.data[0] === 176 ){\n for (var i = 0; i < control_output.length ; i++)\n for (var j = 0; j < control_output[i].length ; j++)\n control_output[i][j]([message.data[1],message.data[2]]);\n }\n // Not used\n // (message.data[0] === 176 )//Drum pad\n // (message.data[0] === 208 )//Aftertouch\n}\n\n\n",
|
||||
"declaration": "\n// block_$id$ = Mouse\nvar $port[note]$ = [];\nvar $port[control]$ = [];\nnote_output.push($port[note]$);\ncontrol_output.push($port[control]$);\n"
|
||||
},
|
||||
"properties": [],
|
||||
"ports": [
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.midi",
|
||||
"label": "Note",
|
||||
"conn_type": "Output",
|
||||
"name": "note"
|
||||
},
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.midi",
|
||||
"label": "Control",
|
||||
"conn_type": "Output",
|
||||
"name": "control"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"source": "JSON",
|
||||
"data": "BLOCK",
|
||||
"version": "0.0.1",
|
||||
"type": "midi2freq",
|
||||
"language": "javascript",
|
||||
"extension": "webaudio",
|
||||
"help": "midi to freq",
|
||||
"label": "Midi 2 Freq",
|
||||
"color": "250:250:0:150",
|
||||
"group": "MIDI",
|
||||
"codes": {
|
||||
"declaration": "\n// block_$id$ = $label$\nvar $port[frequency]$ = [];\n\nvar $port[midi_value]$ = function(value){\n value = (value < 0) ? 0 : value;\n value = (value >127) ? 127 : value;\n var arg = ((parseFloat(value) - 69.0) / 12.0);\n result = Math.pow(2.0, arg) * 440.0;\n for (var i = 0; i < $port[frequency]$.length ; i++){\n $port[frequency]$[i](result);\n }\n return true;\n };\n"
|
||||
},
|
||||
"properties": [],
|
||||
"ports": [
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
||||
"name": "midi_value",
|
||||
"conn_type": "Input",
|
||||
"label": "Midi Value"
|
||||
},
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
||||
"label": "Frequency",
|
||||
"conn_type": "Output",
|
||||
"name": "frequency"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"source": "JSON",
|
||||
"data": "BLOCK",
|
||||
"version": "0.0.1",
|
||||
"type": "stripmidi",
|
||||
"language": "javascript",
|
||||
"extension": "webaudio",
|
||||
"help": "Strip Midi",
|
||||
"label": "Strip Midi",
|
||||
"color": "250:250:0:150",
|
||||
"group": "MIDI",
|
||||
"codes": {
|
||||
"declaration": "\n// block_$id$ = $label$\nvar $port[note]$ = [];\nvar $port[velocity]$ = [];\n\nvar $port[midi_value]$ = function(value){\n for (var i = 0; i < $port[note]$.length ; i++){\n $port[note]$[i](value[0]);\n }\n for (var i = 0; i < $port[note]$.length ; i++){\n $port[velocity]$[i](value[1]);\n }\n return true;\n };\n"
|
||||
},
|
||||
"properties": [],
|
||||
"ports": [
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.midi",
|
||||
"name": "midi_value",
|
||||
"conn_type": "Input",
|
||||
"label": "Midi Value"
|
||||
},
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
||||
"label": "Note",
|
||||
"conn_type": "Output",
|
||||
"name": "note"
|
||||
},
|
||||
{
|
||||
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.float",
|
||||
"label": "Velocity",
|
||||
"conn_type": "Output",
|
||||
"name": "velocity"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user