120 lines
5.2 KiB
JSON
120 lines
5.2 KiB
JSON
{
|
|
"source": "JSON",
|
|
"data": "BLOCK",
|
|
"version": "0.0.1",
|
|
"type": "hrtf",
|
|
"language": "javascript",
|
|
"extension": "webaudio",
|
|
"help": "HRTF",
|
|
"label": "HRTF",
|
|
"color": "50:150:250:150",
|
|
"group": "Sound",
|
|
"codes": {
|
|
"declaration": "\n// block_$id$ = $label$\nvar block_$id$_width = window.innerWidth;\nvar block_$id$_height = window.innerHeight;\nvar block_$id$_xPos = Math.floor(block_$id$_width/2);\nvar block_$id$_yPos = Math.floor(block_$id$_height/2);\nvar block_$id$_zPos = 295;\nvar block_$id$ = context.createPanner();\n\nblock_$id$.panningModel = 'HRTF';\nblock_$id$.distanceModel = \"$prop[distance_model]$\";\nblock_$id$.refDistance = $prop[ref_distance]$;\nblock_$id$.maxDistance = $prop[max_distance]$;\nblock_$id$.rolloffFactor = $prop[rolloff_factor]$;\nblock_$id$.coneInnerAngle = $prop[cone_inner_angle]$;\nblock_$id$.coneOuterAngle = $prop[cone_outer_angle]$;\nblock_$id$.coneOuterGain = $prop[cone_outer_gain]$;\n\nvar block_$id$_panner_pos = [0, 0, 0];\nvar block_$id$_listener_pos = [0, 0, 0];\nvar block_$id$_panner_orientation = [0, 0, 0];\nvar block_$id$_listener_forward = [0, 0, 0];\nvar block_$id$_listener_up = [0, 0, 0];\n\n\nvar $port[panner_pos]$ = function(value){\n block_$id$_panner_pos = value;\n block_$id$.setPosition(value[0],\n value[1],\n value[2]);\n return true;\n};\nvar $port[listener_pos]$ = function(value){\n block_$id$_listener_pos = value;\n context.listener.setPosition(value[0],\n value[1],\n value[2]);\n return true;\n};\nvar $port[panner_orientation]$ = function(value){\n block_$id$_panner_orientation = value;\n block_$id$.setOrientation(value[0],\n value[1],\n value[2]);\n return true;\n};\nvar $port[listener_forward]$ = function(value){\n block_$id$_listener_forward = value;\n context.listener.setOrientation(value[0],\n value[1],\n value[2],\n block_$id$_listener_up[0],\n block_$id$_listener_up[1],\n block_$id$_listener_up[2]);\n return true;\n};\n\nvar $port[listener_up]$ = function(value){\n block_$id$_listener_up = value;\n context.listener.setOrientation(block_$id$_listener_forward[0],\n block_$id$_listener_forward[1],\n block_$id$_listener_forward[2],\n value[0],\n value[1],\n value[2]);\n return true;\n};\n\nvar $port[sound_input]$ = block_$id$;\nvar $port[output]$ = block_$id$;\n"
|
|
},
|
|
"properties": [
|
|
{
|
|
"name": "distance_model",
|
|
"label": "Distance Model",
|
|
"type": "Combo",
|
|
"values": [
|
|
"linear",
|
|
"inverse",
|
|
"exponential"
|
|
],
|
|
"value": "inverse"
|
|
},
|
|
{
|
|
"name": "cone_inner_angle",
|
|
"label": "coneInnerAngle",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 360,
|
|
"value": 360
|
|
},
|
|
{
|
|
"name": "cone_outer_angle",
|
|
"label": "Cone Outer Angle",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 360,
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "cone_outer_gain",
|
|
"label": "Cone Outer Gain",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 32000,
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "ref_distance",
|
|
"label": "Ref Distance",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 32000,
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "max_distance",
|
|
"label": "Max Distance",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 32000,
|
|
"value": 10000
|
|
},
|
|
{
|
|
"name": "rolloff_factor",
|
|
"label": "Rolloff Factor",
|
|
"type": "Float",
|
|
"lower": 0,
|
|
"upper": 32000,
|
|
"value": 1
|
|
}
|
|
],
|
|
"ports": [
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
|
|
"name": "sound_input",
|
|
"conn_type": "Input",
|
|
"label": "Sound"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
|
|
"name": "panner_pos",
|
|
"conn_type": "Input",
|
|
"label": "Panner Position"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
|
|
"name": "listener_pos",
|
|
"conn_type": "Input",
|
|
"label": "Listener Position"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
|
|
"name": "panner_orientation",
|
|
"conn_type": "Input",
|
|
"label": "Panner Orientation"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
|
|
"name": "listener_forward",
|
|
"conn_type": "Input",
|
|
"label": "Listener Forward"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.point",
|
|
"name": "listener_up",
|
|
"conn_type": "Input",
|
|
"label": "Listener Up"
|
|
},
|
|
{
|
|
"type": "mosaicode_lib_javascript_webaudio.extensions.ports.sound",
|
|
"label": "Sound",
|
|
"conn_type": "Output",
|
|
"name": "output"
|
|
}
|
|
]
|
|
} |