Skip to content

bartbutenaers/node-red-contrib-audio-analyser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-red-contrib-audio-analyser

A Node Red node for analyzing PCM audio streams

[{"id":"5a89baed.89e9c4","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"a7748ec1.9755f","type":"function","z":"5a89baed.89e9c4","name":"012345678901234567890123456789","func":"this.content = \"012345678901234567890123456789\";\ncontext.set(\"content\", \"012345678901234567890123456789\");\nreturn msg;","outputs":1,"noerr":0,"x":610,"y":720,"wires":[["b5bc5b5.212aba8"]]},{"id":"a8782bbe.424ab8","type":"function","z":"5a89baed.89e9c4","name":"012345678901234567890123456789012345678901234567890123456789","func":"this.content = \"012345678901234567890123456789012345678901234567890123456789\";\ncontext.set(\"content\", \"012345678901234567890123456789012345678901234567890123456789\");\nreturn msg;","outputs":1,"noerr":0,"x":730,"y":780,"wires":[["c25b184b.96f3e8"]]},{"id":"c6da7b7e.f7f0c8","type":"inject","z":"5a89baed.89e9c4","name":"Setup memory","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":320,"y":720,"wires":[["a7748ec1.9755f","a8782bbe.424ab8"]]},{"id":"c25b184b.96f3e8","type":"function","z":"5a89baed.89e9c4","name":"","func":"this.content = 012345678901234567890123456789012345678901234567890123456789;\ncontext.set(\"content\", 012345678901234567890123456789012345678901234567890123456789);\nreturn msg;","outputs":1,"noerr":0,"x":1090,"y":780,"wires":[[]]},{"id":"b5bc5b5.212aba8","type":"function","z":"5a89baed.89e9c4","name":"","func":"this.content = 012345678901234567890123456789012345678901234567890123456789;\ncontext.set(\"content\", 012345678901234567890123456789012345678901234567890123456789);\nreturn msg;","outputs":1,"noerr":0,"x":870,"y":720,"wires":[[]]},{"id":"3537e081.79c9e","type":"inject","z":"5a89baed.89e9c4","name":"node.someVar = \"01234567890123456789\"","topic":"NODE","payload":"01234567890123456789","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":490,"y":440,"wires":[["92b2e439.2f7968"]]},{"id":"c8bac266.7e90a","type":"inject","z":"5a89baed.89e9c4","name":"node.someVar = \"0123456789\"","topic":"NODE","payload":"0123456789","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":450,"y":400,"wires":[["92b2e439.2f7968"]]},{"id":"b6e9846.31da678","type":"inject","z":"5a89baed.89e9c4","name":"context.someVar = \"01234567890123456789\"","topic":"CONTEXT","payload":"01234567890123456789","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":490,"y":520,"wires":[["92b2e439.2f7968"]]},{"id":"6a5cb087.f0879","type":"inject","z":"5a89baed.89e9c4","name":"context.someVar = \"0123456789\"","topic":"CONTEXT","payload":"0123456789","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":450,"y":480,"wires":[["92b2e439.2f7968"]]},{"id":"92b2e439.2f7968","type":"function","z":"5a89baed.89e9c4","name":"Set data","func":"switch (msg.topic) {\n    case 'NODE':\n        node.myVar = msg.payload;\n        break;\n    case 'CONTEXT':\n        context.set(\"myVar\", msg.payload);\n        break;\n    default:\n        console.log(\"Unknown msg.topic\");\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":840,"y":440,"wires":[[]]},{"id":"ec7fdd88.78f28","type":"function","z":"5a89baed.89e9c4","name":"msg counter","func":"// First time initialization\nif (!this.msgCounter) {\n    this.msgCounter = 0;\n}\n\nthis.msgCounter = this.msgCounter + 1;\n//node.msgCounter++;\n\nmsg.msgCounter = this.msgCounter;\nreturn msg;","outputs":1,"noerr":0,"x":590,"y":160,"wires":[["ff8f2dc7.37996"]]},{"id":"33e53ca0.90be34","type":"inject","z":"5a89baed.89e9c4","name":"Inject msg","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":420,"y":160,"wires":[["ec7fdd88.78f28"]]},{"id":"ff8f2dc7.37996","type":"debug","z":"5a89baed.89e9c4","name":"Show output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"msgCounter","x":770,"y":160,"wires":[]},{"id":"f57450ea.ac8b","type":"http-logger","z":"5a89baed.89e9c4","name":"","filter":"ipify","returnFormat":"txt","x":400,"y":1000,"wires":[["f164a8b7.74cde8"]]},{"id":"1f25cbf8.71f354","type":"http request","z":"5a89baed.89e9c4","name":"","method":"GET","ret":"obj","paytoqs":false,"url":"https://api.ipify.org?format=json","tls":"","proxy":"","authType":"basic","x":390,"y":940,"wires":[["9f433261.35598"]]},{"id":"cedfb31a.2f4ee","type":"inject","z":"5a89baed.89e9c4","name":"Send request","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":210,"y":940,"wires":[["1f25cbf8.71f354"]]},{"id":"9f433261.35598","type":"debug","z":"5a89baed.89e9c4","name":"Http response 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":600,"y":940,"wires":[]},{"id":"85b98128.01148","type":"inject","z":"5a89baed.89e9c4","name":"Start logging","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":210,"y":1000,"wires":[["f57450ea.ac8b","58b2d51c.200b4c","985b3d33.f275a"]]},{"id":"f164a8b7.74cde8","type":"debug","z":"5a89baed.89e9c4","name":"Intercepted request as string","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":640,"y":1000,"wires":[]},{"id":"6d59df7c.f7616","type":"test-array","z":"5a89baed.89e9c4","name":"","fiware_attrs_array":[{"name":"a","type":"bb","value":"c"}],"x":620,"y":280,"wires":[[]]},{"id":"58b2d51c.200b4c","type":"http-logger","z":"5a89baed.89e9c4","name":"","filter":"ipify","returnFormat":"obj","x":400,"y":1060,"wires":[["c35e45c7.b75fb8"]]},{"id":"c35e45c7.b75fb8","type":"debug","z":"5a89baed.89e9c4","name":"Intercepted request as json object","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":660,"y":1060,"wires":[]},{"id":"94cb8a6e.256c18","type":"comment","z":"5a89baed.89e9c4","name":"Get WAN address from https://api.ipify.org?format=json","info":"","x":320,"y":900,"wires":[]},{"id":"985b3d33.f275a","type":"http-logger","z":"5a89baed.89e9c4","name":"","filter":"ipify","returnFormat":"bin","x":400,"y":1120,"wires":[["e8d8499a.c63698"]]},{"id":"e8d8499a.c63698","type":"debug","z":"5a89baed.89e9c4","name":"Intercepted request as buffer","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":640,"y":1120,"wires":[]},{"id":"1e918484.9eeefb","type":"http-logger","z":"5a89baed.89e9c4","name":"","filter":"api.classmarker.com","x":600,"y":1440,"wires":[["ec015c7d.ad612"]]},{"id":"9f890543.4d7308","type":"http request","z":"5a89baed.89e9c4","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"https://api.classmarker.com/v1.json?api_key=d4tsE7SvEgzAKlJPFrlvAz3oe9uFQnxy&signature=4495a14efc483aa5ee2f6d4cd480f968&timestamp=1335783600","tls":"","proxy":"","authType":"basic","x":590,"y":1360,"wires":[["54a1157b.de8b4c"]]},{"id":"76b1f289.90d7dc","type":"inject","z":"5a89baed.89e9c4","name":"Send request","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":410,"y":1360,"wires":[["9f890543.4d7308"]]},{"id":"54a1157b.de8b4c","type":"debug","z":"5a89baed.89e9c4","name":"Http response","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":800,"y":1360,"wires":[]},{"id":"8255fd41.07c15","type":"inject","z":"5a89baed.89e9c4","name":"Start logging","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":410,"y":1440,"wires":[["1e918484.9eeefb"]]},{"id":"5098790d.895c58","type":"inject","z":"5a89baed.89e9c4","name":"Stop logging","topic":"","payload":"false","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":410,"y":1500,"wires":[["1e918484.9eeefb"]]},{"id":"ec015c7d.ad612","type":"debug","z":"5a89baed.89e9c4","name":"Intercepted http request","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":830,"y":1440,"wires":[]},{"id":"20c059f7.baa716","type":"heat-map","z":"5a89baed.89e9c4","group":"dcb3a7a5.f6a9f8","order":0,"width":"6","height":"5","name":"","rows":"7","columns":"7","minMax":false,"minimumValue":0,"maximumValue":0,"backgroundColor":"#ffffff","radius":40,"opacity":0.6,"blur":0.85,"showValues":false,"valuesDecimals":0,"showLegend":false,"legendDecimals":0,"legendCount":2,"x":920,"y":1680,"wires":[[]]},{"id":"24236b6b.9ffc64","type":"function","z":"5a89baed.89e9c4","name":"Generate random matrix","func":"// Generate some random data\n// See https://www.patrick-wied.at/static/heatmapjs/example-minimal-config.html\nmsg.payload = [];\n\nfor (var i = 0; i < 49; i++) {\n    var value = Math.floor(Math.random()*100);\n    if (i % 2 === 0) {\n        var pair = {};\n        pair['key' + i] = value;\n        msg.payload.push(pair);\n    }\n    else {\n        msg.payload.push(value);\n    }\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":690,"y":1680,"wires":[["20c059f7.baa716","b8fe2c04.31a06"]]},{"id":"4372ce10.a3309","type":"inject","z":"5a89baed.89e9c4","name":"Show heatmap","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":460,"y":1680,"wires":[["24236b6b.9ffc64"]]},{"id":"b8fe2c04.31a06","type":"debug","z":"5a89baed.89e9c4","name":"","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","x":930,"y":1760,"wires":[]},{"id":"6ab823cc.efc3fc","type":"function","z":"5a89baed.89e9c4","name":"Generate ascending matrix","func":"// Generate some random data\n// See https://www.patrick-wied.at/static/heatmapjs/example-minimal-config.html\nmsg.payload = [];\n\nfor (var i = 0; i < 100; i++) {\n    msg.payload.push(i);\n}\n\nreturn msg;","outputs":1,"noerr":0,"x":600,"y":1860,"wires":[["20c059f7.baa716"]]},{"id":"7f7768.95c9b898","type":"inject","z":"5a89baed.89e9c4","name":"Show heatmap","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":360,"y":1860,"wires":[["6ab823cc.efc3fc"]]},{"id":"1bfc5776.cfa339","type":"ui_switch","z":"5a89baed.89e9c4","name":"","label":"Enable microphone","tooltip":"","group":"dcb3a7a5.f6a9f8","order":0,"width":0,"height":0,"passthru":false,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1070,"y":300,"wires":[["4f274eb1.2edfc"]]},{"id":"a8133482.f1c468","type":"ui_switch","z":"5a89baed.89e9c4","name":"","label":"Enable speaker","tooltip":"","group":"dcb3a7a5.f6a9f8","order":0,"width":0,"height":0,"passthru":false,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1220,"y":140,"wires":[[]]},{"id":"bf0b721a.0984f","type":"comment","z":"5a89baed.89e9c4","name":"TODO","info":"Don't receive a buffer, but a Javascript object","x":1130,"y":60,"wires":[]},{"id":"4f274eb1.2edfc","type":"ui_microphone_recorder","z":"5a89baed.89e9c4","group":"dcb3a7a5.f6a9f8","name":"","order":0,"width":0,"height":0,"channelCount":"1","encoding":"raw","wavHeaders":false,"echoCancellation":true,"noiseSuppression":true,"gainControl":true,"bufferLength":4096,"x":1260,"y":300,"wires":[["5fd0d476.5337fc"]]},{"id":"c0f9d513.03df58","type":"debug","z":"5a89baed.89e9c4","name":"Microphone samples","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":1520,"y":100,"wires":[]},{"id":"4d5259ec.4b5fe8","type":"file","z":"5a89baed.89e9c4","name":"","filename":"/var/tmp/raw_audio.raw","appendNewline":false,"createDir":false,"overwriteFile":"false","x":1420,"y":60,"wires":[[]]},{"id":"29c2e99b.1b9ff6","type":"audio-analyser","z":"5a89baed.89e9c4","name":"","analysis":"freq","minDecibels":-100,"maxDecibels":-30,"fftSize":"128","smoothingTimeConstant":"0","channel":"0","bufferSize":"44100","x":1580,"y":340,"wires":[["39ef498a.accfa6"]]},{"id":"e0b5e27.104132","type":"ui_chart","z":"5a89baed.89e9c4","name":"Frequency domain","group":"dcb3a7a5.f6a9f8","order":0,"width":0,"height":0,"label":"Frequency domain","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Frequency domain","dot":false,"ymin":"-100","ymax":"0","removeOlder":1,"removeOlderPoints":"64","removeOlderUnit":"3600","cutout":0,"useOneColor":true,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":1970,"y":340,"wires":[[],[]]},{"id":"39ef498a.accfa6","type":"function","z":"5a89baed.89e9c4","name":"Chart format","func":"var chart = [{\n    \"series\":[\"freq\"],\n    \"data\":[],\n    \"labels\":[]\n}];\n\nfor (var i = 0; i < msg.payload.length; i++) {\n    chart[0].data.push(msg.payload[i]);\n    chart[0].labels.push(\"\");\n}\n\nmsg.payload = chart;\n\nreturn msg;","outputs":1,"noerr":0,"x":1770,"y":340,"wires":[["e0b5e27.104132"]]},{"id":"5fd0d476.5337fc","type":"throttle","z":"5a89baed.89e9c4","name":"","throttleType":"count","timeLimit":0,"timeLimitType":"seconds","countLimit":"5","blockSize":0,"locked":false,"x":1410,"y":300,"wires":[["fc51c150.ac788"]]},{"id":"fc51c150.ac788","type":"audio-analyser","z":"5a89baed.89e9c4","name":"","analysis":"time","minDecibels":-100,"maxDecibels":-30,"fftSize":"128","smoothingTimeConstant":"0","channel":"0","bufferSize":"44100","x":1580,"y":300,"wires":[["ffd4ed64.56d94"]]},{"id":"e81d8d63.74c4a","type":"ui_chart","z":"5a89baed.89e9c4","name":"Time domain","group":"dcb3a7a5.f6a9f8","order":0,"width":0,"height":0,"label":"Time domain","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Time domain","dot":false,"ymin":"-2","ymax":"2","removeOlder":1,"removeOlderPoints":"64","removeOlderUnit":"3600","cutout":0,"useOneColor":true,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":1950,"y":300,"wires":[[],[]]},{"id":"ffd4ed64.56d94","type":"function","z":"5a89baed.89e9c4","name":"Chart format","func":"var chart = [{\n    \"series\":[\"freq\"],\n    \"data\":[],\n    \"labels\":[]\n}];\n\nfor (var i = 0; i < msg.payload.length; i++) {\n    chart[0].data.push(msg.payload[i]);\n    chart[0].labels.push(\"\");\n}\n\nmsg.payload = chart;\n\nreturn msg;","outputs":1,"noerr":0,"x":1770,"y":300,"wires":[["e81d8d63.74c4a"]]},{"id":"dcb3a7a5.f6a9f8","type":"ui_group","z":"","name":"Heatmap","tab":"f1e3faa7.0b6ea8","disp":true,"width":"6","collapse":false},{"id":"f1e3faa7.0b6ea8","type":"ui_tab","z":"","name":"Heatmap","icon":"dashboard","disabled":false,"hidden":false}]

Frequency

Time

About

A Node Red node for analyzing PCM audio streams

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published