[
    {
        "id": "a877d21.227c23",
        "type": "tab",
        "label": "control",
        "disabled": false,
        "info": ""
    },
    {
        "id": "b1d19124.18d7c8",
        "type": "tab",
        "label": "analysis",
        "disabled": false,
        "info": ""
    },
    {
        "id": "401bc39f.af9f54",
        "type": "ui_group",
        "z": "",
        "name": "Control",
        "tab": "5a95dddd.c4488c",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "5a95dddd.c4488c",
        "type": "ui_tab",
        "z": "",
        "name": "openMHA GUI demo",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    },
    {
        "id": "1557271e.985f11",
        "type": "ui_base",
        "theme": {
            "name": "theme-custom",
            "lightTheme": {
                "default": "#0094CE",
                "baseColor": "#0094CE",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": true,
                "reset": false
            },
            "darkTheme": {
                "default": "#097479",
                "baseColor": "#097479",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": true,
                "reset": false
            },
            "customTheme": {
                "name": "Untitled Theme 1",
                "default": "#4B7930",
                "baseColor": "#004899",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "reset": false
            },
            "themeState": {
                "base-color": {
                    "default": "#4B7930",
                    "value": "#004899",
                    "edited": true
                },
                "page-titlebar-backgroundColor": {
                    "value": "#004799",
                    "edited": true
                },
                "page-backgroundColor": {
                    "value": "#111111",
                    "edited": false
                },
                "page-sidebar-backgroundColor": {
                    "value": "#000000",
                    "edited": false
                },
                "group-textColor": {
                    "value": "#a0a9d7",
                    "edited": true
                },
                "group-borderColor": {
                    "value": "#555555",
                    "edited": false
                },
                "group-backgroundColor": {
                    "value": "#333333",
                    "edited": false
                },
                "widget-textColor": {
                    "value": "#eeeeee",
                    "edited": false
                },
                "widget-backgroundColor": {
                    "value": "#004799",
                    "edited": true
                },
                "widget-borderColor": {
                    "value": "#333333",
                    "edited": false
                },
                "base-font": {
                    "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
                }
            },
            "angularTheme": {
                "primary": "indigo",
                "accents": "blue",
                "warn": "red",
                "background": "grey"
            }
        },
        "site": {
            "name": "Node-RED Dashboard",
            "hideToolbar": "false",
            "allowSwipe": "false",
            "lockMenu": "false",
            "allowTempTheme": "true",
            "dateFormat": "DD/MM/YYYY",
            "sizes": {
                "sx": 42,
                "sy": 42,
                "gx": 10,
                "gy": 6,
                "cx": 6,
                "cy": 6,
                "px": 0,
                "py": 0
            }
        }
    },
    {
        "id": "c9cbcfdb.9d991",
        "type": "ui_group",
        "z": "",
        "name": "Group 2",
        "tab": "",
        "order": 2,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "88bfcf14.8bb9b",
        "type": "ui_group",
        "name": "Group 1",
        "tab": "",
        "order": 1,
        "disp": true,
        "width": 6
    },
    {
        "id": "191d131.715d0ed",
        "type": "ui_group",
        "name": "Group 2",
        "tab": "",
        "order": 2,
        "disp": true,
        "width": 6
    },
    {
        "id": "5a47267e.b59508",
        "type": "ui_group",
        "z": "",
        "name": "Analysis",
        "tab": "5a95dddd.c4488c",
        "order": 2,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "ada45029.e0ab",
        "type": "ui_group",
        "z": "",
        "name": "Control",
        "tab": "",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "fbe7bbab.9b1cd8",
        "type": "ui_group",
        "z": "",
        "name": "Control",
        "tab": "",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "b191d860.5d4098",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "Get touch position",
        "func": "if (!flow.get(\"value\")) {\n  flow.set(\"value\",msg.payload);\n}\nvar values = flow.get(\"value\");\n\nif (values[0] == msg.payload[0] && values[1] == msg.payload[1]){\n}\nelse{\n    flow.set(\"value\", msg.payload);\n    return msg;    \n}\n",
        "outputs": 1,
        "noerr": 0,
        "x": 610,
        "y": 60,
        "wires": [
            [
                "7943caea.9897dc"
            ]
        ]
    },
    {
        "id": "1d8060a1.630317",
        "type": "range",
        "z": "a877d21.227c23",
        "minin": "0",
        "maxin": "1",
        "minout": "0",
        "maxout": "20",
        "action": "scale",
        "round": true,
        "property": "payload[1]",
        "name": "",
        "x": 430,
        "y": 60,
        "wires": [
            [
                "b191d860.5d4098"
            ]
        ]
    },
    {
        "id": "fcb6aca7.75f3",
        "type": "range",
        "z": "a877d21.227c23",
        "minin": "0",
        "maxin": "1",
        "minout": "0",
        "maxout": "20",
        "action": "scale",
        "round": true,
        "property": "payload[0]",
        "name": "",
        "x": 290,
        "y": 60,
        "wires": [
            [
                "1d8060a1.630317"
            ]
        ]
    },
    {
        "id": "63372524.cb9afc",
        "type": "tcp request",
        "z": "a877d21.227c23",
        "server": "localhost",
        "port": "33337",
        "out": "time",
        "splitc": "5",
        "name": "",
        "x": 1100,
        "y": 120,
        "wires": [
            []
        ]
    },
    {
        "id": "7943caea.9897dc",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "Read gain table",
        "func": "msg.payload=\"?read:./gaintables/table_\" + msg.payload[0] + \"_\" + msg.payload[1] + \"_0.cfg\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 820,
        "y": 60,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "16946c18.f0715c",
        "type": "ui_template",
        "z": "a877d21.227c23",
        "group": "401bc39f.af9f54",
        "name": "2dAreaTouch",
        "order": 2,
        "width": "6",
        "height": "5",
        "format": "

\n\n

\n\n\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "templateScope": "local",
        "x": 120,
        "y": 60,
        "wires": [
            [
                "fcb6aca7.75f3"
            ]
        ]
    },
    {
        "id": "b43cd7f.53a9228",
        "type": "ui_switch",
        "z": "a877d21.227c23",
        "name": "",
        "label": "Noise",
        "tooltip": "",
        "group": "401bc39f.af9f54",
        "order": 4,
        "width": "2",
        "height": "1",
        "passthru": false,
        "decouple": "false",
        "topic": "",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 90,
        "y": 160,
        "wires": [
            [
                "2923b911.00c766"
            ]
        ]
    },
    {
        "id": "2923b911.00c766",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "Toggle noise",
        "func": "if (msg.payload === true){\nmsg.payload=\"mha.mhachain.alt_noise.select=noise\\n\"\n}\nelse{\nmsg.payload=\"mha.mhachain.alt_noise.select=pass\\n\"\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 250,
        "y": 160,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "20b9522b.a34e56",
        "type": "ui_switch",
        "z": "a877d21.227c23",
        "name": "",
        "label": "Pure tone",
        "tooltip": "",
        "group": "401bc39f.af9f54",
        "order": 6,
        "width": "2",
        "height": "1",
        "passthru": false,
        "decouple": "false",
        "topic": "",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 100,
        "y": 300,
        "wires": [
            [
                "9a32f36a.0aa8d8"
            ]
        ]
    },
    {
        "id": "9a32f36a.0aa8d8",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "Toggle sine",
        "func": "if (msg.payload === true){\nmsg.payload=\"mha.mhachain.alt_sine.select=sine\\n\"\n}\nelse{\nmsg.payload=\"mha.mhachain.alt_sine.select=pass\\n\"\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 290,
        "y": 300,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "cb9d8ac7.648e68",
        "type": "ui_slider",
        "z": "a877d21.227c23",
        "name": "",
        "label": "Frequency",
        "tooltip": "",
        "group": "401bc39f.af9f54",
        "order": 8,
        "width": 0,
        "height": 0,
        "passthru": true,
        "outs": "end",
        "topic": "",
        "min": "50",
        "max": "12000",
        "step": 1,
        "x": 110,
        "y": 420,
        "wires": [
            [
                "fff6af74.993f88"
            ]
        ]
    },
    {
        "id": "fff6af74.993f88",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "sine frequency",
        "func": "msg.payload=\"mha.mhachain.alt_sine.sine.f=\" + msg.payload.toString() + \"\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 280,
        "y": 420,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "b07d7ab7.674778",
        "type": "ui_slider",
        "z": "a877d21.227c23",
        "name": "",
        "label": "level",
        "tooltip": "",
        "group": "401bc39f.af9f54",
        "order": 5,
        "width": "4",
        "height": "1",
        "passthru": true,
        "outs": "all",
        "topic": "",
        "min": "40",
        "max": "80",
        "step": 1,
        "x": 90,
        "y": 220,
        "wires": [
            [
                "fc53f9e2.899ac"
            ]
        ]
    },
    {
        "id": "fc53f9e2.899ac",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "noise level",
        "func": "msg.payload=\"mha.mhachain.alt_noise.noise.lev=\" + msg.payload.toString() + \"\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 250,
        "y": 220,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "be4e5c3c.7926d8",
        "type": "ui_slider",
        "z": "a877d21.227c23",
        "name": "",
        "label": "level",
        "tooltip": "",
        "group": "401bc39f.af9f54",
        "order": 7,
        "width": "4",
        "height": "1",
        "passthru": true,
        "outs": "all",
        "topic": "",
        "min": "40",
        "max": "80",
        "step": 1,
        "x": 90,
        "y": 360,
        "wires": [
            [
                "479618ce.38c74"
            ]
        ]
    },
    {
        "id": "479618ce.38c74",
        "type": "function",
        "z": "a877d21.227c23",
        "name": "sine level",
        "func": "msg.payload=\"mha.mhachain.alt_sine.sine.lev=\" + msg.payload.toString() + \"\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 280,
        "y": 360,
        "wires": [
            [
                "63372524.cb9afc"
            ]
        ]
    },
    {
        "id": "83e28fc6.fe79b",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "read center frequncies",
        "func": "msg.payload = \"mha.mhachain.comp.smoothgains_bridge.mhachain.mbc.dc.cf?\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 350,
        "y": 80,
        "wires": [
            [
                "43dc601d.14b3"
            ]
        ]
    },
    {
        "id": "e0de5915.d76d98",
        "type": "delay",
        "z": "b1d19124.18d7c8",
        "name": "",
        "pauseType": "delay",
        "timeout": "100",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 110,
        "y": 180,
        "wires": [
            [
                "de985529.034c08",
                "44357f58.fb1fb",
                "65ddf000.273e18"
            ]
        ]
    },
    {
        "id": "43dc601d.14b3",
        "type": "tcp request",
        "z": "b1d19124.18d7c8",
        "server": "localhost",
        "port": "33337",
        "out": "time",
        "splitc": "5",
        "name": "",
        "x": 600,
        "y": 80,
        "wires": [
            [
                "c585cf7b.429378"
            ]
        ]
    },
    {
        "id": "de985529.034c08",
        "type": "trigger",
        "z": "b1d19124.18d7c8",
        "op1": "1",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "-100",
        "extend": false,
        "units": "ms",
        "reset": "stop",
        "bytopic": "all",
        "name": "",
        "x": 320,
        "y": 320,
        "wires": [
            [
                "6ce34535.634834",
                "6456759d.f63c0c"
            ]
        ]
    },
    {
        "id": "44357f58.fb1fb",
        "type": "trigger",
        "z": "b1d19124.18d7c8",
        "op1": "1",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "-500",
        "extend": false,
        "units": "ms",
        "reset": "stop",
        "bytopic": "all",
        "name": "",
        "x": 320,
        "y": 440,
        "wires": [
            [
                "9096342a.6a9c8"
            ]
        ]
    },
    {
        "id": "c585cf7b.429378",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "toString",
        "func": "msg.payload=msg.payload.toString('utf8');\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 780,
        "y": 80,
        "wires": [
            [
                "2af2c473.ad959c"
            ]
        ]
    },
    {
        "id": "65ddf000.273e18",
        "type": "delay",
        "z": "b1d19124.18d7c8",
        "name": "",
        "pauseType": "delay",
        "timeout": "100",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 290,
        "y": 380,
        "wires": [
            [
                "74559ff0.6018f"
            ]
        ]
    },
    {
        "id": "9096342a.6a9c8",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "update chart",
        "func": "var time=new Date().getTime();\nvar dataarray=global.get('dataarray') ||  [[]];\n\nvar chart = [{\n    \"series\":[\"Level =\"],\n    \"data\":dataarray,\n    \"labels\":[\"\"],\n    \"time\":time\n}];\n\n\nmsg.payload = chart;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 530,
        "y": 440,
        "wires": [
            [
                "63aa2380.74f3fc"
            ]
        ]
    },
    {
        "id": "2af2c473.ad959c",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "save_center_f",
        "func": "var lines = msg.payload.split(\"\\n\");\nlines = lines[2].slice(1,-1);\nmsg.payload = lines.split(\" \").map(function(item) {\n    return parseInt(item, 10);\n});\n\nglobal.set('center_f',msg.payload);\nreturn msg;\n\n",
        "outputs": 1,
        "noerr": 0,
        "x": 960,
        "y": 80,
        "wires": [
            []
        ]
    },
    {
        "id": "f3f61447.8a5298",
        "type": "tcp request",
        "z": "b1d19124.18d7c8",
        "server": "localhost",
        "port": "33337",
        "out": "sit",
        "splitc": " ",
        "name": "",
        "x": 840,
        "y": 320,
        "wires": [
            [
                "f7d39636.2a825"
            ]
        ]
    },
    {
        "id": "74559ff0.6018f",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "to chart",
        "func": "var m={};\nvar cf=global.get('center_f') || [200,1000,1500,2000,3000,4000,5500,7000];\nvar zero_values = Array(cf.length).fill(0)\nm.labels = cf;\nm.series = ['Left ear', 'Right ear'];\nm.data = [\n    zero_values,\n    zero_values,\n    ];\n    \n    \n\nvar dataarray= [[]];\nglobal.set('dataarray',dataarray);  \n\n    \nreturn {payload:[m]};",
        "outputs": 1,
        "noerr": 0,
        "x": 520,
        "y": 380,
        "wires": [
            [
                "d61a171d.9382e8"
            ]
        ]
    },
    {
        "id": "63aa2380.74f3fc",
        "type": "ui_chart",
        "z": "b1d19124.18d7c8",
        "name": "",
        "group": "5a47267e.b59508",
        "order": 12,
        "width": "6",
        "height": "4",
        "label": "Overall level",
        "chartType": "line",
        "legend": "false",
        "xformat": "  ",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "0",
        "ymax": "100",
        "removeOlder": "3",
        "removeOlderPoints": "10",
        "removeOlderUnit": "60",
        "cutout": 0,
        "useOneColor": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "useOldStyle": false,
        "x": 710,
        "y": 440,
        "wires": [
            [],
            []
        ]
    },
    {
        "id": "f7d39636.2a825",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "toArray",
        "func": "msg.payload=msg.payload.toString('utf8');\nvar lines = msg.payload.split(\"\\n\");\nlines = lines[2].slice(1,-1);\nmsg.payload = lines.split(\" \").map(function(item) {\n    return parseInt(item, 10);\n});\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 1020,
        "y": 320,
        "wires": [
            [
                "fa84f949.20af7",
                "b56e24f5.bf19b"
            ]
        ]
    },
    {
        "id": "d61a171d.9382e8",
        "type": "ui_chart",
        "z": "b1d19124.18d7c8",
        "name": "",
        "group": "5a47267e.b59508",
        "order": 11,
        "width": "6",
        "height": "4",
        "label": "Compressor input level (dB)",
        "chartType": "bar",
        "legend": "false",
        "xformat": "auto",
        "interpolate": "linear",
        "nodata": "",
        "dot": true,
        "ymin": "0",
        "ymax": "100",
        "removeOlder": 1,
        "removeOlderPoints": "8",
        "removeOlderUnit": "3600",
        "cutout": 0,
        "useOneColor": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "useOldStyle": false,
        "x": 1420,
        "y": 380,
        "wires": [
            [],
            []
        ]
    },
    {
        "id": "fa84f949.20af7",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "to chart",
        "func": "var m={};\nvar cf=global.get('center_f') || [200,1000,1500,2000,3000,4000,5500,7000];\n\nm.labels = cf;\nm.series = ['Left ear', 'Right ear'];\nm.data = [\n    msg.payload.slice(0,cf.length),\n    msg.payload.slice(cf.length),\n    ];\nreturn {payload:[m]};",
        "outputs": 1,
        "noerr": 0,
        "x": 1200,
        "y": 320,
        "wires": [
            [
                "d61a171d.9382e8"
            ]
        ]
    },
    {
        "id": "b56e24f5.bf19b",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "save chart",
        "func": "var cf=global.get('center_f') || [200,1000,1500,2000,3000,4000,5500,7000];\nvar left_level = msg.payload.slice(0,cf.length);\nvar right_level = msg.payload.slice(cf.length);\n\nvar i;\nvar sum_left=0;\nvar sum_right=0;\nvar overall_level = 0;\nleft_level[0] = 0;\nright_level[0] = 0;\n\nfor (i = 1; i < left_level.length; i++) {\n   left_level[i] = Math.pow(10,left_level[i]/10);\n   sum_left = sum_left + left_level[i];\n   right_level[i] = Math.pow(10,right_level[i]/10);\n   sum_right = sum_right + right_level[i];\n} \n\noverall_level = Math.round(10*(10*Math.log10(sum_left)+10*Math.log10(sum_right))/2)/10;\nglobal.set('overall_level',overall_level);\n\n\nvar time=new Date().getTime();\n\nvar dataarray=global.get('dataarray') ||  [[]];\noverall_level = Number(overall_level);\n\ndataarray[0][dataarray[0].length] = {\"x\":time,\"y\":overall_level};\nif (dataarray[0].length>100){\n    dataarray[0].shift();\n}\nglobal.set('dataarray',dataarray);\n\nvar chart = [{\n    \"series\":[\"Level =\"],\n    \"data\":dataarray,\n    \"labels\":[\"\"],\n    \"time\":time\n}];\n\n\nmsg.payload = chart;\n\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 1210,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "89439d23.84d8f8",
        "type": "inject",
        "z": "b1d19124.18d7c8",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "0",
        "x": 110,
        "y": 80,
        "wires": [
            [
                "83e28fc6.fe79b",
                "e0de5915.d76d98"
            ]
        ]
    },
    {
        "id": "6ce34535.634834",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "read compressor-in levels",
        "func": "msg.payload = \"mha.mhachain.comp.smoothgains_bridge.mhachain.mbc.dc.level_in?\\n\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 580,
        "y": 320,
        "wires": [
            [
                "f3f61447.8a5298"
            ]
        ]
    },
    {
        "id": "404a73a1.5e6dac",
        "type": "tcp request",
        "z": "b1d19124.18d7c8",
        "server": "localhost",
        "port": "33337",
        "out": "time",
        "splitc": "5",
        "name": "Level",
        "x": 670,
        "y": 160,
        "wires": [
            [
                "d5bff4a1.4415c",
                "41ff75fa.3cd274"
            ]
        ]
    },
    {
        "id": "6456759d.f63c0c",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "get level",
        "func": "msg.payload=\"mha.mhachain.rmslevel.level_db?val\\n\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 520,
        "y": 160,
        "wires": [
            [
                "404a73a1.5e6dac"
            ]
        ]
    },
    {
        "id": "d5bff4a1.4415c",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "toString level L",
        "func": "msg.payload=msg.payload.toString('utf8');\nmsg.payload=msg.payload.replace(\"[\", \"\");\nmsg.payload=msg.payload.replace(\"]\", \"\");\nmsg.payload=msg.payload.split(\" \");\nmsg.payload=parseFloat(msg.payload[0]);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 860,
        "y": 160,
        "wires": [
            [
                "26d4d07a.c81c9"
            ]
        ]
    },
    {
        "id": "41ff75fa.3cd274",
        "type": "function",
        "z": "b1d19124.18d7c8",
        "name": "toString level R",
        "func": "msg.payload=msg.payload.toString('utf8');\nmsg.payload=msg.payload.replace(\"[\", \"\");\nmsg.payload=msg.payload.replace(\"]\", \"\");\nmsg.payload=msg.payload.split(\" \");\nmsg.payload=parseFloat(msg.payload[1]);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 860,
        "y": 220,
        "wires": [
            [
                "3877b486.661a74"
            ]
        ]
    },
    {
        "id": "26d4d07a.c81c9",
        "type": "ui_gauge",
        "z": "b1d19124.18d7c8",
        "name": "",
        "group": "5a47267e.b59508",
        "order": 7,
        "width": "3",
        "height": "2",
        "gtype": "gage",
        "title": "Mic level L",
        "label": "",
        "format": "",
        "min": 0,
        "max": "100",
        "colors": [
            "#00b500",
            "#e6e600",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "x": 1110,
        "y": 160,
        "wires": []
    },
    {
        "id": "3877b486.661a74",
        "type": "ui_gauge",
        "z": "b1d19124.18d7c8",
        "name": "",
        "group": "5a47267e.b59508",
        "order": 8,
        "width": "3",
        "height": "2",
        "gtype": "gage",
        "title": "Mic level R",
        "label": "",
        "format": "",
        "min": 0,
        "max": "100",
        "colors": [
            "#00b500",
            "#e6e600",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "x": 1090,
        "y": 220,
        "wires": []
    },
    {
        "id": "bb686c48.08e43",
        "type": "ui_text",
        "z": "a877d21.227c23",
        "group": "401bc39f.af9f54",
        "order": 3,
        "width": "6",
        "height": "1",
        "name": "",
        "label": "Signal generator",
        "format": "{{msg.payload}}",
        "layout": "row-spread",
        "x": 130,
        "y": 120,
        "wires": []
    },
    {
        "id": "6e3ff728.5af1f",
        "type": "ui_text",
        "z": "a877d21.227c23",
        "group": "401bc39f.af9f54",
        "order": 1,
        "width": "6",
        "height": "1",
        "name": "",
        "label": "Compressor settings",
        "format": "{{msg.payload}}",
        "layout": "row-spread",
        "x": 140,
        "y": 20,
        "wires": []
    }
]
