-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
examplesBackup.txt
40 lines (27 loc) · 430 KB
/
examplesBackup.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script type="text/x-red" data-container-name="ManickenPolySynth">
{"version":1,"settings":{"arduino":{"WriteJSONtoExportedFile":false,"ProjectName":"Teensy4PolySynthDemo","Board":{"Platform":"","Board":"","Options":""}},"BiDirDataWebSocketBridge":{"MidiDeviceOut":2},"workspaces":{},"sidebar":{},"palette":{"categoryHeaderTextSize":16,"categoryHeaderHeight":20,"onlyShowOne":false},"editor":{"aceEditorTheme":"chrome"},"devTest":{},"IndexedDBfiles":{"testFileNames":"testFile.txt"},"NodeDefGenerator":{},"NodeDefManager":{},"NodeHelpManager":{},"ControlGUI":{"defaultSendTarget":"2"}},"workspaces":[{"type":"tab","id":"4c6f22c7.190434","label":"Voice","inputs":0,"outputs":0,"export":true,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"Voice_vars1","type":"Variables","name":"noteFreqs","comment":"const float noteFreqs[128] = {8.176, 8.662, 9.177, 9.723, 10.301, 10.913, 11.562, 12.25, 12.978, 13.75, 14.568, 15.434, 16.352, 17.324, 18.354, 19.445, 20.602, 21.827, 23.125, 24.5, 25.957, 27.5, 29.135, 30.868, 32.703, 34.648, 36.708, 38.891, 41.203, 43.654, 46.249, 48.999, 51.913, 55, 58.27, 61.735, 65.406, 69.296, 73.416, 77.782, 82.407, 87.307, 92.499, 97.999, 103.826, 110, 116.541, 123.471, 130.813, 138.591, 146.832, 155.563, 164.814, 174.614, 184.997, 195.998, 207.652, 220, 233.082, 246.942, 261.626, 277.183, 293.665, 311.127, 329.628, 349.228, 369.994, 391.995, 415.305, 440, 466.164, 493.883, 523.251, 554.365, 587.33, 622.254, 659.255, 698.456, 739.989, 783.991, 830.609, 880, 932.328, 987.767, 1046.502, 1108.731, 1174.659, 1244.508, 1318.51, 1396.913, 1479.978, 1567.982, 1661.219, 1760, 1864.655, 1975.533, 2093.005, 2217.461, 2349.318, 2489.016, 2637.02, 2793.826, 2959.955, 3135.963, 3322.438, 3520, 3729.31, 3951.066, 4186.009, 4434.922, 4698.636, 4978.032, 5274.041, 5587.652, 5919.911, 6271.927, 6644.875, 7040, 7458.62, 7902.133, 8372.018, 8869.844, 9397.273, 9956.063, 10548.08, 11175.3, 11839.82, 12543.85};\n","x":100,"y":10,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_vars2","type":"Variables","name":"vars1","comment":"byte note = 0;\nbyte isNoteOn = 0;\nbyte isSustain = 0;\nbyte oscApitchMult = 64; // set at middle\nbyte oscBpitchMult = 64; // set at middle\nbyte oscCpitchMult = 64; // set at middle\nfloat newAmp = 0.0;","x":100,"y":50,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n\n}\n\n","x":100,"y":90,"z":"4c6f22c7.190434","bgColor":"#6FE2E9","wires":[]},{"id":"Voice_code2","type":"Function","name":"note on/off","comment":"/*\n * this takes care of all the tasks that\n * needs to be taken care of when doing\n * a note on/off\n */\n \nvoid noteOn(byte Note, byte velocity)\n{\n float newAmp = 0.0f;\n if (Note >= sizeof(noteFreqs)) return;\n \n note = Note;\n isNoteOn = 1;\n \n newAmp = (float)velocity*(1.0f / 127.0f);\n \n oscA.frequency(GetBendedFreq(oscApitchMult));\n oscB.frequency(GetBendedFreq(oscBpitchMult));\n oscC.frequency(GetBendedFreq(oscCpitchMult));\n\n oscA.amplitude(newAmp);\n oscB.amplitude(newAmp);\n oscC.amplitude(newAmp);\n\n waveTable.playNote(note, velocity);\n \n env.noteOn();\n}\n\nvoid noteOff()\n{\n isNoteOn = 0;\n if (!isSustain)\n {\n env.noteOff();\n waveTable.stop();\n }\n}\n\nbool isNotPlaying()\n{\n if (!env.isActive())\n return true;\n else if(!waveTable.isPlaying())\n return true;\n else\n return false;\n}\n\nfloat GetBendedFreq(byte pitchMult)\n{\n if (pitchMult < 64)\n return noteFreqs[note - 12*(64-pitchMult)];\n else if (pitchMult > 64)\n return noteFreqs[note + 12*(pitchMult-64)];\n else\n return noteFreqs[note];\n}","x":100,"y":130,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_In1","type":"TabInput","name":"modIn1","comment":"","x":410,"y":80,"z":"4c6f22c7.190434","bgColor":"#CCE6FF","wires":[[]]},{"id":"Voice_waveform1","type":"AudioSynthWaveform","name":"oscA","comment":"","x":710,"y":70,"z":"4c6f22c7.190434","bgColor":"#F87A00","wires":[["Voice_mixer1:0"]]},{"id":"Voice_waveform2","type":"AudioSynthWaveform","name":"oscB","comment":"","x":710,"y":110,"z":"4c6f22c7.190434","bgColor":"#3DF861","wires":[["Voice_mixer1:1"]]},{"id":"Voice_waveform3","type":"AudioSynthWaveform","name":"oscC","comment":"","x":710,"y":150,"z":"4c6f22c7.190434","bgColor":"#09B2F8","wires":[["Voice_mixer1:2"]]},{"id":"Voice_wavetable1","type":"AudioSynthWavetable","name":"waveTable","comment":"","x":710,"y":190,"z":"4c6f22c7.190434","bgColor":"#CCAFF8","wires":[["Voice_mixer1:3"]]},{"id":"Voice_ClassComment1","type":"ClassComment","name":"This is a single <b>voice</b> with three \"generators\" + 1xWaveTable and one envelope","x":785,"y":30,"z":"4c6f22c7.190434","bgColor":"#CCFFCC","wires":[]},{"id":"Voice_includeDef1","type":"IncludeDef","name":"\"theMixer.h\"","comment":"","x":930,"y":80,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_mixer1","type":"AudioMixer","name":"mix","inputs":"4","comment":"awdawd","x":1000,"y":120,"z":"4c6f22c7.190434","bgColor":"#E6E0F8","wires":[["Voice_envelope1:0"]]},{"id":"Voice_envelope1","type":"AudioEffectEnvelope","name":"env","comment":"","x":1330,"y":130,"z":"4c6f22c7.190434","bgColor":"#E6E0F8","wires":[["Voice_Out1:0"]]},{"id":"Voice_Out1","type":"TabOutput","name":"Out1","comment":"","x":1610,"y":130,"z":"4c6f22c7.190434","bgColor":"#cce6ff","wires":[]},{"id":"Voice_Slider8","type":"UI_Slider","name":"A","comment":"","w":30,"h":356,"textSize":14,"midiCh":"","midiId":"29","orientation":"v","label":"d.val/d.maxVal","minVal":0,"maxVal":100,"val":29,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#F87A00","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,29,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":970,"y":210,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider9","type":"UI_Slider","name":"B","comment":"","w":30,"h":355,"textSize":14,"midiCh":"","midiId":"30","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":100,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#1AF800","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,30,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":1010,"y":210,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider10","type":"UI_Slider","name":"C","comment":"","w":30,"h":355,"textSize":14,"midiCh":"","midiId":"31","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":98,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":true,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#009FF8","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,31,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":1050,"y":210,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider11","type":"UI_Slider","name":"WT","comment":"","w":30,"h":356,"textSize":14,"midiCh":"","midiId":"32","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":69,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#CCAFF8","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,32,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":1090,"y":210,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_ListBox2","type":"UI_ListBox","name":"OSC A","comment":"","w":119,"h":301,"textSize":20,"midiCh":"","midiId":"20","itemTextSize":"","items":"Sine\nSawtooth\nSquare\nTriangle\nPulse\nSaw. Rev.\nSample H\nVar. Tri.","selectedIndex":5,"selectedIndexOffset":"","headerHeight":40,"itemBGcolor":"#FFFFFF","sendCommand":"var formatted = \"midiSend(0xB0,20,\"+d.selectedIndex+\")\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","x":400,"y":390,"z":"4c6f22c7.190434","bgColor":"#F87A00","wires":[]},{"id":"Voice_ListBox3","type":"UI_ListBox","name":"OSC B","comment":"","w":108,"h":"300","textSize":20,"midiCh":"","midiId":"21","itemTextSize":"","items":"Sine\nSawtooth\nSquare\nTriangle\nPulse\nSaw. Rev.\nSample H\nVar. Tri.","selectedIndex":1,"selectedIndexOffset":"","headerHeight":40,"itemBGcolor":"#FFFFFF","sendCommand":"var formatted = \"midiSend(0xB0,21,\"+d.selectedIndex+\")\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","x":530,"y":390,"z":"4c6f22c7.190434","bgColor":"#3DF861","wires":[]},{"id":"Voice_ListBox4","type":"UI_ListBox","name":"OSC C","comment":"","w":98,"h":301,"textSize":20,"midiCh":"","midiId":"22","itemTextSize":"18","items":"Sine\nSawtooth\nSquare\nTriangle\nPulse\nSaw. Rev.\nSample H\nVar. Tri.","selectedIndex":3,"selectedIndexOffset":"","headerHeight":40,"itemBGcolor":"#FFFFFF","sendCommand":"var formatted = \"midiSend(0xB0,22,\"+d.selectedIndex+\")\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","x":650,"y":390,"z":"4c6f22c7.190434","bgColor":"#09B2F8","wires":[]},{"id":"Voice_ListBox5","type":"UI_ListBox","name":"Instrument","comment":"","w":174,"h":192,"textSize":14,"midiCh":"","midiId":"0","itemTextSize":14,"items":"WaveForm Only\nVelocity Grand Piano\nStereo Grand1\nObie Synth\nMmmmHumSynth","selectedIndex":0,"selectedIndexOffset":"","headerHeight":30,"itemBGcolor":"#FFFFFF","sendCommand":"var formatted = \"midiSend(0xB0,0,\"+d.selectedIndex+\")\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","x":780,"y":500,"z":"4c6f22c7.190434","bgColor":"#CCAFF8","wires":[]},{"id":"Voice_scriptBtn4","type":"UI_ScriptButton","name":"play twinkle twinkle little star","comment":"var count = 0;\nvar toSend = [\"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\",\n \"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 69, 63)\",\n \"midisend(0x80, 69, 63)\",\n \"midisend(0x90, 69, 63)\",\n \"midisend(0x80, 69, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 0, 0)\",\n \"midisend(0x80, 0, 0)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\",\n \"midisend(0x90, 0, 0)\",\n \"midisend(0x80, 0, 0)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 0, 0)\",\n \"midisend(0x80, 0, 0)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 0, 0)\",\n \"midisend(0x80, 0, 0)\",\n \"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\",\n \"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 69, 63)\",\n \"midisend(0x80, 69, 63)\",\n \"midisend(0x90, 69, 63)\",\n \"midisend(0x80, 69, 63)\",\n \"midisend(0x90, 67, 63)\",\n \"midisend(0x80, 67, 63)\",\n \"midisend(0x90, 0, 0)\",\n \"midisend(0x80, 0, 0)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 65, 63)\",\n \"midisend(0x80, 65, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 64, 63)\",\n \"midisend(0x80, 64, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 62, 63)\",\n \"midisend(0x80, 62, 63)\",\n \"midisend(0x90, 60, 63)\",\n \"midisend(0x80, 60, 63)\"\n\n];\nconsole.log(d.name);\nvar interVal = setInterval(function(){\n\n RED.arduino.SendToWebSocket(toSend[count]);\n \n count++;\n if (count === toSend.length) clearInterval(interVal);\n \n \n}, 200);","w":232,"h":30,"textSize":14,"nodes":[],"x":520,"y":740,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_scriptBtn5","type":"UI_ScriptButton","name":"assign qwertyui keyboard buttons to midi send ","comment":"var qs = false;\r\nvar ws = false;\r\nvar es = false;\r\nvar rs = false;\r\nvar ts = false;\r\nvar ys = false;\r\nvar us = false;\r\nvar is = false;\r\n\r\nRED.keyboard.add(/* q */ 81, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,48 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,48 ,127)\");});\r\nRED.keyboard.add(/* w */ 87, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,50 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,50 ,127)\");});\r\nRED.keyboard.add(/* e */ 69, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,52 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,52 ,127)\");});\r\nRED.keyboard.add(/* r */ 82, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,53 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,53 ,127)\");});\r\nRED.keyboard.add(/* t */ 84, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,55 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,55 ,127)\");});\r\nRED.keyboard.add(/* y */ 89, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,57 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,57 ,127)\");});\r\nRED.keyboard.add(/* u */ 85, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,59 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,59 ,127)\");});\r\nRED.keyboard.add(/* i */ 73, function() { RED.arduino.SendToWebSocket(\"midiSend(0x90,60 ,127)\");d3.event.preventDefault();}, function() { RED.arduino.SendToWebSocket(\"midiSend(0x80,60 ,127)\");});","w":306,"h":30,"textSize":14,"nodes":[],"x":770,"y":740,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_scriptBtn1","type":"UI_ScriptButton","name":"auto place sliders - script","comment":"var nsw = 40; // new slider width\nvar nsh = 300; // new slider height\nvar ssp = 30; // slider spacing\nvar count = 6;\nvar nsmav = 100; // new slider max Value\nvar nsmiv = 0; // new slider min value\nvar tlh = 20; // top label height\nvar tlw = 60; // top label width \n\nvar yof = 10; // y offset\n\nvar sliderValues = [ 0,0,0,0,100,0];\nvar topLabelTitles = [\"Delay\", \"Attack\", \"Hold\", \"Decay\", \"Sustain\", \"Release\"];\nvar labelFormats = ['d.val*10 + \"ms\"','d.val*10 + \"ms\"','d.val*10 + \"ms\"','d.val*10 + \"ms\"','d.val+\"%\"','d.val*10 + \"ms\"'];\n\nvar colorMap = generateColorMap(); // provided by RED.view\n\nvar colorMapDeltaIndex = parseInt(colorMap.length/count);\nvar deltaValue = nsmav/count;\n//console.warn(colorMap);\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.SliderNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (d.nodes == undefined)\n d.nodes = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < d.nodes.length; i++)\n {\n removeNode(d.nodes[i]);\n }\n d.nodes = [];\n}\nredraw(true);\n\nfor (var i = 0; i < count; i++)\n{\n if (posMode === 2)\n {\n var xpos = i*(nsw+ssp) + (d.x-d.w/2 + nsw/2);\n var ypos = (d.y+d.h/2+nsh/2)+tlh + yof;\n }\n else\n {\n var xpos = i*(nsw+ssp) + (d.x);\n var ypos = (d.y+d.h)+tlh + yof;\n }\n var newSlider = AddNewNode(xpos, ypos, \"UI_Slider\");\n newSlider.name = topLabelTitles[i];\n newSlider.label = labelFormats[i];\n newSlider.orientation = \"v\";\n //newSlider.midiId = (100+i)\n newSlider.sendCommand = 'var data = \"midisend(0xB0,'+(100+i)+',\" + d.val + \");\"\\n' +\n 'RED.BiDirDataWebSocketBridge.SendToWebSocket(data);';\n newSlider.h = nsh;\n newSlider.w = nsw;\n newSlider.maxValue = nsmav;\n newSlider.minValue = nsmiv;\n newSlider.val = sliderValues[i];\n newSlider.dirty = true;\n newSlider.bgColor = \"#808080\";\n newSlider.barFGcolor = colorMap[colorMapDeltaIndex*i];\n newSlider.parentGroup = d;\n d.nodes.push(newSlider);\n \n if (posMode === 2)\n ypos = (d.y+d.h/2+tlh/2) + yof;\n else\n ypos = (d.y+d.h) + yof;\n \n \n}\nredraw(true);\n\n","w":191,"h":30,"textSize":14,"nodes":["Voice_Slider1","Voice_Slider3","Voice_Slider4","Voice_Slider5","Voice_Slider6","Voice_Slider7"],"x":1180,"y":180,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_Slider12","type":"UI_Slider","name":"A","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"23","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":14,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#F87A00","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,23,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":10,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider13","type":"UI_Slider","name":"B","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"24","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":8,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#1AF800","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,24,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":50,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider14","type":"UI_Slider","name":"C","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"25","orientation":"v","label":"d.val","minVal":0,"maxVal":100,"val":8,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":true,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#009FF8","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,25,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":90,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Label7","type":"UI_Label","name":"Pulse width","comment":"","w":92,"h":30,"textSize":14,"x":20,"y":330,"z":"4c6f22c7.190434","bgColor":"#F6F8BC","wires":[]},{"id":"Voice_Slider15","type":"UI_Slider","name":"A","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"108","orientation":"v","label":"d.val","minVal":48,"maxVal":80,"val":64,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#F87A00","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,108,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":140,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider16","type":"UI_Slider","name":"B","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"109","orientation":"v","label":"d.val","minVal":48,"maxVal":80,"val":64,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#1AF800","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,109,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":180,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider17","type":"UI_Slider","name":"C","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"110","orientation":"v","label":"d.val","minVal":48,"maxVal":80,"val":64,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":true,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#009FF8","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,110,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":220,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Label8","type":"UI_Label","name":"FreqMult","comment":"","w":91,"h":30,"textSize":14,"x":150,"y":330,"z":"4c6f22c7.190434","bgColor":"#F6F8BC","wires":[]},{"id":"Voice_Slider18","type":"UI_Slider","name":"A","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"26","orientation":"v","label":"d.val","minVal":0,"maxVal":120,"val":0,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#F87A00","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,26,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":270,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider19","type":"UI_Slider","name":"B","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"27","orientation":"v","label":"d.val","minVal":0,"maxVal":120,"val":0,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#1AF800","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,27,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":310,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider20","type":"UI_Slider","name":"C","comment":"","w":30,"h":284,"textSize":14,"midiCh":"","midiId":"28","orientation":"v","label":"d.val","minVal":0,"maxVal":120,"val":0,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":true,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#009FF8","sendFormat":"\"midisend(0xB0,\"+d.midiId+\",\" + d.val + \");\"","sendCommand":"var data = \"midisend(0xB0,28,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","x":350,"y":390,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Label9","type":"UI_Label","name":"Phase","comment":"","w":90,"h":30,"textSize":16,"x":280,"y":330,"z":"4c6f22c7.190434","bgColor":"#F6F8BC","wires":[]},{"id":"Voice_scriptBtn3","type":"UI_ScriptButton","name":"auto place full size piano - script1","comment":"var niw = 150; // new item width\nvar nih = 150; // new item height\nvar nis = 0; // item spacing\nvar blackKeysWidthDiff = 6;\nvar blackKeyLabelsVisible = false;\nvar whiteKeyLabelsVisible = false;\nvar count = 11;\nvar newType = \"UI_Piano\";\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.PianoNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (d.nodes == undefined)\n d.nodes = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < d.nodes.length; i++)\n {\n removeNode(d.nodes[i]);\n }\n d.nodes = [];\n}\nredraw(true);\nconsole.warn(\"script name:\" + d.name +\":\"+ d.x + \":\" + d.y + \":\" + d.w + \":\" +d.h);\nfor (var i = 0; i < count; i++)\n{\n var newPiano = AddNewNode(0, 0, newType);\n newPiano.name = \"octave\" + i;\n //newPiano.midiCh = 0;\n newPiano.octave = i;\n newPiano.sendCommand = 'var midiCh = 0;\\n' +\n 'var formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\\n' + \n 'RED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);';\n newPiano.h = nih;\n newPiano.w = niw;\n newPiano.bgColor = \"#A0A0A0\"; // Title background bgColor\n newPiano.blackKeysColor = \"#303030\";\n newPiano.whiteKeysColor = \"#FFFFFF\";\n newPiano.blackKeyLabelsVisible = blackKeyLabelsVisible;\n newPiano.whiteKeyLabelsVisible = whiteKeyLabelsVisible;\n if (posMode === 2)\n {\n newPiano.x = i*(niw+nis) + (d.x-d.w/2 + niw/2);\n newPiano.y = (d.y+d.h/2+nih/2);\n }\n else\n {\n newPiano.x = i*(niw+nis) + (d.x);\n newPiano.y = (d.y+d.h);\n }\n newPiano.blackKeysWidthDiff = blackKeysWidthDiff;\n newPiano.dirty = true;\n \n newPiano.parentGroup = d;\n d.nodes.push(newPiano);\n \n //RED.view.PianoNodeListTemp.push(newPiano);\n \n}\nredraw(true);","w":299,"h":30,"textSize":14,"nodes":["Voice_Piano1","Voice_Piano2","Voice_Piano3","Voice_Piano4","Voice_Piano5","Voice_Piano6","Voice_Piano7","Voice_Piano8","Voice_Piano9","Voice_Piano10","Voice_Piano11"],"x":20,"y":760,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_group1","type":"group","name":"envelope","comment":"","w":446,"h":391,"textSize":14,"nodes":["Voice_Slider2","Voice_Slider21","Voice_Slider22","Voice_Slider23","Voice_Slider24","Voice_Slider25"],"x":1870,"y":250,"z":"4c6f22c7.190434","bgColor":"#DDFFBB","wires":[]},{"id":"Voice_Slider2","type":"UI_Slider","name":"Delay1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":57,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,100, \" + d.val + \");\"","parentGroup":"Voice_group1","x":1895.0000305175781,"y":310,"z":"4c6f22c7.190434","bgColor":"#ff0000","wires":[]},{"id":"Voice_Slider21","type":"UI_Slider","name":"Attack1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":62,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,101, \" + d.val + \");\"","parentGroup":"Voice_group1","x":1965.0000305175781,"y":310,"z":"4c6f22c7.190434","bgColor":"#ffff00","wires":[]},{"id":"Voice_Slider22","type":"UI_Slider","name":"Hold1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":62,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,102, \" + d.val + \");\"","parentGroup":"Voice_group1","x":2035.0000305175781,"y":310,"z":"4c6f22c7.190434","bgColor":"#00ff00","wires":[]},{"id":"Voice_Slider23","type":"UI_Slider","name":"Decay1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":64,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,103, \" + d.val + \");\"","parentGroup":"Voice_group1","x":2105.000030517578,"y":310,"z":"4c6f22c7.190434","bgColor":"#00ffff","wires":[]},{"id":"Voice_Slider24","type":"UI_Slider","name":"Sustain1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val+\"%\"","minVal":0,"maxVal":100,"val":63,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,104, \" + d.val + \");\"","parentGroup":"Voice_group1","x":2175.000030517578,"y":310,"z":"4c6f22c7.190434","bgColor":"#0000ff","wires":[]},{"id":"Voice_Slider25","type":"UI_Slider","name":"Release1","comment":"","w":40,"h":300,"textSize":14,"orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":68,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","sendFormat":"\"midisend(0xB0,105, \" + d.val + \");\"","parentGroup":"Voice_group1","x":2245.000030517578,"y":310,"z":"4c6f22c7.190434","bgColor":"#ff00ff","wires":[]},{"id":"Voice_Button1","type":"UI_Button","name":"get all values","comment":"","w":100,"h":34,"textSize":14,"midiCh":"","midiId":"","pressAction":"midisend(0xB0, 119, 0)","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":"true","x":360,"y":710,"z":"4c6f22c7.190434","bgColor":"#F6F8BC","wires":[]},{"id":"Voice_scriptBtn2","type":"UI_ScriptButton","name":"scriptBtn","comment":"","w":100,"h":30,"textSize":14,"nodes":[],"x":638,"y":1177,"z":"4c6f22c7.190434","bgColor":"#ddffbb","wires":[]},{"id":"Voice_Piano1","type":"UI_Piano","name":"octave0","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":0,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":20,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano2","type":"UI_Piano","name":"octave1","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":1,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":170,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano3","type":"UI_Piano","name":"octave2","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":2,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":320,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano4","type":"UI_Piano","name":"octave3","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":3,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":470,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano5","type":"UI_Piano","name":"octave4","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":4,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":620,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano6","type":"UI_Piano","name":"octave5","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":5,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":770,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano7","type":"UI_Piano","name":"octave6","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":6,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":920,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano8","type":"UI_Piano","name":"octave7","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":7,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1070,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano9","type":"UI_Piano","name":"octave8","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":8,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1220,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano10","type":"UI_Piano","name":"octave9","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":9,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1370,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Piano11","type":"UI_Piano","name":"octave10","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":10,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1520,"y":790,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"Voice_scriptBtn3","z":"4c6f22c7.190434","bgColor":"#A0A0A0","wires":[]},{"id":"Voice_Slider1","type":"UI_Slider","name":"Delay","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":46,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"m","autoReturn":false,"returnValue":"mid","barFGcolor":"#FF0000","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,100,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1180,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider3","type":"UI_Slider","name":"Attack","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":77,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#FFFF00","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,101,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1250,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider4","type":"UI_Slider","name":"Hold","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":72,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#00ff00","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,102,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1320,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider5","type":"UI_Slider","name":"Decay","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":55,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#00ffff","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,103,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1390,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider6","type":"UI_Slider","name":"Sustain","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val+\"%\"","minVal":0,"maxVal":100,"val":56,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#0000ff","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,104,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1460,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]},{"id":"Voice_Slider7","type":"UI_Slider","name":"Release","comment":"","w":40,"h":300,"textSize":14,"midiCh":"0","midiId":"0","orientation":"v","label":"d.val*10 + \"ms\"","minVal":0,"maxVal":100,"val":57,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#ff00ff","sendFormat":"","sendCommand":"var data = \"midisend(0xB0,105,\" + d.val + \");\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"Voice_scriptBtn1","x":1530,"y":240,"z":"4c6f22c7.190434","bgColor":"#808080","wires":[]}]},{"type":"tab","id":"Main","label":"Synth","inputs":0,"outputs":0,"export":true,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"SynthMain_usb1","type":"AudioInputUSB","name":"usb1","comment":"","x":85,"y":90,"z":"Main","bgColor":"#E6E0F8","wires":[[],[]]},{"id":"SynthMain_ClassComment1","type":"ClassComment","name":"This is the root class of any sound objects","x":210,"y":30,"z":"Main","bgColor":"#CCFFCC","wires":[]},{"id":"Main_Voice1","type":"Voice","name":"voices[VOICE_COUNT]","x":250,"y":150,"z":"Main","bgColor":"#CCFFCC","wires":[["Main_mixer1:0"]]},{"id":"Synth_includeDef2","type":"IncludeDef","name":"<MIDI.h>","comment":"","parentGroup":"Synth_group3","x":148.75,"y":254,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_includeDef1","type":"IncludeDef","name":"<EEPROM.h>","comment":"","parentGroup":"Synth_group3","x":148.75,"y":294,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code10","type":"Function","name":"instrument files to manually download","comment":"// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/VelocityGrandPiano_samples.cpp\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/VelocityGrandPiano_samples.h\n\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/StereoGrand1_samples.cpp\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/StereoGrand1_samples.h\n\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/ObieSynth1_samples.cpp\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/ObieSynth1_samples.h\n\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/MmmmHumSynth_samples.cpp\n// https://github.com/manicken/teensy4polysynth2/blob/main/src/Instruments/MmmmHumSynth_samples.h\n","parentGroup":"Synth_group1","x":150,"y":410.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_includeDef1","type":"IncludeDef","name":"\"VelocityGrandPiano_samples.h\"","comment":"","parentGroup":"Synth_group1","x":150,"y":460.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_includeDef4","type":"IncludeDef","name":"\"StereoGrand1_samples.h\"","comment":"","parentGroup":"Synth_group1","x":150,"y":500.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_includeDef3","type":"IncludeDef","name":"\"ObieSynth1_samples.h\"","comment":"","parentGroup":"Synth_group1","x":150,"y":540.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_includeDef2","type":"IncludeDef","name":"\"MmmmHumSynth_samples.h\"","comment":"","parentGroup":"Synth_group1","x":150,"y":580.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_dontRemoveFiles1","type":"DontRemoveCodeFiles","name":"dontRemove instrument Files","comment":"VelocityGrandPiano_samples.h\nMmmmHumSynth_samples.h\nObieSynth1_samples.h\nStereoGrand1_samples.h\nVelocityGrandPiano_samples.cpp\nMmmmHumSynth_samples.cpp\nObieSynth1_samples.cpp\nStereoGrand1_samples.cpp","parentGroup":"Synth_group1","x":150,"y":630.25,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Main_constValue1","type":"ConstValue","name":"VOICE_COUNT","value":"40","valueType":"int","x":345,"y":75,"z":"Main","bgColor":"#EB9834","wires":[]},{"id":"Main_codeFile1","type":"CodeFile","name":"theMixer.h","comment":"/* Audio Library for Teensy 3.X\r\n * Copyright (c) 2014, Paul Stoffregen, [email protected]\r\n *\r\n * Development of this audio library was funded by PJRC.COM, LLC by sales of\r\n * Teensy and Audio Adaptor boards. Please support PJRC's efforts to develop\r\n * open source software by purchasing Teensy or other PJRC products.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice, development funding notice, and this permission\r\n * notice shall be included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n#ifndef themixer_h_\r\n#define themixer_h_\r\n\r\n#include <Arduino.h>\r\n#include <AudioStream.h>\r\n\r\n//#define AudioMixer4 AudioMixer<4>\r\n\r\n#if defined(__ARM_ARCH_7EM__)\r\n\r\n#define MULTI_UNITYGAIN 65536\r\n#define MULTI_UNITYGAIN_F 65536.0f\r\n#define MAX_GAIN 32767.0f\r\n#define MIN_GAIN -32767.0f\r\n#define MULT_DATA_TYPE int32_t\r\n\r\n#elif defined(KINETISL)\r\n\r\n#define MULTI_UNITYGAIN 256\r\n#define MULTI_UNITYGAIN_F 256.0f\r\n#define MAX_GAIN 127.0f\r\n#define MIN_GAIN -127.0f\r\n#define MULT_DATA_TYPE int16_t\r\n\r\n#endif\r\n\r\ntemplate <int NN> class AudioMixer : public AudioStream\r\n{\r\npublic:\r\n AudioMixer(void) : AudioStream(NN, inputQueueArray) {\r\n for (int i=0; i<NN; i++) multiplier[i] = MULTI_UNITYGAIN;\r\n } \r\n virtual void update();\r\n \r\n /**\r\n * this sets the individual gains\r\n * @param channel\r\n * @param gain\r\n */\r\n void gain(unsigned int channel, float gain);\r\n /**\r\n * set all channels to specified gain\r\n * @param gain\r\n */\r\n void gain(float gain);\r\n\r\nprivate:\r\n MULT_DATA_TYPE multiplier[NN];\r\n audio_block_t *inputQueueArray[NN];\r\n};\r\n\r\n// the following Forward declarations \r\n// must be defined when we use template \r\n// the compiler throws some warnings that should be errors otherwise\r\n\r\nstatic int32_t signed_multiply_32x16b(int32_t a, uint32_t b); \r\nstatic int32_t signed_multiply_32x16t(int32_t a, uint32_t b);\r\nstatic int32_t signed_saturate_rshift(int32_t val, int bits, int rshift);\r\nstatic uint32_t pack_16b_16b(int32_t a, int32_t b);\r\nstatic uint32_t signed_add_16_and_16(uint32_t a, uint32_t b);\r\n\r\n// because of the template use applyGain and applyGainThenAdd functions\r\n// must be in this file and NOT in cpp file\r\n#if defined(__ARM_ARCH_7EM__)\r\n\r\n static void applyGain(int16_t *data, int32_t mult)\r\n {\r\n uint32_t *p = (uint32_t *)data;\r\n const uint32_t *end = (uint32_t *)(data + AUDIO_BLOCK_SAMPLES);\r\n\r\n do {\r\n uint32_t tmp32 = *p; // read 2 samples from *data\r\n int32_t val1 = signed_multiply_32x16b(mult, tmp32);\r\n int32_t val2 = signed_multiply_32x16t(mult, tmp32);\r\n val1 = signed_saturate_rshift(val1, 16, 0);\r\n val2 = signed_saturate_rshift(val2, 16, 0);\r\n *p++ = pack_16b_16b(val2, val1);\r\n } while (p < end);\r\n }\r\n\r\n static void applyGainThenAdd(int16_t *data, const int16_t *in, int32_t mult)\r\n {\r\n uint32_t *dst = (uint32_t *)data;\r\n const uint32_t *src = (uint32_t *)in;\r\n const uint32_t *end = (uint32_t *)(data + AUDIO_BLOCK_SAMPLES);\r\n\r\n if (mult == MULTI_UNITYGAIN) {\r\n do {\r\n uint32_t tmp32 = *dst;\r\n *dst++ = signed_add_16_and_16(tmp32, *src++);\r\n tmp32 = *dst;\r\n *dst++ = signed_add_16_and_16(tmp32, *src++);\r\n } while (dst < end);\r\n } else {\r\n do {\r\n uint32_t tmp32 = *src++; // read 2 samples from *data\r\n int32_t val1 = signed_multiply_32x16b(mult, tmp32);\r\n int32_t val2 = signed_multiply_32x16t(mult, tmp32);\r\n val1 = signed_saturate_rshift(val1, 16, 0);\r\n val2 = signed_saturate_rshift(val2, 16, 0);\r\n tmp32 = pack_16b_16b(val2, val1);\r\n uint32_t tmp32b = *dst;\r\n *dst++ = signed_add_16_and_16(tmp32, tmp32b);\r\n } while (dst < end);\r\n }\r\n }\r\n\r\n#elif defined(KINETISL)\r\n\r\n static void applyGain(int16_t *data, int32_t mult)\r\n {\r\n const int16_t *end = data + AUDIO_BLOCK_SAMPLES;\r\n\r\n do {\r\n int32_t val = *data * mult;\r\n *data++ = signed_saturate_rshift(val, 16, 0);\r\n } while (data < end);\r\n }\r\n\r\n static void applyGainThenAdd(int16_t *dst, const int16_t *src, int32_t mult)\r\n {\r\n const int16_t *end = dst + AUDIO_BLOCK_SAMPLES;\r\n\r\n if (mult == MULTI_UNITYGAIN) {\r\n do {\r\n int32_t val = *dst + *src++;\r\n *dst++ = signed_saturate_rshift(val, 16, 0);\r\n } while (dst < end);\r\n } else {\r\n do {\r\n int32_t val = *dst + ((*src++ * mult) >> 8); // overflow possible??\r\n *dst++ = signed_saturate_rshift(val, 16, 0);\r\n } while (dst < end);\r\n }\r\n }\r\n#endif\r\n\r\ntemplate <int NN> void AudioMixer<NN>::gain(unsigned int channel, float gain) {\r\n if (channel >= NN) return;\r\n if (gain > MAX_GAIN) gain = MAX_GAIN;\r\n else if (gain < MIN_GAIN) gain = MIN_GAIN;\r\n multiplier[channel] = gain * MULTI_UNITYGAIN_F; // TODO: proper roundoff?\r\n}\r\n\r\ntemplate <int NN> void AudioMixer<NN>::gain(float gain) {\r\n for (int i = 0; i < NN; i++) {\r\n if (gain > MAX_GAIN) gain = MAX_GAIN;\r\n else if (gain < MIN_GAIN) gain = MIN_GAIN;\r\n multiplier[i] = gain * MULTI_UNITYGAIN_F; // TODO: proper roundoff?\r\n } \r\n}\r\n\r\ntemplate <int NN> void AudioMixer<NN>::update() {\r\n audio_block_t *in, *out=NULL;\r\n unsigned int channel;\r\n for (channel=0; channel < NN; channel++) {\r\n if (!out) {\r\n out = receiveWritable(channel);\r\n if (out) {\r\n int32_t mult = multiplier[channel];\r\n if (mult != MULTI_UNITYGAIN) applyGain(out->data, mult);\r\n }\r\n } else {\r\n in = receiveReadOnly(channel);\r\n if (in) {\r\n applyGainThenAdd(out->data, in->data, multiplier[channel]);\r\n release(in);\r\n }\r\n }\r\n }\r\n if (out) {\r\n transmit(out);\r\n release(out);\r\n }\r\n}\r\n// this class and function forces include \r\n// of functions applyGainThenAdd and applyGain used by the template\r\nclass DummyClass\r\n{\r\n public:\r\n virtual void dummyFunction();\r\n};\r\nvoid DummyClass::dummyFunction() {\r\n applyGainThenAdd(0, 0, 0);\r\n applyGain(0,0);\r\n \r\n}\r\n\r\n#endif","x":330,"y":260,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_vars1","type":"Variables","name":"vars2","comment":"#define NOTE_PRESSED_STATE_LED 6\n#define NOTE_OVERFLOWN_LED 5\n#define InstrumentCount 5\n\nconst float DIV127 = (1.0 / 127.0);\nconst float DIV100 = 0.01;\nconst float DIV64 = (1.0/64.0);\nconst float DIV360BY127 = (360.0/127.0);\nconst float DIV360BY120 = (3.0);\n\nbyte oscAwaveform = WAVEFORM_SINE;\nbyte oscBwaveform = WAVEFORM_SINE;\nbyte oscCwaveform = WAVEFORM_SINE;\n\nbyte mixVoices_gains = 100;\n\nbyte oscAamp = 100;\nbyte oscBamp = 100;\nbyte oscCamp = 100;\nbyte oscDamp = 100;\n\nbyte oscApulsewidth = 0;\nbyte oscBpulsewidth = 0;\nbyte oscCpulsewidth = 0;\n\nbyte oscAphase = 0;\nbyte oscBphase = 0;\nbyte oscCphase = 0;\n\nbyte envDelay = 0;\nbyte envAttack = 0;\nbyte envHold = 0;\nbyte envDecay = 0;\nbyte envSustain = 100;\nbyte envRelease = 0;\n\nbyte currentWTinstrument = 0;\n\n// global scope\nbyte oscApitchMult = 64; // set at middle\nbyte oscBpitchMult = 64; // set at middle\nbyte oscCpitchMult = 64; // set at middle","x":330,"y":300,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Main_mixer1","type":"AudioMixer","name":"mixVoices","inputs":"1","comment":"","x":520,"y":150,"z":"Main","bgColor":"#E6E0F8","wires":[["SynthMain_pt8211_2_1:0","SynthMain_pt8211_2_1:1","Synth_usb1:0","Synth_usb1:1"]]},{"id":"SynthMain_code3","type":"Function","name":"begin function","comment":"void begin()\n{\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].begin();\n mixVoices.gain(i, 1.0f/VOICE_COUNT);\n }\n pinMode(NOTE_OVERFLOWN_LED, OUTPUT);\n digitalWrite(NOTE_OVERFLOWN_LED, LOW);\n\n pinMode(NOTE_PRESSED_STATE_LED, OUTPUT);\n digitalWrite(NOTE_PRESSED_STATE_LED, LOW);\n\n EEPROM_ReadSettings();\n\n set_InstrumentByIndex(1); // VelocityGrandPiano\n //mixFinal.gain(1.0f);\n}\n","parentGroup":"Synth_group2","x":522.75,"y":316.5,"z":"Main","bgColor":"#6FE2E9","wires":[]},{"id":"SynthMain_code1","type":"Function","name":"noteOnOff","comment":"void noteOn(byte note, byte velocity)\n{\n digitalWrite(NOTE_PRESSED_STATE_LED, HIGH); //any note \"pressed\"\n // fist checks if this note is allready playing\n // it that is the case then it \"reuses\" this \"slot\"\n // this makes sure that not all \"slots\" is filled\n // with the same playing note\n // if the MIDI keyboard is for some reason\n // not sending a noteoff (my keyboard is sometimes glitching)\n // and when sending MIDI from my computer for fast playing songs\n for (int i = 0; i < VOICE_COUNT; i++) \n {\n // first check if the note was played recently\n if (voices[i].note == note) \n {\n voices[i].noteOn(note, velocity);\n digitalWrite(NOTE_OVERFLOWN_LED, LOW);\n return; \n }\n }\n // then if the note has not allready been played\n // // second see if there is any free \"spot\"\n for (int i = 0; i < VOICE_COUNT; i++) \n {\n if (voices[i].isNotPlaying())\n {\n voices[i].noteOn(note, velocity);\n //digitalWrite(NOTE_OVERFLOWN_LED, LOW); // clear overflown notification\n return;\n }\n }\n digitalWrite(NOTE_OVERFLOWN_LED, HIGH); // this is a notification that there was no free spots\n}\n\nvoid noteOff(byte note)\n{\n digitalWrite(NOTE_PRESSED_STATE_LED, LOW); //any note \"released\"\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n if (voices[i].note == note)\n {\n voices[i].noteOff();\n return;\n }\n }\n}\n","parentGroup":"Synth_group2","x":522.75,"y":356.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code9","type":"Function","name":"sustain - functions","comment":"\nvoid activateSustain()\n{\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].isSustain = 1;\n }\n}\n\nvoid deactivateSustain()\n{\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].isSustain = 0;\n if (!voices[i].isNoteOn)\n voices[i].noteOff();\n }\n}","parentGroup":"Synth_group2","x":522.75,"y":396.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code2","type":"Function","name":"set_Instrument - functions","comment":"\nvoid set_InstrumentByIndex(byte index)\n{\n currentWTinstrument = index;\n switch(index)\n {\n case 0:\n SetWaveForm_As_Primary();\n break;\n case 1:\n SetWaveTable_As_Primary();\n set_Instrument(VelocityGrandPiano);\n //synth_set_Instrument(_16layerspiano);\n break;\n case 2:\n SetWaveTable_As_Primary();\n set_Instrument(StereoGrand1);\n break;\n case 3:\n SetWaveTable_As_Primary();\n set_Instrument(ObieSynth1);\n break;\n case 4:\n SetWaveTable_As_Primary();\n set_Instrument(MmmmHumSynth);\n break;\n default:\n break;\n }\n}\n\nvoid set_Instrument(const AudioSynthWavetable::instrument_data &instrument)\n{\n for (int i = 0; i< VOICE_COUNT; i++)\n {\n voices[i].waveTable.setInstrument(instrument);\n voices[i].waveTable.amplitude(1.0);\n }\n}\n\nvoid set_mixVoices_gains(byte value)\n{\n if (value > 100) value = 100;\n mixVoices_gains = value;\n for (int i = 0; i < VOICE_COUNT; i++)\n mixVoices.gain(i, value*DIV100);\n}\n\nvoid SetWaveTable_As_Primary()\n{\n set_OSC_A_amplitude(0);\n set_OSC_B_amplitude(0);\n set_OSC_C_amplitude(0);\n set_OSC_D_amplitude(100);\n set_mixVoices_gains(100);\n}\n\nvoid SetWaveForm_As_Primary()\n{\n set_OSC_A_amplitude(100);\n set_OSC_B_amplitude(100);\n set_OSC_C_amplitude(100);\n set_OSC_D_amplitude(0);\n set_mixVoices_gains(3);\n}","parentGroup":"Synth_group2","x":522.75,"y":436.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code3","type":"Function","name":"set_OSC_x_waveform - functions","comment":"\nvoid set_OSC_A_waveform(byte wf)\n{\n if (wf > 8) wf = 8;\n oscAwaveform = wf;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscA.begin(wf);\n }\n}\n\nvoid set_OSC_B_waveform(byte wf)\n{\n if (wf > 8) wf = 8;\n oscBwaveform = wf;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscB.begin(wf);\n }\n}\n\nvoid set_OSC_C_waveform(byte wf)\n{\n if (wf > 8) wf = 8;\n oscCwaveform = wf;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscC.begin(wf);\n\n //voices[i].oscD.begin(wf); // experimental\n }\n}","parentGroup":"Synth_group2","x":522.75,"y":476.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code4","type":"Function","name":"set_OSC_x_pulseWidth - functions","comment":"\nvoid set_OSC_A_pulseWidth(byte value)\n{\n if (value > 100) value = 100;\n oscApulsewidth = value;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscA.pulseWidth(value*DIV100);\n }\n}\n\nvoid set_OSC_B_pulseWidth(byte value)\n{\n if (value > 100) value = 100;\n oscBpulsewidth = value;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscB.pulseWidth(value*DIV100);\n }\n}\n\nvoid set_OSC_C_pulseWidth(byte value)\n{\n if (value > 100) value = 100;\n oscCpulsewidth = value;\n for (int i = 0; i < VOICE_COUNT; i++)\n {\n voices[i].oscC.pulseWidth(value*DIV100);\n }\n}","parentGroup":"Synth_group2","x":522.75,"y":516.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code5","type":"Function","name":"set_OSC_x_phase - functions","comment":"\r\nvoid set_OSC_A_phase(byte value)\r\n{\r\n if (value > 120) value = 120;\r\n oscAphase = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscA.phase(value*DIV360BY120);\r\n }\r\n}\r\n\r\nvoid set_OSC_B_phase(byte value)\r\n{\r\n if (value > 120) value = 120;\r\n oscBphase = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscB.phase(value*DIV360BY120);\r\n }\r\n}\r\n\r\nvoid set_OSC_C_phase(byte value)\r\n{\r\n if (value > 120) value = 120;\r\n oscCphase = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscC.phase(value*DIV360BY120);\r\n }\r\n}","parentGroup":"Synth_group2","x":522.75,"y":556.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code6","type":"Function","name":"set_OSC_x_amplitude (voice-mixer) - functions","comment":"\r\nvoid set_OSC_A_amplitude(byte value)\r\n{\r\n if (value > 100) value = 100;\r\n oscAamp = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].mix.gain(0,value*DIV100);\r\n }\r\n}\r\n\r\nvoid set_OSC_B_amplitude(byte value)\r\n{\r\n if (value > 100) value = 100;\r\n oscBamp = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].mix.gain(1, value*DIV100);\r\n }\r\n}\r\n\r\nvoid set_OSC_C_amplitude(byte value)\r\n{\r\n if (value > 100) value = 100;\r\n oscCamp = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].mix.gain(2, value*DIV100);\r\n }\r\n}\r\n\r\n// this is the wavetable\r\nvoid set_OSC_D_amplitude(byte value)\r\n{\r\n if (value > 100) value = 100;\r\n oscDamp = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].mix.gain(3, value*DIV100);\r\n }\r\n}","parentGroup":"Synth_group2","x":522.75,"y":596.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code7","type":"Function","name":"set_envelope - functions","comment":"\r\nvoid set_envelope_delay(byte value)\r\n{\r\n if (value > 127) value = 127;\r\n envDelay = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.delay((float)value*(float)10);\r\n }\r\n}\r\n\r\nvoid set_envelope_attack(byte value)\r\n{\r\n if (value > 127) value = 127;\r\n envAttack = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.attack((float)value*(float)10);\r\n }\r\n}\r\n\r\nvoid set_envelope_hold(byte value)\r\n{\r\n if (value > 127) value = 127;\r\n envHold = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.hold((float)value*(float)10);\r\n }\r\n}\r\n\r\nvoid set_envelope_decay(byte value)\r\n{\r\n if (value > 127) value = 127;\r\n envDecay = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.decay((float)value*(float)10);\r\n }\r\n}\r\n\r\nvoid set_envelope_sustain(byte value)\r\n{\r\n if (value > 100) value = 100;\r\n envSustain = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.sustain(value*DIV100);\r\n }\r\n}\r\n\r\nvoid set_envelope_release(byte value)\r\n{\r\n if (value > 127) value = 127;\r\n envRelease = value;\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].env.release((float)value*(float)10);\r\n }\r\n}","parentGroup":"Synth_group2","x":522.75,"y":636.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code8","type":"Function","name":"set_OSC_x_freqMult - functions","comment":"\r\nvoid set_OSC_A_freqMult(byte value)\r\n{\r\n if (value > 127) value = 64;\r\n oscApitchMult = value; // local storage for LOAD/SAVE/sendAllSettings()\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscApitchMult = value;\r\n }\r\n}\r\n\r\nvoid set_OSC_B_freqMult(byte value)\r\n{\r\n if (value > 127) value = 64;\r\n oscBpitchMult = value; // local storage for LOAD/SAVE/sendAllSettings()\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscBpitchMult = value;\r\n }\r\n}\r\n\r\nvoid set_OSC_C_freqMult(byte value)\r\n{\r\n if (value > 127) value = 64;\r\n oscCpitchMult = value; // local storage for LOAD/SAVE/sendAllSettings()\r\n for (int i = 0; i < VOICE_COUNT; i++)\r\n {\r\n voices[i].oscCpitchMult = value;\r\n }\r\n}","parentGroup":"Synth_group2","x":522.75,"y":676.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"Synth_code1","type":"Function","name":"settings send/Load/Save","comment":"void sendAllSettings()\r\n{\r\n usbMIDI.sendControlChange(0, currentWTinstrument, 0x00);\r\n usbMIDI.sendControlChange(20, oscAwaveform, 0x00);\r\n usbMIDI.sendControlChange(21, oscBwaveform, 0x00);\r\n usbMIDI.sendControlChange(22, oscCwaveform, 0x00);\r\n usbMIDI.sendControlChange(23, oscApulsewidth, 0x00);\r\n usbMIDI.sendControlChange(24, oscBpulsewidth, 0x00);\r\n usbMIDI.sendControlChange(25, oscCpulsewidth, 0x00);\r\n usbMIDI.sendControlChange(26, oscAphase, 0x00);\r\n usbMIDI.sendControlChange(27, oscBphase, 0x00);\r\n usbMIDI.sendControlChange(28, oscCphase, 0x00);\r\n usbMIDI.sendControlChange(29, oscAamp, 0x00);\r\n usbMIDI.sendControlChange(30, oscBamp, 0x00);\r\n usbMIDI.sendControlChange(31, oscCamp, 0x00);\r\n usbMIDI.sendControlChange(32, oscDamp, 0x00);\r\n usbMIDI.sendControlChange(33, mixVoices_gains, 0x00);\r\n usbMIDI.sendControlChange(100, envDelay, 0x00);\r\n usbMIDI.sendControlChange(101, envAttack, 0x00);\r\n usbMIDI.sendControlChange(102, envHold, 0x00);\r\n usbMIDI.sendControlChange(103, envDecay, 0x00);\r\n usbMIDI.sendControlChange(104, envSustain, 0x00);\r\n usbMIDI.sendControlChange(105, envRelease, 0x00);\r\n \r\n usbMIDI.sendControlChange(108, oscApitchMult, 0x00);\r\n usbMIDI.sendControlChange(109, oscBpitchMult, 0x00);\r\n usbMIDI.sendControlChange(110, oscCpitchMult, 0x00);\r\n}\r\n\r\nvoid EEPROM_SaveSettings()\r\n{\r\n EEPROM.write(20, oscAwaveform);\r\n EEPROM.write(21, oscBwaveform);\r\n EEPROM.write(22, oscCwaveform);\r\n\r\n EEPROM.write(23, oscApulsewidth);\r\n EEPROM.write(24, oscBpulsewidth);\r\n EEPROM.write(25, oscCpulsewidth);\r\n\r\n EEPROM.write(26, oscAphase);\r\n EEPROM.write(27, oscBphase);\r\n EEPROM.write(28, oscCphase);\r\n\r\n EEPROM.write(29, oscAamp);\r\n EEPROM.write(30, oscBamp);\r\n EEPROM.write(31, oscCamp);\r\n EEPROM.write(32, oscDamp);\r\n\r\n EEPROM.write(33, mixVoices_gains);\r\n\r\n EEPROM.write(100, envDelay);\r\n EEPROM.write(101, envAttack);\r\n EEPROM.write(102, envHold);\r\n EEPROM.write(103, envDecay);\r\n EEPROM.write(104, envSustain);\r\n EEPROM.write(105, envRelease);\r\n \r\n EEPROM.write(108, oscApitchMult);\r\n EEPROM.write(109, oscBpitchMult);\r\n EEPROM.write(110, oscCpitchMult);\r\n}\r\nvoid EEPROM_ReadSettings()\r\n{\r\n set_OSC_A_waveform(EEPROM.read(20));\r\n set_OSC_B_waveform(EEPROM.read(21));\r\n set_OSC_C_waveform(EEPROM.read(22));\r\n\r\n set_OSC_A_pulseWidth(EEPROM.read(23));\r\n set_OSC_B_pulseWidth(EEPROM.read(24));\r\n set_OSC_C_pulseWidth(EEPROM.read(25));\r\n\r\n set_OSC_A_phase(EEPROM.read(26));\r\n set_OSC_B_phase(EEPROM.read(27));\r\n set_OSC_C_phase(EEPROM.read(28));\r\n \r\n set_OSC_A_amplitude(EEPROM.read(29));\r\n set_OSC_B_amplitude(EEPROM.read(30));\r\n set_OSC_C_amplitude(EEPROM.read(31));\r\n\r\n set_mixVoices_gains(EEPROM.read(33));\r\n \r\n set_envelope_delay(EEPROM.read(100));\r\n set_envelope_attack(EEPROM.read(101));\r\n set_envelope_hold(EEPROM.read(102));\r\n set_envelope_decay(EEPROM.read(103));\r\n set_envelope_sustain(EEPROM.read(104));\r\n set_envelope_release(EEPROM.read(105));\r\n \r\n set_OSC_A_freqMult(EEPROM.read(108));\r\n set_OSC_A_freqMult(EEPROM.read(109));\r\n set_OSC_A_freqMult(EEPROM.read(110));\r\n}","parentGroup":"Synth_group2","x":522.75,"y":716.5,"z":"Main","bgColor":"#DDFFBB","wires":[]},{"id":"SynthMain_pt8211_2_1","type":"AudioOutputPT8211_2","name":"pt8211_2_1","comment":"","x":740,"y":130,"z":"Main","bgColor":"#E6E0F8","wires":[]},{"id":"Synth_usb1","type":"AudioOutputUSB","name":"usb2","comment":"","x":740,"y":190,"z":"Main","bgColor":"#E6E0F8","wires":[]},{"id":"Synth_group1","type":"group","name":"Instruments","comment":"","w":351,"h":327,"textSize":14,"nodes":["SynthMain_includeDef1","SynthMain_includeDef2","SynthMain_includeDef3","SynthMain_includeDef4","Synth_dontRemoveFiles1","Synth_code10"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":120,"y":360,"z":"Main","bgColor":"rgba(205,203,255,0.63)","wires":[]},{"id":"Synth_group2","type":"group","name":"functions","comment":"","w":399,"h":487,"textSize":14,"nodes":["SynthMain_code3","SynthMain_code1","Synth_code9","Synth_code2","Synth_code3","Synth_code4","Synth_code5","Synth_code6","Synth_code7","Synth_code8","Synth_code1"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":false,"x":500,"y":280,"z":"Main","bgColor":"rgba(205,203,255,0.63)","wires":[]},{"id":"Synth_group3","type":"group","name":"includes","comment":"","w":179,"h":124,"textSize":14,"nodes":["Synth_includeDef2","Synth_includeDef1"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":130,"y":220,"z":"Main","bgColor":"rgba(221,255,187,1)","wires":[]}]},{"type":"tab","id":"14f24e29.494642","label":"main.cpp","inputs":0,"outputs":0,"export":true,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"main.cpp_includeDef1","type":"IncludeDef","name":"<MIDI.h>","comment":"","x":410,"y":20,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_Synth1","type":"Synth","name":"synth","x":410,"y":70,"z":"14f24e29.494642","bgColor":"#CCFFCC","wires":[]},{"id":"main.cpp_vars1","type":"Variables","name":"global variables & function forward declarations","comment":"const int ledPin = 13;\r\nint ledState = LOW; // ledState used to set the LED\r\nunsigned long previousMillis = 0; // will store last time LED was updated\r\nunsigned long currentMillis = 0;\r\nunsigned long currentInterval = 0;\r\nunsigned long ledBlinkOnInterval = 100;\r\nunsigned long ledBlinkOffInterval = 2000;\r\n\r\n#define btnInEnablePin 9\r\n#define btnSustainPin 23\r\n#define btnSostenutoPin 22\r\n#define btnSoftPedalPin 21\r\nuint8_t btnSustain = 0;\r\nuint8_t btnSostenuto = 0;\r\nuint8_t btnSoftPedal = 0;\r\nuint8_t btnSustainWasPressed = 0;\r\nuint8_t btnSostenutoWasPressed = 0;\r\nuint8_t btnSoftPedalWasPressed = 0;\r\n\r\n#define btnNextInstrumentPin 20\r\nuint8_t btnNextInstrument = 0;\r\nuint8_t btnNextInstrumentWasPressed = 0;\r\n\r\n#define KEYBOARD_NOTE_SHIFT_CORRECTION 21//-12\r\n\r\nvoid uartMidi_NoteOn(byte channel, byte note, byte velocity);\r\nvoid uartMidi_NoteOff(byte channel, byte note, byte velocity);\r\nvoid uartMidi_ControlChange(byte channel, byte control, byte value);\r\nvoid uartMidi_PitchBend(byte channel, int value);\r\n\r\nvoid usbMidi_NoteOn(byte channel, byte note, byte velocity);\r\nvoid usbMidi_NoteOff(byte channel, byte note, byte velocity);\r\nvoid usbMidi_ControlChange(byte channel, byte control, byte value);\r\nvoid usbMidi_PitchBend(byte channel, int value);\r\n\r\nvoid blinkLedTask(void);\r\nvoid btnInputProcessTask(void);\r\n\r\n","x":410,"y":120,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_vars2","type":"Variables","name":"MIDI_CREATE_INSTANCE","comment":"MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);","x":410,"y":170,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code2","type":"Function","name":"setup() function","comment":"\r\n// Arduino setup() function\r\nvoid setup()\r\n{\r\n AudioMemory(96);\r\n\r\n MIDI.begin();\r\n MIDI.setHandleNoteOn(uartMidi_NoteOn);\r\n MIDI.setHandleNoteOff(uartMidi_NoteOff);\r\n MIDI.setHandleControlChange(uartMidi_ControlChange);\r\n MIDI.setHandlePitchBend(uartMidi_PitchBend);\r\n\r\n usbMIDI.setHandleNoteOn(usbMidi_NoteOn);\r\n usbMIDI.setHandleNoteOff(usbMidi_NoteOff);\r\n usbMIDI.setHandleControlChange(usbMidi_ControlChange);\r\n usbMIDI.setHandlePitchChange(usbMidi_PitchBend);\r\n\r\n synth.begin();\r\n\r\n pinMode(btnSustainPin, INPUT);\r\n pinMode(btnSostenutoPin, INPUT);\r\n pinMode(btnSoftPedalPin, INPUT);\r\n pinMode(btnNextInstrumentPin, INPUT);\r\n\r\n pinMode(btnInEnablePin, OUTPUT);\r\n digitalWrite(btnInEnablePin, LOW);\r\n\r\n pinMode(ledPin, OUTPUT);\r\n digitalWrite(ledPin, LOW);\r\n\r\n btnSustainWasPressed = 0;\r\n btnSoftPedalWasPressed = 0;\r\n btnSostenutoWasPressed = 0;\r\n btnNextInstrumentWasPressed = 0;\r\n \r\n}\r\n","x":410,"y":220,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code3","type":"Function","name":"loop() function","comment":"\r\n// Arduino loop() function\r\nvoid loop()\r\n{\r\n usbMIDI.read();\r\n MIDI.read();\r\n\r\n btnInputProcessTask();\r\n \r\n blinkLedTask();\r\n}","x":410,"y":270,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code4","type":"Function","name":"uartMidi handler functions","comment":"\r\n// uartMidi handler functions\r\nvoid uartMidi_NoteOn(byte channel, byte note, byte velocity) {\r\n note += KEYBOARD_NOTE_SHIFT_CORRECTION;\r\n velocity = 127 - velocity;\r\n synth.noteOn(note, velocity);\r\n usbMIDI.sendNoteOn(note, velocity, channel, 0);\r\n}\r\n\r\nvoid uartMidi_NoteOff(byte channel, byte note, byte velocity) {\r\n note += KEYBOARD_NOTE_SHIFT_CORRECTION;\r\n velocity = 127 - velocity;\r\n synth.noteOff(note);\r\n usbMIDI.sendNoteOff(note, velocity, channel, 0);\r\n}\r\n\r\nvoid uartMidi_ControlChange(byte channel, byte control, byte value) {\r\n usbMIDI.sendControlChange(control, value, channel, 0x00);\r\n}\r\n\r\nvoid uartMidi_PitchBend(byte channel, int value) {\r\n usbMIDI.sendPitchBend(value, channel, 0x00);\r\n}","x":410,"y":320,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code5","type":"Function","name":"usbMidi handler functions","comment":"\r\n// usbMidi handler functions\r\nvoid usbMidi_NoteOn(byte channel, byte note, byte velocity) {\r\n synth.noteOn(note, velocity);\r\n}\r\n\r\nvoid usbMidi_NoteOff(byte channel, byte note, byte velocity) {\r\n synth.noteOff(note); \r\n}\r\n\r\nvoid usbMidi_PitchBend(byte channel, int value) {\r\n \r\n}\r\n\r\nvoid usbMidi_ControlChange(byte channel, byte control, byte value) {\r\n switch (control) { // cases 20-31,102-119 is undefined in midi spec\r\n case 64:\r\n if (value == 0)\r\n synth.deactivateSustain();\r\n else if (value == 127)\r\n synth.activateSustain();\r\n break;\r\n case 0:\r\n synth.set_InstrumentByIndex(value);\r\n break;\r\n case 20: // OSC A waveform select\r\n synth.set_OSC_A_waveform(value);\r\n break;\r\n case 21: // OSC B waveform select\r\n synth.set_OSC_B_waveform(value);\r\n break;\r\n case 22: // OSC C waveform select\r\n synth.set_OSC_C_waveform(value);\r\n break;\r\n\r\n case 23:\r\n synth.set_OSC_A_pulseWidth(value);\r\n break;\r\n case 24:\r\n synth.set_OSC_B_pulseWidth(value);\r\n break;\r\n case 25:\r\n synth.set_OSC_C_pulseWidth(value);\r\n break;\r\n\r\n case 26:\r\n synth.set_OSC_A_phase(value);\r\n break;\r\n case 27:\r\n synth.set_OSC_B_phase(value);\r\n break;\r\n case 28:\r\n synth.set_OSC_C_phase(value);\r\n break;\r\n\r\n case 29:\r\n synth.set_OSC_A_amplitude(value);\r\n break;\r\n case 30:\r\n synth.set_OSC_B_amplitude(value);\r\n break;\r\n case 31:\r\n synth.set_OSC_C_amplitude(value);\r\n break;\r\n case 32: //(\"LSB for Control 0 (Bank Select)\" @ midi spec.)\r\n synth.set_OSC_D_amplitude(value);\r\n break;\r\n\r\n case 33: \r\n synth.set_mixVoices_gains(value);\r\n break;\r\n \r\n case 100:\r\n synth.set_envelope_delay(value);\r\n break;\r\n case 101:\r\n synth.set_envelope_attack(value);\r\n break;\r\n case 102:\r\n synth.set_envelope_hold(value);\r\n break;\r\n case 103:\r\n synth.set_envelope_decay(value);\r\n break;\r\n case 104:\r\n synth.set_envelope_sustain(value);\r\n break;\r\n case 105:\r\n synth.set_envelope_release(value);\r\n break;\r\n \r\n case 108:\r\n synth.set_OSC_A_freqMult(value);\r\n break;\r\n case 109:\r\n synth.set_OSC_B_freqMult(value);\r\n break;\r\n case 110:\r\n synth.set_OSC_C_freqMult(value);\r\n break;\r\n\r\n case 115: // set wavetable as primary (Piano mode)\r\n synth.SetWaveTable_As_Primary();\r\n break;\r\n case 116:\r\n synth.SetWaveForm_As_Primary();\r\n break;\r\n \r\n case 117: // EEPROM read settings\r\n synth.EEPROM_ReadSettings();\r\n break;\r\n case 118: // EEPROM save settings\r\n synth.EEPROM_SaveSettings();\r\n break;\r\n\r\n case 119: // get all values\r\n synth.sendAllSettings();\r\n break;\r\n }\r\n}","x":410,"y":370,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code6","type":"Function","name":"btnInputProcessTask() function","comment":"\r\n// btnInputProcessTask() function\r\nvoid btnInputProcessTask(void)\r\n{\r\n btnSustain = digitalRead(btnSustainPin);\r\n btnSostenuto = digitalRead(btnSostenutoPin);\r\n btnSoftPedal = digitalRead(btnSoftPedalPin);\r\n btnNextInstrument = digitalRead(btnNextInstrumentPin);\r\n\r\n // Sustain pedal\r\n if ((btnSustain == LOW) && (btnSustainWasPressed == 0))\r\n {\r\n btnSustainWasPressed = 1;\r\n usbMIDI.sendControlChange(0x40, 0x7F, 0x00);\r\n synth.activateSustain();\r\n\r\n uint16_t memory_used = AudioMemoryUsageMax();\r\n uint16_t cpu_used = AudioProcessorUsageMax();\r\n uint8_t data[11];\r\n data[0] = 0x30 + memory_used/10000;\r\n data[1] = 0x30 + memory_used%10000/1000;\r\n data[2] = 0x30 + memory_used%10000%1000/100;\r\n data[3] = 0x30 + memory_used%10000%1000%100/10;\r\n data[4] = 0x30 + memory_used%10000%1000%100%10;\r\n data[5] = ':';\r\n data[6] = 0x30 + cpu_used/10000;\r\n data[7] = 0x30 + cpu_used%10000/1000;\r\n data[8] = 0x30 + cpu_used%10000%1000/100;\r\n data[9] = 0x30 + cpu_used%10000%1000%100/10;\r\n data[10] = 0x30 + cpu_used%10000%1000%100%10;\r\n usbMIDI.sendSysEx(11, data);\r\n }\r\n else if ((btnSustain == HIGH) && (btnSustainWasPressed == 1))\r\n {\r\n btnSustainWasPressed = 0;\r\n usbMIDI.sendControlChange(0x40, 0x00, 0x00);\r\n synth.deactivateSustain();\r\n }\r\n // Sostenuto Pedal\r\n if ((btnSostenuto == LOW) && (btnSostenutoWasPressed == 0))\r\n {\r\n btnSostenutoWasPressed = 1;\r\n usbMIDI.sendControlChange(0x42, 0x7F, 0x00);\r\n }\r\n else if ((btnSostenuto == HIGH) && (btnSostenutoWasPressed == 1))\r\n {\r\n btnSostenutoWasPressed = 0;\r\n usbMIDI.sendControlChange(0x42, 0x00, 0x00);\r\n }\r\n // Soft Pedal\r\n if ((btnSoftPedal == LOW) && (btnSoftPedalWasPressed == 0))\r\n {\r\n btnSoftPedalWasPressed = 1;\r\n usbMIDI.sendControlChange(0x43, 0x7F, 0x00);\r\n }\r\n else if ((btnSoftPedal == HIGH) && (btnSoftPedalWasPressed == 1))\r\n {\r\n btnSoftPedalWasPressed = 0;\r\n usbMIDI.sendControlChange(0x43, 0x00, 0x00);\r\n }\r\n // Next Instrument button\r\n if ((btnNextInstrument == LOW) && (btnNextInstrumentWasPressed == 0))\r\n {\r\n btnNextInstrumentWasPressed = 1;\r\n if (synth.currentWTinstrument == (InstrumentCount - 1)) synth.currentWTinstrument = 0;\r\n else synth.currentWTinstrument++;\r\n synth.set_InstrumentByIndex(synth.currentWTinstrument);\r\n usbMIDI.sendControlChange(0, synth.currentWTinstrument, 0x00);\r\n }\r\n else if ((btnNextInstrument == HIGH) && (btnNextInstrumentWasPressed == 1))\r\n {\r\n btnNextInstrumentWasPressed = 0;\r\n }\r\n}","x":410,"y":420,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]},{"id":"main.cpp_code1","type":"Function","name":"blinkLedTask() function","comment":"\r\n// blinkLedTask() function\r\nvoid blinkLedTask(void)\r\n{\r\n currentMillis = millis();\r\n currentInterval = currentMillis - previousMillis;\r\n \r\n if (ledState == LOW)\r\n {\r\n if (currentInterval > ledBlinkOffInterval)\r\n {\r\n previousMillis = currentMillis;\r\n ledState = HIGH;\r\n digitalWrite(ledPin, HIGH);\r\n }\r\n }\r\n else\r\n {\r\n if (currentInterval > ledBlinkOnInterval)\r\n {\r\n previousMillis = currentMillis;\r\n ledState = LOW;\r\n digitalWrite(ledPin, LOW);\r\n }\r\n }\r\n}","x":410,"y":470,"z":"14f24e29.494642","bgColor":"#DDFFBB","wires":[]}]},{"type":"tab","id":"3a5e4585.af253a","label":"GroupBased","inputs":0,"outputs":0,"export":false,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"Sheet_1_waveformMod2","type":"AudioSynthWaveformModulated","name":"waveformMod1","comment":"","parentGroup":"Sheet_1_group2","x":250,"y":227.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:1"]]},{"id":"Sheet_1_Junction1","type":"JunctionLR","name":"Junction","comment":"","parentGroup":"Sheet_1_group2","x":130,"y":257.5,"z":"3a5e4585.af253a","bgColor":"#4D54FF","wires":[["Sheet_1_waveformMod1:0","Sheet_1_waveformMod3:0","Sheet_1_waveformMod2:0"]]},{"id":"Sheet_1_waveformMod3","type":"AudioSynthWaveformModulated","name":"waveformMod2","comment":"","parentGroup":"Sheet_1_group2","x":250,"y":267.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:2"]]},{"id":"GroupBased_Comment1","type":"Comment","name":"this is ony a example how a \"group\" based class structure could look like and have no support in the export yet","comment":"","x":328.75,"y":50,"z":"3a5e4585.af253a","bgColor":"#DDFFBB","wires":[]},{"id":"Sheet_1_waveformMod1","type":"AudioSynthWaveformModulated","name":"waveformMod","comment":"","parentGroup":"Sheet_1_group2","x":260,"y":187.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:0"]]},{"id":"Sheet_1_wavetable1","type":"AudioSynthWavetable","name":"wavetable","comment":"","parentGroup":"Sheet_1_group2","x":290,"y":307.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:3"]]},{"id":"Sheet_1_mixer1","type":"AudioMixer","name":"mixer","inputs":"4","comment":"","parentGroup":"Sheet_1_group2","x":460,"y":237.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_envelope1:0"]]},{"id":"Sheet_1_envelope1","type":"AudioEffectEnvelope","name":"envelope","comment":"","parentGroup":"Sheet_1_group2","x":590,"y":247.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:0"]]},{"id":"Sheet_1_mixer2","type":"AudioMixer","name":"mixer1","inputs":"1","comment":"","parentGroup":"Sheet_1_group1","x":930,"y":257.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[["Sheet_1_pt8211_2_1:0","Sheet_1_pt8211_2_1:1","Sheet_1_usb1:0","Sheet_1_usb1:1"]]},{"id":"Sheet_1_pt8211_2_1","type":"AudioOutputPT8211_2","name":"pt8211_2","comment":"","parentGroup":"Sheet_1_group1","x":1080,"y":207.5,"z":"3a5e4585.af253a","bgColor":"#DDCDF8","wires":[]},{"id":"Sheet_1_usb1","type":"AudioOutputUSB","name":"usb","comment":"","parentGroup":"Sheet_1_group1","x":1070,"y":277.5,"z":"3a5e4585.af253a","bgColor":"#E6E0F8","wires":[]},{"id":"Sheet_1_group1","type":"group","name":"synth","comment":"","w":1225,"h":311,"textSize":14,"nodes":["Sheet_1_pt8211_2_1","Sheet_1_usb1","Sheet_1_group2","Sheet_1_mixer2"],"border_color":"rgba(255,32,32,1)","x":30,"y":90,"z":"3a5e4585.af253a","bgColor":"rgba(157,255,160,0.46)","wires":[]},{"id":"Sheet_1_group2","type":"group","name":"Voice voices[8]","comment":"","w":764,"h":217,"textSize":14,"nodes":["Sheet_1_Junction1","Sheet_1_waveformMod2","Sheet_1_waveformMod3","Sheet_1_wavetable1","Sheet_1_mixer1","Sheet_1_envelope1","Sheet_1_waveformMod1"],"border_color":"rgba(36,108,48,1)","individualListBoxMode":false,"exportAsClass":false,"parentGroup":"Sheet_1_group1","x":80,"y":147.5,"z":"3a5e4585.af253a","bgColor":"rgba(255,255,255,0.61)","wires":[]}]},{"type":"tab","id":"96f7195d.a7ede8","label":"MIDI_program_change","inputs":0,"outputs":0,"export":false,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"MIDI program change_ListBox1","type":"UI_ListBox","name":"Piano (0-7)","comment":"","w":176,"h":309,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Acoustic Grand Piano\nBright Acoustic Piano\nElectric Grand Piano\nHonky-tonk Piano\nElectric Piano 1\nElectric Piano 2\nHarpsichord\nClaviHonkytonk (3)","selectedIndex":-1,"selectedIndexOffset":"0","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":40,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox2","type":"UI_ListBox","name":"Chromatic Percussion (8-15)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Celesta\nGlockenspiel\nMusic Box\nVibraphone\nMarimba\nXylophone\nTubular Bells\nDulcimer","selectedIndex":-1,"selectedIndexOffset":"8","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":40,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox3","type":"UI_ListBox","name":"Organ (16-23)","comment":"","w":206,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Drawbar Organ\nPercussive Organ\nRock Organ\nChurch Organ\nReed Organ\nAccordion\nHarmonica\nTango Accordion","selectedIndex":-1,"selectedIndexOffset":"16","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":230,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox4","type":"UI_ListBox","name":"Guitar (24-31)","comment":"","w":205,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Acoustic Guitar (nylon)\nAcoustic Guitar (steel)\nElectric Guitar (jazz)\nElectric Guitar (clean)\nElectric Guitar (muted)\nOverdriven Guitar\nDistortion Guitar\nGuitar Harmonics","selectedIndex":-1,"selectedIndexOffset":"24","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":230,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox5","type":"UI_ListBox","name":"Bass (32-39)","comment":"","w":189,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Acoustic Bass\nElectric Bass (finger)\nElectric Bass (pick)\nFretless Bass\nSlap Bass 1\nSlap Bass 2\nSynth Bass 1\nSynth Bass 2","selectedIndex":-1,"selectedIndexOffset":"32","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":450,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox6","type":"UI_ListBox","name":"Strings (40-47)","comment":"","w":184,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Violin\nViola\nCello\nContrabass\nTremolo Strings\nPizzicato Strings\nOrchestral Harp\nTimpani","selectedIndex":-1,"selectedIndexOffset":"40","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":450,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox7","type":"UI_ListBox","name":"Ensemble (48-55)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"String Ensemble 1\nString Ensemble 2\nSynthStrings 1\nSynthStrings 2\nChoir Aahs\nVoice Oohs\nSynth Voice\nOrchestra Hit","selectedIndex":-1,"selectedIndexOffset":"48","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":650,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox8","type":"UI_ListBox","name":"Brass (56-63)","comment":"","w":178,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Trumpet\nTrombone\nTuba\nMuted Trumpet\nFrench Horn\nBrass Section\nSynthBrass 1\nSynthBrass 2","selectedIndex":-1,"selectedIndexOffset":"56","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":650,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox9","type":"UI_ListBox","name":"ReedBass (64-71)","comment":"","w":170,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Soprano Sax\nAlto Sax\nTenor Sax\nBaritone Sax\nOboe\nEnglish Horn\nBassoon\nClarinet","selectedIndex":-1,"selectedIndexOffset":"64","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":840,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox10","type":"UI_ListBox","name":"Pipe (72-79)","comment":"","w":170,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Piccolo\nFlute\nRecorder\nPan Flute\nBlown Bottle\nShakuhachi\nWhistle\nOcarina","selectedIndex":-1,"selectedIndexOffset":"72","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":840,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox11","type":"UI_ListBox","name":"Synth Lead (80-87)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Lead 1 (square)\nLead 2 (sawtooth)\nLead 3 (calliope)\nLead 4 (chiff)\nLead 5 (charang)\nLead 6 (voice)\nLead 7 (fifths)\nLead 8 (bass + lead)","selectedIndex":1,"selectedIndexOffset":"80","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1020,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox12","type":"UI_ListBox","name":"Synth Pad (88-95)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Pad 1 (new age)\nPad 2 (warm)\nPad 3 (polysynth)\nPad 4 (choir)\nPad 5 (bowed)\nPad 6 (metallic)\nPad 7 (halo)\nPad 8 (sweep)","selectedIndex":-1,"selectedIndexOffset":"88","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1020,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox13","type":"UI_ListBox","name":"Synth Effects (96-103)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"FX 1 (rain)\nFX 2 (soundtrack)\nFX 3 (crystal)\nFX 4 (atmosphere)\nFX 5 (brightness)\nFX 6 (goblins)\nFX 7 (echoes)\nFX 8 (sci-fi)","selectedIndex":-1,"selectedIndexOffset":"96","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1210,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox14","type":"UI_ListBox","name":"Ethnic (104-111)","comment":"","w":177,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Sitar\nBanjo\nShamisen\nKoto\nKalimba\nBag Pipe\nFiddle\nShanai","selectedIndex":-1,"selectedIndexOffset":"104","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1210,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox15","type":"UI_ListBox","name":"Percussive (112-119)","comment":"","w":183,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Tinkle Bell\nAgogo\nSteel Drums\nWoodblock\nTaiko Drum\nMelodic Tom\nSynth Drum\nReverse Cymbal","selectedIndex":-1,"selectedIndexOffset":"112","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1400,"y":80,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI program change_ListBox16","type":"UI_ListBox","name":"Sound Effects (120-127)","comment":"","w":182,"h":311,"textSize":14,"midiCh":"","midiId":"","itemTextSize":14,"items":"Guitar Fret Noise\nBreath Noise\nSeashore\nBird Tweet\nTelephone Ring\nHelicopter\nApplause\nGunshot","selectedIndex":-1,"selectedIndexOffset":"120","headerHeight":30,"itemBGcolor":"#FFF687","sendCommand":"var data = \"midiSend(0xC0, \" + (parseInt(d.selectedIndex)+parseInt(d.selectedIndexOffset)) +\",0)\";\nRED.BiDirDataWebSocketBridge.SendToWebSocket(data);","parentGroup":"MIDI_program_change_group1","x":1400,"y":400,"z":"96f7195d.a7ede8","bgColor":"#F6F8BC","wires":[]},{"id":"MIDI_program_change_group1","type":"group","name":"Windows GS Wavetable - instruments","comment":"","w":1572,"h":680,"textSize":14,"nodes":["MIDI program change_ListBox1","MIDI program change_ListBox2","MIDI program change_ListBox3","MIDI program change_ListBox4","MIDI program change_ListBox5","MIDI program change_ListBox6","MIDI program change_ListBox7","MIDI program change_ListBox8","MIDI program change_ListBox9","MIDI program change_ListBox10","MIDI program change_ListBox12","MIDI program change_ListBox14","MIDI program change_ListBox16","MIDI program change_ListBox11","MIDI program change_ListBox13","MIDI program change_ListBox15"],"border_color":"rgba(131,131,131,1)","individualListBoxMode":false,"exportAsClass":false,"x":30,"y":50,"z":"96f7195d.a7ede8","bgColor":"rgba(255,187,170,0.57)","wires":[]},{"id":"MIDI_program_change_scriptBtn1","type":"UI_ScriptButton","name":"auto place full size piano - script1","comment":"var niw = 150; // new item width\nvar nih = 150; // new item height\nvar nis = 0; // item spacing\nvar blackKeysWidthDiff = 6;\nvar blackKeyLabelsVisible = false;\nvar whiteKeyLabelsVisible = false;\nvar count = 11;\nvar newType = \"UI_Piano\";\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.PianoNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (d.nodes == undefined)\n d.nodes = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < d.nodes.length; i++)\n {\n removeNode(d.nodes[i]);\n }\n d.nodes = [];\n}\nredraw(true);\nconsole.warn(\"script name:\" + d.name +\":\"+ d.x + \":\" + d.y + \":\" + d.w + \":\" +d.h);\nfor (var i = 0; i < count; i++)\n{\n var newPiano = AddNewNode(0, 0, newType);\n newPiano.name = \"octave\" + i;\n //newPiano.midiCh = 0;\n newPiano.octave = i;\n newPiano.sendCommand = 'var midiCh = 0;\\n' +\n 'var formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\\n' + \n 'RED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);';\n newPiano.h = nih;\n newPiano.w = niw;\n newPiano.bgColor = \"#A0A0A0\"; // Title background bgColor\n newPiano.blackKeysColor = \"#303030\";\n newPiano.whiteKeysColor = \"#FFFFFF\";\n newPiano.blackKeyLabelsVisible = blackKeyLabelsVisible;\n newPiano.whiteKeyLabelsVisible = whiteKeyLabelsVisible;\n if (posMode === 2)\n {\n newPiano.x = i*(niw+nis) + (d.x-d.w/2 + niw/2);\n newPiano.y = (d.y+d.h/2+nih/2);\n }\n else\n {\n newPiano.x = i*(niw+nis) + (d.x);\n newPiano.y = (d.y+d.h);\n }\n newPiano.blackKeysWidthDiff = blackKeysWidthDiff;\n newPiano.dirty = true;\n \n newPiano.parentGroup = d;\n d.nodes.push(newPiano);\n \n //RED.view.PianoNodeListTemp.push(newPiano);\n \n}\nredraw(true);","w":299,"h":30,"textSize":14,"nodes":["MIDI_program_change_Piano1","MIDI_program_change_Piano2","MIDI_program_change_Piano3","MIDI_program_change_Piano4","MIDI_program_change_Piano5","MIDI_program_change_Piano6","MIDI_program_change_Piano7","MIDI_program_change_Piano8","MIDI_program_change_Piano9","MIDI_program_change_Piano10","MIDI_program_change_Piano11"],"x":40,"y":770,"z":"96f7195d.a7ede8","bgColor":"#DDFFBB","wires":[]},{"id":"MIDI_program_change_Piano1","type":"UI_Piano","name":"octave0","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":0,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":40,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano2","type":"UI_Piano","name":"octave1","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":1,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":190,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano3","type":"UI_Piano","name":"octave2","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":2,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":340,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano4","type":"UI_Piano","name":"octave3","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":3,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":490,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano5","type":"UI_Piano","name":"octave4","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":4,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":640,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano6","type":"UI_Piano","name":"octave5","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":5,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":790,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano7","type":"UI_Piano","name":"octave6","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":6,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":940,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano8","type":"UI_Piano","name":"octave7","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":7,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1090,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano9","type":"UI_Piano","name":"octave8","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":8,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1240,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano10","type":"UI_Piano","name":"octave9","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":9,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1390,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]},{"id":"MIDI_program_change_Piano11","type":"UI_Piano","name":"octave10","comment":"","w":150,"h":150,"textSize":14,"midiCh":"0","midiId":"0","octave":10,"sendCommand":"var midiCh = 0;\nvar formatted = \"midiSend(\"+(d.keyDown+midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"\nRED.BiDirDataWebSocketBridge.SendToWebSocket(formatted);","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#303030","blackKeysWidthDiff":6,"x":1540,"y":800,"blackKeyLabelsVisible":false,"whiteKeyLabelsVisible":false,"parentGroup":"MIDI_program_change_scriptBtn1","z":"96f7195d.a7ede8","bgColor":"#A0A0A0","wires":[]}]},{"type":"tab","id":"8e1705e8.8075f8","label":"equalizerDemo","inputs":0,"outputs":0,"export":false,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"equalizerDemo_scriptBtn1","type":"UI_ScriptButton","name":"auto place sliders - script","comment":"var nsw = 10; // new slider width\nvar nsh = 500; // new slider height\nvar ssp = 00; // sliper spacing\nvar count = 100;\nvar nsmav = 100; // new slider max Value\nvar nsmiv = 0; // new slider min value\n\nvar colorMap = generateColorMap(); // provided by RED.view\n\nvar colorMapDeltaIndex = parseInt(colorMap.length/count);\nvar deltaValue = nsmav/count;\n//console.warn(colorMap);\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.SliderNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (RED.view.SliderNodeListTemp == undefined)\n RED.view.SliderNodeListTemp = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < RED.view.SliderNodeListTemp.length; i++)\n {\n removeNode(RED.view.SliderNodeListTemp[i]);\n }\n RED.view.SliderNodeListTemp = [];\n}\nredraw(true);\n\nfor (var i = 0; i < count; i++)\n{\n if (posMode === 2)\n {\n var xpos = i*(nsw+ssp) + (d.x-d.w/2 + nsw/2);\n var ypos = (d.y+d.h/2+nsh/2);\n }\n else\n {\n var xpos = i*(nsw+ssp) + (d.x);\n var ypos = (d.y+d.h);\n }\n var newSlider = AddNewNode(xpos,ypos, \"UI_Slider\");\n newSlider.name = \"Hello World\";\n newSlider.label = \"eval(d.val)\";\n newSlider.orientation = \"v\";\n newSlider.sendFormat = '\"midisend(0xB0,' +(100+i)+ ', \" + d.val + \");\"'\n newSlider.h = nsh;\n newSlider.w = nsw;\n newSlider.maxValue = nsmav;\n newSlider.minValue = nsmiv;\n // this value set is just a cool demo\n newSlider.val = parseInt(Math.sin(i*deltaValue*0.1)*25 + 50);\n \n newSlider.dirty = true;\n \n newSlider.barFGcolor = colorMap[colorMapDeltaIndex*i];\n newSlider.bgColor = subtractColor(newSlider.barFGcolor, \"#B0B0B0\");\n RED.view.SliderNodeListTemp.push(newSlider);\n \n}\nredraw(true);\n\n","w":191,"h":30,"textSize":14,"nodes":[],"x":200,"y":70,"z":"8e1705e8.8075f8","bgColor":"#DDFFBB","wires":[]}]},{"type":"tab","id":"943d6b9b.f10888","label":"Sequencer","inputs":0,"outputs":0,"export":false,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"Sheet_2_scriptBtn1","type":"UI_ScriptButton","name":"auto place full size piano - script1","comment":"var niw = 420; // new item width\nvar nih = 150; // new item height\nvar nis = 0; // item spacing\nvar count = 11;\nvar newType = \"UI_Piano\";\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.PianoNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (d.nodes == undefined)\n d.nodes = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < d.nodes.length; i++)\n {\n removeNode(d.nodes[i]);\n }\n d.nodes = [];\n}\nredraw(true);\nconsole.warn(\"script name:\" + d.name +\":\"+ d.x + \":\" + d.y + \":\" + d.w + \":\" +d.h);\nfor (var i = 0; i < count; i++)\n{\n var newPiano = AddNewNode(0, 0, newType);\n newPiano.name = \"octave\" + i;\n newPiano.midiCh = 0;\n newPiano.octave = i;\n newPiano.sendCommand = '\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"'\n newPiano.h = nih;\n newPiano.w = niw;\n newPiano.x = i*(niw+nis) + (d.x-d.w/2 + niw/2);\n newPiano.y = (d.y+d.h/2+nih/2);\n newPiano.blackKeysWidthDiff = 10;\n newPiano.dirty = true;\n \n newPiano.parentGroup = d;\n d.nodes.push(newPiano);\n \n //RED.view.PianoNodeListTemp.push(newPiano);\n \n}\nredraw(true);","w":299,"h":30,"textSize":14,"nodes":["Sequencer_Piano1","Sequencer_Piano2","Sequencer_Piano3","Sequencer_Piano4","Sequencer_Piano5","Sequencer_Piano6","Sequencer_Piano7","Sequencer_Piano8","Sequencer_Piano9","Sequencer_Piano10","Sequencer_Piano11"],"x":70,"y":20,"z":"943d6b9b.f10888","bgColor":"#DDFFBB","wires":[]},{"id":"Sheet_2_Button1","type":"UI_Button","name":"Button1","comment":"","w":30,"h":51,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":1820,"y":290,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sheet_2_Button3","type":"UI_Button","name":"Button1_1_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":1820,"y":370,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button1","type":"UI_Button","name":"Button1_1_1_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2120,"y":550,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button2","type":"UI_Button","name":"Button1_1_1_2","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2120,"y":620,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button3","type":"UI_Button","name":"Button1_1_1_3","comment":"","w":30,"h":86,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2070,"y":680,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button4","type":"UI_Button","name":"Button1_1_1_1_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2070,"y":370,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button5","type":"UI_Button","name":"Button1_1_1_2_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2070,"y":480,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button6","type":"UI_Button","name":"Button1_1_1_1_1_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2010,"y":780,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button7","type":"UI_Button","name":"Button1_1_1_2_1_1","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":2010,"y":850,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button8","type":"UI_Button","name":"Button1_1_1_1_1_2","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":1930,"y":920,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button9","type":"UI_Button","name":"Button1_1_1_2_1_2","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":1930,"y":990,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Button10","type":"UI_Button","name":"Button1_1_1_1_1_3","comment":"","w":30,"h":50,"textSize":14,"pressAction":"","repeatPressAction":false,"releaseAction":"","repeatReleaseAction":false,"local":false,"x":1880,"y":1070,"z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano1","type":"UI_Piano","name":"octave0","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":0,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":130.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano2","type":"UI_Piano","name":"octave1","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":1,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":550.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano3","type":"UI_Piano","name":"octave2","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":2,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":970.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano4","type":"UI_Piano","name":"octave3","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":3,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1390.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano5","type":"UI_Piano","name":"octave4","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":4,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1810.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano6","type":"UI_Piano","name":"octave5","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":5,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":2230.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano7","type":"UI_Piano","name":"octave6","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":6,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":2650.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano8","type":"UI_Piano","name":"octave7","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":7,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":3070.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano9","type":"UI_Piano","name":"octave8","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":8,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":3490.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano10","type":"UI_Piano","name":"octave9","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":9,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":3910.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_Piano11","type":"UI_Piano","name":"octave10","comment":"","w":420,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":10,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":4330.5,"y":110,"blackKeyLabelsVisible":true,"whiteKeyLabelsVisible":true,"parentGroup":"Sheet_2_scriptBtn1","z":"943d6b9b.f10888","bgColor":"#F6F8BC","wires":[]},{"id":"Sequencer_group1","type":"group","name":"group","comment":"","w":417,"h":967,"textSize":14,"nodes":[],"border_color":"#999","individualListBoxMode":"false","exportAsClass":"false","x":1810,"y":260,"z":"943d6b9b.f10888","bgColor":"#ddffbb","wires":[]}]},{"type":"tab","id":"3629fcd9.ccc604","label":"Sheet_1","inputs":0,"outputs":0,"export":false,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{"showNodeToolTip":false,"workspaceBgColor":"#EDFFDF","scaleFactor":0.8,"showGridHminor":false,"showGridHmajor":false,"showGridVminor":false,"showGridVmajor":false,"gridHminorSize":20,"gridHmajorSize":200,"gridVminorSize":20,"gridVmajorSize":130,"gridMinorColor":"#DDDDDD","gridMajorColor":"#DDDDDD","snapToGridHsize":10,"snapToGridVsize":10,"nodeDefaultTextSize":15,"useCenterBasedPositions":false},"nodes":[{"id":"Sheet_1_multiply1","type":"AudioEffectMultiply","name":"multiply","comment":"","x":490,"y":380,"z":"3629fcd9.ccc604","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_1:3"]]},{"id":"Sheet_1_Junction3","type":"JunctionRL","name":"Junction3","comment":"","x":500,"y":430,"z":"3629fcd9.ccc604","bgColor":"#4D54FF","wires":[["Sheet_1_multiply1:1"]]},{"id":"Sheet_1_mixer4_1","type":"AudioMixer4","name":"mixer4","comment":"","inputs":"4","x":671.25,"y":352.5,"z":"3629fcd9.ccc604","bgColor":"#E6E0F8","wires":[["Sheet_1_Junction2:0"]]},{"id":"Sheet_1_Junction2","type":"JunctionRL","name":"Junction2","comment":"","x":730,"y":430,"z":"3629fcd9.ccc604","bgColor":"#4D54FF","wires":[["Sheet_1_Junction3:0"]]},{"id":"Sheet_1_Slider1","type":"UI_Slider","name":"Slider","comment":"","w":194,"h":34,"textSize":14,"midiCh":"0","midiId":"0","orientation":"h","label":"d.val","minVal":0,"maxVal":100,"val":50,"outputFloat":false,"minValF":-1,"maxValF":1,"floatVal":0,"decimalCount":-1,"steps":201,"sendSpace":true,"repeat":false,"repeatPeriod":0,"sendMode":"r","autoReturn":false,"returnValue":"mid","barFGcolor":"#F6F8BC","sendFormat":"","x":430,"y":120,"z":"3629fcd9.ccc604","bgColor":"#808080","wires":[]}]}],"nodeAddons":{}}
</script>
<script type="text/x-red" data-container-name="GroupBasedDesign">
[{"type":"settings","data":[{"arduino":{"useExportDialog":false,"IOcheckAtExport":true,"WriteJSONtoExportedFile":true,"WebServerPort":8080,"WebSocketServerPort":3000,"ProjectName":"GroupBasedDesign","StandardIncludeHeader":"#include <Arduino.h>\n#include <Audio.h>\n#include <Wire.h>\n#include <SPI.h>\n#include <SD.h>\n#include <SerialFlash.h>\n"}},{"BiDirDataWebSocketBridge":{"bddwssPort":3001,"MidiDeviceIn":0,"MidiDeviceOut":1}},{"view":{"showWorkspaceToolbar":true,"showNodeToolTip":true,"guiEditMode":false,"lockWindowMouseScrollInRunMode":true,"space_width":5000,"space_height":5000,"workspaceBgColor":"#FFF","scaleFactor":0.5,"showGridHminor":true,"showGridHmajor":true,"showGridVminor":true,"showGridVmajor":true,"gridHminorSize":10,"gridHmajorSize":100,"gridVminorSize":10,"gridVmajorSize":100,"gridMinorColor":"#eee","gridMajorColor":"#ddd","snapToGrid":true,"snapToGridHsize":5,"snapToGridVsize":5,"lineCurveScale":0.75,"lineConnectionsScale":1.5,"useCenterBasedPositions":true}},{"palette":{"categoryHeaderTextSize":12,"categoryHeaderHeight":14,"categoryHeaderBackgroundColor":"#f3f3f3","onlyShowOne":true}},{"editor":{"aceEditorTheme":"theme-chrome"}},{"devTest":{"autoSwitchTabToInfoTab":true,"testPost":"data","testGet":"cmd","testWsSend":"data","getFuncHelp":"AudioEffectFade"}}]},{"type":"tab","id":"f063b7c9.3ec2c8","label":"MainWithGroupsOnly","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"NoteGen_group1","type":"group","name":"Voice voices[8]","comment":"","w":1362,"h":637,"textSize":14,"nodes":["Voice_ClassComment1","VFOenvelope","Voice_MixerX1","NoteGen_code1","VFOfilter","VFOfilterMix","NoteGen_group2","NoteGen_mixer2","NoteGen_userObject3"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":1838,"y":430,"z":"f063b7c9.3ec2c8","bgColor":"rgba(184,255,201,0.69)","wires":[]},{"id":"NoteGen_group2","type":"group","name":"VFO vfo[2]","comment":"","w":631,"h":361,"textSize":14,"nodes":["NoteGen_waveformMod1","NoteGen_waveformMod2","NoteGen_waveformMod3","NoteGen_waveformMod4","NoteGen_string1","NoteGen_noise1","NoteGen_pink1","NoteGen_tonesweep1","NoteGen_mixer4_1","NoteGen_mixer4_2","NoteGen_code2","NoteGen_ClassComment1","NoteGen_mixer1","NoteGen_Junction1"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"parentGroup":"NoteGen_group1","x":1650,"y":345,"z":"f063b7c9.3ec2c8","bgColor":"rgba(221,255,187,1)","wires":[]},{"id":"NoteGen_group3","type":"group","name":"LFO_A lfoA[2]","comment":"","w":580,"h":384,"textSize":14,"nodes":["NoteGen_dc1","NoteGen_waveformMod5","NoteGen_waveformMod6","NoteGen_waveformMod7","NoteGen_waveformMod8","NoteGen_ClassComment2","NoteGen_mixer4_3","NoteGen_code3"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":320,"y":235,"z":"f063b7c9.3ec2c8","bgColor":"rgba(179,247,255,0.76)","wires":[]},{"id":"NoteGen_group4","type":"group","name":"LFO_B lfoB[2]","comment":"","w":474,"h":322,"textSize":14,"nodes":["NoteGen_waveformMod9","NoteGen_waveformMod10","NoteGen_mixer5","NoteGen_ClassComment3","NoteGen_code4"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":272.1428680419922,"y":670,"z":"f063b7c9.3ec2c8","bgColor":"rgba(202,179,255,0.66)","wires":[]},{"id":"MainWithGroupsOnly_scriptBtn1","type":"UI_ScriptButton","name":"auto place full size piano - script1","comment":"var niw = 150; // new item width\nvar nih = 150; // new item height\nvar nis = 0; // item spacing\nvar count = 11;\nvar newType = \"UI_Piano\";\n\n// note that all positions x and y \n// are based from the middle of the rects\n\n//RED.view.PianoNodeListTemp is used\n// to store the prev. added items (sliders)\n// so they can be removed before the script is run\n// again (to avoid \"duplicates\")\n// this list is NOT saved between instances of this \"program\"\n\nif (d.nodes == undefined)\n d.nodes = [];\nelse // prev items exists\n{\n // this clears previously added items\n for (var i = 0; i < d.nodes.length; i++)\n {\n removeNode(d.nodes[i]);\n }\n d.nodes = [];\n}\nredraw(true);\nconsole.warn(\"script name:\" + d.name +\":\"+ d.x + \":\" + d.y + \":\" + d.w + \":\" +d.h);\nfor (var i = 0; i < count; i++)\n{\n var newPiano = AddNewNode(0, 0, newType);\n newPiano.name = \"octave\" + i;\n newPiano.midiCh = 0;\n newPiano.octave = i;\n newPiano.sendCommand = '\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"'\n newPiano.h = nih;\n newPiano.w = niw;\n if (posMode === 2)\n {\n newPiano.x = i*(niw+nis) + (d.x-d.w/2 + niw/2);\n newPiano.y = (d.y+d.h/2+nih/2);\n }\n else\n {\n newPiano.x = i*(niw+nis) + (d.x);\n newPiano.y = (d.y+d.h);\n }\n newPiano.blackKeysWidthDiff = 10;\n newPiano.dirty = true;\n \n newPiano.parentGroup = d;\n d.nodes.push(newPiano);\n \n //RED.view.PianoNodeListTemp.push(newPiano);\n \n}\nredraw(true);","w":299,"h":30,"textSize":14,"nodes":["MainWithGroupsOnly_Piano1","MainWithGroupsOnly_Piano2","MainWithGroupsOnly_Piano3","MainWithGroupsOnly_Piano4","MainWithGroupsOnly_Piano5","MainWithGroupsOnly_Piano6","MainWithGroupsOnly_Piano7","MainWithGroupsOnly_Piano8","MainWithGroupsOnly_Piano9","MainWithGroupsOnly_Piano10","MainWithGroupsOnly_Piano11"],"x":445,"y":1025,"z":"f063b7c9.3ec2c8","bgColor":"#DDFFBB","wires":[]},{"id":"MainWithGroupsOnly_Piano1","type":"UI_Piano","name":"octave0","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":0,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":370.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano2","type":"UI_Piano","name":"octave1","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":1,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":520.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano3","type":"UI_Piano","name":"octave2","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":2,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":670.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano4","type":"UI_Piano","name":"octave3","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":3,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":820.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano5","type":"UI_Piano","name":"octave4","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":4,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":970.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano6","type":"UI_Piano","name":"octave5","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":5,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1120.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano7","type":"UI_Piano","name":"octave6","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":6,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1270.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano8","type":"UI_Piano","name":"octave7","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":7,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1420.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano9","type":"UI_Piano","name":"octave8","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":8,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1570.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano10","type":"UI_Piano","name":"octave9","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":9,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1720.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"MainWithGroupsOnly_Piano11","type":"UI_Piano","name":"octave10","comment":"","w":150,"h":150,"textSize":14,"midiCh":0,"midiId":"0","octave":10,"sendCommand":"\"midiSend(\"+(d.keyDown+d.midiCh)+\",\"+(d.octave*12+d.keyIndex) +\",127)\"","headerHeight":30,"whiteKeysColor":"#FFFFFF","blackKeysColor":"#A0A0A0","blackKeysWidthDiff":10,"x":1870.5,"y":1115,"parentGroup":"MainWithGroupsOnly_scriptBtn1","z":"f063b7c9.3ec2c8","bgColor":"#F6F8BC","wires":[]},{"id":"NoteGen_dc1","type":"AudioSynthWaveformDc","name":"pulseFilterDutyCycle","parentGroup":"NoteGen_group3","x":130,"y":240,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_waveformMod8:1"]]},{"id":"NoteGen_ClassComment3","type":"ClassComment","name":"This is LFO with 2 modulators (saw,sampleHold)","parentGroup":"NoteGen_group4","x":270,"y":565,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[]},{"id":"NoteGen_waveformMod10","type":"AudioSynthWaveformModulated","name":"sawMod","parentGroup":"NoteGen_group4","x":230,"y":615,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer5:0"]]},{"id":"NoteGen_waveformMod9","type":"AudioSynthWaveformModulated","name":"sampleholdMod","comment":"","parentGroup":"NoteGen_group4","x":200,"y":665,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer5:1"]]},{"id":"NoteGen_ClassComment2","type":"ClassComment","name":"This is LFO with 4 modulated filter generators (sine,square,pulse,triangle)","parentGroup":"NoteGen_group3","x":305,"y":100,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[]},{"id":"NoteGen_waveformMod7","type":"AudioSynthWaveformModulated","name":"sineFilter","parentGroup":"NoteGen_group3","x":345,"y":160,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:0"]]},{"id":"NoteGen_waveformMod6","type":"AudioSynthWaveformModulated","name":"squareFilter","parentGroup":"NoteGen_group3","x":340,"y":195,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:1"]]},{"id":"NoteGen_waveformMod8","type":"AudioSynthWaveformModulated","name":"pulseFilter","parentGroup":"NoteGen_group3","x":345,"y":235,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:2"]]},{"id":"NoteGen_waveformMod5","type":"AudioSynthWaveformModulated","name":"triangleFilter","parentGroup":"NoteGen_group3","x":340,"y":270,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:3"]]},{"id":"NoteGen_code3","type":"Function","name":"begin function","comment":"void begin()\n{\n sineFilter.begin(WAVEFORM_SINE);\n squareFilter.begin(WAVEFORM_SQUARE);\n pulseFilter.begin(WAVEFORM_PULSE);\n triangleFilter.begin(WAVEFORM_TRIANGLE);\n filterMix.gain(0, 0.25);\n filterMix.gain(1, 0.25);\n filterMix.gain(2, 0.25);\n filterMix.gain(3, 0.25);\n}","parentGroup":"NoteGen_group3","x":350,"y":330,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_code4","type":"Function","name":"begin function","comment":"void begin()\n{\n sawMod.begin(WAVEFORM_SAWTOOTH);\n sampleholdMod.begin(WAVEFORM_SAMPLE_HOLD);\n modMix.gain(0, 0.5);\n modMix.gain(1, 0.5);\n}","parentGroup":"NoteGen_group4","x":330,"y":725,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_mixer5","type":"AudioMixer","name":"modMix","inputs":"2","parentGroup":"NoteGen_group4","x":415,"y":640,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_userObject2:0"]]},{"id":"NoteGen_mixer4_3","type":"AudioMixer4","name":"filterMix","parentGroup":"NoteGen_group3","x":540,"y":215,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_userObject1:0"]]},{"id":"NoteGen_userObject2","type":"AudioStreamObject","name":"arrayOut(Splitter)","subType":"","includeFile":"","inputs":"1","outputs":"2","comment":"","x":600,"y":640,"z":"f063b7c9.3ec2c8","bgColor":"#CAB3FF","wires":[["NoteGen_mixer4_4:1","NoteGen_mixer4_5:1"],["NoteGen_mixer4:1"]]},{"id":"NoteGen_userObject1","type":"AudioStreamObject","name":"arrayOut(Splitter)","subType":"","includeFile":"","inputs":"1","outputs":"2","comment":"","x":700,"y":215,"z":"f063b7c9.3ec2c8","bgColor":"#B3F7FF","wires":[["NoteGen_mixer4_4:0","NoteGen_mixer4_5:0"],["NoteGen_mixer4:0"]]},{"id":"NoteGen_dc2","type":"AudioSynthWaveformDc","name":"VFOtuningA","comment":"","x":745,"y":305,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_4:2"]]},{"id":"NoteGen_dc4","type":"AudioSynthWaveformDc","name":"PBend","comment":"","x":730,"y":355,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_4:3","NoteGen_mixer4_5:3"]]},{"id":"NoteGen_dc3","type":"AudioSynthWaveformDc","name":"VFOtuningB","comment":"","x":740,"y":410,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_5:2"]]},{"id":"NoteGen_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_1","x":880,"y":90,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[]},{"id":"NoteGen_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on2","x":1010,"y":20,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_mixer4_4","type":"AudioMixer4","name":"LFOmodMixA","comment":"","x":1000,"y":305,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_userObject3:0"]]},{"id":"NoteGen_mixer4_5","type":"AudioMixer4","name":"LFOmodMixB","comment":"","x":1000,"y":405,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_userObject3:1"]]},{"id":"NoteGen_mixer4","type":"AudioMixer","name":"LFOfilterMixC","inputs":"2","comment":"","x":1005,"y":490,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOfilter:1"]]},{"id":"NoteGen_userObject3","type":"AudioStreamObject","name":"arrayIn(Joiner)","subType":"","includeFile":"","inputs":"2","outputs":"1","comment":"","parentGroup":"NoteGen_group1","x":1245,"y":355,"z":"f063b7c9.3ec2c8","bgColor":"#DDFFBB","wires":[["NoteGen_Junction1:0"]]},{"id":"NoteGen_Junction1","type":"JunctionLR","name":"Junction","comment":"","parentGroup":"NoteGen_group2","x":1475,"y":300,"z":"f063b7c9.3ec2c8","bgColor":"#4D54FF","wires":[["NoteGen_waveformMod1:0","NoteGen_waveformMod2:0","NoteGen_waveformMod3:0","NoteGen_waveformMod4:0"]]},{"id":"NoteGen_code2","type":"Function","name":"begin function","comment":"void begin()\n{\n sine.begin(WAVEFORM_SINE);\n square.begin(WAVEFORM_SQUARE);\n triangle.begin(WAVEFORM_TRIANGLE);\n saw.begin(WAVEFORM_SAWTOOTH);\n string.noteOff(0);\n white.amplitude(0);\n pink.amplitude(0);\n for (int i = 0; i < 4; i++)\n {\n mix1.gain(i, 0.125);\n mix2.gain(i, 0.125);\n }\n}","parentGroup":"NoteGen_group2","x":1460,"y":425,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_ClassComment1","type":"ClassComment","name":"This is a VFO with mod:(sine, square, triangle, saw) + string,whiteNoise,pinkNoise and sweeper","parentGroup":"NoteGen_group2","x":1680,"y":205,"z":"f063b7c9.3ec2c8","bgColor":"#CCFFCC","wires":[]},{"id":"NoteGen_waveformMod1","type":"AudioSynthWaveformModulated","name":"sine","parentGroup":"NoteGen_group2","x":1655,"y":245,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:0"]]},{"id":"NoteGen_waveformMod2","type":"AudioSynthWaveformModulated","name":"square","parentGroup":"NoteGen_group2","x":1655,"y":280,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:1"]]},{"id":"NoteGen_waveformMod3","type":"AudioSynthWaveformModulated","name":"triangle","parentGroup":"NoteGen_group2","x":1655,"y":315,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:2"]]},{"id":"NoteGen_waveformMod4","type":"AudioSynthWaveformModulated","name":"saw","parentGroup":"NoteGen_group2","x":1655,"y":350,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:3"]]},{"id":"NoteGen_string1","type":"AudioSynthKarplusStrong","name":"string","parentGroup":"NoteGen_group2","x":1655,"y":385,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:0"]]},{"id":"NoteGen_noise1","type":"AudioSynthNoiseWhite","name":"white","parentGroup":"NoteGen_group2","x":1655,"y":420,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:1"]]},{"id":"NoteGen_pink1","type":"AudioSynthNoisePink","name":"pink","parentGroup":"NoteGen_group2","x":1655,"y":455,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:2"]]},{"id":"NoteGen_tonesweep1","type":"AudioSynthToneSweep","name":"sweeper","parentGroup":"NoteGen_group2","x":1655,"y":490,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:3"]]},{"id":"NoteGen_mixer4_1","type":"AudioMixer4","name":"mix1","parentGroup":"NoteGen_group2","x":1790,"y":300,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer1:0"]]},{"id":"NoteGen_mixer4_2","type":"AudioMixer4","name":"mix2","parentGroup":"NoteGen_group2","x":1785,"y":435,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer1:1"]]},{"id":"NoteGen_mixer1","type":"AudioMixer","name":"mixer","inputs":"2","comment":"","parentGroup":"NoteGen_group2","x":1905,"y":370,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer2:0"]]},{"id":"NoteGen_mixer2","type":"AudioMixer","name":"vfo_mixer","inputs":"1","comment":"","parentGroup":"NoteGen_group1","x":2040,"y":390,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["Voice_MixerX1:0","VFOenvelope:0"]]},{"id":"VFOenvelope","type":"AudioEffectEnvelope","name":"VFOenvelope","parentGroup":"NoteGen_group1","x":2180,"y":430,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["Voice_MixerX1:1"]]},{"id":"NoteGen_code1","type":"Function","name":"begin function","comment":"void begin ()\n{\n VFO1.begin();\n VFO2.begin();\n waveMix.gain(0, 0.25);\n waveMix.gain(1, 0.25);\n waveMix.gain(2, 0.25);\n waveMix.gain(3, 0.25);\n VFOenvelopeMix.gain(0, 0.5);\n VFOenvelopeMix.gain(1, 0.5);\n VFOfilterMix.gain(0, 0.25);\n VFOfilterMix.gain(1, 0.25);\n VFOfilterMix.gain(2, 0.25);\n VFOfilterMix.gain(3, 0.25);\n}","parentGroup":"NoteGen_group1","x":2260,"y":310,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"Voice_MixerX1","type":"AudioMixer","name":"VFOenvelopeMix","inputs":"2","parentGroup":"NoteGen_group1","x":2225,"y":375,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOfilter:0","VFOfilterMix:0"]]},{"id":"VFOfilter","type":"AudioFilterStateVariable","name":"VFOfilter","parentGroup":"NoteGen_group1","x":2275,"y":510,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOfilterMix:1"],["VFOfilterMix:2"],["VFOfilterMix:3"]]},{"id":"Voice_ClassComment1","type":"ClassComment","name":"This is a voice with two VFO:s, envelope, vfo-filter","parentGroup":"NoteGen_group1","x":2300,"y":255,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[]},{"id":"VFOfilterMix","type":"AudioMixer4","name":"VFOfilterMix","comment":"","parentGroup":"NoteGen_group1","x":2440,"y":480,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_mixer3:0"]]},{"id":"MainWithGroupsOnly_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n LFO_A1.begin();\n LFO_A2.begin();\n LFO_B1.begin();\n LFO_B2.begin();\n for (int i = 0; i < 16; i++)\n {\n voices[i].begin();\n mixFinal.gain(i, 1.0/16); // set equal gain\n }\n for (int i = 0; i < 4; i++)\n {\n LFOmodMixA.gain(i, 0.25);\n LFOmodMixB.gain(i, 0.25);\n }\n LFOfilterMixC.gain(0, 0.5);\n LFOfilterMixC.gain(1, 0.5);\n}","x":2665,"y":370,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_mixer3","type":"AudioMixer","name":"mixFinal","inputs":"1","x":2665,"y":480,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_amp1:0"]]},{"id":"NoteGen_amp1","type":"AudioAmplifier","name":"ampFinal","comment":"this is used for easier gain adj. of mixFinal","x":2825,"y":480,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["NoteGen_i2s1:0","NoteGen_i2s1:1"]]},{"id":"NoteGen_i2s1","type":"AudioOutputI2S","name":"i2s3","x":2990,"y":475,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"d6e5c179.63802","label":"MainWithGroupsOnlyNoSubArrays","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"Sheet_1_group1","type":"group","name":"Voice voices[8]","comment":"","w":1362,"h":866,"textSize":14,"nodes":["Sheet_1_ClassComment3","Sheet_1_envelope1","Sheet_1_mixer4","Sheet_1_code3","Sheet_1_filter1","Sheet_1_mixer4_6","Sheet_1_group2","Sheet_1_mixer3","Sheet_1_group7"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":1885,"y":599,"z":"d6e5c179.63802","bgColor":"rgba(184,255,201,0.69)","wires":[]},{"id":"Sheet_1_group2","type":"group","name":"VFO vfo[2]","comment":"","w":631,"h":361,"textSize":14,"nodes":["Sheet_1_waveformMod5","Sheet_1_waveformMod6","Sheet_1_waveformMod7","Sheet_1_waveformMod8","Sheet_1_string1","Sheet_1_noise1","Sheet_1_pink1","Sheet_1_tonesweep1","Sheet_1_mixer4_4","Sheet_1_mixer4_5","Sheet_1_code2","Sheet_1_ClassComment2","Sheet_1_mixer2","Sheet_1_Junction1"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"parentGroup":"Sheet_1_group1","x":1570,"y":400,"z":"d6e5c179.63802","bgColor":"rgba(221,255,187,1)","wires":[]},{"id":"Sheet_1_group3","type":"group","name":"LFO_A lfoA1","comment":"","w":580,"h":317,"textSize":14,"nodes":["Sheet_1_dc1","Sheet_1_waveformMod4","Sheet_1_waveformMod2","Sheet_1_waveformMod1","Sheet_1_waveformMod3","Sheet_1_ClassComment1","Sheet_1_mixer4_1","Sheet_1_code1"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":345,"y":215,"z":"d6e5c179.63802","bgColor":"rgba(179,247,255,0.76)","wires":[]},{"id":"Sheet_1_group4","type":"group","name":"LFO_B lfoB1","comment":"","w":474,"h":248,"textSize":14,"nodes":["Sheet_1_waveformMod9","Sheet_1_waveformMod10","Sheet_1_mixer6","Sheet_1_ClassComment4","Sheet_1_code4"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":320,"y":865,"z":"d6e5c179.63802","bgColor":"rgba(202,179,255,0.66)","wires":[]},{"id":"Sheet_1_group5","type":"group","name":"LFO_B lfoB2","comment":"","w":474,"h":245,"textSize":14,"nodes":["Sheet_1_waveformMod11","Sheet_1_waveformMod12","Sheet_1_mixer7","Sheet_1_ClassComment5","Sheet_1_code6"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":325,"y":1145,"z":"d6e5c179.63802","bgColor":"rgba(202,179,255,0.66)","wires":[]},{"id":"Sheet_1_group6","type":"group","name":"LFO_A lfoA2","comment":"","w":580,"h":317,"textSize":14,"nodes":["Sheet_1_dc5","Sheet_1_waveformMod13","Sheet_1_waveformMod14","Sheet_1_waveformMod15","Sheet_1_waveformMod16","Sheet_1_ClassComment6","Sheet_1_mixer4_7","Sheet_1_code7"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"x":350,"y":570,"z":"d6e5c179.63802","bgColor":"rgba(179,247,255,0.76)","wires":[]},{"id":"Sheet_1_group7","type":"group","name":"VFO vfo[2]1","comment":"","w":713,"h":361,"textSize":14,"nodes":["Sheet_1_waveformMod17","Sheet_1_waveformMod18","Sheet_1_waveformMod19","Sheet_1_waveformMod20","Sheet_1_string2","Sheet_1_noise2","Sheet_1_pink2","Sheet_1_tonesweep2","Sheet_1_mixer4_8","Sheet_1_mixer4_9","Sheet_1_code8","Sheet_1_ClassComment7","Sheet_1_mixer8","Sheet_1_Junction2"],"border_color":"rgba(153,153,153,1)","individualListBoxMode":true,"exportAsClass":true,"parentGroup":"Sheet_1_group1","x":1610,"y":785,"z":"d6e5c179.63802","bgColor":"rgba(221,255,187,1)","wires":[]},{"id":"Sheet_1_dc1","type":"AudioSynthWaveformDc","name":"pulseFilterDutyCycle","parentGroup":"Sheet_1_group3","x":155,"y":255,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod3:1"]]},{"id":"Sheet_1_dc5","type":"AudioSynthWaveformDc","name":"pulseFilterDutyCycle1","parentGroup":"Sheet_1_group6","x":160,"y":610,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod16:1"]]},{"id":"Sheet_1_waveformMod10","type":"AudioSynthWaveformModulated","name":"sawMod","parentGroup":"Sheet_1_group4","x":280,"y":850,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer6:0"]]},{"id":"Sheet_1_waveformMod9","type":"AudioSynthWaveformModulated","name":"sampleholdMod","comment":"","parentGroup":"Sheet_1_group4","x":250,"y":900,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer6:1"]]},{"id":"Sheet_1_waveformMod12","type":"AudioSynthWaveformModulated","name":"sawMod1","parentGroup":"Sheet_1_group5","x":285,"y":1130,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer7:0"]]},{"id":"Sheet_1_waveformMod11","type":"AudioSynthWaveformModulated","name":"sampleholdMod1","comment":"","parentGroup":"Sheet_1_group5","x":255,"y":1180,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer7:1"]]},{"id":"Sheet_1_ClassComment1","type":"ClassComment","name":"This is LFO with 4 modulated filter generators (sine,square,pulse,triangle)","parentGroup":"Sheet_1_group3","x":330,"y":115,"z":"d6e5c179.63802","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_waveformMod1","type":"AudioSynthWaveformModulated","name":"sineFilter","parentGroup":"Sheet_1_group3","x":370,"y":175,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_1:0"]]},{"id":"Sheet_1_waveformMod2","type":"AudioSynthWaveformModulated","name":"squareFilter","parentGroup":"Sheet_1_group3","x":365,"y":210,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_1:1"]]},{"id":"Sheet_1_waveformMod3","type":"AudioSynthWaveformModulated","name":"pulseFilter","parentGroup":"Sheet_1_group3","x":370,"y":250,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_1:2"]]},{"id":"Sheet_1_waveformMod4","type":"AudioSynthWaveformModulated","name":"triangleFilter","parentGroup":"Sheet_1_group3","x":365,"y":285,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_1:3"]]},{"id":"Sheet_1_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n sineFilter.begin(WAVEFORM_SINE);\n squareFilter.begin(WAVEFORM_SQUARE);\n pulseFilter.begin(WAVEFORM_PULSE);\n triangleFilter.begin(WAVEFORM_TRIANGLE);\n filterMix.gain(0, 0.25);\n filterMix.gain(1, 0.25);\n filterMix.gain(2, 0.25);\n filterMix.gain(3, 0.25);\n}","parentGroup":"Sheet_1_group3","x":375,"y":345,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_ClassComment6","type":"ClassComment","name":"This is LFO with 4 modulated filter generators (sine,square,pulse,triangle)1","parentGroup":"Sheet_1_group6","x":335,"y":470,"z":"d6e5c179.63802","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_waveformMod15","type":"AudioSynthWaveformModulated","name":"sineFilter1","parentGroup":"Sheet_1_group6","x":375,"y":530,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_7:0"]]},{"id":"Sheet_1_waveformMod14","type":"AudioSynthWaveformModulated","name":"squareFilter1","parentGroup":"Sheet_1_group6","x":370,"y":565,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_7:1"]]},{"id":"Sheet_1_waveformMod16","type":"AudioSynthWaveformModulated","name":"pulseFilter1","parentGroup":"Sheet_1_group6","x":375,"y":605,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_7:2"]]},{"id":"Sheet_1_waveformMod13","type":"AudioSynthWaveformModulated","name":"triangleFilter1","parentGroup":"Sheet_1_group6","x":370,"y":640,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_7:3"]]},{"id":"Sheet_1_code7","type":"Function","name":"begin function2","comment":"void begin()\n{\n sineFilter.begin(WAVEFORM_SINE);\n squareFilter.begin(WAVEFORM_SQUARE);\n pulseFilter.begin(WAVEFORM_PULSE);\n triangleFilter.begin(WAVEFORM_TRIANGLE);\n filterMix.gain(0, 0.25);\n filterMix.gain(1, 0.25);\n filterMix.gain(2, 0.25);\n filterMix.gain(3, 0.25);\n}","parentGroup":"Sheet_1_group6","x":380,"y":700,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_ClassComment4","type":"ClassComment","name":"This is LFO with 2 modulators (saw,sampleHold)","parentGroup":"Sheet_1_group4","x":320,"y":800,"z":"d6e5c179.63802","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_code4","type":"Function","name":"begin function","comment":"void begin()\n{\n sawMod.begin(WAVEFORM_SAWTOOTH);\n sampleholdMod.begin(WAVEFORM_SAMPLE_HOLD);\n modMix.gain(0, 0.5);\n modMix.gain(1, 0.5);\n}","parentGroup":"Sheet_1_group4","x":380,"y":960,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_ClassComment5","type":"ClassComment","name":"This is LFO with 2 modulators (saw,sampleHold)1","parentGroup":"Sheet_1_group5","x":325,"y":1080,"z":"d6e5c179.63802","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_code6","type":"Function","name":"begin function1","comment":"void begin()\n{\n sawMod.begin(WAVEFORM_SAWTOOTH);\n sampleholdMod.begin(WAVEFORM_SAMPLE_HOLD);\n modMix.gain(0, 0.5);\n modMix.gain(1, 0.5);\n}","parentGroup":"Sheet_1_group5","x":385,"y":1240,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_mixer6","type":"AudioMixer","name":"modMix","inputs":"2","parentGroup":"Sheet_1_group4","x":465,"y":875,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_2:1","Sheet_1_mixer4_3:1"]]},{"id":"Sheet_1_mixer7","type":"AudioMixer","name":"modMix1","inputs":"2","parentGroup":"Sheet_1_group5","x":470,"y":1155,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:1"]]},{"id":"Sheet_1_mixer4_1","type":"AudioMixer4","name":"filterMix","parentGroup":"Sheet_1_group3","x":565,"y":230,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_2:0","Sheet_1_mixer4_3:0"]]},{"id":"Sheet_1_mixer4_7","type":"AudioMixer4","name":"filterMix1","parentGroup":"Sheet_1_group6","x":570,"y":585,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:0"]]},{"id":"Sheet_1_dc2","type":"AudioSynthWaveformDc","name":"VFOtuningA","comment":"","x":765,"y":500,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_2:2"]]},{"id":"Sheet_1_dc4","type":"AudioSynthWaveformDc","name":"PBend","comment":"","x":750,"y":550,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_2:3","Sheet_1_mixer4_3:3"]]},{"id":"Sheet_1_dc3","type":"AudioSynthWaveformDc","name":"VFOtuningB","comment":"","x":760,"y":605,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_3:2"]]},{"id":"Sheet_1_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_1","x":930,"y":145,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[]},{"id":"Sheet_1_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on2","x":1060,"y":75,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_mixer4_2","type":"AudioMixer4","name":"LFOmodMixA","comment":"","x":1020,"y":495,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_Junction1:0"]]},{"id":"Sheet_1_mixer4_3","type":"AudioMixer4","name":"LFOmodMixB","comment":"","x":1020,"y":600,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_Junction2:0"]]},{"id":"Sheet_1_mixer1","type":"AudioMixer","name":"LFOfilterMixC","inputs":"2","comment":"","x":1000,"y":1075,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_filter1:1"]]},{"id":"Sheet_1_Junction1","type":"JunctionLR","name":"Junction","comment":"","parentGroup":"Sheet_1_group2","x":1395,"y":355,"z":"d6e5c179.63802","bgColor":"#4D54FF","wires":[["Sheet_1_waveformMod5:0","Sheet_1_waveformMod6:0","Sheet_1_waveformMod7:0","Sheet_1_waveformMod8:0"]]},{"id":"Sheet_1_code2","type":"Function","name":"begin function","comment":"void begin()\n{\n sine.begin(WAVEFORM_SINE);\n square.begin(WAVEFORM_SQUARE);\n triangle.begin(WAVEFORM_TRIANGLE);\n saw.begin(WAVEFORM_SAWTOOTH);\n string.noteOff(0);\n white.amplitude(0);\n pink.amplitude(0);\n for (int i = 0; i < 4; i++)\n {\n mix1.gain(i, 0.125);\n mix2.gain(i, 0.125);\n }\n}","parentGroup":"Sheet_1_group2","x":1380,"y":480,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_Junction2","type":"JunctionLR","name":"Junction1","comment":"","parentGroup":"Sheet_1_group7","x":1435,"y":740,"z":"d6e5c179.63802","bgColor":"#4D54FF","wires":[["Sheet_1_waveformMod17:0","Sheet_1_waveformMod18:0","Sheet_1_waveformMod19:0","Sheet_1_waveformMod20:0"]]},{"id":"Sheet_1_code8","type":"Function","name":"begin function3","comment":"void begin()\n{\n sine.begin(WAVEFORM_SINE);\n square.begin(WAVEFORM_SQUARE);\n triangle.begin(WAVEFORM_TRIANGLE);\n saw.begin(WAVEFORM_SAWTOOTH);\n string.noteOff(0);\n white.amplitude(0);\n pink.amplitude(0);\n for (int i = 0; i < 4; i++)\n {\n mix1.gain(i, 0.125);\n mix2.gain(i, 0.125);\n }\n}","parentGroup":"Sheet_1_group7","x":1420,"y":865,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_waveformMod5","type":"AudioSynthWaveformModulated","name":"sine","parentGroup":"Sheet_1_group2","x":1575,"y":300,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_4:0"]]},{"id":"Sheet_1_waveformMod6","type":"AudioSynthWaveformModulated","name":"square","parentGroup":"Sheet_1_group2","x":1575,"y":335,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_4:1"]]},{"id":"Sheet_1_waveformMod7","type":"AudioSynthWaveformModulated","name":"triangle","parentGroup":"Sheet_1_group2","x":1575,"y":370,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_4:2"]]},{"id":"Sheet_1_waveformMod8","type":"AudioSynthWaveformModulated","name":"saw","parentGroup":"Sheet_1_group2","x":1575,"y":405,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_4:3"]]},{"id":"Sheet_1_string1","type":"AudioSynthKarplusStrong","name":"string","parentGroup":"Sheet_1_group2","x":1575,"y":440,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_5:0"]]},{"id":"Sheet_1_noise1","type":"AudioSynthNoiseWhite","name":"white","parentGroup":"Sheet_1_group2","x":1575,"y":475,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_5:1"]]},{"id":"Sheet_1_pink1","type":"AudioSynthNoisePink","name":"pink","parentGroup":"Sheet_1_group2","x":1575,"y":510,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_5:2"]]},{"id":"Sheet_1_tonesweep1","type":"AudioSynthToneSweep","name":"sweeper","parentGroup":"Sheet_1_group2","x":1575,"y":545,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_5:3"]]},{"id":"Sheet_1_ClassComment2","type":"ClassComment","name":"This is a VFO with mod:(sine, square, triangle, saw) + string,whiteNoise,pinkNoise and sweeper","parentGroup":"Sheet_1_group2","x":1600,"y":260,"z":"d6e5c179.63802","bgColor":"#CCFFCC","wires":[]},{"id":"Sheet_1_ClassComment7","type":"ClassComment","name":"This is a VFO with mod:(sine, square, triangle, saw) + string,whiteNoise,pinkNoise and sweeper1","parentGroup":"Sheet_1_group7","x":1640,"y":645,"z":"d6e5c179.63802","bgColor":"#CCFFCC","wires":[]},{"id":"Sheet_1_waveformMod17","type":"AudioSynthWaveformModulated","name":"sine1","parentGroup":"Sheet_1_group7","x":1615,"y":685,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_8:0"]]},{"id":"Sheet_1_waveformMod18","type":"AudioSynthWaveformModulated","name":"square1","parentGroup":"Sheet_1_group7","x":1615,"y":720,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_8:1"]]},{"id":"Sheet_1_waveformMod19","type":"AudioSynthWaveformModulated","name":"triangle1","parentGroup":"Sheet_1_group7","x":1615,"y":755,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_8:2"]]},{"id":"Sheet_1_waveformMod20","type":"AudioSynthWaveformModulated","name":"saw1","parentGroup":"Sheet_1_group7","x":1615,"y":790,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_8:3"]]},{"id":"Sheet_1_string2","type":"AudioSynthKarplusStrong","name":"string1","parentGroup":"Sheet_1_group7","x":1615,"y":825,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_9:0"]]},{"id":"Sheet_1_noise2","type":"AudioSynthNoiseWhite","name":"white1","parentGroup":"Sheet_1_group7","x":1615,"y":860,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_9:1"]]},{"id":"Sheet_1_pink2","type":"AudioSynthNoisePink","name":"pink1","parentGroup":"Sheet_1_group7","x":1615,"y":895,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_9:2"]]},{"id":"Sheet_1_tonesweep2","type":"AudioSynthToneSweep","name":"sweeper1","parentGroup":"Sheet_1_group7","x":1615,"y":930,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_9:3"]]},{"id":"Sheet_1_mixer4_4","type":"AudioMixer4","name":"mix1","parentGroup":"Sheet_1_group2","x":1710,"y":355,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:0"]]},{"id":"Sheet_1_mixer4_5","type":"AudioMixer4","name":"mix2","parentGroup":"Sheet_1_group2","x":1705,"y":490,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:1"]]},{"id":"Sheet_1_mixer4_8","type":"AudioMixer4","name":"mix1_1","parentGroup":"Sheet_1_group7","x":1750,"y":740,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer8:0"]]},{"id":"Sheet_1_mixer4_9","type":"AudioMixer4","name":"mix2_1","parentGroup":"Sheet_1_group7","x":1745,"y":875,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer8:1"]]},{"id":"Sheet_1_mixer2","type":"AudioMixer","name":"mixer","inputs":"2","comment":"","parentGroup":"Sheet_1_group2","x":1825,"y":425,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:0"]]},{"id":"Sheet_1_mixer8","type":"AudioMixer","name":"mixer1","inputs":"2","comment":"","parentGroup":"Sheet_1_group7","x":1865,"y":810,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:1"]]},{"id":"Sheet_1_envelope1","type":"AudioEffectEnvelope","name":"VFOenvelope","parentGroup":"Sheet_1_group1","x":2080,"y":430,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:1"]]},{"id":"Sheet_1_mixer3","type":"AudioMixer","name":"vfo_mixer","inputs":"2","comment":"","parentGroup":"Sheet_1_group1","x":2030,"y":520,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:0","Sheet_1_envelope1:0"]]},{"id":"Sheet_1_ClassComment3","type":"ClassComment","name":"This is a voice with two VFO:s, envelope, vfo-filter","parentGroup":"Sheet_1_group1","x":2350,"y":310,"z":"d6e5c179.63802","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_code3","type":"Function","name":"begin function","comment":"void begin ()\n{\n VFO1.begin();\n VFO2.begin();\n waveMix.gain(0, 0.25);\n waveMix.gain(1, 0.25);\n waveMix.gain(2, 0.25);\n waveMix.gain(3, 0.25);\n VFOenvelopeMix.gain(0, 0.5);\n VFOenvelopeMix.gain(1, 0.5);\n VFOfilterMix.gain(0, 0.25);\n VFOfilterMix.gain(1, 0.25);\n VFOfilterMix.gain(2, 0.25);\n VFOfilterMix.gain(3, 0.25);\n}","parentGroup":"Sheet_1_group1","x":2310,"y":365,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_mixer4","type":"AudioMixer","name":"VFOenvelopeMix","inputs":"2","parentGroup":"Sheet_1_group1","x":2320,"y":425,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_filter1:0","Sheet_1_mixer4_6:0"]]},{"id":"Sheet_1_filter1","type":"AudioFilterStateVariable","name":"VFOfilter","parentGroup":"Sheet_1_group1","x":2325,"y":565,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4_6:1"],["Sheet_1_mixer4_6:2"],["Sheet_1_mixer4_6:3"]]},{"id":"Sheet_1_mixer4_6","type":"AudioMixer4","name":"VFOfilterMix","comment":"","parentGroup":"Sheet_1_group1","x":2490,"y":535,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer5:0"]]},{"id":"Sheet_1_code5","type":"Function","name":"begin function","comment":"void begin()\n{\n LFO_A1.begin();\n LFO_A2.begin();\n LFO_B1.begin();\n LFO_B2.begin();\n for (int i = 0; i < 16; i++)\n {\n voices[i].begin();\n mixFinal.gain(i, 1.0/16); // set equal gain\n }\n for (int i = 0; i < 4; i++)\n {\n LFOmodMixA.gain(i, 0.25);\n LFOmodMixB.gain(i, 0.25);\n }\n LFOfilterMixC.gain(0, 0.5);\n LFOfilterMixC.gain(1, 0.5);\n}","x":2715,"y":425,"z":"d6e5c179.63802","bgColor":"#ddffbb","wires":[]},{"id":"Sheet_1_mixer5","type":"AudioMixer","name":"mixFinal","inputs":"1","x":2715,"y":535,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_amp1:0"]]},{"id":"Sheet_1_amp1","type":"AudioAmplifier","name":"ampFinal","comment":"this is used for easier gain adj. of mixFinal","x":2875,"y":535,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[["Sheet_1_i2s1:0","Sheet_1_i2s1:1"]]},{"id":"Sheet_1_i2s1","type":"AudioOutputI2S","name":"i2s3","x":3040,"y":530,"z":"d6e5c179.63802","bgColor":"#E6E0F8","wires":[]}]
</script>
<script type="text/x-red" data-container-name="SimpleNonAudioExample">
{"version":1,"settings":{"arduino":{"IOcheckAtExport":false,"ProjectName":"SimpleNonAudioExample","StandardIncludeHeader":"#include <Arduino.h>\n","Board":{"Platform":"","Board":"","Options":""}},"BiDirDataWebSocketBridge":{},"workspaces":{},"sidebar":{},"palette":{},"editor":{},"devTest":{},"IndexedDBfiles":{"testFileNames":"testFile.txt"},"NodeDefGenerator":{},"NodeDefManager":{},"NodeHelpManager":{},"OSC":{}},"workspaces":[{"type":"tab","id":"8dccf7a3.129388","label":"MyMathClass","inputs":0,"outputs":0,"export":true,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{},"nodes":[{"id":"ClassA_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n // do some initiations here\n}\n","x":165,"y":85,"z":"8dccf7a3.129388","bgColor":"#DDFFBB","wires":[]},{"id":"ClassA_code2","type":"Function","name":"sum function","comment":"\nint sum(int a, int b) {\n return a + b;\n}","x":160,"y":130,"z":"8dccf7a3.129388","bgColor":"#DDFFBB","wires":[]},{"id":"ClassA_code3","type":"Function","name":"subtract function","comment":"\nint subtract(int a, int b) {\n return a - b;\n}","x":175,"y":175,"z":"8dccf7a3.129388","bgColor":"#DDFFBB","wires":[]}]},{"type":"tab","id":"Main","label":"main.cpp","inputs":0,"outputs":0,"export":true,"isMain":false,"mainNameType":"tabName","mainNameExt":".ino","generateCppDestructor":false,"extraClassDeclarations":"","settings":{},"nodes":[{"id":"Main_MyMathClass_1","type":"MyMathClass","name":"myMath","x":150,"y":80,"z":"Main","bgColor":"#CCFFCC","wires":[]},{"id":"main.cpp_code1","type":"Function","name":"main code","comment":"\nvoid setup() {\n myMath.begin();\n}\n\nvoid update() {\n myMath.sum(1,2);\n}","x":155,"y":130,"z":"Main","bgColor":"#DDFFBB","wires":[]}]}],"nodeAddons":{}}
</script>
<script type="text/x-red" data-container-name="DemoFlowA">
[{"type":"settings","data":[{"arduino":{"useExportDialog":false,"IOcheckAtExport":true,"WriteJSONtoExportedFile":true,"WebServerPort":8080,"WebSocketServerPort":3000,"ProjectName":"DemoFlowA","StandardIncludeHeader":"#include <Arduino.h>\n#include <Audio.h>\n#include <Wire.h>\n#include <SPI.h>\n#include <SD.h>\n#include <SerialFlash.h>\n"}},{"BiDirDataWebSocketBridge":{"bddwssPort":3001,"MidiDeviceIn":0,"MidiDeviceOut":0}},{"view":{"showWorkspaceToolbar":true,"showNodeToolTip":true,"guiEditMode":true,"lockWindowMouseScrollInRunMode":true,"space_width":5000,"space_height":5000,"workspaceBgColor":"#FFF","scaleFactor":1,"showGridHminor":true,"showGridHmajor":true,"showGridVminor":true,"showGridVmajor":true,"nodeMouseDownShowGridHminor":false,"nodeMouseDownShowGridHmajor":true,"nodeMouseDownShowGridVminor":false,"nodeMouseDownShowGridVmajor":true,"gridHminorSize":10,"gridHmajorSize":100,"gridVminorSize":10,"gridVmajorSize":100,"gridMinorColor":"#eee","gridMajorColor":"#ddd","snapToGrid":true,"snapToGridHsize":5,"snapToGridVsize":5,"lineCurveScale":0.75,"lineConnectionsScale":1.5,"useCenterBasedPositions":true,"nodeDefaultTextSize":14}},{"palette":{"categoryHeaderTextSize":12,"categoryHeaderHeight":14,"categoryHeaderBackgroundColor":"#f3f3f3","onlyShowOne":true}},{"editor":{"aceEditorTheme":"theme-chrome"}},{"devTest":{"autoSwitchTabToInfoTab":true,"testPost":"data","testGet":"cmd","testWsSend":"data","getFuncHelp":"AudioEffectFade"}}]},{"type":"tab","id":"bfcf1914.f592c8","label":"VFO","inputs":1,"outputs":2,"export":true,"nodes":[]},{"id":"In","type":"TabInput","name":"modIn","x":80,"y":95,"z":"bfcf1914.f592c8","bgColor":"#cce6ff","wires":[["VFO_sine:0","square:0","triangle:0","saw:0"]]},{"id":"VFO_sine","type":"AudioSynthWaveformModulated","name":"sine","x":292,"y":56,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix1:0"]]},{"id":"square","type":"AudioSynthWaveformModulated","name":"square","x":292,"y":91,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix1:1"]]},{"id":"triangle","type":"AudioSynthWaveformModulated","name":"triangle","x":292,"y":126,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix1:2"]]},{"id":"saw","type":"AudioSynthWaveformModulated","name":"saw","x":292,"y":161,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix1:3"]]},{"id":"string","type":"AudioSynthKarplusStrong","name":"string","x":292,"y":196,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix2:0"]]},{"id":"white","type":"AudioSynthNoiseWhite","name":"white","x":292,"y":231,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix2:1"]]},{"id":"pink","type":"AudioSynthNoisePink","name":"pink","x":292,"y":266,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix2:2"]]},{"id":"sweeper","type":"AudioSynthToneSweep","name":"sweeper","x":292,"y":301,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["mix2:3"]]},{"id":"VFO_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on","x":230,"y":371,"z":"bfcf1914.f592c8","bgColor":"#ddffbb","wires":[]},{"id":"mix1","type":"AudioMixer4","name":"mix1","x":542,"y":147,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["vfo_mix1out:0"]]},{"id":"mix2","type":"AudioMixer4","name":"mix2","x":542,"y":220,"z":"bfcf1914.f592c8","bgColor":"#E6E0F8","wires":[["vfo_mix2out:0"]]},{"id":"vfo_mix2out","type":"TabOutput","name":"mix2out","x":699,"y":220,"z":"bfcf1914.f592c8","bgColor":"#cce6ff","wires":[]},{"id":"VFO_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n sine.begin(WAVEFORM_SINE);\n square.begin(WAVEFORM_SQUARE);\n triangle.begin(WAVEFORM_TRIANGLE);\n saw.begin(WAVEFORM_SAWTOOTH);\n string.noteOff(0);\n white.amplitude(0);\n pink.amplitude(0);\n for (int i = 0; i < 4; i++)\n {\n mix1.gain(i, 0.125);\n mix2.gain(i, 0.125);\n }\n}","x":673,"y":313,"z":"bfcf1914.f592c8","bgColor":"#ddffbb","wires":[]},{"id":"VFO_ClassComment1","type":"ClassComment","name":"This is a VFO with modulated:(sine, square, triangle, saw) + string,whiteNoise,pinkNoise and sweeper","x":780,"y":66,"z":"bfcf1914.f592c8","bgColor":"#ccffcc","wires":[]},{"id":"vfo_mix1out","type":"TabOutput","name":"mix1out","x":705,"y":146,"z":"bfcf1914.f592c8","bgColor":"#cce6ff","wires":[]},{"type":"tab","id":"146f0b11.7830b5","label":"LFO_A","inputs":0,"outputs":1,"export":true,"nodes":[]},{"id":"pulseFilterDutyCycle","type":"AudioSynthWaveformDc","name":"pulseFilterDutyCycle","x":162,"y":218,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["pulseFilter:1"]]},{"id":"LFO_A_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on4","x":256,"y":368,"z":"146f0b11.7830b5","bgColor":"#ddffbb","wires":[]},{"id":"sineFilter","type":"AudioSynthWaveformModulated","name":"sineFilter","x":378,"y":136,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["filterMix:0"]]},{"id":"squareFilter","type":"AudioSynthWaveformModulated","name":"squareFilter","x":370,"y":174,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["filterMix:1"]]},{"id":"pulseFilter","type":"AudioSynthWaveformModulated","name":"pulseFilter","x":378,"y":212,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["filterMix:2"]]},{"id":"triangleFilter","type":"AudioSynthWaveformModulated","name":"triangleFilter","x":369.00001525878906,"y":250,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["filterMix:3"]]},{"id":"LFO_A_ClassComment1","type":"ClassComment","name":"This is LFO with 4 modulated filter generators (sine,square,pulse,triangle)","x":512,"y":77,"z":"146f0b11.7830b5","bgColor":"#ccffcc","wires":[]},{"id":"filterMix","type":"AudioMixer4","name":"filterMix","x":569,"y":193,"z":"146f0b11.7830b5","bgColor":"#E6E0F8","wires":[["lfo_a_filterMixOut:0"]]},{"id":"lfo_a_filterMixOut","type":"TabOutput","name":"filterMixOut","x":727,"y":194,"z":"146f0b11.7830b5","bgColor":"#cce6ff","wires":[]},{"id":"LFO_A_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n sineFilter.begin(WAVEFORM_SINE);\n squareFilter.begin(WAVEFORM_SQUARE);\n pulseFilter.begin(WAVEFORM_PULSE);\n triangleFilter.begin(WAVEFORM_TRIANGLE);\n filterMix.gain(0, 0.25);\n filterMix.gain(1, 0.25);\n filterMix.gain(2, 0.25);\n filterMix.gain(3, 0.25);\n}","x":741,"y":279,"z":"146f0b11.7830b5","bgColor":"#ddffbb","wires":[]},{"type":"tab","id":"4369d3c8.87448c","label":"LFO_B","inputs":0,"outputs":1,"export":true,"nodes":[]},{"id":"sawMod","type":"AudioSynthWaveformModulated","name":"sawMod","x":196,"y":138,"z":"4369d3c8.87448c","bgColor":"#E6E0F8","wires":[["LFO_B_MixerX1:0"]]},{"id":"sampleholdMod","type":"AudioSynthWaveformModulated","name":"sampleholdMod","comment":"","x":164,"y":188,"z":"4369d3c8.87448c","bgColor":"#E6E0F8","wires":[["LFO_B_MixerX1:1"]]},{"id":"LFO_B_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on5","x":262,"y":328,"z":"4369d3c8.87448c","bgColor":"#ddffbb","wires":[]},{"id":"LFO_B_ClassComment1","type":"ClassComment","name":"This is LFO with 2 modulators (saw,sampleHold)","x":397,"y":84,"z":"4369d3c8.87448c","bgColor":"#ccffcc","wires":[]},{"id":"LFO_B_MixerX1","type":"AudioMixer","name":"modMix","inputs":"2","x":378,"y":163,"z":"4369d3c8.87448c","bgColor":"#E6E0F8","wires":[["lfo_b_modMixOut:0"]]},{"id":"lfo_b_modMixOut","type":"TabOutput","name":"modMixOut","x":598,"y":162,"z":"4369d3c8.87448c","bgColor":"#cce6ff","wires":[]},{"id":"LFO_B_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n sawMod.begin(WAVEFORM_SAWTOOTH);\n sampleholdMod.begin(WAVEFORM_SAMPLE_HOLD);\n modMix.gain(0, 0.5);\n modMix.gain(1, 0.5);\n}","x":575,"y":248,"z":"4369d3c8.87448c","bgColor":"#ddffbb","wires":[]},{"type":"tab","id":"7cf61098.c92b7","label":"Mixer16","inputs":16,"outputs":1,"export":false,"nodes":[]},{"id":"Mixer16_TabInput1","type":"TabInput","name":"mixer01_04_in1","x":153,"y":132,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer1_4:0"]]},{"id":"Mixer16_TabInput2","type":"TabInput","name":"mixer01_04_in2","x":152,"y":165,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer1_4:1"]]},{"id":"Mixer16_TabInput3","type":"TabInput","name":"mixer01_04_in3","x":153,"y":198,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer1_4:2"]]},{"id":"Mixer16_TabInput4","type":"TabInput","name":"mixer01_04_in4","x":153,"y":231,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer1_4:3"]]},{"id":"Mixer16_TabInput5","type":"TabInput","name":"mixer05_08_in1","x":151,"y":264,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer5_8:0"]]},{"id":"Mixer16_TabInput6","type":"TabInput","name":"mixer05_08_in2","x":152,"y":297,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer5_8:1"]]},{"id":"Mixer16_TabInput7","type":"TabInput","name":"mixer05_08_in3","x":151,"y":330,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer5_8:2"]]},{"id":"Mixer16_TabInput8","type":"TabInput","name":"mixer05_08_in4","x":153,"y":363,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer5_8:3"]]},{"id":"Mixer16_TabInput9","type":"TabInput","name":"mixer09_12_in1","x":153,"y":396,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer9_12:0"]]},{"id":"Mixer16_TabInput10","type":"TabInput","name":"mixer09_12_in2","x":149,"y":429,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer9_12:1"]]},{"id":"Mixer16_TabInput11","type":"TabInput","name":"mixer09_12_in3","x":150,"y":462,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer9_12:2"]]},{"id":"Mixer16_TabInput12","type":"TabInput","name":"mixer09_12_in4","x":150,"y":495,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer9_12:3"]]},{"id":"Mixer16_TabInput13","type":"TabInput","name":"mixer13_16_in1","x":151,"y":528,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer13_16:0"]]},{"id":"Mixer16_TabInput14","type":"TabInput","name":"mixer13_16_in2","x":151,"y":561,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer13_16:1"]]},{"id":"Mixer16_TabInput15","type":"TabInput","name":"mixer13_16_in3","x":150,"y":594,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer13_16:2"]]},{"id":"Mixer16_TabInput16","type":"TabInput","name":"mixer13_16_in4","x":149,"y":627,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[["Mixer16_mixer13_16:3"]]},{"id":"Mixer16_mixer1_4","type":"AudioMixer4","name":"mixer01_04","x":360,"y":181,"z":"7cf61098.c92b7","bgColor":"#E6E0F8","wires":[["Mixer16_mixerFinal:0"]]},{"id":"Mixer16_mixer5_8","type":"AudioMixer4","name":"mixer05_08","x":359,"y":313,"z":"7cf61098.c92b7","bgColor":"#E6E0F8","wires":[["Mixer16_mixerFinal:1"]]},{"id":"Mixer16_mixer9_12","type":"AudioMixer4","name":"mixer09_12","x":362,"y":445,"z":"7cf61098.c92b7","bgColor":"#E6E0F8","wires":[["Mixer16_mixerFinal:2"]]},{"id":"Mixer16_mixer13_16","type":"AudioMixer4","name":"mixer13_16","x":359,"y":579,"z":"7cf61098.c92b7","bgColor":"#E6E0F8","wires":[["Mixer16_mixerFinal:3"]]},{"id":"Mixer16_ClassComment1","type":"ClassComment","name":"This is a 16 input mixer that utilizes the old style mixer structure (4+1 4input mixers)","x":402,"y":83,"z":"7cf61098.c92b7","bgColor":"#ccffcc","wires":[]},{"id":"Mixer16_mixerFinal","type":"AudioMixer4","name":"mixerFinal","x":581,"y":373,"z":"7cf61098.c92b7","bgColor":"#E6E0F8","wires":[["Mixer16_TabOutput:0"]]},{"id":"Mixer16_TabOutput","type":"TabOutput","name":"mixFinalOut","x":772,"y":374,"z":"7cf61098.c92b7","bgColor":"#cce6ff","wires":[]},{"type":"tab","id":"f063b7c9.3ec2c8","label":"NoteGen","inputs":3,"outputs":1,"export":true,"nodes":[]},{"id":"InA","type":"TabInput","name":"In VFO1","x":75.75001525878906,"y":151.25,"z":"f063b7c9.3ec2c8","bgColor":"#cce6ff","wires":[["VFO1:0"]]},{"id":"InB","type":"TabInput","name":"InVFO2","x":75,"y":185.25,"z":"f063b7c9.3ec2c8","bgColor":"#cce6ff","wires":[["VFO2:0"]]},{"id":"InC","type":"TabInput","name":"InVFOfilter","x":74,"y":224,"z":"f063b7c9.3ec2c8","bgColor":"#cce6ff","wires":[["VFOfilter:1"]]},{"id":"VFO1","type":"VFO","name":"VFO1","x":197.3333740234375,"y":150.33334159851074,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[["Voice_waveMix:0"],["Voice_waveMix:1"]]},{"id":"VFO2","type":"VFO","name":"VFO2","x":194.3333740234375,"y":183.33334159851074,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[["Voice_waveMix:2"],["Voice_waveMix:3"]]},{"id":"NoteGen_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on2","x":234,"y":415,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"Voice_waveMix","type":"AudioMixer4","name":"waveMix","x":356.8333740234375,"y":168.08334350585938,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOenvelope:0","Voice_MixerX1:0"]]},{"id":"NoteGen_Comment2","type":"Comment","name":"the reason there is two outputs from the VFOs is just to show that multiple outputs can be used","comment":"","x":347,"y":359,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"Voice_ClassComment1","type":"ClassComment","name":"This is a voice with two VFO:s, envelope, vfo-filter","x":481,"y":78,"z":"f063b7c9.3ec2c8","bgColor":"#ccffcc","wires":[]},{"id":"VFOenvelope","type":"AudioEffectEnvelope","name":"VFOenvelope","x":519.8333740234375,"y":199.08334350585938,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["Voice_MixerX1:1"]]},{"id":"Voice_MixerX1","type":"AudioMixer","name":"VFOenvelopeMix","inputs":"2","x":696,"y":172,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOfilter:0","VFOfilterMix:0"]]},{"id":"NoteGen_code1","type":"Function","name":"begin function","comment":"void begin ()\n{\n VFO1.begin();\n VFO2.begin();\n waveMix.gain(0, 0.25);\n waveMix.gain(1, 0.25);\n waveMix.gain(2, 0.25);\n waveMix.gain(3, 0.25);\n VFOenvelopeMix.gain(0, 0.5);\n VFOenvelopeMix.gain(1, 0.5);\n VFOfilterMix.gain(0, 0.25);\n VFOfilterMix.gain(1, 0.25);\n VFOfilterMix.gain(2, 0.25);\n VFOfilterMix.gain(3, 0.25);\n}","x":703,"y":121,"z":"f063b7c9.3ec2c8","bgColor":"#ddffbb","wires":[]},{"id":"VFOfilter","type":"AudioFilterStateVariable","name":"VFOfilter","x":868.8333740234375,"y":209.08334350585938,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["VFOfilterMix:1"],["VFOfilterMix:2"],["VFOfilterMix:3"]]},{"id":"VFOfilterMix","type":"AudioMixer4","name":"VFOfilterMix","comment":"","x":1037.8333740234375,"y":190.08334350585938,"z":"f063b7c9.3ec2c8","bgColor":"#E6E0F8","wires":[["Out4:0"]]},{"id":"Out4","type":"TabOutput","name":"VFOfilterMixOut","x":1213.8333740234375,"y":190.08334350585938,"z":"f063b7c9.3ec2c8","bgColor":"#cce6ff","wires":[]},{"type":"tab","id":"b7692de.cf719d","label":"SynthMain","inputs":0,"outputs":0,"export":false,"nodes":[]},{"id":"LFO_A1","type":"LFO_A","name":"LFO_A1","x":87.7500114440918,"y":356,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["LFOmodMixA:0","LFOmodMixB:0"]]},{"id":"LFO_B1","type":"LFO_B","name":"LFO_B1","x":87.7500114440918,"y":396,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["LFOmodMixA:1","LFOmodMixB:1"]]},{"id":"VFOtuningA","type":"AudioSynthWaveformDc","name":"VFOtuningA","comment":"","x":71.7500114440918,"y":435,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["LFOmodMixA:2"]]},{"id":"VFOtuningB","type":"AudioSynthWaveformDc","name":"VFOtuningB","x":71.7500114440918,"y":474,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["LFOmodMixB:2"]]},{"id":"PBend","type":"AudioSynthWaveformDc","name":"PBend","x":91.7500114440918,"y":514,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["LFOmodMixA:3","LFOmodMixB:3"]]},{"id":"LFO_A2","type":"LFO_A","name":"LFO_A2","x":95.7500114440918,"y":568,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["LFOfilterMixC:0"]]},{"id":"LFO_B2","type":"LFO_B","name":"LFO_B2","x":94.7500114440918,"y":606,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["LFOfilterMixC:1"]]},{"id":"SynthMain_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on1","x":232,"y":232,"z":"b7692de.cf719d","bgColor":"#ddffbb","wires":[]},{"id":"sgtl5000","type":"AudioControlSGTL5000","name":"sgtl5000","x":388.75,"y":152,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[]},{"id":"LFOmodMixA","type":"AudioMixer4","name":"LFOmodMixA","x":366.7500114440918,"y":433,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["Main_Voice01:0","Main_Voice02:0","Main_Voice03:0","Main_Voice04:0","Main_Voice05:0","Main_Voice06:0","Main_Voice07:0","Main_Voice08:0","Main_Voice09:0","Main_Voice10:0","Main_Voice11:0","Main_Voice12:0","Main_Voice13:0","Main_Voice14:0","Main_Voice15:0","Main_Voice16:0"]]},{"id":"LFOmodMixB","type":"AudioMixer4","name":"LFOmodMixB","x":366.7500114440918,"y":504,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["Main_Voice01:1","Main_Voice02:1","Main_Voice03:1","Main_Voice04:1","Main_Voice05:1","Main_Voice06:1","Main_Voice07:1","Main_Voice08:1","Main_Voice09:1","Main_Voice10:1","Main_Voice11:1","Main_Voice12:1","Main_Voice13:1","Main_Voice14:1","Main_Voice15:1","Main_Voice16:1"]]},{"id":"LFOfilterMixC","type":"AudioMixer4","name":"LFOfilterMixC","x":367.2500114440918,"y":575.75,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["Main_Voice01:2","Main_Voice02:2","Main_Voice03:2","Main_Voice04:2","Main_Voice05:2","Main_Voice06:2","Main_Voice07:2","Main_Voice08:2","Main_Voice09:2","Main_Voice10:2","Main_Voice11:2","Main_Voice12:2","Main_Voice13:2","Main_Voice14:2","Main_Voice15:2","Main_Voice16:2"]]},{"id":"SynthMain_ClassComment1","type":"ClassComment","name":"This is the main structure of the synth with 16 voices","x":638,"y":55,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[]},{"id":"Main_Array_NoteGen_notegen","type":"PointerArray","name":"NoteGen notegen {voice01,voice02,voice03,voice04,voice05,voice06,voice07,voice08,voice09,voice10,voice11,voice12,voice13,voice14,voice15,voice16}","x":705,"y":96,"z":"b7692de.cf719d","bgColor":"#aaffdd","wires":[]},{"id":"Main_Voice01","type":"NoteGen","name":"voice01","x":718.7500114440918,"y":145,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:0"]]},{"id":"Main_Voice02","type":"NoteGen","name":"voice02","x":718.7500114440918,"y":193,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:1"]]},{"id":"Main_Voice03","type":"NoteGen","name":"voice03","x":718.7500114440918,"y":241,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:2"]]},{"id":"Main_Voice04","type":"NoteGen","name":"voice04","x":718.7500114440918,"y":289,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:3"]]},{"id":"Main_Voice05","type":"NoteGen","name":"voice05","x":718.7500114440918,"y":337,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:4"]]},{"id":"Main_Voice06","type":"NoteGen","name":"voice06","x":718.7500114440918,"y":385,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:5"]]},{"id":"Main_Voice07","type":"NoteGen","name":"voice07","x":718.7500114440918,"y":433,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:6"]]},{"id":"Main_Voice08","type":"NoteGen","name":"voice08","x":718.7500114440918,"y":481,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:7"]]},{"id":"Main_Voice09","type":"NoteGen","name":"voice09","x":718.7500114440918,"y":529,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:8"]]},{"id":"Main_Voice10","type":"NoteGen","name":"voice10","x":718.7500114440918,"y":577,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:9"]]},{"id":"Main_Voice11","type":"NoteGen","name":"voice11","x":718.7500114440918,"y":625,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:10"]]},{"id":"Main_Voice12","type":"NoteGen","name":"voice12","x":718.7500114440918,"y":673,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:11"]]},{"id":"Main_Voice13","type":"NoteGen","name":"voice13","x":718.7500114440918,"y":721,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:12"]]},{"id":"Main_Voice14","type":"NoteGen","name":"voice14","x":718.7500114440918,"y":769,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:13"]]},{"id":"Main_Voice15","type":"NoteGen","name":"voice15","x":718.7500114440918,"y":817,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:14"]]},{"id":"Main_Voice16","type":"NoteGen","name":"voice16","x":718.7500114440918,"y":865,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[["SynthMain_mixxFinal:15"]]},{"id":"SynthMain_mixxFinal","type":"AudioMixer","name":"mixxFinal","inputs":"16","x":997.7500114440918,"y":508,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["SynthMain_ampFinal:0"]]},{"id":"Main_Mixer16_1","type":"Mixer16","name":"Mixer16_TEST","x":1182,"y":259,"z":"b7692de.cf719d","bgColor":"#ccffcc","wires":[[]]},{"id":"SynthMain_ampFinal","type":"AudioAmplifier","name":"ampFinal1","x":1140.75,"y":508,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[["i2s2:1","i2s2:0"]]},{"id":"i2s2","type":"AudioOutputI2S","name":"i2s2","x":1308.75,"y":508,"z":"b7692de.cf719d","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"45174b8a.24d454","label":"NodeArraySynthMain","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"AlternativeMain_dc1","type":"AudioSynthWaveformDc","name":"VFOtuningA","comment":"","x":95,"y":235,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_mixer4_1:2"]]},{"id":"AlternativeMain_dc2","type":"AudioSynthWaveformDc","name":"VFOtuningB","comment":"","x":95,"y":274,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_mixer4_2:2"]]},{"id":"AlternativeMain_LFO_A1","type":"LFO_A","name":"LFO_A1","x":111,"y":156,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[["AlternativeMain_mixer4_1:0","AlternativeMain_mixer4_2:0"]]},{"id":"AlternativeMain_LFO_B1","type":"LFO_B","name":"LFO_B1","x":111,"y":196,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[["AlternativeMain_mixer4_1:1","AlternativeMain_mixer4_2:1"]]},{"id":"AlternativeMain_dc3","type":"AudioSynthWaveformDc","name":"PBend","comment":"","x":115,"y":314,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_mixer4_1:3","AlternativeMain_mixer4_2:3"]]},{"id":"AlternativeMain_LFO_A2","type":"LFO_A","name":"LFO_A2","x":119,"y":368,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[["AlternativeMain_MixerX3:0"]]},{"id":"AlternativeMain_LFO_B2","type":"LFO_B","name":"LFO_B2","x":118,"y":406,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[["AlternativeMain_MixerX3:1"]]},{"id":"NodeArraySynthMain_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on3","x":239,"y":61,"z":"45174b8a.24d454","bgColor":"#ddffbb","wires":[]},{"id":"AlternativeMain_mixer4_1","type":"AudioMixer4","name":"LFOmodMixA","comment":"","x":390,"y":233,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_Voice1:0"]]},{"id":"AlternativeMain_mixer4_2","type":"AudioMixer4","name":"LFOmodMixB","comment":"","x":390,"y":304,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_Voice1:1"]]},{"id":"AlternativeMain_MixerX3","type":"AudioMixer","name":"LFOfilterMixC","inputs":"2","comment":"","x":393,"y":380,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_Voice1:2"]]},{"id":"AlternativeMain_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_1","x":482,"y":166,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[]},{"id":"AlternativeMain_ClassComment1","type":"ClassComment","name":"This is a alternative synth main that utilizes the new array structure","x":561,"y":110,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[]},{"id":"AlternativeMain_Voice1","type":"NoteGen","name":"voices[16]","x":569,"y":303,"z":"45174b8a.24d454","bgColor":"#ccffcc","wires":[["AlternativeMain_MixerX1:0"]]},{"id":"AlternativeMain_MixerX1","type":"AudioMixer","name":"mixFinal","inputs":"1","x":722,"y":301,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_amp1:0"]]},{"id":"NodeArraySynthMain_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n LFO_A1.begin();\n LFO_A2.begin();\n LFO_B1.begin();\n LFO_B2.begin();\n for (int i = 0; i < 16; i++)\n {\n voices[i].begin();\n mixFinal.gain(i, 1.0/16); // set equal gain\n }\n for (int i = 0; i < 4; i++)\n {\n LFOmodMixA.gain(i, 0.25);\n LFOmodMixB.gain(i, 0.25);\n }\n LFOfilterMixC.gain(0, 0.5);\n LFOfilterMixC.gain(1, 0.5);\n}","x":817,"y":176,"z":"45174b8a.24d454","bgColor":"#ddffbb","wires":[]},{"id":"AlternativeMain_amp1","type":"AudioAmplifier","name":"ampFinal","comment":"this is used for easier gain adj. of mixFinal","x":879,"y":299,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[["AlternativeMain_i2s2:0","AlternativeMain_i2s2:1"]]},{"id":"AlternativeMain_i2s2","type":"AudioOutputI2S","name":"i2s3","x":1044,"y":297,"z":"45174b8a.24d454","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"cc5eaf37.d224f","label":"MultOutArrayNodeEx","inputs":0,"outputs":0,"export":false,"nodes":[]},{"id":"MultOutArrayNodeEx_sine1","type":"AudioSynthWaveformSine","name":"sine1","x":125,"y":188,"z":"cc5eaf37.d224f","bgColor":"#E6E0F8","wires":[["MultOutArrayNodeEx_VFO1:0"]]},{"id":"MultOutArrayNodeEx_VFO1","type":"VFO","name":"VFO3[16]","x":306,"y":191,"z":"cc5eaf37.d224f","bgColor":"#ccffcc","wires":[["MultOutArrayNodeEx_MixerX1:0"],["MultOutArrayNodeEx_MixerX2:0"]]},{"id":"MultOutArrayNodeEx_Comment2","type":"Comment","name":"The following nodes down here, is to demonstrate that multiple outputs is allowed when using node array source.","x":462,"y":97,"z":"cc5eaf37.d224f","bgColor":"#ddffbb","wires":[]},{"id":"MultOutArrayNodeEx_Comment1","type":"Comment","name":"the only limit at the moment is that if two array exists at the same workspace they must be of same size.","x":433,"y":130,"z":"cc5eaf37.d224f","bgColor":"#ddffbb","wires":[]},{"id":"MultOutArrayNodeEx_MixerX1","type":"AudioMixer","name":"mixFinalA","inputs":"1","x":454,"y":165,"z":"cc5eaf37.d224f","bgColor":"#E6E0F8","wires":[["MultOutArrayNodeEx_MixerX3:0"]]},{"id":"MultOutArrayNodeEx_MixerX2","type":"AudioMixer","name":"mixFinalB","inputs":"1","x":454,"y":212,"z":"cc5eaf37.d224f","bgColor":"#E6E0F8","wires":[["MultOutArrayNodeEx_MixerX3:1"]]},{"id":"MultOutArrayNodeEx_MixerX3","type":"AudioMixer","name":"mixFinalAB","inputs":"2","x":632,"y":186,"z":"cc5eaf37.d224f","bgColor":"#E6E0F8","wires":[[]]}]
</script>
<script type="text/x-red" data-container-name="DemoFlowB">
[{"type":"settings","data":[{"arduino":{"useExportDialog":false,"IOcheckAtExport":true,"WriteJSONtoExportedFile":true,"WebServerPort":8080,"WebSocketServerPort":3000,"ProjectName":"DemoFlowB","StandardIncludeHeader":"#include <Arduino.h>\n#include <Audio.h>\n#include <Wire.h>\n#include <SPI.h>\n#include <SD.h>\n#include <SerialFlash.h>\n"}},{"BiDirDataWebSocketBridge":{"bddwssPort":3001,"MidiDeviceIn":0,"MidiDeviceOut":0}},{"view":{"showWorkspaceToolbar":true,"showNodeToolTip":true,"guiEditMode":true,"lockWindowMouseScrollInRunMode":true,"space_width":5000,"space_height":5000,"workspaceBgColor":"#FFF","scaleFactor":1,"showGridHminor":true,"showGridHmajor":true,"showGridVminor":true,"showGridVmajor":true,"nodeMouseDownShowGridHminor":false,"nodeMouseDownShowGridHmajor":true,"nodeMouseDownShowGridVminor":false,"nodeMouseDownShowGridVmajor":true,"gridHminorSize":10,"gridHmajorSize":100,"gridVminorSize":10,"gridVmajorSize":100,"gridMinorColor":"#eee","gridMajorColor":"#ddd","snapToGrid":true,"snapToGridHsize":5,"snapToGridVsize":5,"lineCurveScale":0.75,"lineConnectionsScale":1.5,"useCenterBasedPositions":true,"nodeDefaultTextSize":14}},{"palette":{"categoryHeaderTextSize":12,"categoryHeaderHeight":14,"categoryHeaderBackgroundColor":"#f3f3f3","onlyShowOne":true}},{"editor":{"aceEditorTheme":"theme-chrome"}},{"devTest":{"autoSwitchTabToInfoTab":true,"testPost":"data","testGet":"cmd","testWsSend":"data","getFuncHelp":"AudioEffectFade"}}]},{"type":"tab","id":"fe95d09d.ae21a","label":"NoteGen","inputs":3,"outputs":1,"export":true,"nodes":[]},{"id":"TabInput2","type":"TabInput","name":"In VFO A","x":87.17860412597656,"y":245.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#cce6ff","wires":[["ce65bb5f.d7cc58:0","43fe3de2.7978d4:0","41187d99.c66374:0","15c08e2f.37ddd2:0"]]},{"id":"2cfd28c8.e191b8","type":"TabInput","name":"In VFO B","x":99.17860412597656,"y":526.25,"z":"fe95d09d.ae21a","bgColor":"#cce6ff","wires":[["67dd71d2.cf4b3:0","c2c08e67.ea9a7:0","510ec7e8.d5c6f8:0","fb6380d1.5f9dd:0"]]},{"id":"d7cd720b.73f95","type":"TabInput","name":"In VFO filter","x":115.17860412597656,"y":827.2500019073486,"z":"fe95d09d.ae21a","bgColor":"#cce6ff","wires":[["d478a0e0.8f389:1"]]},{"id":"Voice_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on","x":290,"y":109,"z":"fe95d09d.ae21a","bgColor":"#ddffbb","wires":[]},{"id":"ce65bb5f.d7cc58","type":"AudioSynthWaveformModulated","name":"VFOsineA","x":289.17860412597656,"y":184.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:0"]]},{"id":"15c08e2f.37ddd2","type":"AudioSynthWaveformModulated","name":"VFOsawA","x":297.17860412597656,"y":286.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:3"]]},{"id":"f41b4d41.930de","type":"AudioSynthKarplusStrong","name":"VFOstringA","x":298.17860412597656,"y":320.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:4"]]},{"id":"67dd71d2.cf4b3","type":"AudioSynthWaveformModulated","name":"VFOsineB","x":299.17860412597656,"y":482.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:0"]]},{"id":"c2c08e67.ea9a7","type":"AudioSynthWaveformModulated","name":"VFOsquareB","x":299.17860412597656,"y":517.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:1"]]},{"id":"510ec7e8.d5c6f8","type":"AudioSynthWaveformModulated","name":"VFOtriangleB","x":299.17860412597656,"y":552.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:2"]]},{"id":"fb6380d1.5f9dd","type":"AudioSynthWaveformModulated","name":"VFOsawB","x":299.17860412597656,"y":587.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:3"]]},{"id":"bd4f842e.87dca8","type":"AudioSynthKarplusStrong","name":"VFOstringB","x":299.17860412597656,"y":622.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:4"]]},{"id":"755fb067.71cf9","type":"AudioSynthNoiseWhite","name":"VFOwhiteB","x":299.17860412597656,"y":657.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:5"]]},{"id":"84c0f09a.1c809","type":"AudioSynthNoisePink","name":"VFOpinkB","x":299.17860412597656,"y":692.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:6"]]},{"id":"7fd9951d.0d807c","type":"AudioSynthToneSweep","name":"VFOsweepB","x":299.17860412597656,"y":727.2500076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX3:7"]]},{"id":"43fe3de2.7978d4","type":"AudioSynthWaveformModulated","name":"VFOsquareA","x":300.17860412597656,"y":218.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:1"]]},{"id":"41187d99.c66374","type":"AudioSynthWaveformModulated","name":"VFOtriangleA","x":304.17860412597656,"y":252.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:2"]]},{"id":"ddde6e78.2ddd1","type":"AudioSynthNoiseWhite","name":"VFOwhiteA","x":302.17860412597656,"y":354.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:5"]]},{"id":"180d8864.797188","type":"AudioSynthNoisePink","name":"VFOpinkA","x":300.1786079406738,"y":387.24999618530273,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:6"]]},{"id":"96cb2aa6.9a9178","type":"AudioSynthToneSweep","name":"VFOsweepA","x":311.17860412597656,"y":420.25000762939453,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX2:7"]]},{"id":"Voice_MixerX2","type":"AudioMixer","name":"waveMixA","inputs":"8","comment":"","x":519.8888854980469,"y":284.00001525878906,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX4:0"]]},{"id":"Voice_MixerX3","type":"AudioMixer","name":"waveMixB","inputs":"8","x":525.8887901306152,"y":589.0000076293945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX4:1"]]},{"id":"NoteGen_vars2","type":"Variables","name":"noteFreqs var","comment":"static const PROGMEM float noteFreqs[128] = {8.176, 8.662, 9.177, 9.723, 10.301, 10.913, 11.562, 12.25, 12.978, 13.75, 14.568, 15.434, 16.352, 17.324, 18.354, 19.445, 20.602, 21.827, 23.125, 24.5, 25.957, 27.5, 29.135, 30.868, 32.703, 34.648, 36.708, 38.891, 41.203, 43.654, 46.249, 48.999, 51.913, 55, 58.27, 61.735, 65.406, 69.296, 73.416, 77.782, 82.407, 87.307, 92.499, 97.999, 103.826, 110, 116.541, 123.471, 130.813, 138.591, 146.832, 155.563, 164.814, 174.614, 184.997, 195.998, 207.652, 220, 233.082, 246.942, 261.626, 277.183, 293.665, 311.127, 329.628, 349.228, 369.994, 391.995, 415.305, 440, 466.164, 493.883, 523.251, 554.365, 587.33, 622.254, 659.255, 698.456, 739.989, 783.991, 830.609, 880, 932.328, 987.767, 1046.502, 1108.731, 1174.659, 1244.508, 1318.51, 1396.913, 1479.978, 1567.982, 1661.219, 1760, 1864.655, 1975.533, 2093.005, 2217.461, 2349.318, 2489.016, 2637.02, 2793.826, 2959.955, 3135.963, 3322.438, 3520, 3729.31, 3951.066, 4186.009, 4434.922, 4698.636, 4978.032, 5274.041, 5587.652, 5919.911, 6271.927, 6644.875, 7040, 7458.62, 7902.133, 8372.018, 8869.844, 9397.273, 9956.063, 10548.08, 11175.3, 11839.82, 12543.85};","x":693,"y":112,"z":"fe95d09d.ae21a","bgColor":"#ddffbb","wires":[]},{"id":"Voice_MixerX4","type":"AudioMixer","name":"waveMixAB","inputs":"2","x":694.8888931274414,"y":433.0000400543213,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX1:0","b34fca5c.a03b78:0"]]},{"id":"NoteGen_vars1","type":"Variables","name":"vars","comment":"byte note = 0;\nbyte isNoteOn = 0;\nbyte isSustain = 0;\nfloat newAmp = 0.0;\nbyte oscApitchMult = 64; // set at middle\nbyte oscBpitchMult = 64; // set at middle\nbyte oscCpitchMult = 64; // set at middle\nbyte oscDpitchMult = 64; // set at middle\n","x":700,"y":162,"z":"fe95d09d.ae21a","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_Function1","type":"Function","name":"begin function","comment":"/**\n * this function inits the notegen\n */\nvoid begin()\n{\n // init A part\n VFOsineA.begin(WAVEFORM_SINE);\n VFOsquareA.begin(WAVEFORM_SQUARE);\n VFOtriabgleA.begin(WAVEFORM_TRIANGLE);\n VFOsawA.begin(WAVEFORM_SAWTOOTH);\n VFOstringA.noteOff(0);\n VFOwhiteA.amplitude(0);\n VFOpinkA.amplitude(0);\n // init B part\n VFOsineB.begin(WAVEFORM_SINE);\n VFOsquareB.begin(WAVEFORM_SQUARE);\n VFOtriabgleB.begin(WAVEFORM_TRIANGLE);\n VFOsawB.begin(WAVEFORM_SAWTOOTH);\n VFOstringB.noteOff(0);\n VFOwhiteB.amplitude(0);\n VFOpinkB.amplitude(0);\n for (int i = 0; i < 8; i++)\n {\n waveMixA.gain(i, 0.125);\n waveMixB.gain(i, 0.125);\n }\n waveMixAB.gain(0, 0.5);\n waveMixAB.gain(1, 0.5);\n for (int i = 0; i < 4; i++)\n {\n VFOfilterMix.gain(i, 0.25);\n }\n}","x":872,"y":115,"z":"fe95d09d.ae21a","bgColor":"#ddffbb","wires":[]},{"id":"NoteGen_Function2","type":"Function","name":"noteOn noteOff","comment":"void noteOn(byte Note, byte velocity)\n{\n note = Note;\n isNoteOn = 1;\n\n newAmp = (float)velocity*(1.0f / 127.0f);\n \n VFOsineA.frequency(GetBendedFreq(oscApitchMult));\n VFOsquareA.frequency(GetBendedFreq(oscBpitchMult));\n VFOtriangleA.frequency(GetBendedFreq(oscCpitchMult));\n VFOsawA.frequency(GetBendedFreq(oscDpitchMult));\n\n VFOsineA.amplitude(newAmp);\n VFOsquareA.amplitude(newAmp);\n VFOtriangleA.amplitude(newAmp);\n VFOsawA.amplitude(newAmp);\n\n VFOenvelope.noteOn();\n}\nvoid noteOff(byte velocity)\n{\n isNoteOn = 0;\n if (!isSustain)\n {\n VFOenvelope.noteOff();\n }\n}\nbool isNotPlaying()\n{\n if (!env.isActive())\n return true;\n else\n return false;\n}\nfloat GetBendedFreq(byte pitchMult)\n{\n if (pitchMult < 64)\n return noteFreqs[note - 12*(64-pitchMult)];\n else if (pitchMult > 64)\n return noteFreqs[note + 12*(pitchMult-64)];\n else\n return noteFreqs[note];\n}","x":872,"y":163,"z":"fe95d09d.ae21a","bgColor":"#ddffbb","wires":[]},{"id":"b34fca5c.a03b78","type":"AudioEffectEnvelope","name":"VFOenvelope","x":866.9286422729492,"y":476.25000190734863,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["Voice_MixerX1:1"]]},{"id":"Voice_MixerX1","type":"AudioMixer","name":"VFOenvelopeMix","inputs":"2","x":1048.8889236450195,"y":437.0000343322754,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["d478a0e0.8f389:0","4338a901.49d828:0"]]},{"id":"d478a0e0.8f389","type":"AudioFilterStateVariable","name":"VFOfilter","x":1219.1787490844727,"y":490.250036239624,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["4338a901.49d828:1"],["4338a901.49d828:2"],["4338a901.49d828:3"]]},{"id":"4338a901.49d828","type":"AudioMixer4","name":"VFOfilterMix","x":1398.1787567138672,"y":472.25002670288086,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["TabOutput1:0"]]},{"id":"TabOutput1","type":"TabOutput","name":"Out","x":1543.1786556243896,"y":472.2500286102295,"z":"fe95d09d.ae21a","bgColor":"#cce6ff","wires":[]},{"type":"tab","id":"42bb1923.eaa838","label":"SynthMain","inputs":0,"outputs":0,"export":false,"nodes":[]},{"id":"be2abc30.bdc5f","type":"AudioSynthWaveformDc","name":"LFOpulseModDutyCycle","x":115.50004196166992,"y":195.50000667572021,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["943e965c.dbbc98:1"]]},{"id":"30a22eaa.8e3a12","type":"AudioSynthWaveformDc","name":"LFOpulseFilterDutyCycle","x":116.50004196166992,"y":669.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["ee150c54.c830d:1"]]},{"id":"SynthMain_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on","x":221,"y":56,"z":"42bb1923.eaa838","bgColor":"#ddffbb","wires":[]},{"id":"54aad388.8078cc","type":"AudioSynthWaveformModulated","name":"LFOsawMod","x":210.00004196166992,"y":426.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX2:0"]]},{"id":"36b02443.0dfa0c","type":"AudioSynthWaveformModulated","name":"LFOsampleholdMod","x":210.00004196166992,"y":461.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX2:1"]]},{"id":"4b7c8023.9dba8","type":"AudioSynthWaveformModulated","name":"LFOsampleholdFilter","x":294.0000419616699,"y":780.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX3:1"]]},{"id":"8820b7d4.ecc168","type":"AudioSynthWaveformModulated","name":"LFOsineMod","x":330.25004959106445,"y":120.75000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["250d51b4.6a5f1e:0"]]},{"id":"3229811a.40723e","type":"AudioSynthWaveformModulated","name":"LFOsquareMod","x":321.75004959106445,"y":155.5000057220459,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["250d51b4.6a5f1e:1"]]},{"id":"943e965c.dbbc98","type":"AudioSynthWaveformModulated","name":"LFOpulseMod","x":323.00004959106445,"y":193.0000057220459,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["250d51b4.6a5f1e:2"]]},{"id":"9cbdbf6d.b6428","type":"AudioSynthWaveformModulated","name":"LFOtriangleMod","x":320.50004959106445,"y":228.0000057220459,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["250d51b4.6a5f1e:3"]]},{"id":"f024b964.e70ae8","type":"AudioSynthWaveformModulated","name":"LFOsineFilter","x":321.0000419616699,"y":593.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["eaa54d90.e07e:0"]]},{"id":"346af5ea.a399ba","type":"AudioSynthWaveformModulated","name":"LFOsquareFilter","x":321.0000419616699,"y":628.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["eaa54d90.e07e:1"]]},{"id":"ee150c54.c830d","type":"AudioSynthWaveformModulated","name":"LFOpulseFilter","x":321.0000419616699,"y":663.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["eaa54d90.e07e:2"]]},{"id":"33b47bd4.642a54","type":"AudioSynthWaveformModulated","name":"LFOtriangleFilter","x":314.0000419616699,"y":700.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["eaa54d90.e07e:3"]]},{"id":"69bc4d68.d0ec14","type":"AudioSynthWaveformModulated","name":"LFOsawFilter","x":316.0000419616699,"y":740.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX3:0"]]},{"id":"fde8d778.1affb8","type":"AudioSynthWaveformDc","name":"VFOtuningA","x":469.0000419616699,"y":276.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["72ed2133.b8b3b:2"]]},{"id":"98234b8c.f770f8","type":"AudioSynthWaveformDc","name":"PBend","x":492.0000419616699,"y":361.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["72ed2133.b8b3b:3","1690539d.d4e1dc:3"]]},{"id":"Main_MixerX2","type":"AudioMixer","name":"LFOmodMix2","inputs":"2","x":462.8888702392578,"y":439.88890743255615,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["72ed2133.b8b3b:1","1690539d.d4e1dc:1"]]},{"id":"64e9d27c.c260fc","type":"AudioSynthWaveformDc","name":"VFOtuningB","x":478.0000419616699,"y":511.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["1690539d.d4e1dc:2"]]},{"id":"250d51b4.6a5f1e","type":"AudioMixer4","name":"LFOmodMix1","x":517.5000495910645,"y":175.00000762939453,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["72ed2133.b8b3b:0","1690539d.d4e1dc:0"]]},{"id":"eaa54d90.e07e","type":"AudioMixer4","name":"LFOfilterMixA","x":554.0000419616699,"y":646.0000038146973,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX4:0"]]},{"id":"Main_MixerX3","type":"AudioMixer","name":"LFOfilterMixB","inputs":"2","x":549.888801574707,"y":765.889009475708,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_MixerX4:1"]]},{"id":"72ed2133.b8b3b","type":"AudioMixer4","name":"LFOmodMixA","x":787.0000419616699,"y":327.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_Voice01:0","Main_Voice2:0","Main_Voice3:0","Main_Voice4:0","Main_Voice5:0","Main_Voice6:0","Main_Voice7:0","Main_Voice8:0","Main_Voice9:0","Main_Voice10:0","Main_Voice11:0","Main_Voice12:0","Main_Voice13:0","Main_Voice14:0","Main_Voice15:0","Main_Voice16:0"]]},{"id":"1690539d.d4e1dc","type":"AudioMixer4","name":"LFOmodMixB","x":796.0000419616699,"y":503.00000381469727,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_Voice01:1","Main_Voice2:1","Main_Voice3:1","Main_Voice4:1","Main_Voice5:1","Main_Voice6:1","Main_Voice7:1","Main_Voice8:1","Main_Voice9:1","Main_Voice10:1","Main_Voice11:1","Main_Voice12:1","Main_Voice13:1","Main_Voice14:1","Main_Voice15:1","Main_Voice16:1"]]},{"id":"Main_MixerX4","type":"AudioMixer","name":"LFOmodMixC","inputs":"2","x":803.8888359069824,"y":676.8889617919922,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_Voice01:2","Main_Voice2:2","Main_Voice3:2","Main_Voice4:2","Main_Voice5:2","Main_Voice6:2","Main_Voice7:2","Main_Voice8:2","Main_Voice9:2","Main_Voice10:2","Main_Voice11:2","Main_Voice12:2","Main_Voice13:2","Main_Voice14:2","Main_Voice15:2","Main_Voice16:2"]]},{"id":"sgtl5000_2","type":"AudioControlSGTL5000","name":"sgtl5000_2","x":986.7460632324219,"y":106.82538795471191,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[]},{"id":"Main_Array_NoteGen_notegen","type":"PointerArray","name":"NoteGen notegens {voice01,voice02,voice03,voice04,voice05,voice06,voice07,voice08,voice09,voice10,voice11,voice12,voice13,voice14,voice15,voice16}","x":1059,"y":65,"z":"42bb1923.eaa838","bgColor":"#aaffdd","wires":[]},{"id":"Main_Voice01","type":"NoteGen","name":"voice01","x":1131.00004196167,"y":144.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:0"]]},{"id":"Main_Voice2","type":"NoteGen","name":"voice02","x":1131.00004196167,"y":194.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:1"]]},{"id":"Main_Voice3","type":"NoteGen","name":"voice03","x":1131.00004196167,"y":242.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:2"]]},{"id":"Main_Voice4","type":"NoteGen","name":"voice04","x":1131.00004196167,"y":290.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:3"]]},{"id":"Main_Voice5","type":"NoteGen","name":"voice05","x":1131.00004196167,"y":338.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:4"]]},{"id":"Main_Voice6","type":"NoteGen","name":"voice06","x":1131.00004196167,"y":386.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:5"]]},{"id":"Main_Voice7","type":"NoteGen","name":"voice07","x":1131.00004196167,"y":434.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:6"]]},{"id":"Main_Voice8","type":"NoteGen","name":"voice08","x":1131.00004196167,"y":482.00000381469727,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:7"]]},{"id":"Main_Voice9","type":"NoteGen","name":"voice09","x":1131.00004196167,"y":530.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:8"]]},{"id":"Main_Voice10","type":"NoteGen","name":"voice10","x":1136.00004196167,"y":578.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:9"]]},{"id":"Main_Voice11","type":"NoteGen","name":"voice11","x":1136.00004196167,"y":626.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:10"]]},{"id":"Main_Voice12","type":"NoteGen","name":"voice12","x":1136.00004196167,"y":674.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:11"]]},{"id":"Main_Voice13","type":"NoteGen","name":"voice13","x":1136.00004196167,"y":722.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:12"]]},{"id":"Main_Voice14","type":"NoteGen","name":"voice14","x":1136.00004196167,"y":770.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:13"]]},{"id":"Main_Voice15","type":"NoteGen","name":"voice15","x":1136.00004196167,"y":818.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:14"]]},{"id":"Main_Voice16","type":"NoteGen","name":"voice16","x":1136.00004196167,"y":866.0000038146973,"z":"42bb1923.eaa838","bgColor":"#ccffcc","wires":[["Main_MixerX1:15"]]},{"id":"Main_MixerX1","type":"AudioMixer","name":"mixFinal","inputs":"16","x":1382.8889999389648,"y":503.8889331817627,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["Main_amp1:0"]]},{"id":"Main_amp1","type":"AudioAmplifier","name":"ampFinal","x":1541.1111106872559,"y":503.88891220092773,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[["i2s2:0","i2s2:1"]]},{"id":"i2s2","type":"AudioOutputI2S","name":"i2s_1","x":1696.7143630981445,"y":504.28572845458984,"z":"42bb1923.eaa838","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"aa948da6.d8a2b","label":"NodeArraySynthMain","inputs":0,"outputs":0,"export":false,"nodes":[]},{"id":"NodeArraySynthMain_dc1","type":"AudioSynthWaveformDc","name":"LFOpulseModDutyCycle","x":130,"y":217.77777099609375,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_waveformMod11:1"]]},{"id":"NodeArraySynthMain_dc2","type":"AudioSynthWaveformDc","name":"LFOpulseFilterDutyCycle","x":131,"y":691.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_waveformMod10:1"]]},{"id":"NodeArraySynthMain_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on","x":221,"y":55,"z":"aa948da6.d8a2b","bgColor":"#ddffbb","wires":[]},{"id":"NodeArraySynthMain_waveformMod1","type":"AudioSynthWaveformModulated","name":"LFOsawMod","x":224.5,"y":448.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX1:0"]]},{"id":"NodeArraySynthMain_waveformMod2","type":"AudioSynthWaveformModulated","name":"LFOsampleholdMod","x":224.5,"y":483.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX1:1"]]},{"id":"NodeArraySynthMain_waveformMod12","type":"AudioSynthWaveformModulated","name":"LFOsineMod","x":344.75000762939453,"y":143.0277681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer1:0"]]},{"id":"NodeArraySynthMain_waveformMod7","type":"AudioSynthWaveformModulated","name":"LFOsquareMod","x":336.25000762939453,"y":177.77777004241943,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer1:1"]]},{"id":"NodeArraySynthMain_waveformMod11","type":"AudioSynthWaveformModulated","name":"LFOpulseMod","x":337.50000762939453,"y":215.27777004241943,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer1:2"]]},{"id":"NodeArraySynthMain_waveformMod6","type":"AudioSynthWaveformModulated","name":"LFOtriangleMod","x":335.00000762939453,"y":250.27777004241943,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer1:3"]]},{"id":"NodeArraySynthMain_waveformMod8","type":"AudioSynthWaveformModulated","name":"LFOsineFilter","x":335.5,"y":615.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer2:0"]]},{"id":"NodeArraySynthMain_waveformMod9","type":"AudioSynthWaveformModulated","name":"LFOsquareFilter","x":335.5,"y":650.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer2:1"]]},{"id":"NodeArraySynthMain_waveformMod10","type":"AudioSynthWaveformModulated","name":"LFOpulseFilter","x":335.5,"y":685.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer2:2"]]},{"id":"NodeArraySynthMain_waveformMod4","type":"AudioSynthWaveformModulated","name":"LFOtriangleFilter","x":328.5,"y":722.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer2:3"]]},{"id":"NodeArraySynthMain_waveformMod5","type":"AudioSynthWaveformModulated","name":"LFOsawFilter","x":330.5,"y":762.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX2:0"]]},{"id":"NodeArraySynthMain_waveformMod3","type":"AudioSynthWaveformModulated","name":"LFOsampleholdFilter","x":308.5,"y":802.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX2:1"]]},{"id":"NodeArraySynthMain_dc3","type":"AudioSynthWaveformDc","name":"VFOtuningA","x":483.5,"y":298.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer3:2"]]},{"id":"NodeArraySynthMain_MixerX1","type":"AudioMixer","name":"LFOmodMix2","inputs":"2","x":477.3888282775879,"y":462.1666717529297,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer3:1","NodeArraySynthMain_mixer4:1"]]},{"id":"NodeArraySynthMain_dc4","type":"AudioSynthWaveformDc","name":"VFOtuningB","x":492.5,"y":533.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer4:2"]]},{"id":"NodeArraySynthMain_mixer1","type":"AudioMixer4","name":"LFOmodMix1","x":532.0000076293945,"y":197.27777194976807,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer3:0","NodeArraySynthMain_mixer4:0"]]},{"id":"NodeArraySynthMain_dc5","type":"AudioSynthWaveformDc","name":"PBend","x":506.5,"y":383.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_mixer3:3","NodeArraySynthMain_mixer4:3"]]},{"id":"NodeArraySynthMain_mixer2","type":"AudioMixer4","name":"LFOfilterMixA","x":568.5,"y":668.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX3:0"]]},{"id":"NodeArraySynthMain_MixerX2","type":"AudioMixer","name":"LFOfilterMixB","inputs":"2","x":564.3887596130371,"y":788.1667737960815,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_MixerX3:1"]]},{"id":"NodeArraySynthMain_mixer3","type":"AudioMixer4","name":"LFOmodMixA","x":801.5,"y":349.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_NoteGen1:0"]]},{"id":"NodeArraySynthMain_mixer4","type":"AudioMixer4","name":"LFOmodMixB","x":810.5,"y":525.2777681350708,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_NoteGen1:1"]]},{"id":"NodeArraySynthMain_MixerX3","type":"AudioMixer","name":"LFOmodMixC","inputs":"2","x":818.3887939453125,"y":699.1667261123657,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_NoteGen1:2"]]},{"id":"NodeArraySynthMain_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_1","x":1028.2460899353027,"y":344.3254165649414,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[]},{"id":"NodeArraySynthMain_NoteGen1","type":"NoteGen","name":"NoteGen[16]","x":1015.0000228881836,"y":524.6666450500488,"z":"aa948da6.d8a2b","bgColor":"#ccffcc","wires":[["NodeArraySynthMain_MixerX4:0"]]},{"id":"NodeArraySynthMain_MixerX4","type":"AudioMixer","name":"MixerX4","inputs":1,"x":1166.0000228881836,"y":522.6666450500488,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_amp1:0"]]},{"id":"NodeArraySynthMain_amp1","type":"AudioAmplifier","name":"amp1","x":1301.0000228881836,"y":520.6666450500488,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain_i2s1:0","NodeArraySynthMain_i2s1:1"]]},{"id":"NodeArraySynthMain_i2s1","type":"AudioOutputI2S","name":"i2s_2","x":1430.6032943725586,"y":522.0634651184082,"z":"aa948da6.d8a2b","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"fd608df0.4cd85","label":"Mod","inputs":0,"outputs":3,"export":true,"nodes":[]},{"id":"Mod_dc1","type":"AudioSynthWaveformDc","name":"LFOpulseModDutyCycle","x":167,"y":150,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_waveformMod11:1"]]},{"id":"Mod_dc2","type":"AudioSynthWaveformDc","name":"LFOpulseFilterDutyCycle","x":168,"y":623.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_waveformMod10:1"]]},{"id":"Mod_waveformMod1","type":"AudioSynthWaveformModulated","name":"LFOsawMod","x":261.5,"y":380.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX1:0"]]},{"id":"Mod_waveformMod2","type":"AudioSynthWaveformModulated","name":"LFOsampleholdMod","x":261.5,"y":415.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX1:1"]]},{"id":"Mod_waveformMod12","type":"AudioSynthWaveformModulated","name":"LFOsineMod","x":381.75000762939453,"y":75.24999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer1:0"]]},{"id":"Mod_waveformMod7","type":"AudioSynthWaveformModulated","name":"LFOsquareMod","x":373.25000762939453,"y":109.99999904632568,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer1:1"]]},{"id":"Mod_waveformMod11","type":"AudioSynthWaveformModulated","name":"LFOpulseMod","x":374.50000762939453,"y":147.49999904632568,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer1:2"]]},{"id":"Mod_waveformMod6","type":"AudioSynthWaveformModulated","name":"LFOtriangleMod","x":372.00000762939453,"y":182.49999904632568,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer1:3"]]},{"id":"Mod_waveformMod8","type":"AudioSynthWaveformModulated","name":"LFOsineFilter","x":372.5,"y":547.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer2:0"]]},{"id":"Mod_waveformMod9","type":"AudioSynthWaveformModulated","name":"LFOsquareFilter","x":372.5,"y":582.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer2:1"]]},{"id":"Mod_waveformMod10","type":"AudioSynthWaveformModulated","name":"LFOpulseFilter","x":372.5,"y":617.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer2:2"]]},{"id":"Mod_waveformMod4","type":"AudioSynthWaveformModulated","name":"LFOtriangleFilter","x":365.5,"y":654.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer2:3"]]},{"id":"Mod_waveformMod5","type":"AudioSynthWaveformModulated","name":"LFOsawFilter","x":367.5,"y":694.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX2:0"]]},{"id":"Mod_waveformMod3","type":"AudioSynthWaveformModulated","name":"LFOsampleholdFilter","x":345.5,"y":734.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX2:1"]]},{"id":"Mod_mixer1","type":"AudioMixer4","name":"LFOmodMix1","x":569.0000076293945,"y":129.50000095367432,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer3:0","Mod_mixer4:0"]]},{"id":"Mod_dc3","type":"AudioSynthWaveformDc","name":"VFOtuningA","x":520.5,"y":230.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer3:2"]]},{"id":"Mod_dc5","type":"AudioSynthWaveformDc","name":"PBend","x":543.5,"y":315.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer3:3","Mod_mixer4:3"]]},{"id":"Mod_MixerX1","type":"AudioMixer","name":"LFOmodMix2","inputs":"2","x":514.3888282775879,"y":394.38890075683594,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer3:1","Mod_mixer4:1"]]},{"id":"Mod_dc4","type":"AudioSynthWaveformDc","name":"VFOtuningB","x":529.5,"y":465.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_mixer4:2"]]},{"id":"Mod_mixer2","type":"AudioMixer4","name":"LFOfilterMixA","x":605.5,"y":600.499997138977,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX3:0"]]},{"id":"Mod_MixerX2","type":"AudioMixer","name":"LFOfilterMixB","inputs":"2","x":601.3887596130371,"y":720.3890027999878,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_MixerX3:1"]]},{"id":"Mod_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n\n}","x":879,"y":108,"z":"fd608df0.4cd85","bgColor":"#ddffbb","wires":[]},{"id":"Mod_mixer3","type":"AudioMixer4","name":"LFOmodMixA","x":838.5,"y":281.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_Out1:0"]]},{"id":"Mod_mixer4","type":"AudioMixer4","name":"LFOmodMixB","x":847.5,"y":457.49999713897705,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_Out2:0"]]},{"id":"Mod_MixerX3","type":"AudioMixer","name":"LFOmodMixC","inputs":"2","x":855.3887939453125,"y":631.388955116272,"z":"fd608df0.4cd85","bgColor":"#E6E0F8","wires":[["Mod_Out3:0"]]},{"id":"Mod_Out1","type":"TabOutput","name":"LFOmodMixA_Out","comment":"new","x":1049,"y":281,"z":"fd608df0.4cd85","bgColor":"#cce6ff","wires":[]},{"id":"Mod_Out2","type":"TabOutput","name":"LFOmodMixB_Out","comment":"new","x":1055,"y":458,"z":"fd608df0.4cd85","bgColor":"#cce6ff","wires":[]},{"id":"Mod_Out3","type":"TabOutput","name":"LFOmodMixC_Out","comment":"new","x":1064,"y":631,"z":"fd608df0.4cd85","bgColor":"#cce6ff","wires":[]},{"type":"tab","id":"3ed7083a.3969d8","label":"NodeArraySynthMain2","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"NodeArraySynthMain2_Mod","type":"Mod","name":"mod","x":87,"y":273,"z":"3ed7083a.3969d8","bgColor":"#ccffcc","wires":[["NodeArraySynthMain2_NoteGen1:0"],["NodeArraySynthMain2_NoteGen1:1"],["NodeArraySynthMain2_NoteGen1:2"]]},{"id":"NodeArraySynthMain2_Comment1","type":"Comment","name":"\"kd5rxt-mark\" made the structure that i base this demoflow on","x":232.2222137451172,"y":95.55555248260498,"z":"3ed7083a.3969d8","bgColor":"#ddffbb","wires":[]},{"id":"NodeArraySynthMain2_vars2","type":"Variables","name":"NoteGen count","comment":"const int NoteGenCount = 16;","x":273,"y":217,"z":"3ed7083a.3969d8","bgColor":"#ddffbb","wires":[]},{"id":"NodeArraySynthMain2_NoteGen1","type":"NoteGen","name":"noteGen[16]","x":242.22222900390625,"y":273.22216796875,"z":"3ed7083a.3969d8","bgColor":"#ccffcc","wires":[["NodeArraySynthMain2_MixerX1:0"]]},{"id":"NodeArraySynthMain2_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_1","x":339.4682922363281,"y":177.8809356689453,"z":"3ed7083a.3969d8","bgColor":"#E6E0F8","wires":[]},{"id":"NodeArraySynthMain2_MixerX1","type":"AudioMixer","name":"mixFinal","inputs":1,"x":393.22222900390625,"y":271.22216796875,"z":"3ed7083a.3969d8","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain2_amp1:0"]]},{"id":"NodeArraySynthMain2_amp1","type":"AudioAmplifier","name":"ampFinal","x":528.2222290039062,"y":269.22216796875,"z":"3ed7083a.3969d8","bgColor":"#E6E0F8","wires":[["NodeArraySynthMain2_i2s1:0","NodeArraySynthMain2_i2s1:1"]]},{"id":"NodeArraySynthMain2_code1","type":"Function","name":"begin function","comment":"void begin()\n{\n mod.begin();\n for (int i = 0; i < NoteGenCount ; i++)\n {\n noteGen[i].begin();\n mixFinal.gain(i, 1.0/NoteGenCount );\n }\n}","x":614,"y":95,"z":"3ed7083a.3969d8","bgColor":"#ddffbb","wires":[]},{"id":"NodeArraySynthMain2_code2","type":"Function","name":"noteOn/Off sustainOn/Off","comment":"\nvoid noteOn(byte note, byte velocity)\n{\n //digitalWrite(NOTE_PRESSED_STATE_LED, HIGH);\n for (int i = 0; i < NoteGenCount ; i++) \n {\n if (noteGen[i].note == note) // first check if the note was played recently\n {\n noteGen[i].noteOn(note, velocity);\n //digitalWrite(NOTE_OVERFLOWN_LED, LOW);\n return; \n }\n }\n for (int i = 0; i < NoteGenCount ; i++) // second see if there is any free \"spot\"\n {\n if (noteGen[i].isNotPlaying())\n {\n noteGen[i].noteOn(note, velocity);\n //digitalWrite(NOTE_OVERFLOWN_LED, LOW);\n return;\n }\n }\n //digitalWrite(NOTE_OVERFLOWN_LED, HIGH);\n}\nvoid noteOff(byte note, byte velocity)\n{\n //digitalWrite(NOTE_PRESSED_STATE_LED, LOW);\n for (int i = 0; i < NoteGenCount ; i++)\n {\n if (noteGen[i].note == note)\n {\n noteGen[i].noteOff(velocity);\n return;\n }\n }\n}\nvoid activateSustain()\n{\n for (int i = 0; i < NoteGenCount ; i++)\n {\n noteGen[i].isSustain = 1;\n }\n}\nvoid deactivateSustain()\n{\n for (int i = 0; i < NoteGenCount ; i++)\n {\n noteGen[i].isSustain = 0;\n if (!noteGen[i].isNoteOn)\n noteGen[i].noteOff(0);\n }\n}","x":631,"y":161,"z":"3ed7083a.3969d8","bgColor":"#ddffbb","wires":[]},{"id":"NodeArraySynthMain2_i2s1","type":"AudioOutputI2S","name":"i2s_3","x":666.8255004882812,"y":269.6189880371094,"z":"3ed7083a.3969d8","bgColor":"#E6E0F8","wires":[]},{"type":"tab","id":"ea2e50fb.2b67e","label":"OneClassMain","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"Sheet_1_dc1","type":"AudioSynthWaveformDc","name":"LFOpulseModDutyCycle","x":135,"y":164.49999904632568,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod19:1"]]},{"id":"Sheet_1_dc2","type":"AudioSynthWaveformDc","name":"LFOpulseFilterDutyCycle","x":160.00000762939453,"y":903.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod18:1"]]},{"id":"Sheet_1_waveformMod9","type":"AudioSynthWaveformModulated","name":"LFOsawMod","x":229.5,"y":394.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX5:0"]]},{"id":"Sheet_1_waveformMod10","type":"AudioSynthWaveformModulated","name":"LFOsampleholdMod","x":229.5,"y":429.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX5:1"]]},{"id":"Sheet_1_waveformMod20","type":"AudioSynthWaveformModulated","name":"LFOsineMod","x":349.75000762939453,"y":89.74999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:0"]]},{"id":"Sheet_1_waveformMod15","type":"AudioSynthWaveformModulated","name":"LFOsquareMod","x":341.25000762939453,"y":124.49999809265137,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:1"]]},{"id":"Sheet_1_waveformMod19","type":"AudioSynthWaveformModulated","name":"LFOpulseMod","x":342.50000762939453,"y":161.99999809265137,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:2"]]},{"id":"Sheet_1_waveformMod14","type":"AudioSynthWaveformModulated","name":"LFOtriangleMod","x":340.00000762939453,"y":196.99999809265137,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer2:3"]]},{"id":"Sheet_1_waveformMod16","type":"AudioSynthWaveformModulated","name":"LFOsineFilter","x":364.50000762939453,"y":827.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:0"]]},{"id":"Sheet_1_waveformMod17","type":"AudioSynthWaveformModulated","name":"LFOsquareFilter","x":364.50000762939453,"y":862.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:1"]]},{"id":"Sheet_1_waveformMod18","type":"AudioSynthWaveformModulated","name":"LFOpulseFilter","x":364.50000762939453,"y":897.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:2"]]},{"id":"Sheet_1_waveformMod12","type":"AudioSynthWaveformModulated","name":"LFOtriangleFilter","x":357.50000762939453,"y":934.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer3:3"]]},{"id":"Sheet_1_waveformMod13","type":"AudioSynthWaveformModulated","name":"LFOsawFilter","x":359.50000762939453,"y":974.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX6:0"]]},{"id":"Sheet_1_waveformMod11","type":"AudioSynthWaveformModulated","name":"LFOsampleholdFilter","x":337.50000762939453,"y":1014.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX6:1"]]},{"id":"Sheet_1_dc3","type":"AudioSynthWaveformDc","name":"VFOtuningA","x":488.5,"y":244.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:2"]]},{"id":"Sheet_1_MixerX5","type":"AudioMixer","name":"LFOmodMix2","inputs":"2","x":482.3888282775879,"y":408.8888998031616,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:1","Sheet_1_mixer5:1"]]},{"id":"Sheet_1_dc4","type":"AudioSynthWaveformDc","name":"VFOtuningB","x":497.5,"y":479.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer5:2"]]},{"id":"Sheet_1_mixer2","type":"AudioMixer4","name":"LFOmodMix1","x":537.0000076293945,"y":144,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:0","Sheet_1_mixer5:0"]]},{"id":"Sheet_1_dc5","type":"AudioSynthWaveformDc","name":"PBend","x":511.5,"y":329.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer4:3","Sheet_1_mixer5:3"]]},{"id":"Sheet_1_mixer3","type":"AudioMixer4","name":"LFOfilterMixA","x":597.5000076293945,"y":880.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX7:0"]]},{"id":"Sheet_1_MixerX6","type":"AudioMixer","name":"LFOfilterMixB","inputs":"2","x":593.3887672424316,"y":1000.8890018463135,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX7:1"]]},{"id":"Sheet_1_mixer4","type":"AudioMixer4","name":"LFOmodMixA","x":806.5,"y":295.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod1:0","Sheet_1_waveformMod3:0","Sheet_1_waveformMod8:0","Sheet_1_waveformMod2:0"]]},{"id":"Sheet_1_mixer5","type":"AudioMixer4","name":"LFOmodMixB","x":815.5,"y":471.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_waveformMod4:0","Sheet_1_waveformMod5:0","Sheet_1_waveformMod6:0","Sheet_1_waveformMod7:0"]]},{"id":"Sheet_1_MixerX7","type":"AudioMixer","name":"LFOmodMixC","inputs":"2","x":847.388801574707,"y":911.8889541625977,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_filter1:1"]]},{"id":"Sheet_1_waveformMod1","type":"AudioSynthWaveformModulated","name":"VFOsineA[16]","comment":"","x":1071.5000457763672,"y":139,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:0"]]},{"id":"Sheet_1_waveformMod3","type":"AudioSynthWaveformModulated","name":"VFOsquareA[16]","comment":"","x":1082.5000457763672,"y":173,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:1"]]},{"id":"Sheet_1_waveformMod8","type":"AudioSynthWaveformModulated","name":"VFOtriangleA[16]","comment":"","x":1086.5000457763672,"y":207,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:2"]]},{"id":"Sheet_1_waveformMod2","type":"AudioSynthWaveformModulated","name":"VFOsawA[16]","comment":"","x":1079.5000457763672,"y":241,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:3"]]},{"id":"Sheet_1_string1","type":"AudioSynthKarplusStrong","name":"VFOstringA[16]","comment":"","x":1080.5000457763672,"y":275,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:4"]]},{"id":"Sheet_1_noise2","type":"AudioSynthNoiseWhite","name":"VFOwhiteA[16]","comment":"","x":1084.5000457763672,"y":309,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:5"]]},{"id":"Sheet_1_pink1","type":"AudioSynthNoisePink","name":"VFOpinkA[16]","comment":"","x":1082.5000495910645,"y":341.9999885559082,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:6"]]},{"id":"Sheet_1_tonesweep2","type":"AudioSynthToneSweep","name":"VFOsweepA[16]","comment":"","x":1093.5000457763672,"y":375,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX1:7"]]},{"id":"Sheet_1_waveformMod4","type":"AudioSynthWaveformModulated","name":"VFOsineB[16]","comment":"","x":1102.5000534057617,"y":437.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:0"]]},{"id":"Sheet_1_waveformMod5","type":"AudioSynthWaveformModulated","name":"VFOsquareB[16]","comment":"","x":1118.5000381469727,"y":474.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:1"]]},{"id":"Sheet_1_waveformMod6","type":"AudioSynthWaveformModulated","name":"VFOtriangleB[16]","comment":"","x":1129.5000534057617,"y":510.99999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:2"]]},{"id":"Sheet_1_waveformMod7","type":"AudioSynthWaveformModulated","name":"VFOsawB[16]","comment":"","x":1128.5000381469727,"y":549.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:3"]]},{"id":"Sheet_1_string2","type":"AudioSynthKarplusStrong","name":"VFOstringB[16]","comment":"","x":1134.5000534057617,"y":585.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:4"]]},{"id":"Sheet_1_noise1","type":"AudioSynthNoiseWhite","name":"VFOwhiteB[16]","comment":"","x":1141.5000534057617,"y":618.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:5"]]},{"id":"Sheet_1_pink2","type":"AudioSynthNoisePink","name":"VFOpinkB[16]","comment":"","x":1143.5000381469727,"y":653.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:6"]]},{"id":"Sheet_1_tonesweep1","type":"AudioSynthToneSweep","name":"VFOsweepB[16]","comment":"","x":1156.5000534057617,"y":686.9999961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX2:7"]]},{"id":"Sheet_1_MixerX1","type":"AudioMixer","name":"waveMixA[16]","inputs":"8","comment":"","x":1359.210334777832,"y":235.7500114440918,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX3:0"]]},{"id":"Sheet_1_MixerX3","type":"AudioMixer","name":"waveMixAB[16]","inputs":"2","comment":"","x":1393.210334777832,"y":395.75003242492676,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX4:0","Sheet_1_envelope1:0"]]},{"id":"Sheet_1_ClassComment1","type":"ClassComment","name":"this layout uses array on every notegen node to create the same circuit but with everything in one class","x":1467.5000076293945,"y":81.74999618530273,"z":"ea2e50fb.2b67e","bgColor":"#ccffcc","wires":[]},{"id":"Sheet_1_MixerX2","type":"AudioMixer","name":"waveMixB[16]","inputs":"8","comment":"","x":1424.2102432250977,"y":564.7499961853027,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX3:1"]]},{"id":"Sheet_1_envelope1","type":"AudioEffectEnvelope","name":"VFOenvelope[16]","comment":"","x":1565.2500839233398,"y":438.9999942779541,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX4:1"]]},{"id":"Sheet_1_MixerX4","type":"AudioMixer","name":"VFOenvelopeMix[16]","inputs":"2","comment":"","x":1747.2103652954102,"y":399.75002670288086,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_filter1:0","Sheet_1_mixer1:0"]]},{"id":"Sheet_1_filter1","type":"AudioFilterStateVariable","name":"VFOfilter[16]","comment":"","x":1917.5001907348633,"y":453.0000286102295,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_mixer1:1"],["Sheet_1_mixer1:2"],["Sheet_1_mixer1:3"]]},{"id":"Sheet_1_mixer1","type":"AudioMixer4","name":"VFOfilterMix[16]","comment":"","x":2096.500198364258,"y":435.0000190734863,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_MixerX8:0"]]},{"id":"Sheet_1_MixerX8","type":"AudioMixer","name":"mixFinal","inputs":1,"x":2271.5000076293945,"y":435.74999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_amp1:0"]]},{"id":"Sheet_1_amp1","type":"AudioAmplifier","name":"ampFinal","x":2406.5000076293945,"y":433.74999618530273,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[["Sheet_1_i2s1:0","Sheet_1_i2s1:1"]]},{"id":"Sheet_1_i2s1","type":"AudioOutputI2S","name":"i2s_3","x":2543.103271484375,"y":436.1468200683594,"z":"ea2e50fb.2b67e","bgColor":"#E6E0F8","wires":[]}]
</script>
<script type="text/x-red" data-container-name="FlowOriginal">
[{"type":"settings","data":[{"arduino":{"useExportDialog":false,"IOcheckAtExport":true,"WriteJSONtoExportedFile":true,"WebServerPort":8080,"WebSocketServerPort":3000,"ProjectName":"FlowOriginal","StandardIncludeHeader":"#include <Arduino.h>\n#include <Audio.h>\n#include <Wire.h>\n#include <SPI.h>\n#include <SD.h>\n#include <SerialFlash.h>\n"}},{"BiDirDataWebSocketBridge":{"bddwssPort":3001,"MidiDeviceIn":0,"MidiDeviceOut":0}},{"view":{"showWorkspaceToolbar":true,"showNodeToolTip":true,"guiEditMode":true,"lockWindowMouseScrollInRunMode":true,"space_width":5000,"space_height":5000,"workspaceBgColor":"#FFF","scaleFactor":1,"showGridHminor":true,"showGridHmajor":true,"showGridVminor":true,"showGridVmajor":true,"nodeMouseDownShowGridHminor":false,"nodeMouseDownShowGridHmajor":true,"nodeMouseDownShowGridVminor":false,"nodeMouseDownShowGridVmajor":true,"gridHminorSize":10,"gridHmajorSize":100,"gridVminorSize":10,"gridVmajorSize":100,"gridMinorColor":"#eee","gridMajorColor":"#ddd","snapToGrid":true,"snapToGridHsize":5,"snapToGridVsize":5,"lineCurveScale":0.75,"lineConnectionsScale":1.5,"useCenterBasedPositions":true,"nodeDefaultTextSize":14}},{"palette":{"categoryHeaderTextSize":12,"categoryHeaderHeight":14,"categoryHeaderBackgroundColor":"#f3f3f3","onlyShowOne":true}},{"editor":{"aceEditorTheme":"theme-chrome"}},{"devTest":{"autoSwitchTabToInfoTab":true,"testPost":"data","testGet":"cmd","testWsSend":"data","getFuncHelp":"AudioEffectFade"}}]},{"type":"tab","id":"fe95d09d.ae21a","label":"SynthMain","inputs":0,"outputs":0,"export":true,"nodes":[]},{"id":"NoteGen_waveformMod1","type":"AudioSynthWaveformModulated","name":"waveformMod1","x":115,"y":66,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:0"]]},{"id":"NoteGen_waveformMod2","type":"AudioSynthWaveformModulated","name":"waveformMod2","x":115,"y":101,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:1"]]},{"id":"NoteGen_waveformMod3","type":"AudioSynthWaveformModulated","name":"waveformMod3","x":115,"y":136,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:2"]]},{"id":"NoteGen_dc1","type":"AudioSynthWaveformDc","name":"dc1","x":115,"y":171,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_waveformMod3:1"]]},{"id":"NoteGen_waveformMod4","type":"AudioSynthWaveformModulated","name":"waveformMod4","x":115,"y":206,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_1:3"]]},{"id":"NoteGen_waveformMod5","type":"AudioSynthWaveformModulated","name":"waveformMod5","x":115,"y":241,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:0"]]},{"id":"NoteGen_waveformMod6","type":"AudioSynthWaveformModulated","name":"waveformMod6","x":115,"y":276,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_2:1"]]},{"id":"NoteGen_waveformMod7","type":"AudioSynthWaveformModulated","name":"waveformMod7","x":115,"y":366,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:0"]]},{"id":"NoteGen_waveformMod8","type":"AudioSynthWaveformModulated","name":"waveformMod8","x":115,"y":401,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:1"]]},{"id":"NoteGen_waveformMod9","type":"AudioSynthWaveformModulated","name":"waveformMod9","x":115,"y":436,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:2"]]},{"id":"NoteGen_dc2","type":"AudioSynthWaveformDc","name":"dc2","x":115,"y":471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_waveformMod9:1"]]},{"id":"NoteGen_waveformMod10","type":"AudioSynthWaveformModulated","name":"waveformMod10","x":115,"y":506,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_3:3"]]},{"id":"NoteGen_waveformMod11","type":"AudioSynthWaveformModulated","name":"waveformMod11","x":115,"y":541,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_4:0"]]},{"id":"NoteGen_waveformMod12","type":"AudioSynthWaveformModulated","name":"waveformMod12","x":115,"y":576,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_4:1"]]},{"id":"NoteGen_mixer4_1","type":"AudioMixer4","name":"mixer4_1","x":405,"y":152,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_5:0","NoteGen_mixer4_6:0"]]},{"id":"NoteGen_mixer4_2","type":"AudioMixer4","name":"mixer4_2","x":405,"y":225,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_5:1","NoteGen_mixer4_6:1"]]},{"id":"NoteGen_dc3","type":"AudioSynthWaveformDc","name":"dc3","x":403,"y":306,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_5:2"]]},{"id":"NoteGen_dc4","type":"AudioSynthWaveformDc","name":"dc4","x":403,"y":346,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_6:2"]]},{"id":"NoteGen_dc5","type":"AudioSynthWaveformDc","name":"dc5","x":412,"y":386,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_5:3","NoteGen_mixer4_6:3"]]},{"id":"NoteGen_mixer4_3","type":"AudioMixer4","name":"mixer4_3","x":405,"y":452,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_7:0"]]},{"id":"NoteGen_mixer4_4","type":"AudioMixer4","name":"mixer4_4","x":405,"y":525,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_7:1"]]},{"id":"NoteGen_mixer4_5","type":"AudioMixer4","name":"mixer4_5","x":725,"y":151,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_waveformMod13:0","NoteGen_waveformMod14:0","NoteGen_waveformMod15:0","NoteGen_waveformMod16:0","NoteGen_waveformMod17:0","NoteGen_waveformMod18:0","NoteGen_waveformMod19:0","NoteGen_waveformMod20:0","NoteGen_waveformMod21:0","NoteGen_waveformMod22:0","NoteGen_waveformMod23:0","NoteGen_waveformMod24:0","NoteGen_waveformMod25:0","NoteGen_waveformMod26:0","NoteGen_waveformMod27:0","NoteGen_waveformMod28:0","NoteGen_waveformMod29:0","NoteGen_waveformMod30:0","NoteGen_waveformMod31:0","NoteGen_waveformMod32:0","NoteGen_waveformMod33:0","NoteGen_waveformMod34:0","NoteGen_waveformMod35:0","NoteGen_waveformMod36:0","NoteGen_waveformMod37:0","NoteGen_waveformMod38:0","NoteGen_waveformMod39:0","NoteGen_waveformMod40:0","NoteGen_waveformMod41:0","NoteGen_waveformMod42:0","NoteGen_waveformMod43:0","NoteGen_waveformMod44:0","NoteGen_waveformMod45:0","NoteGen_waveformMod46:0","NoteGen_waveformMod47:0","NoteGen_waveformMod48:0","NoteGen_waveformMod49:0","NoteGen_waveformMod50:0","NoteGen_waveformMod51:0","NoteGen_waveformMod52:0","NoteGen_waveformMod53:0","NoteGen_waveformMod54:0","NoteGen_waveformMod55:0","NoteGen_waveformMod56:0","NoteGen_waveformMod57:0","NoteGen_waveformMod58:0","NoteGen_waveformMod59:0","NoteGen_waveformMod60:0","NoteGen_waveformMod61:0","NoteGen_waveformMod62:0","NoteGen_waveformMod63:0","NoteGen_waveformMod64:0","NoteGen_waveformMod65:0","NoteGen_waveformMod66:0","NoteGen_waveformMod67:0","NoteGen_waveformMod68:0","NoteGen_waveformMod69:0","NoteGen_waveformMod70:0","NoteGen_waveformMod71:0","NoteGen_waveformMod72:0","NoteGen_waveformMod73:0","NoteGen_waveformMod74:0","NoteGen_waveformMod75:0","NoteGen_waveformMod76:0"]]},{"id":"NoteGen_mixer4_6","type":"AudioMixer4","name":"mixer4_6","x":725,"y":225,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_waveformMod77:0","NoteGen_waveformMod78:0","NoteGen_waveformMod79:0","NoteGen_waveformMod80:0","NoteGen_waveformMod81:0","NoteGen_waveformMod82:0","NoteGen_waveformMod83:0","NoteGen_waveformMod84:0","NoteGen_waveformMod85:0","NoteGen_waveformMod86:0","NoteGen_waveformMod87:0","NoteGen_waveformMod88:0","NoteGen_waveformMod89:0","NoteGen_waveformMod90:0","NoteGen_waveformMod91:0","NoteGen_waveformMod92:0","NoteGen_waveformMod93:0","NoteGen_waveformMod94:0","NoteGen_waveformMod95:0","NoteGen_waveformMod96:0","NoteGen_waveformMod97:0","NoteGen_waveformMod98:0","NoteGen_waveformMod99:0","NoteGen_waveformMod100:0","NoteGen_waveformMod101:0","NoteGen_waveformMod102:0","NoteGen_waveformMod103:0","NoteGen_waveformMod104:0","NoteGen_waveformMod105:0","NoteGen_waveformMod106:0","NoteGen_waveformMod107:0","NoteGen_waveformMod108:0","NoteGen_waveformMod109:0","NoteGen_waveformMod110:0","NoteGen_waveformMod111:0","NoteGen_waveformMod112:0","NoteGen_waveformMod113:0","NoteGen_waveformMod114:0","NoteGen_waveformMod115:0","NoteGen_waveformMod116:0","NoteGen_waveformMod117:0","NoteGen_waveformMod118:0","NoteGen_waveformMod119:0","NoteGen_waveformMod120:0","NoteGen_waveformMod121:0","NoteGen_waveformMod122:0","NoteGen_waveformMod123:0","NoteGen_waveformMod124:0","NoteGen_waveformMod125:0","NoteGen_waveformMod126:0","NoteGen_waveformMod127:0","NoteGen_waveformMod128:0","NoteGen_waveformMod129:0","NoteGen_waveformMod130:0","NoteGen_waveformMod131:0","NoteGen_waveformMod132:0","NoteGen_waveformMod133:0","NoteGen_waveformMod134:0","NoteGen_waveformMod135:0","NoteGen_waveformMod136:0","NoteGen_waveformMod137:0","NoteGen_waveformMod138:0","NoteGen_waveformMod139:0","NoteGen_waveformMod140:0"]]},{"id":"NoteGen_mixer4_7","type":"AudioMixer4","name":"mixer4_7","x":725,"y":471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter1:1","NoteGen_filter2:1","NoteGen_filter3:1","NoteGen_filter4:1","NoteGen_filter5:1","NoteGen_filter6:1","NoteGen_filter7:1","NoteGen_filter8:1","NoteGen_filter9:1","NoteGen_filter10:1","NoteGen_filter11:1","NoteGen_filter12:1","NoteGen_filter13:1","NoteGen_filter14:1","NoteGen_filter15:1","NoteGen_filter16:1"]]},{"id":"NoteGen_waveformMod13","type":"AudioSynthWaveformModulated","name":"waveformMod13","x":1130,"y":66,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_8:0"]]},{"id":"NoteGen_waveformMod14","type":"AudioSynthWaveformModulated","name":"waveformMod14","x":1130,"y":101,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_8:1"]]},{"id":"NoteGen_waveformMod15","type":"AudioSynthWaveformModulated","name":"waveformMod15","x":1130,"y":136,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_8:2"]]},{"id":"NoteGen_waveformMod16","type":"AudioSynthWaveformModulated","name":"waveformMod16","x":1130,"y":171,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_8:3"]]},{"id":"NoteGen_string1","type":"AudioSynthKarplusStrong","name":"string1","x":1130,"y":206,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_9:0"]]},{"id":"NoteGen_noise1","type":"AudioSynthNoiseWhite","name":"noise1","x":1130,"y":241,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_9:1"]]},{"id":"NoteGen_pink1","type":"AudioSynthNoisePink","name":"pink1","x":1130,"y":276,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_9:2"]]},{"id":"NoteGen_tonesweep1","type":"AudioSynthToneSweep","name":"tonesweep1","x":1130,"y":311,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_9:3"]]},{"id":"NoteGen_waveformMod17","type":"AudioSynthWaveformModulated","name":"waveformMod17","x":1130,"y":366,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_10:0"]]},{"id":"NoteGen_waveformMod18","type":"AudioSynthWaveformModulated","name":"waveformMod18","x":1130,"y":401,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_10:1"]]},{"id":"NoteGen_waveformMod19","type":"AudioSynthWaveformModulated","name":"waveformMod19","x":1130,"y":436,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_10:2"]]},{"id":"NoteGen_waveformMod20","type":"AudioSynthWaveformModulated","name":"waveformMod20","x":1130,"y":471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_10:3"]]},{"id":"NoteGen_string2","type":"AudioSynthKarplusStrong","name":"string2","x":1130,"y":506,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_11:0"]]},{"id":"NoteGen_noise2","type":"AudioSynthNoiseWhite","name":"noise2","x":1130,"y":541,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_11:1"]]},{"id":"NoteGen_pink2","type":"AudioSynthNoisePink","name":"pink2","x":1130,"y":576,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_11:2"]]},{"id":"NoteGen_tonesweep2","type":"AudioSynthToneSweep","name":"tonesweep2","x":1130,"y":611,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_11:3"]]},{"id":"NoteGen_waveformMod21","type":"AudioSynthWaveformModulated","name":"waveformMod21","x":1130,"y":666,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_12:0"]]},{"id":"NoteGen_waveformMod22","type":"AudioSynthWaveformModulated","name":"waveformMod22","x":1130,"y":701,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_12:1"]]},{"id":"NoteGen_waveformMod23","type":"AudioSynthWaveformModulated","name":"waveformMod23","x":1130,"y":736,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_12:2"]]},{"id":"NoteGen_waveformMod24","type":"AudioSynthWaveformModulated","name":"waveformMod24","x":1130,"y":771,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_12:3"]]},{"id":"NoteGen_string3","type":"AudioSynthKarplusStrong","name":"string3","x":1130,"y":806,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_13:0"]]},{"id":"NoteGen_noise3","type":"AudioSynthNoiseWhite","name":"noise3","x":1130,"y":841,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_13:1"]]},{"id":"NoteGen_pink3","type":"AudioSynthNoisePink","name":"pink3","x":1130,"y":876,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_13:2"]]},{"id":"NoteGen_tonesweep3","type":"AudioSynthToneSweep","name":"tonesweep3","x":1130,"y":911,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_13:3"]]},{"id":"NoteGen_waveformMod25","type":"AudioSynthWaveformModulated","name":"waveformMod25","x":1130,"y":966,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_14:0"]]},{"id":"NoteGen_waveformMod26","type":"AudioSynthWaveformModulated","name":"waveformMod26","x":1130,"y":1001,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_14:1"]]},{"id":"NoteGen_waveformMod27","type":"AudioSynthWaveformModulated","name":"waveformMod27","x":1130,"y":1036,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_14:2"]]},{"id":"NoteGen_waveformMod28","type":"AudioSynthWaveformModulated","name":"waveformMod28","x":1130,"y":1071,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_14:3"]]},{"id":"NoteGen_string4","type":"AudioSynthKarplusStrong","name":"string4","x":1130,"y":1106,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_15:0"]]},{"id":"NoteGen_noise4","type":"AudioSynthNoiseWhite","name":"noise4","x":1130,"y":1141,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_15:1"]]},{"id":"NoteGen_pink4","type":"AudioSynthNoisePink","name":"pink4","x":1130,"y":1176,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_15:2"]]},{"id":"NoteGen_tonesweep4","type":"AudioSynthToneSweep","name":"tonesweep4","x":1130,"y":1211,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_15:3"]]},{"id":"NoteGen_waveformMod29","type":"AudioSynthWaveformModulated","name":"waveformMod29","x":1130,"y":1266,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_16:0"]]},{"id":"NoteGen_waveformMod30","type":"AudioSynthWaveformModulated","name":"waveformMod30","x":1130,"y":1301,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_16:1"]]},{"id":"NoteGen_waveformMod31","type":"AudioSynthWaveformModulated","name":"waveformMod31","x":1130,"y":1336,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_16:2"]]},{"id":"NoteGen_waveformMod32","type":"AudioSynthWaveformModulated","name":"waveformMod32","x":1130,"y":1371,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_16:3"]]},{"id":"NoteGen_string5","type":"AudioSynthKarplusStrong","name":"string5","x":1130,"y":1406,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_17:0"]]},{"id":"NoteGen_noise5","type":"AudioSynthNoiseWhite","name":"noise5","x":1130,"y":1441,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_17:1"]]},{"id":"NoteGen_pink5","type":"AudioSynthNoisePink","name":"pink5","x":1130,"y":1476,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_17:2"]]},{"id":"NoteGen_tonesweep5","type":"AudioSynthToneSweep","name":"tonesweep5","x":1130,"y":1511,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_17:3"]]},{"id":"NoteGen_waveformMod33","type":"AudioSynthWaveformModulated","name":"waveformMod33","x":1130,"y":1566,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_18:0"]]},{"id":"NoteGen_waveformMod34","type":"AudioSynthWaveformModulated","name":"waveformMod34","x":1130,"y":1601,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_18:1"]]},{"id":"NoteGen_waveformMod35","type":"AudioSynthWaveformModulated","name":"waveformMod35","x":1130,"y":1636,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_18:2"]]},{"id":"NoteGen_waveformMod36","type":"AudioSynthWaveformModulated","name":"waveformMod36","x":1130,"y":1671,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_18:3"]]},{"id":"NoteGen_string6","type":"AudioSynthKarplusStrong","name":"string6","x":1130,"y":1706,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_19:0"]]},{"id":"NoteGen_noise6","type":"AudioSynthNoiseWhite","name":"noise6","x":1130,"y":1741,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_19:1"]]},{"id":"NoteGen_pink6","type":"AudioSynthNoisePink","name":"pink6","x":1130,"y":1776,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_19:2"]]},{"id":"NoteGen_tonesweep6","type":"AudioSynthToneSweep","name":"tonesweep6","x":1130,"y":1811,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_19:3"]]},{"id":"NoteGen_waveformMod37","type":"AudioSynthWaveformModulated","name":"waveformMod37","x":1130,"y":1866,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_20:0"]]},{"id":"NoteGen_waveformMod38","type":"AudioSynthWaveformModulated","name":"waveformMod38","x":1130,"y":1901,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_20:1"]]},{"id":"NoteGen_waveformMod39","type":"AudioSynthWaveformModulated","name":"waveformMod39","x":1130,"y":1936,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_20:2"]]},{"id":"NoteGen_waveformMod40","type":"AudioSynthWaveformModulated","name":"waveformMod40","x":1130,"y":1971,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_20:3"]]},{"id":"NoteGen_string7","type":"AudioSynthKarplusStrong","name":"string7","x":1130,"y":2006,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_21:0"]]},{"id":"NoteGen_noise7","type":"AudioSynthNoiseWhite","name":"noise7","x":1130,"y":2041,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_21:1"]]},{"id":"NoteGen_pink7","type":"AudioSynthNoisePink","name":"pink7","x":1130,"y":2076,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_21:2"]]},{"id":"NoteGen_tonesweep7","type":"AudioSynthToneSweep","name":"tonesweep7","x":1130,"y":2111,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_21:3"]]},{"id":"NoteGen_waveformMod41","type":"AudioSynthWaveformModulated","name":"waveformMod41","x":1130,"y":2166,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_22:0"]]},{"id":"NoteGen_waveformMod42","type":"AudioSynthWaveformModulated","name":"waveformMod42","x":1130,"y":2201,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_22:1"]]},{"id":"NoteGen_waveformMod43","type":"AudioSynthWaveformModulated","name":"waveformMod43","x":1130,"y":2236,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_22:2"]]},{"id":"NoteGen_waveformMod44","type":"AudioSynthWaveformModulated","name":"waveformMod44","x":1130,"y":2271,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_22:3"]]},{"id":"NoteGen_string8","type":"AudioSynthKarplusStrong","name":"string8","x":1130,"y":2306,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_23:0"]]},{"id":"NoteGen_noise8","type":"AudioSynthNoiseWhite","name":"noise8","x":1130,"y":2341,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_23:1"]]},{"id":"NoteGen_pink8","type":"AudioSynthNoisePink","name":"pink8","x":1130,"y":2376,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_23:2"]]},{"id":"NoteGen_tonesweep8","type":"AudioSynthToneSweep","name":"tonesweep8","x":1130,"y":2411,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_23:3"]]},{"id":"NoteGen_waveformMod45","type":"AudioSynthWaveformModulated","name":"waveformMod45","x":1130,"y":2466,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_24:0"]]},{"id":"NoteGen_waveformMod46","type":"AudioSynthWaveformModulated","name":"waveformMod46","x":1130,"y":2501,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_24:1"]]},{"id":"NoteGen_waveformMod47","type":"AudioSynthWaveformModulated","name":"waveformMod47","x":1130,"y":2536,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_24:2"]]},{"id":"NoteGen_waveformMod48","type":"AudioSynthWaveformModulated","name":"waveformMod48","x":1130,"y":2571,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_24:3"]]},{"id":"NoteGen_string9","type":"AudioSynthKarplusStrong","name":"string9","x":1130,"y":2606,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_25:0"]]},{"id":"NoteGen_noise9","type":"AudioSynthNoiseWhite","name":"noise9","x":1130,"y":2641,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_25:1"]]},{"id":"NoteGen_pink9","type":"AudioSynthNoisePink","name":"pink9","x":1130,"y":2676,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_25:2"]]},{"id":"NoteGen_tonesweep9","type":"AudioSynthToneSweep","name":"tonesweep9","x":1130,"y":2711,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_25:3"]]},{"id":"NoteGen_waveformMod49","type":"AudioSynthWaveformModulated","name":"waveformMod49","x":1130,"y":2766,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_26:0"]]},{"id":"NoteGen_waveformMod50","type":"AudioSynthWaveformModulated","name":"waveformMod50","x":1130,"y":2801,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_26:1"]]},{"id":"NoteGen_waveformMod51","type":"AudioSynthWaveformModulated","name":"waveformMod51","x":1130,"y":2836,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_26:2"]]},{"id":"NoteGen_waveformMod52","type":"AudioSynthWaveformModulated","name":"waveformMod52","x":1130,"y":2871,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_26:3"]]},{"id":"NoteGen_string10","type":"AudioSynthKarplusStrong","name":"string10","x":1130,"y":2906,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_27:0"]]},{"id":"NoteGen_noise10","type":"AudioSynthNoiseWhite","name":"noise10","x":1130,"y":2941,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_27:1"]]},{"id":"NoteGen_pink10","type":"AudioSynthNoisePink","name":"pink10","x":1130,"y":2976,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_27:2"]]},{"id":"NoteGen_tonesweep10","type":"AudioSynthToneSweep","name":"tonesweep10","x":1130,"y":3011,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_27:3"]]},{"id":"NoteGen_waveformMod53","type":"AudioSynthWaveformModulated","name":"waveformMod53","x":1130,"y":3066,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_28:0"]]},{"id":"NoteGen_waveformMod54","type":"AudioSynthWaveformModulated","name":"waveformMod54","x":1130,"y":3101,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_28:1"]]},{"id":"NoteGen_waveformMod55","type":"AudioSynthWaveformModulated","name":"waveformMod55","x":1130,"y":3136,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_28:2"]]},{"id":"NoteGen_waveformMod56","type":"AudioSynthWaveformModulated","name":"waveformMod56","x":1130,"y":3171,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_28:3"]]},{"id":"NoteGen_string11","type":"AudioSynthKarplusStrong","name":"string11","x":1130,"y":3206,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_29:0"]]},{"id":"NoteGen_noise11","type":"AudioSynthNoiseWhite","name":"noise11","x":1130,"y":3241,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_29:1"]]},{"id":"NoteGen_pink11","type":"AudioSynthNoisePink","name":"pink11","x":1130,"y":3276,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_29:2"]]},{"id":"NoteGen_tonesweep11","type":"AudioSynthToneSweep","name":"tonesweep11","x":1130,"y":3311,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_29:3"]]},{"id":"NoteGen_waveformMod57","type":"AudioSynthWaveformModulated","name":"waveformMod57","x":1130,"y":3366,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_30:0"]]},{"id":"NoteGen_waveformMod58","type":"AudioSynthWaveformModulated","name":"waveformMod58","x":1130,"y":3401,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_30:1"]]},{"id":"NoteGen_waveformMod59","type":"AudioSynthWaveformModulated","name":"waveformMod59","x":1130,"y":3436,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_30:2"]]},{"id":"NoteGen_waveformMod60","type":"AudioSynthWaveformModulated","name":"waveformMod60","x":1130,"y":3471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_30:3"]]},{"id":"NoteGen_string12","type":"AudioSynthKarplusStrong","name":"string12","x":1130,"y":3506,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_31:0"]]},{"id":"NoteGen_noise12","type":"AudioSynthNoiseWhite","name":"noise12","x":1130,"y":3541,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_31:1"]]},{"id":"NoteGen_pink12","type":"AudioSynthNoisePink","name":"pink12","x":1130,"y":3576,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_31:2"]]},{"id":"NoteGen_tonesweep12","type":"AudioSynthToneSweep","name":"tonesweep12","x":1130,"y":3611,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_31:3"]]},{"id":"NoteGen_waveformMod61","type":"AudioSynthWaveformModulated","name":"waveformMod61","x":1130,"y":3666,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_32:0"]]},{"id":"NoteGen_waveformMod62","type":"AudioSynthWaveformModulated","name":"waveformMod62","x":1130,"y":3701,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_32:1"]]},{"id":"NoteGen_waveformMod63","type":"AudioSynthWaveformModulated","name":"waveformMod63","x":1130,"y":3736,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_32:2"]]},{"id":"NoteGen_waveformMod64","type":"AudioSynthWaveformModulated","name":"waveformMod64","x":1130,"y":3771,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_32:3"]]},{"id":"NoteGen_string13","type":"AudioSynthKarplusStrong","name":"string13","x":1130,"y":3806,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_33:0"]]},{"id":"NoteGen_noise13","type":"AudioSynthNoiseWhite","name":"noise13","x":1130,"y":3841,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_33:1"]]},{"id":"NoteGen_pink13","type":"AudioSynthNoisePink","name":"pink13","x":1130,"y":3876,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_33:2"]]},{"id":"NoteGen_tonesweep13","type":"AudioSynthToneSweep","name":"tonesweep13","x":1130,"y":3911,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_33:3"]]},{"id":"NoteGen_waveformMod65","type":"AudioSynthWaveformModulated","name":"waveformMod65","x":1130,"y":3966,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_34:0"]]},{"id":"NoteGen_waveformMod66","type":"AudioSynthWaveformModulated","name":"waveformMod66","x":1130,"y":4001,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_34:1"]]},{"id":"NoteGen_waveformMod67","type":"AudioSynthWaveformModulated","name":"waveformMod67","x":1130,"y":4036,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_34:2"]]},{"id":"NoteGen_waveformMod68","type":"AudioSynthWaveformModulated","name":"waveformMod68","x":1130,"y":4071,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_34:3"]]},{"id":"NoteGen_string14","type":"AudioSynthKarplusStrong","name":"string14","x":1130,"y":4106,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_35:0"]]},{"id":"NoteGen_noise14","type":"AudioSynthNoiseWhite","name":"noise14","x":1130,"y":4141,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_35:1"]]},{"id":"NoteGen_pink14","type":"AudioSynthNoisePink","name":"pink14","x":1130,"y":4176,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_35:2"]]},{"id":"NoteGen_tonesweep14","type":"AudioSynthToneSweep","name":"tonesweep14","x":1130,"y":4211,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_35:3"]]},{"id":"NoteGen_waveformMod69","type":"AudioSynthWaveformModulated","name":"waveformMod69","x":1130,"y":4266,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_36:0"]]},{"id":"NoteGen_waveformMod70","type":"AudioSynthWaveformModulated","name":"waveformMod70","x":1130,"y":4301,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_36:1"]]},{"id":"NoteGen_waveformMod71","type":"AudioSynthWaveformModulated","name":"waveformMod71","x":1130,"y":4336,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_36:2"]]},{"id":"NoteGen_waveformMod72","type":"AudioSynthWaveformModulated","name":"waveformMod72","x":1130,"y":4371,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_36:3"]]},{"id":"NoteGen_string15","type":"AudioSynthKarplusStrong","name":"string15","x":1130,"y":4406,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_37:0"]]},{"id":"NoteGen_noise15","type":"AudioSynthNoiseWhite","name":"noise15","x":1130,"y":4441,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_37:1"]]},{"id":"NoteGen_pink15","type":"AudioSynthNoisePink","name":"pink15","x":1130,"y":4476,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_37:2"]]},{"id":"NoteGen_tonesweep15","type":"AudioSynthToneSweep","name":"tonesweep15","x":1130,"y":4511,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_37:3"]]},{"id":"NoteGen_waveformMod73","type":"AudioSynthWaveformModulated","name":"waveformMod73","x":1130,"y":4566,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_38:0"]]},{"id":"NoteGen_waveformMod74","type":"AudioSynthWaveformModulated","name":"waveformMod74","x":1130,"y":4601,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_38:1"]]},{"id":"NoteGen_waveformMod75","type":"AudioSynthWaveformModulated","name":"waveformMod75","x":1130,"y":4636,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_38:2"]]},{"id":"NoteGen_waveformMod76","type":"AudioSynthWaveformModulated","name":"waveformMod76","x":1130,"y":4671,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_38:3"]]},{"id":"NoteGen_string16","type":"AudioSynthKarplusStrong","name":"string16","x":1130,"y":4706,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_39:0"]]},{"id":"NoteGen_noise16","type":"AudioSynthNoiseWhite","name":"noise16","x":1130,"y":4741,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_39:1"]]},{"id":"NoteGen_pink16","type":"AudioSynthNoisePink","name":"pink16","x":1130,"y":4776,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_39:2"]]},{"id":"NoteGen_tonesweep16","type":"AudioSynthToneSweep","name":"tonesweep16","x":1130,"y":4811,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_39:3"]]},{"id":"NoteGen_mixer4_8","type":"AudioMixer4","name":"mixer4_8","x":1380,"y":152,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_72:0"]]},{"id":"NoteGen_mixer4_9","type":"AudioMixer4","name":"mixer4_9","x":1380,"y":225,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_72:1"]]},{"id":"NoteGen_mixer4_10","type":"AudioMixer4","name":"mixer4_10","x":1380,"y":452,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_73:0"]]},{"id":"NoteGen_mixer4_11","type":"AudioMixer4","name":"mixer4_11","x":1380,"y":525,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_73:1"]]},{"id":"NoteGen_mixer4_12","type":"AudioMixer4","name":"mixer4_12","x":1380,"y":752,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_74:0"]]},{"id":"NoteGen_mixer4_13","type":"AudioMixer4","name":"mixer4_13","x":1380,"y":825,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_74:1"]]},{"id":"NoteGen_mixer4_14","type":"AudioMixer4","name":"mixer4_14","x":1380,"y":1052,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_75:0"]]},{"id":"NoteGen_mixer4_15","type":"AudioMixer4","name":"mixer4_15","x":1380,"y":1125,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_75:1"]]},{"id":"NoteGen_mixer4_16","type":"AudioMixer4","name":"mixer4_16","x":1380,"y":1352,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_76:0"]]},{"id":"NoteGen_mixer4_17","type":"AudioMixer4","name":"mixer4_17","x":1380,"y":1425,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_76:1"]]},{"id":"NoteGen_mixer4_18","type":"AudioMixer4","name":"mixer4_18","x":1380,"y":1652,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_77:0"]]},{"id":"NoteGen_mixer4_19","type":"AudioMixer4","name":"mixer4_19","x":1380,"y":1725,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_77:1"]]},{"id":"NoteGen_mixer4_20","type":"AudioMixer4","name":"mixer4_20","x":1380,"y":1952,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_78:0"]]},{"id":"NoteGen_mixer4_21","type":"AudioMixer4","name":"mixer4_21","x":1380,"y":2025,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_78:1"]]},{"id":"NoteGen_mixer4_22","type":"AudioMixer4","name":"mixer4_22","x":1380,"y":2252,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_79:0"]]},{"id":"NoteGen_mixer4_23","type":"AudioMixer4","name":"mixer4_23","x":1380,"y":2325,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_79:1"]]},{"id":"NoteGen_mixer4_24","type":"AudioMixer4","name":"mixer4_24","x":1380,"y":2552,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_80:0"]]},{"id":"NoteGen_mixer4_25","type":"AudioMixer4","name":"mixer4_25","x":1380,"y":2625,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_80:1"]]},{"id":"NoteGen_mixer4_26","type":"AudioMixer4","name":"mixer4_26","x":1380,"y":2852,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_81:0"]]},{"id":"NoteGen_mixer4_27","type":"AudioMixer4","name":"mixer4_27","x":1380,"y":2925,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_81:1"]]},{"id":"NoteGen_mixer4_28","type":"AudioMixer4","name":"mixer4_28","x":1380,"y":3152,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_82:0"]]},{"id":"NoteGen_mixer4_29","type":"AudioMixer4","name":"mixer4_29","x":1380,"y":3225,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_82:1"]]},{"id":"NoteGen_mixer4_30","type":"AudioMixer4","name":"mixer4_30","x":1380,"y":3452,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_83:0"]]},{"id":"NoteGen_mixer4_31","type":"AudioMixer4","name":"mixer4_31","x":1380,"y":3525,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_83:1"]]},{"id":"NoteGen_mixer4_32","type":"AudioMixer4","name":"mixer4_32","x":1380,"y":3752,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_84:0"]]},{"id":"NoteGen_mixer4_33","type":"AudioMixer4","name":"mixer4_33","x":1380,"y":3825,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_84:1"]]},{"id":"NoteGen_mixer4_34","type":"AudioMixer4","name":"mixer4_34","x":1380,"y":4052,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_85:0"]]},{"id":"NoteGen_mixer4_35","type":"AudioMixer4","name":"mixer4_35","x":1380,"y":4125,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_85:1"]]},{"id":"NoteGen_mixer4_36","type":"AudioMixer4","name":"mixer4_36","x":1380,"y":4352,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_86:0"]]},{"id":"NoteGen_mixer4_37","type":"AudioMixer4","name":"mixer4_37","x":1380,"y":4425,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_86:1"]]},{"id":"NoteGen_mixer4_38","type":"AudioMixer4","name":"mixer4_38","x":1380,"y":4652,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_87:0"]]},{"id":"NoteGen_mixer4_39","type":"AudioMixer4","name":"mixer4_39","x":1380,"y":4725,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_87:1"]]},{"id":"NoteGen_waveformMod77","type":"AudioSynthWaveformModulated","name":"waveformMod77","x":1630,"y":186,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_40:0"]]},{"id":"NoteGen_waveformMod78","type":"AudioSynthWaveformModulated","name":"waveformMod78","x":1630,"y":221,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_40:1"]]},{"id":"NoteGen_waveformMod79","type":"AudioSynthWaveformModulated","name":"waveformMod79","x":1630,"y":256,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_40:2"]]},{"id":"NoteGen_waveformMod80","type":"AudioSynthWaveformModulated","name":"waveformMod80","x":1630,"y":291,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_40:3"]]},{"id":"NoteGen_string17","type":"AudioSynthKarplusStrong","name":"string17","x":1630,"y":326,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_41:0"]]},{"id":"NoteGen_noise17","type":"AudioSynthNoiseWhite","name":"noise17","x":1630,"y":361,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_41:1"]]},{"id":"NoteGen_pink17","type":"AudioSynthNoisePink","name":"pink17","x":1630,"y":396,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_41:2"]]},{"id":"NoteGen_tonesweep17","type":"AudioSynthToneSweep","name":"tonesweep17","x":1630,"y":431,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_41:3"]]},{"id":"NoteGen_waveformMod81","type":"AudioSynthWaveformModulated","name":"waveformMod81","x":1630,"y":486,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_42:0"]]},{"id":"NoteGen_waveformMod82","type":"AudioSynthWaveformModulated","name":"waveformMod82","x":1630,"y":521,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_42:1"]]},{"id":"NoteGen_waveformMod83","type":"AudioSynthWaveformModulated","name":"waveformMod83","x":1630,"y":556,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_42:2"]]},{"id":"NoteGen_waveformMod84","type":"AudioSynthWaveformModulated","name":"waveformMod84","x":1630,"y":591,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_42:3"]]},{"id":"NoteGen_string18","type":"AudioSynthKarplusStrong","name":"string18","x":1630,"y":626,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_43:0"]]},{"id":"NoteGen_noise18","type":"AudioSynthNoiseWhite","name":"noise18","x":1630,"y":661,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_43:1"]]},{"id":"NoteGen_pink18","type":"AudioSynthNoisePink","name":"pink18","x":1630,"y":696,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_43:2"]]},{"id":"NoteGen_tonesweep18","type":"AudioSynthToneSweep","name":"tonesweep18","x":1630,"y":731,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_43:3"]]},{"id":"NoteGen_waveformMod85","type":"AudioSynthWaveformModulated","name":"waveformMod85","x":1630,"y":786,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_44:0"]]},{"id":"NoteGen_waveformMod86","type":"AudioSynthWaveformModulated","name":"waveformMod86","x":1630,"y":821,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_44:1"]]},{"id":"NoteGen_waveformMod87","type":"AudioSynthWaveformModulated","name":"waveformMod87","x":1630,"y":856,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_44:2"]]},{"id":"NoteGen_waveformMod88","type":"AudioSynthWaveformModulated","name":"waveformMod88","x":1630,"y":891,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_44:3"]]},{"id":"NoteGen_string19","type":"AudioSynthKarplusStrong","name":"string19","x":1630,"y":926,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_45:0"]]},{"id":"NoteGen_noise19","type":"AudioSynthNoiseWhite","name":"noise19","x":1630,"y":961,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_45:1"]]},{"id":"NoteGen_pink19","type":"AudioSynthNoisePink","name":"pink19","x":1630,"y":996,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_45:2"]]},{"id":"NoteGen_tonesweep19","type":"AudioSynthToneSweep","name":"tonesweep19","x":1630,"y":1031,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_45:3"]]},{"id":"NoteGen_waveformMod89","type":"AudioSynthWaveformModulated","name":"waveformMod89","x":1630,"y":1086,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_46:0"]]},{"id":"NoteGen_waveformMod90","type":"AudioSynthWaveformModulated","name":"waveformMod90","x":1630,"y":1121,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_46:1"]]},{"id":"NoteGen_waveformMod91","type":"AudioSynthWaveformModulated","name":"waveformMod91","x":1630,"y":1156,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_46:2"]]},{"id":"NoteGen_waveformMod92","type":"AudioSynthWaveformModulated","name":"waveformMod92","x":1630,"y":1191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_46:3"]]},{"id":"NoteGen_string20","type":"AudioSynthKarplusStrong","name":"string20","x":1630,"y":1226,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_47:0"]]},{"id":"NoteGen_noise20","type":"AudioSynthNoiseWhite","name":"noise20","x":1630,"y":1261,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_47:1"]]},{"id":"NoteGen_pink20","type":"AudioSynthNoisePink","name":"pink20","x":1630,"y":1296,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_47:2"]]},{"id":"NoteGen_tonesweep20","type":"AudioSynthToneSweep","name":"tonesweep20","x":1630,"y":1331,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_47:3"]]},{"id":"NoteGen_waveformMod93","type":"AudioSynthWaveformModulated","name":"waveformMod93","x":1630,"y":1386,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_48:0"]]},{"id":"NoteGen_waveformMod94","type":"AudioSynthWaveformModulated","name":"waveformMod94","x":1630,"y":1421,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_48:1"]]},{"id":"NoteGen_waveformMod95","type":"AudioSynthWaveformModulated","name":"waveformMod95","x":1630,"y":1456,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_48:2"]]},{"id":"NoteGen_waveformMod96","type":"AudioSynthWaveformModulated","name":"waveformMod96","x":1630,"y":1491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_48:3"]]},{"id":"NoteGen_string21","type":"AudioSynthKarplusStrong","name":"string21","x":1630,"y":1526,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_49:0"]]},{"id":"NoteGen_noise21","type":"AudioSynthNoiseWhite","name":"noise21","x":1630,"y":1561,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_49:1"]]},{"id":"NoteGen_pink21","type":"AudioSynthNoisePink","name":"pink21","x":1630,"y":1596,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_49:2"]]},{"id":"NoteGen_tonesweep21","type":"AudioSynthToneSweep","name":"tonesweep21","x":1630,"y":1631,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_49:3"]]},{"id":"NoteGen_waveformMod97","type":"AudioSynthWaveformModulated","name":"waveformMod97","x":1630,"y":1686,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_50:0"]]},{"id":"NoteGen_waveformMod98","type":"AudioSynthWaveformModulated","name":"waveformMod98","x":1630,"y":1721,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_50:1"]]},{"id":"NoteGen_waveformMod99","type":"AudioSynthWaveformModulated","name":"waveformMod99","x":1630,"y":1756,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_50:2"]]},{"id":"NoteGen_waveformMod100","type":"AudioSynthWaveformModulated","name":"waveformMod100","x":1630,"y":1791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_50:3"]]},{"id":"NoteGen_string22","type":"AudioSynthKarplusStrong","name":"string22","x":1630,"y":1826,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_51:0"]]},{"id":"NoteGen_noise22","type":"AudioSynthNoiseWhite","name":"noise22","x":1630,"y":1861,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_51:1"]]},{"id":"NoteGen_pink22","type":"AudioSynthNoisePink","name":"pink22","x":1630,"y":1896,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_51:2"]]},{"id":"NoteGen_tonesweep22","type":"AudioSynthToneSweep","name":"tonesweep22","x":1630,"y":1931,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_51:3"]]},{"id":"NoteGen_waveformMod101","type":"AudioSynthWaveformModulated","name":"waveformMod101","x":1630,"y":1986,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_52:0"]]},{"id":"NoteGen_waveformMod102","type":"AudioSynthWaveformModulated","name":"waveformMod102","x":1630,"y":2021,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_52:1"]]},{"id":"NoteGen_waveformMod103","type":"AudioSynthWaveformModulated","name":"waveformMod103","x":1630,"y":2056,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_52:2"]]},{"id":"NoteGen_waveformMod104","type":"AudioSynthWaveformModulated","name":"waveformMod104","x":1630,"y":2091,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_52:3"]]},{"id":"NoteGen_string23","type":"AudioSynthKarplusStrong","name":"string23","x":1630,"y":2126,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_53:0"]]},{"id":"NoteGen_noise23","type":"AudioSynthNoiseWhite","name":"noise23","x":1630,"y":2161,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_53:1"]]},{"id":"NoteGen_pink23","type":"AudioSynthNoisePink","name":"pink23","x":1630,"y":2196,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_53:2"]]},{"id":"NoteGen_tonesweep23","type":"AudioSynthToneSweep","name":"tonesweep23","x":1630,"y":2231,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_53:3"]]},{"id":"NoteGen_waveformMod105","type":"AudioSynthWaveformModulated","name":"waveformMod105","x":1630,"y":2286,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_54:0"]]},{"id":"NoteGen_waveformMod106","type":"AudioSynthWaveformModulated","name":"waveformMod106","x":1630,"y":2321,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_54:1"]]},{"id":"NoteGen_waveformMod107","type":"AudioSynthWaveformModulated","name":"waveformMod107","x":1630,"y":2356,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_54:2"]]},{"id":"NoteGen_waveformMod108","type":"AudioSynthWaveformModulated","name":"waveformMod108","x":1630,"y":2391,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_54:3"]]},{"id":"NoteGen_string24","type":"AudioSynthKarplusStrong","name":"string24","x":1630,"y":2426,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_55:0"]]},{"id":"NoteGen_noise24","type":"AudioSynthNoiseWhite","name":"noise24","x":1630,"y":2461,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_55:1"]]},{"id":"NoteGen_pink24","type":"AudioSynthNoisePink","name":"pink24","x":1630,"y":2496,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_55:2"]]},{"id":"NoteGen_tonesweep24","type":"AudioSynthToneSweep","name":"tonesweep24","x":1630,"y":2531,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_55:3"]]},{"id":"NoteGen_waveformMod109","type":"AudioSynthWaveformModulated","name":"waveformMod109","x":1630,"y":2586,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_56:0"]]},{"id":"NoteGen_waveformMod110","type":"AudioSynthWaveformModulated","name":"waveformMod110","x":1630,"y":2621,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_56:1"]]},{"id":"NoteGen_waveformMod111","type":"AudioSynthWaveformModulated","name":"waveformMod111","x":1630,"y":2656,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_56:2"]]},{"id":"NoteGen_waveformMod112","type":"AudioSynthWaveformModulated","name":"waveformMod112","x":1630,"y":2691,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_56:3"]]},{"id":"NoteGen_string25","type":"AudioSynthKarplusStrong","name":"string25","x":1630,"y":2726,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_57:0"]]},{"id":"NoteGen_noise25","type":"AudioSynthNoiseWhite","name":"noise25","x":1630,"y":2761,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_57:1"]]},{"id":"NoteGen_pink25","type":"AudioSynthNoisePink","name":"pink25","x":1630,"y":2796,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_57:2"]]},{"id":"NoteGen_tonesweep25","type":"AudioSynthToneSweep","name":"tonesweep25","x":1630,"y":2831,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_57:3"]]},{"id":"NoteGen_waveformMod113","type":"AudioSynthWaveformModulated","name":"waveformMod113","x":1630,"y":2886,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_58:0"]]},{"id":"NoteGen_waveformMod114","type":"AudioSynthWaveformModulated","name":"waveformMod114","x":1630,"y":2921,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_58:1"]]},{"id":"NoteGen_waveformMod115","type":"AudioSynthWaveformModulated","name":"waveformMod115","x":1630,"y":2956,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_58:2"]]},{"id":"NoteGen_waveformMod116","type":"AudioSynthWaveformModulated","name":"waveformMod116","x":1630,"y":2991,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_58:3"]]},{"id":"NoteGen_string26","type":"AudioSynthKarplusStrong","name":"string26","x":1630,"y":3026,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_59:0"]]},{"id":"NoteGen_noise26","type":"AudioSynthNoiseWhite","name":"noise26","x":1630,"y":3061,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_59:1"]]},{"id":"NoteGen_pink26","type":"AudioSynthNoisePink","name":"pink26","x":1630,"y":3096,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_59:2"]]},{"id":"NoteGen_tonesweep26","type":"AudioSynthToneSweep","name":"tonesweep26","x":1630,"y":3131,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_59:3"]]},{"id":"NoteGen_waveformMod117","type":"AudioSynthWaveformModulated","name":"waveformMod117","x":1630,"y":3186,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_60:0"]]},{"id":"NoteGen_waveformMod118","type":"AudioSynthWaveformModulated","name":"waveformMod118","x":1630,"y":3221,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_60:1"]]},{"id":"NoteGen_waveformMod119","type":"AudioSynthWaveformModulated","name":"waveformMod119","x":1630,"y":3256,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_60:2"]]},{"id":"NoteGen_waveformMod120","type":"AudioSynthWaveformModulated","name":"waveformMod120","x":1630,"y":3291,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_60:3"]]},{"id":"NoteGen_string27","type":"AudioSynthKarplusStrong","name":"string27","x":1630,"y":3326,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_61:0"]]},{"id":"NoteGen_noise27","type":"AudioSynthNoiseWhite","name":"noise27","x":1630,"y":3361,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_61:1"]]},{"id":"NoteGen_pink27","type":"AudioSynthNoisePink","name":"pink27","x":1630,"y":3396,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_61:2"]]},{"id":"NoteGen_tonesweep27","type":"AudioSynthToneSweep","name":"tonesweep27","x":1630,"y":3431,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_61:3"]]},{"id":"NoteGen_waveformMod121","type":"AudioSynthWaveformModulated","name":"waveformMod121","x":1630,"y":3486,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_62:0"]]},{"id":"NoteGen_waveformMod122","type":"AudioSynthWaveformModulated","name":"waveformMod122","x":1630,"y":3521,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_62:1"]]},{"id":"NoteGen_waveformMod123","type":"AudioSynthWaveformModulated","name":"waveformMod123","x":1630,"y":3556,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_62:2"]]},{"id":"NoteGen_waveformMod124","type":"AudioSynthWaveformModulated","name":"waveformMod124","x":1630,"y":3591,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_62:3"]]},{"id":"NoteGen_string28","type":"AudioSynthKarplusStrong","name":"string28","x":1630,"y":3626,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_63:0"]]},{"id":"NoteGen_noise28","type":"AudioSynthNoiseWhite","name":"noise28","x":1630,"y":3661,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_63:1"]]},{"id":"NoteGen_pink28","type":"AudioSynthNoisePink","name":"pink28","x":1630,"y":3696,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_63:2"]]},{"id":"NoteGen_tonesweep28","type":"AudioSynthToneSweep","name":"tonesweep28","x":1630,"y":3731,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_63:3"]]},{"id":"NoteGen_waveformMod125","type":"AudioSynthWaveformModulated","name":"waveformMod125","x":1630,"y":3786,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_64:0"]]},{"id":"NoteGen_waveformMod126","type":"AudioSynthWaveformModulated","name":"waveformMod126","x":1630,"y":3821,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_64:1"]]},{"id":"NoteGen_waveformMod127","type":"AudioSynthWaveformModulated","name":"waveformMod127","x":1630,"y":3856,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_64:2"]]},{"id":"NoteGen_waveformMod128","type":"AudioSynthWaveformModulated","name":"waveformMod128","x":1630,"y":3891,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_64:3"]]},{"id":"NoteGen_string29","type":"AudioSynthKarplusStrong","name":"string29","x":1630,"y":3926,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_65:0"]]},{"id":"NoteGen_noise29","type":"AudioSynthNoiseWhite","name":"noise29","x":1630,"y":3961,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_65:1"]]},{"id":"NoteGen_pink29","type":"AudioSynthNoisePink","name":"pink29","x":1630,"y":3996,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_65:2"]]},{"id":"NoteGen_tonesweep29","type":"AudioSynthToneSweep","name":"tonesweep29","x":1630,"y":4031,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_65:3"]]},{"id":"NoteGen_waveformMod129","type":"AudioSynthWaveformModulated","name":"waveformMod129","x":1630,"y":4086,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_66:0"]]},{"id":"NoteGen_waveformMod130","type":"AudioSynthWaveformModulated","name":"waveformMod130","x":1630,"y":4121,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_66:1"]]},{"id":"NoteGen_waveformMod131","type":"AudioSynthWaveformModulated","name":"waveformMod131","x":1630,"y":4156,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_66:2"]]},{"id":"NoteGen_waveformMod132","type":"AudioSynthWaveformModulated","name":"waveformMod132","x":1630,"y":4191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_66:3"]]},{"id":"NoteGen_string30","type":"AudioSynthKarplusStrong","name":"string30","x":1630,"y":4226,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_67:0"]]},{"id":"NoteGen_noise30","type":"AudioSynthNoiseWhite","name":"noise30","x":1630,"y":4261,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_67:1"]]},{"id":"NoteGen_pink30","type":"AudioSynthNoisePink","name":"pink30","x":1630,"y":4296,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_67:2"]]},{"id":"NoteGen_tonesweep30","type":"AudioSynthToneSweep","name":"tonesweep30","x":1630,"y":4331,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_67:3"]]},{"id":"NoteGen_waveformMod133","type":"AudioSynthWaveformModulated","name":"waveformMod133","x":1630,"y":4386,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_68:0"]]},{"id":"NoteGen_waveformMod134","type":"AudioSynthWaveformModulated","name":"waveformMod134","x":1630,"y":4421,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_68:1"]]},{"id":"NoteGen_waveformMod135","type":"AudioSynthWaveformModulated","name":"waveformMod135","x":1630,"y":4456,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_68:2"]]},{"id":"NoteGen_waveformMod136","type":"AudioSynthWaveformModulated","name":"waveformMod136","x":1630,"y":4491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_68:3"]]},{"id":"NoteGen_string31","type":"AudioSynthKarplusStrong","name":"string31","x":1630,"y":4526,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_69:0"]]},{"id":"NoteGen_noise31","type":"AudioSynthNoiseWhite","name":"noise31","x":1630,"y":4561,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_69:1"]]},{"id":"NoteGen_pink31","type":"AudioSynthNoisePink","name":"pink31","x":1630,"y":4596,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_69:2"]]},{"id":"NoteGen_tonesweep31","type":"AudioSynthToneSweep","name":"tonesweep31","x":1630,"y":4631,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_69:3"]]},{"id":"NoteGen_waveformMod137","type":"AudioSynthWaveformModulated","name":"waveformMod137","x":1630,"y":4686,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_70:0"]]},{"id":"NoteGen_waveformMod138","type":"AudioSynthWaveformModulated","name":"waveformMod138","x":1630,"y":4721,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_70:1"]]},{"id":"NoteGen_waveformMod139","type":"AudioSynthWaveformModulated","name":"waveformMod139","x":1630,"y":4756,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_70:2"]]},{"id":"NoteGen_waveformMod140","type":"AudioSynthWaveformModulated","name":"waveformMod140","x":1630,"y":4791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_70:3"]]},{"id":"NoteGen_string32","type":"AudioSynthKarplusStrong","name":"string32","x":1630,"y":4826,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_71:0"]]},{"id":"NoteGen_noise32","type":"AudioSynthNoiseWhite","name":"noise32","x":1630,"y":4861,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_71:1"]]},{"id":"NoteGen_pink32","type":"AudioSynthNoisePink","name":"pink32","x":1630,"y":4896,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_71:2"]]},{"id":"NoteGen_tonesweep32","type":"AudioSynthToneSweep","name":"tonesweep32","x":1630,"y":4931,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_71:3"]]},{"id":"NoteGen_mixer4_40","type":"AudioMixer4","name":"mixer4_40","x":1880,"y":272,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_72:2"]]},{"id":"NoteGen_mixer4_41","type":"AudioMixer4","name":"mixer4_41","x":1880,"y":345,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_72:3"]]},{"id":"NoteGen_mixer4_42","type":"AudioMixer4","name":"mixer4_42","x":1880,"y":572,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_73:2"]]},{"id":"NoteGen_mixer4_43","type":"AudioMixer4","name":"mixer4_43","x":1880,"y":645,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_73:3"]]},{"id":"NoteGen_mixer4_44","type":"AudioMixer4","name":"mixer4_44","x":1880,"y":872,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_74:2"]]},{"id":"NoteGen_mixer4_45","type":"AudioMixer4","name":"mixer4_45","x":1880,"y":945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_74:3"]]},{"id":"NoteGen_mixer4_46","type":"AudioMixer4","name":"mixer4_46","x":1880,"y":1172,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_75:2"]]},{"id":"NoteGen_mixer4_47","type":"AudioMixer4","name":"mixer4_47","x":1880,"y":1245,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_75:3"]]},{"id":"NoteGen_mixer4_48","type":"AudioMixer4","name":"mixer4_48","x":1880,"y":1472,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_76:2"]]},{"id":"NoteGen_mixer4_49","type":"AudioMixer4","name":"mixer4_49","x":1880,"y":1545,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_76:3"]]},{"id":"NoteGen_mixer4_50","type":"AudioMixer4","name":"mixer4_50","x":1880,"y":1772,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_77:2"]]},{"id":"NoteGen_mixer4_51","type":"AudioMixer4","name":"mixer4_51","x":1880,"y":1845,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_77:3"]]},{"id":"NoteGen_mixer4_52","type":"AudioMixer4","name":"mixer4_52","x":1880,"y":2072,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_78:2"]]},{"id":"NoteGen_mixer4_53","type":"AudioMixer4","name":"mixer4_53","x":1880,"y":2145,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_78:3"]]},{"id":"NoteGen_mixer4_54","type":"AudioMixer4","name":"mixer4_54","x":1880,"y":2372,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_79:2"]]},{"id":"NoteGen_mixer4_55","type":"AudioMixer4","name":"mixer4_55","x":1880,"y":2445,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_79:3"]]},{"id":"NoteGen_mixer4_56","type":"AudioMixer4","name":"mixer4_56","x":1880,"y":2672,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_80:2"]]},{"id":"NoteGen_mixer4_57","type":"AudioMixer4","name":"mixer4_57","x":1880,"y":2745,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_80:3"]]},{"id":"NoteGen_mixer4_58","type":"AudioMixer4","name":"mixer4_58","x":1880,"y":2972,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_81:2"]]},{"id":"NoteGen_mixer4_59","type":"AudioMixer4","name":"mixer4_59","x":1880,"y":3045,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_81:3"]]},{"id":"NoteGen_mixer4_60","type":"AudioMixer4","name":"mixer4_60","x":1880,"y":3272,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_82:2"]]},{"id":"NoteGen_mixer4_61","type":"AudioMixer4","name":"mixer4_61","x":1880,"y":3345,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_82:3"]]},{"id":"NoteGen_mixer4_62","type":"AudioMixer4","name":"mixer4_62","x":1880,"y":3572,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_83:2"]]},{"id":"NoteGen_mixer4_63","type":"AudioMixer4","name":"mixer4_63","x":1880,"y":3645,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_83:3"]]},{"id":"NoteGen_mixer4_64","type":"AudioMixer4","name":"mixer4_64","x":1880,"y":3872,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_84:2"]]},{"id":"NoteGen_mixer4_65","type":"AudioMixer4","name":"mixer4_65","x":1880,"y":3945,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_84:3"]]},{"id":"NoteGen_mixer4_66","type":"AudioMixer4","name":"mixer4_66","x":1880,"y":4172,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_85:2"]]},{"id":"NoteGen_mixer4_67","type":"AudioMixer4","name":"mixer4_67","x":1880,"y":4245,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_85:3"]]},{"id":"NoteGen_mixer4_68","type":"AudioMixer4","name":"mixer4_68","x":1880,"y":4472,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_86:2"]]},{"id":"NoteGen_mixer4_69","type":"AudioMixer4","name":"mixer4_69","x":1880,"y":4545,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_86:3"]]},{"id":"NoteGen_mixer4_70","type":"AudioMixer4","name":"mixer4_70","x":1880,"y":4772,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_87:2"]]},{"id":"NoteGen_mixer4_71","type":"AudioMixer4","name":"mixer4_71","x":1880,"y":4845,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_87:3"]]},{"id":"NoteGen_mixer4_72","type":"AudioMixer4","name":"mixer4_72","x":2140,"y":171,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope1:0","NoteGen_mixer4_88:0"]]},{"id":"NoteGen_mixer4_73","type":"AudioMixer4","name":"mixer4_73","x":2140,"y":471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope2:0","NoteGen_mixer4_89:0"]]},{"id":"NoteGen_mixer4_74","type":"AudioMixer4","name":"mixer4_74","x":2140,"y":771,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope3:0","NoteGen_mixer4_90:0"]]},{"id":"NoteGen_mixer4_75","type":"AudioMixer4","name":"mixer4_75","x":2140,"y":1071,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope4:0","NoteGen_mixer4_91:0"]]},{"id":"NoteGen_mixer4_76","type":"AudioMixer4","name":"mixer4_76","x":2140,"y":1371,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope5:0","NoteGen_mixer4_92:0"]]},{"id":"NoteGen_mixer4_77","type":"AudioMixer4","name":"mixer4_77","x":2140,"y":1671,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope6:0","NoteGen_mixer4_93:0"]]},{"id":"NoteGen_mixer4_78","type":"AudioMixer4","name":"mixer4_78","x":2140,"y":1971,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope7:0","NoteGen_mixer4_94:0"]]},{"id":"NoteGen_mixer4_79","type":"AudioMixer4","name":"mixer4_79","x":2140,"y":2271,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope8:0","NoteGen_mixer4_95:0"]]},{"id":"NoteGen_mixer4_80","type":"AudioMixer4","name":"mixer4_80","x":2140,"y":2571,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope9:0","NoteGen_mixer4_96:0"]]},{"id":"NoteGen_mixer4_81","type":"AudioMixer4","name":"mixer4_81","x":2140,"y":2871,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope10:0","NoteGen_mixer4_97:0"]]},{"id":"NoteGen_mixer4_82","type":"AudioMixer4","name":"mixer4_82","x":2140,"y":3171,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_98:0","NoteGen_envelope11:0"]]},{"id":"NoteGen_mixer4_83","type":"AudioMixer4","name":"mixer4_83","x":2140,"y":3471,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope12:0","NoteGen_mixer4_99:0"]]},{"id":"NoteGen_mixer4_84","type":"AudioMixer4","name":"mixer4_84","x":2140,"y":3771,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_100:0","NoteGen_envelope13:0"]]},{"id":"NoteGen_mixer4_85","type":"AudioMixer4","name":"mixer4_85","x":2140,"y":4071,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_101:0","NoteGen_envelope14:0"]]},{"id":"NoteGen_mixer4_86","type":"AudioMixer4","name":"mixer4_86","x":2140,"y":4371,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope15:0","NoteGen_mixer4_102:0"]]},{"id":"NoteGen_mixer4_87","type":"AudioMixer4","name":"mixer4_87","x":2140,"y":4671,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_envelope16:0","NoteGen_mixer4_103:0"]]},{"id":"NoteGen_envelope1","type":"AudioEffectEnvelope","name":"envelope1","x":2290,"y":297,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_88:1"]]},{"id":"NoteGen_envelope2","type":"AudioEffectEnvelope","name":"envelope2","x":2290,"y":597,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_89:1"]]},{"id":"NoteGen_envelope3","type":"AudioEffectEnvelope","name":"envelope3","x":2290,"y":897,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_90:1"]]},{"id":"NoteGen_envelope4","type":"AudioEffectEnvelope","name":"envelope4","x":2290,"y":1197,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_91:1"]]},{"id":"NoteGen_envelope5","type":"AudioEffectEnvelope","name":"envelope5","x":2290,"y":1497,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_92:1"]]},{"id":"NoteGen_envelope6","type":"AudioEffectEnvelope","name":"envelope6","x":2290,"y":1797,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_93:1"]]},{"id":"NoteGen_envelope7","type":"AudioEffectEnvelope","name":"envelope7","x":2290,"y":2097,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_94:1"]]},{"id":"NoteGen_envelope8","type":"AudioEffectEnvelope","name":"envelope8","x":2290,"y":2397,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_95:1"]]},{"id":"NoteGen_envelope9","type":"AudioEffectEnvelope","name":"envelope9","x":2290,"y":2697,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_96:1"]]},{"id":"NoteGen_envelope10","type":"AudioEffectEnvelope","name":"envelope10","x":2290,"y":2997,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_97:1"]]},{"id":"NoteGen_envelope11","type":"AudioEffectEnvelope","name":"envelope11","x":2290,"y":3297,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_98:1"]]},{"id":"NoteGen_envelope12","type":"AudioEffectEnvelope","name":"envelope12","x":2290,"y":3597,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_99:1"]]},{"id":"NoteGen_envelope13","type":"AudioEffectEnvelope","name":"envelope13","x":2290,"y":3897,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_100:1"]]},{"id":"NoteGen_envelope14","type":"AudioEffectEnvelope","name":"envelope14","x":2290,"y":4197,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_101:1"]]},{"id":"NoteGen_envelope15","type":"AudioEffectEnvelope","name":"envelope15","x":2290,"y":4497,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_102:1"]]},{"id":"NoteGen_envelope16","type":"AudioEffectEnvelope","name":"envelope16","x":2290,"y":4797,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_103:1"]]},{"id":"NoteGen_mixer4_88","type":"AudioMixer4","name":"mixer4_88","x":2475,"y":191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter1:0","NoteGen_mixer4_104:0"]]},{"id":"NoteGen_mixer4_89","type":"AudioMixer4","name":"mixer4_89","x":2475,"y":491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_105:0","NoteGen_filter2:0"]]},{"id":"NoteGen_mixer4_90","type":"AudioMixer4","name":"mixer4_90","x":2475,"y":791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter3:0","NoteGen_mixer4_106:0"]]},{"id":"NoteGen_mixer4_91","type":"AudioMixer4","name":"mixer4_91","x":2475,"y":1091,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter4:0","NoteGen_mixer4_107:0"]]},{"id":"NoteGen_mixer4_92","type":"AudioMixer4","name":"mixer4_92","x":2475,"y":1391,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_108:0","NoteGen_filter5:0"]]},{"id":"NoteGen_mixer4_93","type":"AudioMixer4","name":"mixer4_93","x":2475,"y":1691,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter6:0","NoteGen_mixer4_109:0"]]},{"id":"NoteGen_mixer4_94","type":"AudioMixer4","name":"mixer4_94","x":2475,"y":1991,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_110:0","NoteGen_filter7:0"]]},{"id":"NoteGen_mixer4_95","type":"AudioMixer4","name":"mixer4_95","x":2475,"y":2291,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter8:0","NoteGen_mixer4_111:0"]]},{"id":"NoteGen_mixer4_96","type":"AudioMixer4","name":"mixer4_96","x":2475,"y":2591,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_112:0","NoteGen_filter9:0"]]},{"id":"NoteGen_mixer4_97","type":"AudioMixer4","name":"mixer4_97","x":2475,"y":2891,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter10:0","NoteGen_mixer4_113:0"]]},{"id":"NoteGen_mixer4_98","type":"AudioMixer4","name":"mixer4_98","x":2475,"y":3191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter11:0","NoteGen_mixer4_114:0"]]},{"id":"NoteGen_mixer4_99","type":"AudioMixer4","name":"mixer4_99","x":2475,"y":3491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter12:0","NoteGen_mixer4_115:0"]]},{"id":"NoteGen_mixer4_100","type":"AudioMixer4","name":"mixer4_100","x":2475,"y":3791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter13:0","NoteGen_mixer4_116:0"]]},{"id":"NoteGen_mixer4_101","type":"AudioMixer4","name":"mixer4_101","x":2475,"y":4091,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter14:0","NoteGen_mixer4_117:0"]]},{"id":"NoteGen_mixer4_102","type":"AudioMixer4","name":"mixer4_102","x":2475,"y":4391,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter15:0","NoteGen_mixer4_118:0"]]},{"id":"NoteGen_mixer4_103","type":"AudioMixer4","name":"mixer4_103","x":2475,"y":4691,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_filter16:0","NoteGen_mixer4_119:0"]]},{"id":"NoteGen_sgtl5000_1","type":"AudioControlSGTL5000","name":"sgtl5000_2","x":2621,"y":66,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[]},{"id":"NoteGen_filter1","type":"AudioFilterStateVariable","name":"filter1","x":2630,"y":291,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_104:1"],["NoteGen_mixer4_104:2"],["NoteGen_mixer4_104:3"]]},{"id":"NoteGen_filter2","type":"AudioFilterStateVariable","name":"filter2","x":2630,"y":591,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_105:1"],["NoteGen_mixer4_105:2"],["NoteGen_mixer4_105:3"]]},{"id":"NoteGen_filter3","type":"AudioFilterStateVariable","name":"filter3","x":2630,"y":891,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_106:1"],["NoteGen_mixer4_106:2"],[]]},{"id":"NoteGen_filter4","type":"AudioFilterStateVariable","name":"filter4","x":2630,"y":1191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_107:1"],["NoteGen_mixer4_107:2"],["NoteGen_mixer4_107:3"]]},{"id":"NoteGen_filter5","type":"AudioFilterStateVariable","name":"filter5","x":2630,"y":1491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_108:1"],["NoteGen_mixer4_108:2"],["NoteGen_mixer4_108:3"]]},{"id":"NoteGen_filter6","type":"AudioFilterStateVariable","name":"filter6","x":2630,"y":1791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_109:1"],["NoteGen_mixer4_109:2"],["NoteGen_mixer4_109:3"]]},{"id":"NoteGen_filter7","type":"AudioFilterStateVariable","name":"filter7","x":2630,"y":2091,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_110:1"],["NoteGen_mixer4_110:2"],["NoteGen_mixer4_110:3"]]},{"id":"NoteGen_filter8","type":"AudioFilterStateVariable","name":"filter8","x":2630,"y":2391,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_111:1"],["NoteGen_mixer4_111:2"],["NoteGen_mixer4_111:3"]]},{"id":"NoteGen_filter9","type":"AudioFilterStateVariable","name":"filter9","x":2630,"y":2691,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_112:1"],["NoteGen_mixer4_112:2"],["NoteGen_mixer4_112:3"]]},{"id":"NoteGen_filter10","type":"AudioFilterStateVariable","name":"filter10","x":2630,"y":2991,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_113:1"],["NoteGen_mixer4_113:2"],["NoteGen_mixer4_113:3"]]},{"id":"NoteGen_filter11","type":"AudioFilterStateVariable","name":"filter11","x":2630,"y":3291,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_114:1"],["NoteGen_mixer4_114:2"],["NoteGen_mixer4_114:3"]]},{"id":"NoteGen_filter12","type":"AudioFilterStateVariable","name":"filter12","x":2630,"y":3591,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_115:1"],["NoteGen_mixer4_115:2"],["NoteGen_mixer4_115:3"]]},{"id":"NoteGen_filter13","type":"AudioFilterStateVariable","name":"filter13","x":2630,"y":3891,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_116:1"],["NoteGen_mixer4_116:2"],["NoteGen_mixer4_116:3"]]},{"id":"NoteGen_filter14","type":"AudioFilterStateVariable","name":"filter14","x":2630,"y":4191,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_117:1"],["NoteGen_mixer4_117:2"],["NoteGen_mixer4_117:3"]]},{"id":"NoteGen_filter15","type":"AudioFilterStateVariable","name":"filter15","x":2630,"y":4491,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_118:1"],["NoteGen_mixer4_118:2"],["NoteGen_mixer4_118:3"]]},{"id":"NoteGen_filter16","type":"AudioFilterStateVariable","name":"filter16","x":2630,"y":4791,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_119:1"],["NoteGen_mixer4_119:2"],["NoteGen_mixer4_119:3"]]},{"id":"NoteGen_mixer4_104","type":"AudioMixer4","name":"mixer4_104","x":2830,"y":286,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_120:0"]]},{"id":"NoteGen_mixer4_105","type":"AudioMixer4","name":"mixer4_105","x":2830,"y":586,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_120:1"]]},{"id":"NoteGen_mixer4_106","type":"AudioMixer4","name":"mixer4_106","x":2830,"y":886,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_120:2"]]},{"id":"NoteGen_mixer4_107","type":"AudioMixer4","name":"mixer4_107","x":2830,"y":1186,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_120:3"]]},{"id":"NoteGen_mixer4_108","type":"AudioMixer4","name":"mixer4_108","x":2830,"y":1486,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_121:0"]]},{"id":"NoteGen_mixer4_109","type":"AudioMixer4","name":"mixer4_109","x":2830,"y":1786,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_121:1"]]},{"id":"NoteGen_mixer4_110","type":"AudioMixer4","name":"mixer4_110","x":2830,"y":2086,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_121:2"]]},{"id":"NoteGen_mixer4_111","type":"AudioMixer4","name":"mixer4_111","x":2830,"y":2386,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_121:3"]]},{"id":"NoteGen_mixer4_112","type":"AudioMixer4","name":"mixer4_112","x":2830,"y":2686,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_122:0"]]},{"id":"NoteGen_mixer4_113","type":"AudioMixer4","name":"mixer4_113","x":2830,"y":2986,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_122:1"]]},{"id":"NoteGen_mixer4_114","type":"AudioMixer4","name":"mixer4_114","x":2830,"y":3286,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_122:2"]]},{"id":"NoteGen_mixer4_115","type":"AudioMixer4","name":"mixer4_115","x":2830,"y":3586,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_122:3"]]},{"id":"NoteGen_mixer4_116","type":"AudioMixer4","name":"mixer4_116","x":2830,"y":3886,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_123:0"]]},{"id":"NoteGen_mixer4_117","type":"AudioMixer4","name":"mixer4_117","x":2830,"y":4186,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_123:1"]]},{"id":"NoteGen_mixer4_118","type":"AudioMixer4","name":"mixer4_118","x":2830,"y":4486,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_123:2"]]},{"id":"NoteGen_mixer4_119","type":"AudioMixer4","name":"mixer4_119","x":2830,"y":4786,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_123:3"]]},{"id":"NoteGen_mixer4_120","type":"AudioMixer4","name":"mixer4_120","x":3181,"y":736,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_124:0"]]},{"id":"NoteGen_mixer4_121","type":"AudioMixer4","name":"mixer4_121","x":3181,"y":1936,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_124:1"]]},{"id":"NoteGen_mixer4_122","type":"AudioMixer4","name":"mixer4_122","x":3181,"y":3136,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_124:2"]]},{"id":"NoteGen_mixer4_123","type":"AudioMixer4","name":"mixer4_123","x":3181,"y":4336,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_mixer4_124:3"]]},{"id":"NoteGen_mixer4_124","type":"AudioMixer4","name":"mixer4_124","x":3456,"y":2536,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_i2s1:0","NoteGen_i2s1:1","NoteGen_amp1:0"]]},{"id":"NoteGen_amp1","type":"AudioAmplifier","name":"amp1","x":3650,"y":2578,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[["NoteGen_usb1:1","NoteGen_usb1:0"]]},{"id":"NoteGen_i2s1","type":"AudioOutputI2S","name":"i2s2","x":3836,"y":2496,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[]},{"id":"NoteGen_usb1","type":"AudioOutputUSB","name":"usb2","x":3836,"y":2576,"z":"fe95d09d.ae21a","bgColor":"#E6E0F8","wires":[]}]
</script>
<script type="text/x-red" data-container-name="EmptyNewProject">
[]
</script>
<script type="text/x-red" data-container-name="teensy_boards_txt">
"menu.usb=USB Type\nmenu.speed=CPU Speed\nmenu.opt=Optimize\nmenu.keys=Keyboard Layout\n\n\nteensy41.name=Teensy 4.1\nteensy41.upload.maximum_size=8126464\nteensy41.build.board=TEENSY41\nteensy41.build.flags.ld=-Wl,--gc-sections,--relax \"-T{build.core.path}/imxrt1062_t41.ld\"\nteensy41.upload.maximum_data_size=524288\n#teensy41.upload.maximum_data_size=1048576\nteensy41.upload.tool=teensyloader\nteensy41.upload.protocol=halfkay\nteensy41.build.core=teensy4\nteensy41.build.mcu=imxrt1062\nteensy41.build.warn_data_percentage=99\nteensy41.build.toolchain=arm/bin/\nteensy41.build.command.gcc=arm-none-eabi-gcc\nteensy41.build.command.g++=arm-none-eabi-g++\nteensy41.build.command.ar=arm-none-eabi-gcc-ar\nteensy41.build.command.objcopy=arm-none-eabi-objcopy\nteensy41.build.command.objdump=arm-none-eabi-objdump\nteensy41.build.command.linker=arm-none-eabi-gcc\nteensy41.build.command.size=arm-none-eabi-size\nteensy41.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy41.build.flags.dep=-MMD\nteensy41.build.flags.optimize=-Os\nteensy41.build.flags.cpu=-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16\nteensy41.build.flags.defs=-D__IMXRT1062__ -DTEENSYDUINO=154\nteensy41.build.flags.cpp=-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing\nteensy41.build.flags.c=\nteensy41.build.flags.S=-x assembler-with-cpp\nteensy41.build.flags.libs=-larm_cortexM7lfsp_math -lm -lstdc++\nteensy41.serial.restart_cmd=false\nteensy41.menu.usb.serial=Serial\nteensy41.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy41.menu.usb.serial2=Dual Serial\nteensy41.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensy41.menu.usb.serial3=Triple Serial\nteensy41.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensy41.menu.usb.keyboard=Keyboard\nteensy41.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy41.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy41.menu.usb.touch=Keyboard + Touch Screen\nteensy41.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy41.menu.usb.touch.fake_serial=teensy_gateway\nteensy41.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensy41.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensy41.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensy41.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy41.menu.usb.hid.build.usbtype=USB_HID\nteensy41.menu.usb.hid.fake_serial=teensy_gateway\nteensy41.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy41.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy41.menu.usb.midi=MIDI\nteensy41.menu.usb.midi.build.usbtype=USB_MIDI\nteensy41.menu.usb.midi.fake_serial=teensy_gateway\nteensy41.menu.usb.midi4=MIDIx4\nteensy41.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy41.menu.usb.midi4.fake_serial=teensy_gateway\nteensy41.menu.usb.midi16=MIDIx16\nteensy41.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensy41.menu.usb.midi16.fake_serial=teensy_gateway\nteensy41.menu.usb.serialmidi=Serial + MIDI\nteensy41.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy41.menu.usb.serialmidi4=Serial + MIDIx4\nteensy41.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy41.menu.usb.serialmidi16=Serial + MIDIx16\nteensy41.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensy41.menu.usb.audio=Audio\nteensy41.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy41.menu.usb.audio.fake_serial=teensy_gateway\nteensy41.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy41.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy41.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensy41.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensy41.menu.usb.mtp=MTP Disk (Experimental)\nteensy41.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy41.menu.usb.mtp.fake_serial=teensy_gateway\nteensy41.menu.usb.rawhid=Raw HID\nteensy41.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy41.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy41.menu.usb.flightsim=Flight Sim Controls\nteensy41.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy41.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy41.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensy41.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensy41.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\n#teensy41.menu.usb.disable=No USB\n#teensy41.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy41.menu.speed.600=600 MHz\nteensy41.menu.speed.528=528 MHz\nteensy41.menu.speed.450=450 MHz\nteensy41.menu.speed.396=396 MHz\nteensy41.menu.speed.150=150 MHz\nteensy41.menu.speed.24=24 MHz\nteensy41.menu.speed.720=720 MHz (overclock)\nteensy41.menu.speed.816=816 MHz (overclock)\nteensy41.menu.speed.912=912 MHz (overclock, cooling req'd)\nteensy41.menu.speed.960=960 MHz (overclock, cooling req'd)\nteensy41.menu.speed.1008=1.008 GHz (overclock, cooling req'd)\nteensy41.menu.speed.1008.build.fcpu=1008000000\nteensy41.menu.speed.960.build.fcpu=960000000\nteensy41.menu.speed.912.build.fcpu=912000000\nteensy41.menu.speed.816.build.fcpu=816000000\nteensy41.menu.speed.720.build.fcpu=720000000\nteensy41.menu.speed.600.build.fcpu=600000000\nteensy41.menu.speed.528.build.fcpu=528000000\nteensy41.menu.speed.450.build.fcpu=450000000\nteensy41.menu.speed.396.build.fcpu=396000000\nteensy41.menu.speed.150.build.fcpu=150000000\nteensy41.menu.speed.24.build.fcpu=24000000\n\nteensy41.menu.opt.o2std=Faster\nteensy41.menu.opt.o2std.build.flags.optimize=-O2\nteensy41.menu.opt.o2std.build.flags.ldspecs=\n#teensy41.menu.opt.o2lto=Faster with LTO\n#teensy41.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\n#teensy41.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy41.menu.opt.o1std=Fast\nteensy41.menu.opt.o1std.build.flags.optimize=-O1\nteensy41.menu.opt.o1std.build.flags.ldspecs=\n#teensy41.menu.opt.o1lto=Fast with LTO\n#teensy41.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\n#teensy41.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy41.menu.opt.o3std=Fastest\nteensy41.menu.opt.o3std.build.flags.optimize=-O3\nteensy41.menu.opt.o3std.build.flags.ldspecs=\n#teensy41.menu.opt.o3purestd=Fastest + pure-code\n#teensy41.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\n#teensy41.menu.opt.o3purestd.build.flags.ldspecs=\n#teensy41.menu.opt.o3lto=Fastest with LTO\n#teensy41.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\n#teensy41.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\n#teensy41.menu.opt.o3purelto=Fastest + pure-code with LTO\n#teensy41.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\n#teensy41.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensy41.menu.opt.ogstd=Debug\nteensy41.menu.opt.ogstd.build.flags.optimize=-Og\nteensy41.menu.opt.ogstd.build.flags.ldspecs=\n#teensy41.menu.opt.oglto=Debug with LTO\n#teensy41.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\n#teensy41.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy41.menu.opt.osstd=Smallest Code\nteensy41.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy41.menu.opt.osstd.build.flags.ldspecs=\n#teensy41.menu.opt.oslto=Smallest Code with LTO\n#teensy41.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\n#teensy41.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy41.menu.keys.en-us=US English\nteensy41.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy41.menu.keys.fr-ca=Canadian French\nteensy41.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy41.menu.keys.xx-ca=Canadian Multilingual\nteensy41.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy41.menu.keys.cz-cz=Czech\nteensy41.menu.keys.cz-cz.build.keylayout=CZECH\nteensy41.menu.keys.da-da=Danish\nteensy41.menu.keys.da-da.build.keylayout=DANISH\nteensy41.menu.keys.fi-fi=Finnish\nteensy41.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy41.menu.keys.fr-fr=French\nteensy41.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy41.menu.keys.fr-be=French Belgian\nteensy41.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy41.menu.keys.fr-ch=French Swiss\nteensy41.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy41.menu.keys.de-de=German\nteensy41.menu.keys.de-de.build.keylayout=GERMAN\nteensy41.menu.keys.de-dm=German (Mac)\nteensy41.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy41.menu.keys.de-ch=German Swiss\nteensy41.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy41.menu.keys.is-is=Icelandic\nteensy41.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy41.menu.keys.en-ie=Irish\nteensy41.menu.keys.en-ie.build.keylayout=IRISH\nteensy41.menu.keys.it-it=Italian\nteensy41.menu.keys.it-it.build.keylayout=ITALIAN\nteensy41.menu.keys.no-no=Norwegian\nteensy41.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy41.menu.keys.pt-pt=Portuguese\nteensy41.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy41.menu.keys.pt-br=Portuguese Brazilian\nteensy41.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy41.menu.keys.rs-rs=Serbian (Latin Only)\nteensy41.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy41.menu.keys.es-es=Spanish\nteensy41.menu.keys.es-es.build.keylayout=SPANISH\nteensy41.menu.keys.es-mx=Spanish Latin America\nteensy41.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy41.menu.keys.sv-se=Swedish\nteensy41.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy41.menu.keys.tr-tr=Turkish (partial)\nteensy41.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy41.menu.keys.en-gb=United Kingdom\nteensy41.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy41.menu.keys.usint=US International\nteensy41.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\n\n\nteensyMM.name=Teensy MicroMod\nteensyMM.upload.maximum_size=16515072\nteensyMM.build.board=TEENSY_MICROMOD\nteensyMM.build.flags.ld=-Wl,--gc-sections,--relax \"-T{build.core.path}/imxrt1062_mm.ld\"\nteensyMM.upload.maximum_data_size=524288\n#teensyMM.upload.maximum_data_size=1048576\nteensyMM.upload.tool=teensyloader\nteensyMM.upload.protocol=halfkay\nteensyMM.build.core=teensy4\nteensyMM.build.mcu=imxrt1062\nteensyMM.build.warn_data_percentage=99\nteensyMM.build.toolchain=arm/bin/\nteensyMM.build.command.gcc=arm-none-eabi-gcc\nteensyMM.build.command.g++=arm-none-eabi-g++\nteensyMM.build.command.ar=arm-none-eabi-gcc-ar\nteensyMM.build.command.objcopy=arm-none-eabi-objcopy\nteensyMM.build.command.objdump=arm-none-eabi-objdump\nteensyMM.build.command.linker=arm-none-eabi-gcc\nteensyMM.build.command.size=arm-none-eabi-size\nteensyMM.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensyMM.build.flags.dep=-MMD\nteensyMM.build.flags.optimize=-Os\nteensyMM.build.flags.cpu=-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16\nteensyMM.build.flags.defs=-D__IMXRT1062__ -DTEENSYDUINO=154\nteensyMM.build.flags.cpp=-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing\nteensyMM.build.flags.c=\nteensyMM.build.flags.S=-x assembler-with-cpp\nteensyMM.build.flags.libs=-larm_cortexM7lfsp_math -lm -lstdc++\nteensyMM.serial.restart_cmd=false\nteensyMM.menu.usb.serial=Serial\nteensyMM.menu.usb.serial.build.usbtype=USB_SERIAL\nteensyMM.menu.usb.serial2=Dual Serial\nteensyMM.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensyMM.menu.usb.serial3=Triple Serial\nteensyMM.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensyMM.menu.usb.keyboard=Keyboard\nteensyMM.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensyMM.menu.usb.keyboard.fake_serial=teensy_gateway\nteensyMM.menu.usb.touch=Keyboard + Touch Screen\nteensyMM.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensyMM.menu.usb.touch.fake_serial=teensy_gateway\nteensyMM.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensyMM.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensyMM.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensyMM.menu.usb.hid=Keyboard + Mouse + Joystick\nteensyMM.menu.usb.hid.build.usbtype=USB_HID\nteensyMM.menu.usb.hid.fake_serial=teensy_gateway\nteensyMM.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensyMM.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensyMM.menu.usb.midi=MIDI\nteensyMM.menu.usb.midi.build.usbtype=USB_MIDI\nteensyMM.menu.usb.midi.fake_serial=teensy_gateway\nteensyMM.menu.usb.midi4=MIDIx4\nteensyMM.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensyMM.menu.usb.midi4.fake_serial=teensy_gateway\nteensyMM.menu.usb.midi16=MIDIx16\nteensyMM.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensyMM.menu.usb.midi16.fake_serial=teensy_gateway\nteensyMM.menu.usb.serialmidi=Serial + MIDI\nteensyMM.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensyMM.menu.usb.serialmidi4=Serial + MIDIx4\nteensyMM.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensyMM.menu.usb.serialmidi16=Serial + MIDIx16\nteensyMM.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensyMM.menu.usb.audio=Audio\nteensyMM.menu.usb.audio.build.usbtype=USB_AUDIO\nteensyMM.menu.usb.audio.fake_serial=teensy_gateway\nteensyMM.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensyMM.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensyMM.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensyMM.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensyMM.menu.usb.mtp=MTP Disk (Experimental)\nteensyMM.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensyMM.menu.usb.mtp.fake_serial=teensy_gateway\nteensyMM.menu.usb.rawhid=Raw HID\nteensyMM.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensyMM.menu.usb.rawhid.fake_serial=teensy_gateway\nteensyMM.menu.usb.flightsim=Flight Sim Controls\nteensyMM.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensyMM.menu.usb.flightsim.fake_serial=teensy_gateway\nteensyMM.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensyMM.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensyMM.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\n#teensyMM.menu.usb.disable=No USB\n#teensyMM.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensyMM.menu.speed.600=600 MHz\nteensyMM.menu.speed.528=528 MHz\nteensyMM.menu.speed.450=450 MHz\nteensyMM.menu.speed.396=396 MHz\nteensyMM.menu.speed.150=150 MHz\nteensyMM.menu.speed.24=24 MHz\nteensyMM.menu.speed.720=720 MHz (overclock)\nteensyMM.menu.speed.816=816 MHz (overclock)\nteensyMM.menu.speed.912=912 MHz (overclock, cooling req'd)\nteensyMM.menu.speed.960=960 MHz (overclock, cooling req'd)\nteensyMM.menu.speed.1008=1.008 GHz (overclock, cooling req'd)\nteensyMM.menu.speed.1008.build.fcpu=1008000000\nteensyMM.menu.speed.960.build.fcpu=960000000\nteensyMM.menu.speed.912.build.fcpu=912000000\nteensyMM.menu.speed.816.build.fcpu=816000000\nteensyMM.menu.speed.720.build.fcpu=720000000\nteensyMM.menu.speed.600.build.fcpu=600000000\nteensyMM.menu.speed.528.build.fcpu=528000000\nteensyMM.menu.speed.450.build.fcpu=450000000\nteensyMM.menu.speed.396.build.fcpu=396000000\nteensyMM.menu.speed.150.build.fcpu=150000000\nteensyMM.menu.speed.24.build.fcpu=24000000\n\nteensyMM.menu.opt.o2std=Faster\nteensyMM.menu.opt.o2std.build.flags.optimize=-O2\nteensyMM.menu.opt.o2std.build.flags.ldspecs=\n#teensyMM.menu.opt.o2lto=Faster with LTO\n#teensyMM.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\n#teensyMM.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensyMM.menu.opt.o1std=Fast\nteensyMM.menu.opt.o1std.build.flags.optimize=-O1\nteensyMM.menu.opt.o1std.build.flags.ldspecs=\n#teensyMM.menu.opt.o1lto=Fast with LTO\n#teensyMM.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\n#teensyMM.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensyMM.menu.opt.o3std=Fastest\nteensyMM.menu.opt.o3std.build.flags.optimize=-O3\nteensyMM.menu.opt.o3std.build.flags.ldspecs=\n#teensyMM.menu.opt.o3purestd=Fastest + pure-code\n#teensyMM.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\n#teensyMM.menu.opt.o3purestd.build.flags.ldspecs=\n#teensyMM.menu.opt.o3lto=Fastest with LTO\n#teensyMM.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\n#teensyMM.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\n#teensyMM.menu.opt.o3purelto=Fastest + pure-code with LTO\n#teensyMM.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\n#teensyMM.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensyMM.menu.opt.ogstd=Debug\nteensyMM.menu.opt.ogstd.build.flags.optimize=-Og\nteensyMM.menu.opt.ogstd.build.flags.ldspecs=\n#teensyMM.menu.opt.oglto=Debug with LTO\n#teensyMM.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\n#teensyMM.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensyMM.menu.opt.osstd=Smallest Code\nteensyMM.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensyMM.menu.opt.osstd.build.flags.ldspecs=\n#teensyMM.menu.opt.oslto=Smallest Code with LTO\n#teensyMM.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\n#teensyMM.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensyMM.menu.keys.en-us=US English\nteensyMM.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensyMM.menu.keys.fr-ca=Canadian French\nteensyMM.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensyMM.menu.keys.xx-ca=Canadian Multilingual\nteensyMM.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensyMM.menu.keys.cz-cz=Czech\nteensyMM.menu.keys.cz-cz.build.keylayout=CZECH\nteensyMM.menu.keys.da-da=Danish\nteensyMM.menu.keys.da-da.build.keylayout=DANISH\nteensyMM.menu.keys.fi-fi=Finnish\nteensyMM.menu.keys.fi-fi.build.keylayout=FINNISH\nteensyMM.menu.keys.fr-fr=French\nteensyMM.menu.keys.fr-fr.build.keylayout=FRENCH\nteensyMM.menu.keys.fr-be=French Belgian\nteensyMM.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensyMM.menu.keys.fr-ch=French Swiss\nteensyMM.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensyMM.menu.keys.de-de=German\nteensyMM.menu.keys.de-de.build.keylayout=GERMAN\nteensyMM.menu.keys.de-dm=German (Mac)\nteensyMM.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensyMM.menu.keys.de-ch=German Swiss\nteensyMM.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensyMM.menu.keys.is-is=Icelandic\nteensyMM.menu.keys.is-is.build.keylayout=ICELANDIC\nteensyMM.menu.keys.en-ie=Irish\nteensyMM.menu.keys.en-ie.build.keylayout=IRISH\nteensyMM.menu.keys.it-it=Italian\nteensyMM.menu.keys.it-it.build.keylayout=ITALIAN\nteensyMM.menu.keys.no-no=Norwegian\nteensyMM.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensyMM.menu.keys.pt-pt=Portuguese\nteensyMM.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensyMM.menu.keys.pt-br=Portuguese Brazilian\nteensyMM.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensyMM.menu.keys.rs-rs=Serbian (Latin Only)\nteensyMM.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensyMM.menu.keys.es-es=Spanish\nteensyMM.menu.keys.es-es.build.keylayout=SPANISH\nteensyMM.menu.keys.es-mx=Spanish Latin America\nteensyMM.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensyMM.menu.keys.sv-se=Swedish\nteensyMM.menu.keys.sv-se.build.keylayout=SWEDISH\nteensyMM.menu.keys.tr-tr=Turkish (partial)\nteensyMM.menu.keys.tr-tr.build.keylayout=TURKISH\nteensyMM.menu.keys.en-gb=United Kingdom\nteensyMM.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensyMM.menu.keys.usint=US International\nteensyMM.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\n\n\nteensy40.name=Teensy 4.0\nteensy40.upload.maximum_size=2031616\nteensy40.build.board=TEENSY40\nteensy40.build.flags.ld=-Wl,--gc-sections,--relax \"-T{build.core.path}/imxrt1062.ld\"\nteensy40.upload.maximum_data_size=524288\n#teensy40.upload.maximum_data_size=1048576\nteensy40.upload.tool=teensyloader\nteensy40.upload.protocol=halfkay\nteensy40.build.core=teensy4\nteensy40.build.mcu=imxrt1062\nteensy40.build.warn_data_percentage=99\nteensy40.build.toolchain=arm/bin/\nteensy40.build.command.gcc=arm-none-eabi-gcc\nteensy40.build.command.g++=arm-none-eabi-g++\nteensy40.build.command.ar=arm-none-eabi-gcc-ar\nteensy40.build.command.objcopy=arm-none-eabi-objcopy\nteensy40.build.command.objdump=arm-none-eabi-objdump\nteensy40.build.command.linker=arm-none-eabi-gcc\nteensy40.build.command.size=arm-none-eabi-size\nteensy40.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy40.build.flags.dep=-MMD\nteensy40.build.flags.optimize=-Os\nteensy40.build.flags.cpu=-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16\nteensy40.build.flags.defs=-D__IMXRT1062__ -DTEENSYDUINO=154\nteensy40.build.flags.cpp=-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing\nteensy40.build.flags.c=\nteensy40.build.flags.S=-x assembler-with-cpp\nteensy40.build.flags.libs=-larm_cortexM7lfsp_math -lm -lstdc++\nteensy40.serial.restart_cmd=false\nteensy40.menu.usb.serial=Serial\nteensy40.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy40.menu.usb.serial2=Dual Serial\nteensy40.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensy40.menu.usb.serial3=Triple Serial\nteensy40.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensy40.menu.usb.keyboard=Keyboard\nteensy40.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy40.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy40.menu.usb.touch=Keyboard + Touch Screen\nteensy40.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy40.menu.usb.touch.fake_serial=teensy_gateway\nteensy40.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensy40.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensy40.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensy40.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy40.menu.usb.hid.build.usbtype=USB_HID\nteensy40.menu.usb.hid.fake_serial=teensy_gateway\nteensy40.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy40.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy40.menu.usb.midi=MIDI\nteensy40.menu.usb.midi.build.usbtype=USB_MIDI\nteensy40.menu.usb.midi.fake_serial=teensy_gateway\nteensy40.menu.usb.midi4=MIDIx4\nteensy40.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy40.menu.usb.midi4.fake_serial=teensy_gateway\nteensy40.menu.usb.midi16=MIDIx16\nteensy40.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensy40.menu.usb.midi16.fake_serial=teensy_gateway\nteensy40.menu.usb.serialmidi=Serial + MIDI\nteensy40.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy40.menu.usb.serialmidi4=Serial + MIDIx4\nteensy40.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy40.menu.usb.serialmidi16=Serial + MIDIx16\nteensy40.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensy40.menu.usb.audio=Audio\nteensy40.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy40.menu.usb.audio.fake_serial=teensy_gateway\nteensy40.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy40.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy40.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensy40.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensy40.menu.usb.mtp=MTP Disk (Experimental)\nteensy40.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy40.menu.usb.mtp.fake_serial=teensy_gateway\nteensy40.menu.usb.rawhid=Raw HID\nteensy40.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy40.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy40.menu.usb.flightsim=Flight Sim Controls\nteensy40.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy40.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy40.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensy40.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensy40.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\n#teensy40.menu.usb.disable=No USB\n#teensy40.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy40.menu.speed.600=600 MHz\nteensy40.menu.speed.528=528 MHz\nteensy40.menu.speed.450=450 MHz\nteensy40.menu.speed.396=396 MHz\nteensy40.menu.speed.150=150 MHz\nteensy40.menu.speed.24=24 MHz\nteensy40.menu.speed.720=720 MHz (overclock)\nteensy40.menu.speed.816=816 MHz (overclock)\nteensy40.menu.speed.912=912 MHz (overclock, cooling req'd)\nteensy40.menu.speed.960=960 MHz (overclock, cooling req'd)\nteensy40.menu.speed.1008=1.008 GHz (overclock, cooling req'd)\nteensy40.menu.speed.1008.build.fcpu=1008000000\nteensy40.menu.speed.960.build.fcpu=960000000\nteensy40.menu.speed.912.build.fcpu=912000000\nteensy40.menu.speed.816.build.fcpu=816000000\nteensy40.menu.speed.720.build.fcpu=720000000\nteensy40.menu.speed.600.build.fcpu=600000000\nteensy40.menu.speed.528.build.fcpu=528000000\nteensy40.menu.speed.450.build.fcpu=450000000\nteensy40.menu.speed.396.build.fcpu=396000000\nteensy40.menu.speed.150.build.fcpu=150000000\nteensy40.menu.speed.24.build.fcpu=24000000\n\nteensy40.menu.opt.o2std=Faster\nteensy40.menu.opt.o2std.build.flags.optimize=-O2\nteensy40.menu.opt.o2std.build.flags.ldspecs=\n#teensy40.menu.opt.o2lto=Faster with LTO\n#teensy40.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\n#teensy40.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy40.menu.opt.o1std=Fast\nteensy40.menu.opt.o1std.build.flags.optimize=-O1\nteensy40.menu.opt.o1std.build.flags.ldspecs=\n#teensy40.menu.opt.o1lto=Fast with LTO\n#teensy40.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\n#teensy40.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy40.menu.opt.o3std=Fastest\nteensy40.menu.opt.o3std.build.flags.optimize=-O3\nteensy40.menu.opt.o3std.build.flags.ldspecs=\n#teensy40.menu.opt.o3purestd=Fastest + pure-code\n#teensy40.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\n#teensy40.menu.opt.o3purestd.build.flags.ldspecs=\n#teensy40.menu.opt.o3lto=Fastest with LTO\n#teensy40.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\n#teensy40.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\n#teensy40.menu.opt.o3purelto=Fastest + pure-code with LTO\n#teensy40.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\n#teensy40.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensy40.menu.opt.ogstd=Debug\nteensy40.menu.opt.ogstd.build.flags.optimize=-Og\nteensy40.menu.opt.ogstd.build.flags.ldspecs=\n#teensy40.menu.opt.oglto=Debug with LTO\n#teensy40.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\n#teensy40.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy40.menu.opt.osstd=Smallest Code\nteensy40.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy40.menu.opt.osstd.build.flags.ldspecs=\n#teensy40.menu.opt.oslto=Smallest Code with LTO\n#teensy40.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\n#teensy40.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy40.menu.keys.en-us=US English\nteensy40.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy40.menu.keys.fr-ca=Canadian French\nteensy40.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy40.menu.keys.xx-ca=Canadian Multilingual\nteensy40.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy40.menu.keys.cz-cz=Czech\nteensy40.menu.keys.cz-cz.build.keylayout=CZECH\nteensy40.menu.keys.da-da=Danish\nteensy40.menu.keys.da-da.build.keylayout=DANISH\nteensy40.menu.keys.fi-fi=Finnish\nteensy40.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy40.menu.keys.fr-fr=French\nteensy40.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy40.menu.keys.fr-be=French Belgian\nteensy40.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy40.menu.keys.fr-ch=French Swiss\nteensy40.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy40.menu.keys.de-de=German\nteensy40.menu.keys.de-de.build.keylayout=GERMAN\nteensy40.menu.keys.de-dm=German (Mac)\nteensy40.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy40.menu.keys.de-ch=German Swiss\nteensy40.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy40.menu.keys.is-is=Icelandic\nteensy40.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy40.menu.keys.en-ie=Irish\nteensy40.menu.keys.en-ie.build.keylayout=IRISH\nteensy40.menu.keys.it-it=Italian\nteensy40.menu.keys.it-it.build.keylayout=ITALIAN\nteensy40.menu.keys.no-no=Norwegian\nteensy40.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy40.menu.keys.pt-pt=Portuguese\nteensy40.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy40.menu.keys.pt-br=Portuguese Brazilian\nteensy40.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy40.menu.keys.rs-rs=Serbian (Latin Only)\nteensy40.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy40.menu.keys.es-es=Spanish\nteensy40.menu.keys.es-es.build.keylayout=SPANISH\nteensy40.menu.keys.es-mx=Spanish Latin America\nteensy40.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy40.menu.keys.sv-se=Swedish\nteensy40.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy40.menu.keys.tr-tr=Turkish (partial)\nteensy40.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy40.menu.keys.en-gb=United Kingdom\nteensy40.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy40.menu.keys.usint=US International\nteensy40.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensy36.name=Teensy 3.6\nteensy36.upload.maximum_size=1048576\nteensy36.upload.maximum_data_size=262144\nteensy36.upload.tool=teensyloader\nteensy36.upload.protocol=halfkay\nteensy36.build.board=TEENSY36\nteensy36.build.core=teensy3\nteensy36.build.mcu=mk66fx1m0\nteensy36.build.warn_data_percentage=99\nteensy36.build.toolchain=arm/bin/\nteensy36.build.command.gcc=arm-none-eabi-gcc\nteensy36.build.command.g++=arm-none-eabi-g++\nteensy36.build.command.ar=arm-none-eabi-gcc-ar\nteensy36.build.command.objcopy=arm-none-eabi-objcopy\nteensy36.build.command.objdump=arm-none-eabi-objdump\nteensy36.build.command.linker=arm-none-eabi-gcc\nteensy36.build.command.size=arm-none-eabi-size\nteensy36.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy36.build.flags.dep=-MMD\nteensy36.build.flags.optimize=-Os\nteensy36.build.flags.cpu=-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant\nteensy36.build.flags.defs=-D__MK66FX1M0__ -DTEENSYDUINO=154\nteensy36.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++14 -Wno-error=narrowing -fno-rtti\nteensy36.build.flags.c=\nteensy36.build.flags.S=-x assembler-with-cpp\nteensy36.build.flags.ld=-Wl,--gc-sections,--relax,--defsym=__rtc_localtime={extra.time.local} \"-T{build.core.path}/mk66fx1m0.ld\"\nteensy36.build.flags.libs=-larm_cortexM4lf_math -lm -lstdc++\nteensy36.serial.restart_cmd=false\nteensy36.menu.usb.serial=Serial\nteensy36.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy36.menu.usb.serial2=Dual Serial\nteensy36.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensy36.menu.usb.serial3=Triple Serial\nteensy36.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensy36.menu.usb.keyboard=Keyboard\nteensy36.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy36.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy36.menu.usb.touch=Keyboard + Touch Screen\nteensy36.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy36.menu.usb.touch.fake_serial=teensy_gateway\nteensy36.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensy36.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensy36.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensy36.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy36.menu.usb.hid.build.usbtype=USB_HID\nteensy36.menu.usb.hid.fake_serial=teensy_gateway\nteensy36.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy36.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy36.menu.usb.midi=MIDI\nteensy36.menu.usb.midi.build.usbtype=USB_MIDI\nteensy36.menu.usb.midi.fake_serial=teensy_gateway\nteensy36.menu.usb.midi4=MIDIx4\nteensy36.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy36.menu.usb.midi4.fake_serial=teensy_gateway\nteensy36.menu.usb.midi16=MIDIx16\nteensy36.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensy36.menu.usb.midi16.fake_serial=teensy_gateway\nteensy36.menu.usb.serialmidi=Serial + MIDI\nteensy36.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy36.menu.usb.serialmidi4=Serial + MIDIx4\nteensy36.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy36.menu.usb.serialmidi16=Serial + MIDIx16\nteensy36.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensy36.menu.usb.audio=Audio\nteensy36.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy36.menu.usb.audio.fake_serial=teensy_gateway\nteensy36.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy36.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy36.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensy36.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensy36.menu.usb.mtp=MTP Disk (Experimental)\nteensy36.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy36.menu.usb.mtp.fake_serial=teensy_gateway\nteensy36.menu.usb.rawhid=Raw HID\nteensy36.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy36.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy36.menu.usb.flightsim=Flight Sim Controls\nteensy36.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy36.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy36.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensy36.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensy36.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\nteensy36.menu.usb.everything=All of the Above\nteensy36.menu.usb.everything.build.usbtype=USB_EVERYTHING\nteensy36.menu.usb.disable=No USB\nteensy36.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy36.menu.speed.180=180 MHz\nteensy36.menu.speed.168=168 MHz\nteensy36.menu.speed.144=144 MHz\nteensy36.menu.speed.120=120 MHz\nteensy36.menu.speed.96=96 MHz\nteensy36.menu.speed.72=72 MHz\nteensy36.menu.speed.48=48 MHz\nteensy36.menu.speed.24=24 MHz\nteensy36.menu.speed.16=16 MHz (No USB)\nteensy36.menu.speed.8=8 MHz (No USB)\nteensy36.menu.speed.4=4 MHz (No USB)\nteensy36.menu.speed.2=2 MHz (No USB)\nteensy36.menu.speed.192=192 MHz (overclock)\nteensy36.menu.speed.216=216 MHz (overclock)\nteensy36.menu.speed.240=240 MHz (overclock)\nteensy36.menu.speed.256=256 MHz (overclock)\nteensy36.menu.speed.256.build.fcpu=256000000\nteensy36.menu.speed.240.build.fcpu=240000000\nteensy36.menu.speed.216.build.fcpu=216000000\nteensy36.menu.speed.192.build.fcpu=192000000\nteensy36.menu.speed.180.build.fcpu=180000000\nteensy36.menu.speed.168.build.fcpu=168000000\nteensy36.menu.speed.144.build.fcpu=144000000\nteensy36.menu.speed.120.build.fcpu=120000000\nteensy36.menu.speed.96.build.fcpu=96000000\nteensy36.menu.speed.72.build.fcpu=72000000\nteensy36.menu.speed.48.build.fcpu=48000000\nteensy36.menu.speed.24.build.fcpu=24000000\nteensy36.menu.speed.16.build.fcpu=16000000\nteensy36.menu.speed.8.build.fcpu=8000000\nteensy36.menu.speed.4.build.fcpu=4000000\nteensy36.menu.speed.2.build.fcpu=2000000\n\nteensy36.menu.opt.o2std=Faster\nteensy36.menu.opt.o2std.build.flags.optimize=-O2\nteensy36.menu.opt.o2std.build.flags.ldspecs=\nteensy36.menu.opt.o2lto=Faster with LTO\nteensy36.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\nteensy36.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy36.menu.opt.o1std=Fast\nteensy36.menu.opt.o1std.build.flags.optimize=-O1\nteensy36.menu.opt.o1std.build.flags.ldspecs=\nteensy36.menu.opt.o1lto=Fast with LTO\nteensy36.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\nteensy36.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy36.menu.opt.o3std=Fastest\nteensy36.menu.opt.o3std.build.flags.optimize=-O3\nteensy36.menu.opt.o3std.build.flags.ldspecs=\nteensy36.menu.opt.o3purestd=Fastest + pure-code\nteensy36.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\nteensy36.menu.opt.o3purestd.build.flags.ldspecs=\nteensy36.menu.opt.o3lto=Fastest with LTO\nteensy36.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\nteensy36.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy36.menu.opt.o3purelto=Fastest + pure-code with LTO\nteensy36.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\nteensy36.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensy36.menu.opt.ogstd=Debug\nteensy36.menu.opt.ogstd.build.flags.optimize=-Og\nteensy36.menu.opt.ogstd.build.flags.ldspecs=\nteensy36.menu.opt.oglto=Debug with LTO\nteensy36.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\nteensy36.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy36.menu.opt.osstd=Smallest Code\nteensy36.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy36.menu.opt.osstd.build.flags.ldspecs=\nteensy36.menu.opt.oslto=Smallest Code with LTO\nteensy36.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\nteensy36.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy36.menu.keys.en-us=US English\nteensy36.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy36.menu.keys.fr-ca=Canadian French\nteensy36.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy36.menu.keys.xx-ca=Canadian Multilingual\nteensy36.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy36.menu.keys.cz-cz=Czech\nteensy36.menu.keys.cz-cz.build.keylayout=CZECH\nteensy36.menu.keys.da-da=Danish\nteensy36.menu.keys.da-da.build.keylayout=DANISH\nteensy36.menu.keys.fi-fi=Finnish\nteensy36.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy36.menu.keys.fr-fr=French\nteensy36.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy36.menu.keys.fr-be=French Belgian\nteensy36.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy36.menu.keys.fr-ch=French Swiss\nteensy36.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy36.menu.keys.de-de=German\nteensy36.menu.keys.de-de.build.keylayout=GERMAN\nteensy36.menu.keys.de-dm=German (Mac)\nteensy36.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy36.menu.keys.de-ch=German Swiss\nteensy36.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy36.menu.keys.is-is=Icelandic\nteensy36.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy36.menu.keys.en-ie=Irish\nteensy36.menu.keys.en-ie.build.keylayout=IRISH\nteensy36.menu.keys.it-it=Italian\nteensy36.menu.keys.it-it.build.keylayout=ITALIAN\nteensy36.menu.keys.no-no=Norwegian\nteensy36.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy36.menu.keys.pt-pt=Portuguese\nteensy36.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy36.menu.keys.pt-br=Portuguese Brazilian\nteensy36.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy36.menu.keys.rs-rs=Serbian (Latin Only)\nteensy36.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy36.menu.keys.es-es=Spanish\nteensy36.menu.keys.es-es.build.keylayout=SPANISH\nteensy36.menu.keys.es-mx=Spanish Latin America\nteensy36.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy36.menu.keys.sv-se=Swedish\nteensy36.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy36.menu.keys.tr-tr=Turkish (partial)\nteensy36.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy36.menu.keys.en-gb=United Kingdom\nteensy36.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy36.menu.keys.usint=US International\nteensy36.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensy35.name=Teensy 3.5\nteensy35.upload.maximum_size=524288\nteensy35.upload.maximum_data_size=262136\nteensy35.upload.tool=teensyloader\nteensy35.upload.protocol=halfkay\nteensy35.build.board=TEENSY35\nteensy35.build.core=teensy3\nteensy35.build.mcu=mk64fx512\nteensy35.build.warn_data_percentage=98\nteensy35.build.toolchain=arm/bin/\nteensy35.build.command.gcc=arm-none-eabi-gcc\nteensy35.build.command.g++=arm-none-eabi-g++\nteensy35.build.command.ar=arm-none-eabi-gcc-ar\nteensy35.build.command.objcopy=arm-none-eabi-objcopy\nteensy35.build.command.objdump=arm-none-eabi-objdump\nteensy35.build.command.linker=arm-none-eabi-gcc\nteensy35.build.command.size=arm-none-eabi-size\nteensy35.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy35.build.flags.dep=-MMD\nteensy35.build.flags.optimize=-Os\nteensy35.build.flags.cpu=-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant\nteensy35.build.flags.defs=-D__MK64FX512__ -DTEENSYDUINO=154\nteensy35.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++14 -Wno-error=narrowing -fno-rtti\nteensy35.build.flags.c=\nteensy35.build.flags.S=-x assembler-with-cpp\nteensy35.build.flags.ld=-Wl,--gc-sections,--relax,--defsym=__rtc_localtime={extra.time.local} \"-T{build.core.path}/mk64fx512.ld\"\nteensy35.build.flags.libs=-larm_cortexM4lf_math -lm -lstdc++\nteensy35.serial.restart_cmd=false\nteensy35.menu.usb.serial=Serial\nteensy35.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy35.menu.usb.serial2=Dual Serial\nteensy35.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensy35.menu.usb.serial3=Triple Serial\nteensy35.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensy35.menu.usb.keyboard=Keyboard\nteensy35.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy35.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy35.menu.usb.touch=Keyboard + Touch Screen\nteensy35.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy35.menu.usb.touch.fake_serial=teensy_gateway\nteensy35.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensy35.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensy35.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensy35.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy35.menu.usb.hid.build.usbtype=USB_HID\nteensy35.menu.usb.hid.fake_serial=teensy_gateway\nteensy35.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy35.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy35.menu.usb.midi=MIDI\nteensy35.menu.usb.midi.build.usbtype=USB_MIDI\nteensy35.menu.usb.midi.fake_serial=teensy_gateway\nteensy35.menu.usb.midi4=MIDIx4\nteensy35.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy35.menu.usb.midi4.fake_serial=teensy_gateway\nteensy35.menu.usb.midi16=MIDIx16\nteensy35.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensy35.menu.usb.midi16.fake_serial=teensy_gateway\nteensy35.menu.usb.serialmidi=Serial + MIDI\nteensy35.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy35.menu.usb.serialmidi4=Serial + MIDIx4\nteensy35.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy35.menu.usb.serialmidi16=Serial + MIDIx16\nteensy35.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensy35.menu.usb.audio=Audio\nteensy35.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy35.menu.usb.audio.fake_serial=teensy_gateway\nteensy35.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy35.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy35.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensy35.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensy35.menu.usb.mtp=MTP Disk (Experimental)\nteensy35.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy35.menu.usb.mtp.fake_serial=teensy_gateway\nteensy35.menu.usb.rawhid=Raw HID\nteensy35.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy35.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy35.menu.usb.flightsim=Flight Sim Controls\nteensy35.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy35.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy35.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensy35.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensy35.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\nteensy35.menu.usb.everything=All of the Above\nteensy35.menu.usb.everything.build.usbtype=USB_EVERYTHING\nteensy35.menu.usb.disable=No USB\nteensy35.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy35.menu.speed.120=120 MHz\nteensy35.menu.speed.96=96 MHz\nteensy35.menu.speed.72=72 MHz\nteensy35.menu.speed.48=48 MHz\nteensy35.menu.speed.24=24 MHz\nteensy35.menu.speed.16=16 MHz (No USB)\nteensy35.menu.speed.8=8 MHz (No USB)\nteensy35.menu.speed.4=4 MHz (No USB)\nteensy35.menu.speed.2=2 MHz (No USB)\nteensy35.menu.speed.144=144 MHz (overclock)\nteensy35.menu.speed.168=168 MHz (overclock)\nteensy35.menu.speed.168.build.fcpu=168000000\nteensy35.menu.speed.144.build.fcpu=144000000\nteensy35.menu.speed.120.build.fcpu=120000000\nteensy35.menu.speed.96.build.fcpu=96000000\nteensy35.menu.speed.72.build.fcpu=72000000\nteensy35.menu.speed.48.build.fcpu=48000000\nteensy35.menu.speed.24.build.fcpu=24000000\nteensy35.menu.speed.16.build.fcpu=16000000\nteensy35.menu.speed.8.build.fcpu=8000000\nteensy35.menu.speed.4.build.fcpu=4000000\nteensy35.menu.speed.2.build.fcpu=2000000\n\nteensy35.menu.opt.o2std=Faster\nteensy35.menu.opt.o2std.build.flags.optimize=-O2\nteensy35.menu.opt.o2std.build.flags.ldspecs=\nteensy35.menu.opt.o2lto=Faster with LTO\nteensy35.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\nteensy35.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy35.menu.opt.o1std=Fast\nteensy35.menu.opt.o1std.build.flags.optimize=-O1\nteensy35.menu.opt.o1std.build.flags.ldspecs=\nteensy35.menu.opt.o1lto=Fast with LTO\nteensy35.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\nteensy35.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy35.menu.opt.o3std=Fastest\nteensy35.menu.opt.o3std.build.flags.optimize=-O3\nteensy35.menu.opt.o3std.build.flags.ldspecs=\nteensy35.menu.opt.o3purestd=Fastest + pure-code\nteensy35.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\nteensy35.menu.opt.o3purestd.build.flags.ldspecs=\nteensy35.menu.opt.o3lto=Fastest with LTO\nteensy35.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\nteensy35.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy35.menu.opt.o3purelto=Fastest + pure-code with LTO\nteensy35.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\nteensy35.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensy35.menu.opt.ogstd=Debug\nteensy35.menu.opt.ogstd.build.flags.optimize=-Og\nteensy35.menu.opt.ogstd.build.flags.ldspecs=\nteensy35.menu.opt.oglto=Debug with LTO\nteensy35.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\nteensy35.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy35.menu.opt.osstd=Smallest Code\nteensy35.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy35.menu.opt.osstd.build.flags.ldspecs=\nteensy35.menu.opt.oslto=Smallest Code with LTO\nteensy35.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\nteensy35.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy35.menu.keys.en-us=US English\nteensy35.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy35.menu.keys.fr-ca=Canadian French\nteensy35.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy35.menu.keys.xx-ca=Canadian Multilingual\nteensy35.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy35.menu.keys.cz-cz=Czech\nteensy35.menu.keys.cz-cz.build.keylayout=CZECH\nteensy35.menu.keys.da-da=Danish\nteensy35.menu.keys.da-da.build.keylayout=DANISH\nteensy35.menu.keys.fi-fi=Finnish\nteensy35.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy35.menu.keys.fr-fr=French\nteensy35.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy35.menu.keys.fr-be=French Belgian\nteensy35.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy35.menu.keys.fr-ch=French Swiss\nteensy35.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy35.menu.keys.de-de=German\nteensy35.menu.keys.de-de.build.keylayout=GERMAN\nteensy35.menu.keys.de-dm=German (Mac)\nteensy35.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy35.menu.keys.de-ch=German Swiss\nteensy35.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy35.menu.keys.is-is=Icelandic\nteensy35.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy35.menu.keys.en-ie=Irish\nteensy35.menu.keys.en-ie.build.keylayout=IRISH\nteensy35.menu.keys.it-it=Italian\nteensy35.menu.keys.it-it.build.keylayout=ITALIAN\nteensy35.menu.keys.no-no=Norwegian\nteensy35.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy35.menu.keys.pt-pt=Portuguese\nteensy35.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy35.menu.keys.pt-br=Portuguese Brazilian\nteensy35.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy35.menu.keys.rs-rs=Serbian (Latin Only)\nteensy35.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy35.menu.keys.es-es=Spanish\nteensy35.menu.keys.es-es.build.keylayout=SPANISH\nteensy35.menu.keys.es-mx=Spanish Latin America\nteensy35.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy35.menu.keys.sv-se=Swedish\nteensy35.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy35.menu.keys.tr-tr=Turkish (partial)\nteensy35.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy35.menu.keys.en-gb=United Kingdom\nteensy35.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy35.menu.keys.usint=US International\nteensy35.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensy31.name=Teensy 3.2 / 3.1\nteensy31.upload.maximum_size=262144\nteensy31.upload.maximum_data_size=65536\nteensy31.upload.tool=teensyloader\nteensy31.upload.protocol=halfkay\nteensy31.build.board=TEENSY32\nteensy31.build.core=teensy3\nteensy31.build.mcu=mk20dx256\nteensy31.build.warn_data_percentage=97\nteensy31.build.toolchain=arm/bin/\nteensy31.build.command.gcc=arm-none-eabi-gcc\nteensy31.build.command.g++=arm-none-eabi-g++\nteensy31.build.command.ar=arm-none-eabi-gcc-ar\nteensy31.build.command.objcopy=arm-none-eabi-objcopy\nteensy31.build.command.objdump=arm-none-eabi-objdump\nteensy31.build.command.linker=arm-none-eabi-gcc\nteensy31.build.command.size=arm-none-eabi-size\nteensy31.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy31.build.flags.dep=-MMD\nteensy31.build.flags.optimize=-Os\nteensy31.build.flags.cpu=-mthumb -mcpu=cortex-m4 -fsingle-precision-constant\nteensy31.build.flags.defs=-D__MK20DX256__ -DTEENSYDUINO=154\nteensy31.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++14 -Wno-error=narrowing -fno-rtti\nteensy31.build.flags.c=\nteensy31.build.flags.S=-x assembler-with-cpp\nteensy31.build.flags.ld=-Wl,--gc-sections,--relax,--defsym=__rtc_localtime={extra.time.local} \"-T{build.core.path}/mk20dx256.ld\"\nteensy31.build.flags.libs=-larm_cortexM4l_math -lm -lstdc++\nteensy31.serial.restart_cmd=false\nteensy31.menu.usb.serial=Serial\nteensy31.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy31.menu.usb.serial2=Dual Serial\nteensy31.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensy31.menu.usb.serial3=Triple Serial\nteensy31.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensy31.menu.usb.keyboard=Keyboard\nteensy31.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy31.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy31.menu.usb.touch=Keyboard + Touch Screen\nteensy31.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy31.menu.usb.touch.fake_serial=teensy_gateway\nteensy31.menu.usb.hidtouch=Keyboard + Mouse + Touch Screen\nteensy31.menu.usb.hidtouch.build.usbtype=USB_HID_TOUCHSCREEN\nteensy31.menu.usb.hidtouch.fake_serial=teensy_gateway\nteensy31.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy31.menu.usb.hid.build.usbtype=USB_HID\nteensy31.menu.usb.hid.fake_serial=teensy_gateway\nteensy31.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy31.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy31.menu.usb.midi=MIDI\nteensy31.menu.usb.midi.build.usbtype=USB_MIDI\nteensy31.menu.usb.midi.fake_serial=teensy_gateway\nteensy31.menu.usb.midi4=MIDIx4\nteensy31.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy31.menu.usb.midi4.fake_serial=teensy_gateway\nteensy31.menu.usb.midi16=MIDIx16\nteensy31.menu.usb.midi16.build.usbtype=USB_MIDI16\nteensy31.menu.usb.midi16.fake_serial=teensy_gateway\nteensy31.menu.usb.serialmidi=Serial + MIDI\nteensy31.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy31.menu.usb.serialmidi4=Serial + MIDIx4\nteensy31.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy31.menu.usb.serialmidi16=Serial + MIDIx16\nteensy31.menu.usb.serialmidi16.build.usbtype=USB_MIDI16_SERIAL\nteensy31.menu.usb.audio=Audio\nteensy31.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy31.menu.usb.audio.fake_serial=teensy_gateway\nteensy31.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy31.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy31.menu.usb.serialmidi16audio=Serial + MIDIx16 + Audio\nteensy31.menu.usb.serialmidi16audio.build.usbtype=USB_MIDI16_AUDIO_SERIAL\nteensy31.menu.usb.mtp=MTP Disk (Experimental)\nteensy31.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy31.menu.usb.mtp.fake_serial=teensy_gateway\nteensy31.menu.usb.rawhid=Raw HID\nteensy31.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy31.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy31.menu.usb.flightsim=Flight Sim Controls\nteensy31.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy31.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy31.menu.usb.flightsimjoystick=Flight Sim Controls + Joystick\nteensy31.menu.usb.flightsimjoystick.build.usbtype=USB_FLIGHTSIM_JOYSTICK\nteensy31.menu.usb.flightsimjoystick.fake_serial=teensy_gateway\nteensy31.menu.usb.everything=All of the Above\nteensy31.menu.usb.everything.build.usbtype=USB_EVERYTHING\nteensy31.menu.usb.disable=No USB\nteensy31.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy31.menu.speed.96=96 MHz (overclock)\nteensy31.menu.speed.72=72 MHz\nteensy31.menu.speed.48=48 MHz\nteensy31.menu.speed.24=24 MHz\nteensy31.menu.speed.16=16 MHz (No USB)\nteensy31.menu.speed.8=8 MHz (No USB)\nteensy31.menu.speed.4=4 MHz (No USB)\nteensy31.menu.speed.2=2 MHz (No USB)\nteensy31.menu.speed.120=120 MHz (overclock)\n#uncomment these if you want to try faster overclocking\n#teensy31.menu.speed.144=144 MHz (overclock)\n#teensy31.menu.speed.168=168 MHz (overclock)\nteensy31.menu.speed.168.build.fcpu=168000000\nteensy31.menu.speed.144.build.fcpu=144000000\nteensy31.menu.speed.120.build.fcpu=120000000\nteensy31.menu.speed.96.build.fcpu=96000000\nteensy31.menu.speed.72.build.fcpu=72000000\nteensy31.menu.speed.48.build.fcpu=48000000\nteensy31.menu.speed.24.build.fcpu=24000000\nteensy31.menu.speed.16.build.fcpu=16000000\nteensy31.menu.speed.8.build.fcpu=8000000\nteensy31.menu.speed.4.build.fcpu=4000000\nteensy31.menu.speed.2.build.fcpu=2000000\n\nteensy31.menu.opt.o2std=Faster\nteensy31.menu.opt.o2std.build.flags.optimize=-O2\nteensy31.menu.opt.o2std.build.flags.ldspecs=\nteensy31.menu.opt.o2lto=Faster with LTO\nteensy31.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\nteensy31.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy31.menu.opt.o1std=Fast\nteensy31.menu.opt.o1std.build.flags.optimize=-O1\nteensy31.menu.opt.o1std.build.flags.ldspecs=\nteensy31.menu.opt.o1lto=Fast with LTO\nteensy31.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\nteensy31.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy31.menu.opt.o3std=Fastest\nteensy31.menu.opt.o3std.build.flags.optimize=-O3\nteensy31.menu.opt.o3std.build.flags.ldspecs=\nteensy31.menu.opt.o3purestd=Fastest + pure-code\nteensy31.menu.opt.o3purestd.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__\nteensy31.menu.opt.o3purestd.build.flags.ldspecs=\nteensy31.menu.opt.o3lto=Fastest with LTO\nteensy31.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\nteensy31.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy31.menu.opt.o3purelto=Fastest + pure-code with LTO\nteensy31.menu.opt.o3purelto.build.flags.optimize=-O3 -mpure-code -D__PURE_CODE__ -flto -fno-fat-lto-objects\nteensy31.menu.opt.o3purelto.build.flags.ldspecs=-fuse-linker-plugin\nteensy31.menu.opt.ogstd=Debug\nteensy31.menu.opt.ogstd.build.flags.optimize=-Og\nteensy31.menu.opt.ogstd.build.flags.ldspecs=\nteensy31.menu.opt.oglto=Debug with LTO\nteensy31.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\nteensy31.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy31.menu.opt.osstd=Smallest Code\nteensy31.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy31.menu.opt.osstd.build.flags.ldspecs=\nteensy31.menu.opt.oslto=Smallest Code with LTO\nteensy31.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\nteensy31.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy31.menu.keys.en-us=US English\nteensy31.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy31.menu.keys.fr-ca=Canadian French\nteensy31.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy31.menu.keys.xx-ca=Canadian Multilingual\nteensy31.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy31.menu.keys.cz-cz=Czech\nteensy31.menu.keys.cz-cz.build.keylayout=CZECH\nteensy31.menu.keys.da-da=Danish\nteensy31.menu.keys.da-da.build.keylayout=DANISH\nteensy31.menu.keys.fi-fi=Finnish\nteensy31.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy31.menu.keys.fr-fr=French\nteensy31.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy31.menu.keys.fr-be=French Belgian\nteensy31.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy31.menu.keys.fr-ch=French Swiss\nteensy31.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy31.menu.keys.de-de=German\nteensy31.menu.keys.de-de.build.keylayout=GERMAN\nteensy31.menu.keys.de-dm=German (Mac)\nteensy31.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy31.menu.keys.de-ch=German Swiss\nteensy31.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy31.menu.keys.is-is=Icelandic\nteensy31.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy31.menu.keys.en-ie=Irish\nteensy31.menu.keys.en-ie.build.keylayout=IRISH\nteensy31.menu.keys.it-it=Italian\nteensy31.menu.keys.it-it.build.keylayout=ITALIAN\nteensy31.menu.keys.no-no=Norwegian\nteensy31.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy31.menu.keys.pt-pt=Portuguese\nteensy31.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy31.menu.keys.pt-br=Portuguese Brazilian\nteensy31.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy31.menu.keys.rs-rs=Serbian (Latin Only)\nteensy31.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy31.menu.keys.es-es=Spanish\nteensy31.menu.keys.es-es.build.keylayout=SPANISH\nteensy31.menu.keys.es-mx=Spanish Latin America\nteensy31.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy31.menu.keys.sv-se=Swedish\nteensy31.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy31.menu.keys.tr-tr=Turkish (partial)\nteensy31.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy31.menu.keys.en-gb=United Kingdom\nteensy31.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy31.menu.keys.usint=US International\nteensy31.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\nteensy31.vid.0=0x16C0\nteensy31.vid.1=0x16C0\nteensy31.vid.2=0x16C0\nteensy31.vid.3=0x16C0\nteensy31.vid.4=0x16C0\nteensy31.pid.0=0x0483\nteensy31.pid.1=0x0487\nteensy31.pid.2=0x0489\nteensy31.pid.3=0x048A\nteensy31.pid.4=0x0476\n\nteensy30.name=Teensy 3.0\nteensy30.upload.maximum_size=131072\nteensy30.upload.maximum_data_size=16384\nteensy30.upload.tool=teensyloader\nteensy30.upload.protocol=halfkay\nteensy30.build.board=TEENSY30\nteensy30.build.core=teensy3\nteensy30.build.mcu=mk20dx128\nteensy30.build.warn_data_percentage=94\nteensy30.build.toolchain=arm/bin/\nteensy30.build.command.gcc=arm-none-eabi-gcc\nteensy30.build.command.g++=arm-none-eabi-g++\nteensy30.build.command.ar=arm-none-eabi-gcc-ar\nteensy30.build.command.objcopy=arm-none-eabi-objcopy\nteensy30.build.command.objdump=arm-none-eabi-objdump\nteensy30.build.command.linker=arm-none-eabi-gcc\nteensy30.build.command.size=arm-none-eabi-size\nteensy30.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensy30.build.flags.dep=-MMD\nteensy30.build.flags.optimize=-Os\nteensy30.build.flags.cpu=-mthumb -mcpu=cortex-m4 -fsingle-precision-constant\nteensy30.build.flags.defs=-D__MK20DX128__ -DTEENSYDUINO=154\nteensy30.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++14 -Wno-error=narrowing -fno-rtti\nteensy30.build.flags.c=\nteensy30.build.flags.S=-x assembler-with-cpp\nteensy30.build.flags.ld=-Wl,--gc-sections,--relax,--defsym=__rtc_localtime={extra.time.local} \"-T{build.core.path}/mk20dx128.ld\"\nteensy30.build.flags.ldspecs=--specs=nano.specs\nteensy30.build.flags.libs=-larm_cortexM4l_math -lm -lstdc++\nteensy30.serial.restart_cmd=false\n\nteensy30.menu.usb.serial=Serial\nteensy30.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy30.menu.usb.keyboard=Keyboard\nteensy30.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensy30.menu.usb.keyboard.fake_serial=teensy_gateway\nteensy30.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy30.menu.usb.hid.build.usbtype=USB_HID\nteensy30.menu.usb.hid.fake_serial=teensy_gateway\nteensy30.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy30.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy30.menu.usb.touch=Keyboard + Touch Screen\nteensy30.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensy30.menu.usb.touch.fake_serial=teensy_gateway\nteensy30.menu.usb.midi=MIDI\nteensy30.menu.usb.midi.build.usbtype=USB_MIDI\nteensy30.menu.usb.midi.fake_serial=teensy_gateway\nteensy30.menu.usb.midi4=MIDIx4\nteensy30.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensy30.menu.usb.midi4.fake_serial=teensy_gateway\nteensy30.menu.usb.serialmidi=Serial + MIDI\nteensy30.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensy30.menu.usb.serialmidi4=Serial + MIDIx4\nteensy30.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensy30.menu.usb.audio=Audio\nteensy30.menu.usb.audio.build.usbtype=USB_AUDIO\nteensy30.menu.usb.audio.fake_serial=teensy_gateway\nteensy30.menu.usb.serialmidiaudio=Serial + MIDI + Audio\nteensy30.menu.usb.serialmidiaudio.build.usbtype=USB_MIDI_AUDIO_SERIAL\nteensy30.menu.usb.mtp=MTP Disk (Experimental)\nteensy30.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensy30.menu.usb.mtp.fake_serial=teensy_gateway\nteensy30.menu.usb.rawhid=Raw HID\nteensy30.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy30.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy30.menu.usb.flightsim=Flight Sim Controls\nteensy30.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy30.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy30.menu.usb.disable=No USB\nteensy30.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensy30.menu.speed.96=96 MHz (overclock)\nteensy30.menu.speed.48=48 MHz\nteensy30.menu.speed.24=24 MHz\nteensy30.menu.speed.96.build.fcpu=96000000\nteensy30.menu.speed.48.build.fcpu=48000000\nteensy30.menu.speed.24.build.fcpu=24000000\n\nteensy30.menu.opt.o2std=Faster\nteensy30.menu.opt.o2std.build.flags.optimize=-O2\nteensy30.menu.opt.o2std.build.flags.ldspecs=\nteensy30.menu.opt.o2lto=Faster with LTO\nteensy30.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\nteensy30.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy30.menu.opt.o1std=Fast\nteensy30.menu.opt.o1std.build.flags.optimize=-O1\nteensy30.menu.opt.o1std.build.flags.ldspecs=\nteensy30.menu.opt.o1lto=Fast with LTO\nteensy30.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\nteensy30.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy30.menu.opt.o3std=Fastest\nteensy30.menu.opt.o3std.build.flags.optimize=-O3\nteensy30.menu.opt.o3std.build.flags.ldspecs=\nteensy30.menu.opt.o3lto=Fastest with LTO\nteensy30.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\nteensy30.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\nteensy30.menu.opt.ogstd=Debug\nteensy30.menu.opt.ogstd.build.flags.optimize=-Og\nteensy30.menu.opt.ogstd.build.flags.ldspecs=\nteensy30.menu.opt.oglto=Debug with LTO\nteensy30.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\nteensy30.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensy30.menu.opt.osstd=Smallest Code\nteensy30.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensy30.menu.opt.osstd.build.flags.ldspecs=\nteensy30.menu.opt.oslto=Smallest Code with LTO\nteensy30.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\nteensy30.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensy30.menu.keys.en-us=US English\nteensy30.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy30.menu.keys.fr-ca=Canadian French\nteensy30.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy30.menu.keys.xx-ca=Canadian Multilingual\nteensy30.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy30.menu.keys.cz-cz=Czech\nteensy30.menu.keys.cz-cz.build.keylayout=CZECH\nteensy30.menu.keys.da-da=Danish\nteensy30.menu.keys.da-da.build.keylayout=DANISH\nteensy30.menu.keys.fi-fi=Finnish\nteensy30.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy30.menu.keys.fr-fr=French\nteensy30.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy30.menu.keys.fr-be=French Belgian\nteensy30.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy30.menu.keys.fr-ch=French Swiss\nteensy30.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy30.menu.keys.de-de=German\nteensy30.menu.keys.de-de.build.keylayout=GERMAN\nteensy30.menu.keys.de-dm=German (Mac)\nteensy30.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy30.menu.keys.de-ch=German Swiss\nteensy30.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy30.menu.keys.is-is=Icelandic\nteensy30.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy30.menu.keys.en-ie=Irish\nteensy30.menu.keys.en-ie.build.keylayout=IRISH\nteensy30.menu.keys.it-it=Italian\nteensy30.menu.keys.it-it.build.keylayout=ITALIAN\nteensy30.menu.keys.no-no=Norwegian\nteensy30.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy30.menu.keys.pt-pt=Portuguese\nteensy30.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy30.menu.keys.pt-br=Portuguese Brazilian\nteensy30.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy30.menu.keys.rs-rs=Serbian (Latin Only)\nteensy30.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy30.menu.keys.es-es=Spanish\nteensy30.menu.keys.es-es.build.keylayout=SPANISH\nteensy30.menu.keys.es-mx=Spanish Latin America\nteensy30.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy30.menu.keys.sv-se=Swedish\nteensy30.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy30.menu.keys.tr-tr=Turkish (partial)\nteensy30.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy30.menu.keys.en-gb=United Kingdom\nteensy30.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy30.menu.keys.usint=US International\nteensy30.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensyLC.name=Teensy LC\nteensyLC.upload.maximum_size=63488\nteensyLC.upload.maximum_data_size=8192\nteensyLC.upload.tool=teensyloader\nteensyLC.upload.protocol=halfkay\nteensyLC.build.board=TEENSYLC\nteensyLC.build.core=teensy3\nteensyLC.build.mcu=mkl26z64\nteensyLC.build.warn_data_percentage=88\nteensyLC.build.toolchain=arm/bin/\nteensyLC.build.command.gcc=arm-none-eabi-gcc\nteensyLC.build.command.g++=arm-none-eabi-g++\nteensyLC.build.command.ar=arm-none-eabi-gcc-ar\nteensyLC.build.command.objcopy=arm-none-eabi-objcopy\nteensyLC.build.command.objdump=arm-none-eabi-objdump\nteensyLC.build.command.linker=arm-none-eabi-gcc\nteensyLC.build.command.size=arm-none-eabi-size\nteensyLC.build.flags.common=-g -Wall -ffunction-sections -fdata-sections -nostdlib\nteensyLC.build.flags.dep=-MMD\nteensyLC.build.flags.cpu=-mthumb -mcpu=cortex-m0plus -fsingle-precision-constant\nteensyLC.build.flags.defs=-D__MKL26Z64__ -DTEENSYDUINO=154\nteensyLC.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++14 -Wno-error=narrowing -fno-rtti\nteensyLC.build.flags.c=\nteensyLC.build.flags.S=-x assembler-with-cpp\nteensyLC.build.flags.ld=-Wl,--gc-sections,--relax,--defsym=__rtc_localtime={extra.time.local} \"-T{build.core.path}/mkl26z64.ld\"\nteensyLC.build.flags.libs=-larm_cortexM0l_math -lm -lstdc++\nteensyLC.serial.restart_cmd=false\nteensyLC.menu.usb.serial=Serial\nteensyLC.menu.usb.serial.build.usbtype=USB_SERIAL\nteensyLC.menu.usb.serial2=Dual Serial\nteensyLC.menu.usb.serial2.build.usbtype=USB_DUAL_SERIAL\nteensyLC.menu.usb.serial3=Triple Serial\nteensyLC.menu.usb.serial3.build.usbtype=USB_TRIPLE_SERIAL\nteensyLC.menu.usb.keyboard=Keyboard\nteensyLC.menu.usb.keyboard.build.usbtype=USB_KEYBOARDONLY\nteensyLC.menu.usb.keyboard.fake_serial=teensy_gateway\nteensyLC.menu.usb.hid=Keyboard + Mouse + Joystick\nteensyLC.menu.usb.hid.build.usbtype=USB_HID\nteensyLC.menu.usb.hid.fake_serial=teensy_gateway\nteensyLC.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensyLC.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensyLC.menu.usb.touch=Keyboard + Touch Screen\nteensyLC.menu.usb.touch.build.usbtype=USB_TOUCHSCREEN\nteensyLC.menu.usb.touch.fake_serial=teensy_gateway\nteensyLC.menu.usb.midi=MIDI\nteensyLC.menu.usb.midi.build.usbtype=USB_MIDI\nteensyLC.menu.usb.midi.fake_serial=teensy_gateway\nteensyLC.menu.usb.midi4=MIDIx4\nteensyLC.menu.usb.midi4.build.usbtype=USB_MIDI4\nteensyLC.menu.usb.midi4.fake_serial=teensy_gateway\nteensyLC.menu.usb.serialmidi=Serial + MIDI\nteensyLC.menu.usb.serialmidi.build.usbtype=USB_MIDI_SERIAL\nteensyLC.menu.usb.serialmidi4=Serial + MIDIx4\nteensyLC.menu.usb.serialmidi4.build.usbtype=USB_MIDI4_SERIAL\nteensyLC.menu.usb.mtp=MTP Disk (Experimental)\nteensyLC.menu.usb.mtp.build.usbtype=USB_MTPDISK\nteensyLC.menu.usb.mtp.fake_serial=teensy_gateway\nteensyLC.menu.usb.rawhid=Raw HID\nteensyLC.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensyLC.menu.usb.rawhid.fake_serial=teensy_gateway\nteensyLC.menu.usb.flightsim=Flight Sim Controls\nteensyLC.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensyLC.menu.usb.flightsim.fake_serial=teensy_gateway\nteensyLC.menu.usb.disable=No USB\nteensyLC.menu.usb.disable.build.usbtype=USB_DISABLED\n\nteensyLC.menu.speed.48=48 MHz\nteensyLC.menu.speed.24=24 MHz\nteensyLC.menu.speed.48.build.fcpu=48000000\nteensyLC.menu.speed.24.build.fcpu=24000000\n\nteensyLC.menu.opt.osstd=Smallest Code\nteensyLC.menu.opt.osstd.build.flags.optimize=-Os --specs=nano.specs\nteensyLC.menu.opt.osstd.build.flags.ldspecs=\nteensyLC.menu.opt.oslto=Smallest Code with LTO\nteensyLC.menu.opt.oslto.build.flags.optimize=-Os -flto -fno-fat-lto-objects --specs=nano.specs\nteensyLC.menu.opt.oslto.build.flags.ldspecs=-fuse-linker-plugin\nteensyLC.menu.opt.ogstd=Debug\nteensyLC.menu.opt.ogstd.build.flags.optimize=-Og\nteensyLC.menu.opt.ogstd.build.flags.ldspecs=\nteensyLC.menu.opt.oglto=Debug with LTO\nteensyLC.menu.opt.oglto.build.flags.optimize=-Og -flto -fno-fat-lto-objects\nteensyLC.menu.opt.oglto.build.flags.ldspecs=-fuse-linker-plugin\nteensyLC.menu.opt.o3std=Fastest\nteensyLC.menu.opt.o3std.build.flags.optimize=-O3\nteensyLC.menu.opt.o3std.build.flags.ldspecs=\nteensyLC.menu.opt.o3lto=Fastest with LTO\nteensyLC.menu.opt.o3lto.build.flags.optimize=-O3 -flto -fno-fat-lto-objects\nteensyLC.menu.opt.o3lto.build.flags.ldspecs=-fuse-linker-plugin\nteensyLC.menu.opt.o2std=Faster\nteensyLC.menu.opt.o2std.build.flags.optimize=-O2\nteensyLC.menu.opt.o2std.build.flags.ldspecs=\nteensyLC.menu.opt.o2lto=Faster with LTO\nteensyLC.menu.opt.o2lto.build.flags.optimize=-O2 -flto -fno-fat-lto-objects\nteensyLC.menu.opt.o2lto.build.flags.ldspecs=-fuse-linker-plugin\nteensyLC.menu.opt.o1std=Fast\nteensyLC.menu.opt.o1std.build.flags.optimize=-O1\nteensyLC.menu.opt.o1std.build.flags.ldspecs=\nteensyLC.menu.opt.o1lto=Fast with LTO\nteensyLC.menu.opt.o1lto.build.flags.optimize=-O1 -flto -fno-fat-lto-objects\nteensyLC.menu.opt.o1lto.build.flags.ldspecs=-fuse-linker-plugin\n\nteensyLC.menu.keys.en-us=US English\nteensyLC.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensyLC.menu.keys.fr-ca=Canadian French\nteensyLC.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensyLC.menu.keys.xx-ca=Canadian Multilingual\nteensyLC.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensyLC.menu.keys.cz-cz=Czech\nteensyLC.menu.keys.cz-cz.build.keylayout=CZECH\nteensyLC.menu.keys.da-da=Danish\nteensyLC.menu.keys.da-da.build.keylayout=DANISH\nteensyLC.menu.keys.fi-fi=Finnish\nteensyLC.menu.keys.fi-fi.build.keylayout=FINNISH\nteensyLC.menu.keys.fr-fr=French\nteensyLC.menu.keys.fr-fr.build.keylayout=FRENCH\nteensyLC.menu.keys.fr-be=French Belgian\nteensyLC.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensyLC.menu.keys.fr-ch=French Swiss\nteensyLC.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensyLC.menu.keys.de-de=German\nteensyLC.menu.keys.de-de.build.keylayout=GERMAN\nteensyLC.menu.keys.de-dm=German (Mac)\nteensyLC.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensyLC.menu.keys.de-ch=German Swiss\nteensyLC.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensyLC.menu.keys.is-is=Icelandic\nteensyLC.menu.keys.is-is.build.keylayout=ICELANDIC\nteensyLC.menu.keys.en-ie=Irish\nteensyLC.menu.keys.en-ie.build.keylayout=IRISH\nteensyLC.menu.keys.it-it=Italian\nteensyLC.menu.keys.it-it.build.keylayout=ITALIAN\nteensyLC.menu.keys.no-no=Norwegian\nteensyLC.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensyLC.menu.keys.pt-pt=Portuguese\nteensyLC.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensyLC.menu.keys.pt-br=Portuguese Brazilian\nteensyLC.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensyLC.menu.keys.rs-rs=Serbian (Latin Only)\nteensyLC.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensyLC.menu.keys.es-es=Spanish\nteensyLC.menu.keys.es-es.build.keylayout=SPANISH\nteensyLC.menu.keys.es-mx=Spanish Latin America\nteensyLC.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensyLC.menu.keys.sv-se=Swedish\nteensyLC.menu.keys.sv-se.build.keylayout=SWEDISH\nteensyLC.menu.keys.tr-tr=Turkish (partial)\nteensyLC.menu.keys.tr-tr.build.keylayout=TURKISH\nteensyLC.menu.keys.en-gb=United Kingdom\nteensyLC.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensyLC.menu.keys.usint=US International\nteensyLC.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensypp2.name=Teensy++ 2.0\nteensypp2.upload.maximum_size=130048\nteensypp2.upload.maximum_data_size=8192\nteensypp2.upload.tool=teensyloader\nteensypp2.upload.protocol=halfkay\nteensypp2.build.board=TEENSY2PP\nteensypp2.build.core=teensy\nteensypp2.build.mcu=at90usb1286\nteensypp2.build.warn_data_percentage=94\nteensypp2.build.toolchain=avr/bin/\nteensypp2.build.command.gcc=avr-gcc\nteensypp2.build.command.g++=avr-g++\nteensypp2.build.command.ar=avr-ar\nteensypp2.build.command.objcopy=avr-objcopy\nteensypp2.build.command.objdump=avr-objdump\nteensypp2.build.command.linker=avr-gcc\nteensypp2.build.command.size=avr-size\nteensypp2.build.flags.common=-g -Wall -ffunction-sections -fdata-sections\nteensypp2.build.flags.dep=-MMD\nteensypp2.build.flags.optimize=-Os\nteensypp2.build.flags.cpu=-mmcu=at90usb1286\nteensypp2.build.flags.defs=-DTEENSYDUINO=154 -DARDUINO_ARCH_AVR\nteensypp2.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++11\nteensypp2.build.flags.c=\nteensypp2.build.flags.S=-x assembler-with-cpp\nteensypp2.build.flags.ld=-Wl,--gc-sections,--relax\nteensypp2.build.flags.ldspecs=\nteensypp2.build.flags.libs=-lm\nteensypp2.build.serial_number=true\nteensypp2.serial.restart_cmd=true\n\nteensypp2.menu.usb.serial=Serial\nteensypp2.menu.usb.serial.build.usbtype=USB_SERIAL\nteensypp2.menu.usb.hid=Keyboard + Mouse + Joystick\nteensypp2.menu.usb.hid.build.usbtype=USB_HID\nteensypp2.menu.usb.hid.fake_serial=teensy_gateway\nteensypp2.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensypp2.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensypp2.menu.usb.int_disk=Disk(Internal) + Keyboard\nteensypp2.menu.usb.int_disk.build.usbtype=USB_DISK\nteensypp2.menu.usb.int_disk.fake_serial=teensy_gateway\nteensypp2.menu.usb.int_disk.build.elfpatch=mktinyfat\nteensypp2.menu.usb.sd_disk=Disk(SD Card) + Keyboard\nteensypp2.menu.usb.sd_disk.build.usbtype=USB_DISK_SDFLASH\nteensypp2.menu.usb.sd_disk.fake_serial=teensy_gateway\nteensypp2.menu.usb.midi=MIDI\nteensypp2.menu.usb.midi.build.usbtype=USB_MIDI\nteensypp2.menu.usb.midi.fake_serial=teensy_gateway\nteensypp2.menu.usb.rawhid=Raw HID\nteensypp2.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensypp2.menu.usb.rawhid.fake_serial=teensy_gateway\nteensypp2.menu.usb.flightsim=Flight Sim Controls\nteensypp2.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensypp2.menu.usb.flightsim.fake_serial=teensy_gateway\nteensypp2.menu.speed.16=16 MHz\nteensypp2.menu.speed.8=8 MHz\nteensypp2.menu.speed.4=4 MHz\nteensypp2.menu.speed.2=2 MHz\nteensypp2.menu.speed.1=1 MHz\nteensypp2.menu.speed.16.build.fcpu=16000000L\nteensypp2.menu.speed.8.build.fcpu=8000000L\nteensypp2.menu.speed.4.build.fcpu=4000000L\nteensypp2.menu.speed.2.build.fcpu=2000000L\nteensypp2.menu.speed.1.build.fcpu=1000000L\n\nteensypp2.menu.keys.en-us=US English\nteensypp2.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensypp2.menu.keys.fr-ca=Canadian French\nteensypp2.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensypp2.menu.keys.xx-ca=Canadian Multilingual\nteensypp2.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensypp2.menu.keys.cz-cz=Czech\nteensypp2.menu.keys.cz-cz.build.keylayout=CZECH\nteensypp2.menu.keys.da-da=Danish\nteensypp2.menu.keys.da-da.build.keylayout=DANISH\nteensypp2.menu.keys.fi-fi=Finnish\nteensypp2.menu.keys.fi-fi.build.keylayout=FINNISH\nteensypp2.menu.keys.fr-fr=French\nteensypp2.menu.keys.fr-fr.build.keylayout=FRENCH\nteensypp2.menu.keys.fr-be=French Belgian\nteensypp2.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensypp2.menu.keys.fr-ch=French Swiss\nteensypp2.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensypp2.menu.keys.de-de=German\nteensypp2.menu.keys.de-de.build.keylayout=GERMAN\nteensypp2.menu.keys.de-dm=German (Mac)\nteensypp2.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensypp2.menu.keys.de-ch=German Swiss\nteensypp2.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensypp2.menu.keys.is-is=Icelandic\nteensypp2.menu.keys.is-is.build.keylayout=ICELANDIC\nteensypp2.menu.keys.en-ie=Irish\nteensypp2.menu.keys.en-ie.build.keylayout=IRISH\nteensypp2.menu.keys.it-it=Italian\nteensypp2.menu.keys.it-it.build.keylayout=ITALIAN\nteensypp2.menu.keys.no-no=Norwegian\nteensypp2.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensypp2.menu.keys.pt-pt=Portuguese\nteensypp2.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensypp2.menu.keys.pt-br=Portuguese Brazilian\nteensypp2.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensypp2.menu.keys.rs-rs=Serbian (Latin Only)\nteensypp2.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensypp2.menu.keys.es-es=Spanish\nteensypp2.menu.keys.es-es.build.keylayout=SPANISH\nteensypp2.menu.keys.es-mx=Spanish Latin America\nteensypp2.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensypp2.menu.keys.sv-se=Swedish\nteensypp2.menu.keys.sv-se.build.keylayout=SWEDISH\nteensypp2.menu.keys.tr-tr=Turkish (partial)\nteensypp2.menu.keys.tr-tr.build.keylayout=TURKISH\nteensypp2.menu.keys.en-gb=United Kingdom\nteensypp2.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensypp2.menu.keys.usint=US International\nteensypp2.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\nteensy2.name=Teensy 2.0\nteensy2.upload.maximum_size=32256\nteensy2.upload.maximum_data_size=2560\nteensy2.upload.tool=teensyloader\nteensy2.upload.protocol=halfkay\nteensy2.build.board=TEENSY2\nteensy2.build.core=teensy\nteensy2.build.mcu=atmega32u4\nteensy2.build.warn_data_percentage=80\nteensy2.build.toolchain=avr/bin/\nteensy2.build.command.gcc=avr-gcc\nteensy2.build.command.g++=avr-g++\nteensy2.build.command.ar=avr-ar\nteensy2.build.command.objcopy=avr-objcopy\nteensy2.build.command.objdump=avr-objdump\nteensy2.build.command.linker=avr-gcc\nteensy2.build.command.size=avr-size\nteensy2.build.flags.common=-g -Wall -ffunction-sections -fdata-sections\nteensy2.build.flags.dep=-MMD\nteensy2.build.flags.optimize=-Os\nteensy2.build.flags.cpu=-mmcu=atmega32u4\nteensy2.build.flags.defs=-DTEENSYDUINO=154 -DARDUINO_ARCH_AVR\nteensy2.build.flags.cpp=-fno-exceptions -fpermissive -felide-constructors -std=gnu++11\nteensy2.build.flags.c=\nteensy2.build.flags.S=-x assembler-with-cpp\nteensy2.build.flags.ld=-Wl,--gc-sections,--relax\nteensy2.build.flags.ldspecs=\nteensy2.build.flags.libs=-lm\nteensy2.build.serial_number=true\nteensy2.serial.restart_cmd=true\n\nteensy2.menu.usb.serial=Serial\nteensy2.menu.usb.serial.build.usbtype=USB_SERIAL\nteensy2.menu.usb.hid=Keyboard + Mouse + Joystick\nteensy2.menu.usb.hid.build.usbtype=USB_HID\nteensy2.menu.usb.hid.fake_serial=teensy_gateway\nteensy2.menu.usb.serialhid=Serial + Keyboard + Mouse + Joystick\nteensy2.menu.usb.serialhid.build.usbtype=USB_SERIAL_HID\nteensy2.menu.usb.int_disk=Disk(Internal) + Keyboard\nteensy2.menu.usb.int_disk.build.usbtype=USB_DISK\nteensy2.menu.usb.int_disk.fake_serial=teensy_gateway\nteensy2.menu.usb.int_disk.build.elfpatch=mktinyfat\nteensy2.menu.usb.sd_disk=Disk(SD Card) + Keyboard\nteensy2.menu.usb.sd_disk.build.usbtype=USB_DISK_SDFLASH\nteensy2.menu.usb.sd_disk.fake_serial=teensy_gateway\nteensy2.menu.usb.midi=MIDI\nteensy2.menu.usb.midi.build.usbtype=USB_MIDI\nteensy2.menu.usb.midi.fake_serial=teensy_gateway\nteensy2.menu.usb.rawhid=Raw HID\nteensy2.menu.usb.rawhid.build.usbtype=USB_RAWHID\nteensy2.menu.usb.rawhid.fake_serial=teensy_gateway\nteensy2.menu.usb.flightsim=Flight Sim Controls\nteensy2.menu.usb.flightsim.build.usbtype=USB_FLIGHTSIM\nteensy2.menu.usb.flightsim.fake_serial=teensy_gateway\nteensy2.menu.speed.16=16 MHz\nteensy2.menu.speed.8=8 MHz\nteensy2.menu.speed.4=4 MHz\nteensy2.menu.speed.2=2 MHz\nteensy2.menu.speed.1=1 MHz\nteensy2.menu.speed.16.build.fcpu=16000000L\nteensy2.menu.speed.8.build.fcpu=8000000L\nteensy2.menu.speed.4.build.fcpu=4000000L\nteensy2.menu.speed.2.build.fcpu=2000000L\nteensy2.menu.speed.1.build.fcpu=1000000L\n\nteensy2.menu.keys.en-us=US English\nteensy2.menu.keys.en-us.build.keylayout=US_ENGLISH\nteensy2.menu.keys.fr-ca=Canadian French\nteensy2.menu.keys.fr-ca.build.keylayout=CANADIAN_FRENCH\nteensy2.menu.keys.xx-ca=Canadian Multilingual\nteensy2.menu.keys.xx-ca.build.keylayout=CANADIAN_MULTILINGUAL\nteensy2.menu.keys.cz-cz=Czech\nteensy2.menu.keys.cz-cz.build.keylayout=CZECH\nteensy2.menu.keys.da-da=Danish\nteensy2.menu.keys.da-da.build.keylayout=DANISH\nteensy2.menu.keys.fi-fi=Finnish\nteensy2.menu.keys.fi-fi.build.keylayout=FINNISH\nteensy2.menu.keys.fr-fr=French\nteensy2.menu.keys.fr-fr.build.keylayout=FRENCH\nteensy2.menu.keys.fr-be=French Belgian\nteensy2.menu.keys.fr-be.build.keylayout=FRENCH_BELGIAN\nteensy2.menu.keys.fr-ch=French Swiss\nteensy2.menu.keys.fr-ch.build.keylayout=FRENCH_SWISS\nteensy2.menu.keys.de-de=German\nteensy2.menu.keys.de-de.build.keylayout=GERMAN\nteensy2.menu.keys.de-dm=German (Mac)\nteensy2.menu.keys.de-dm.build.keylayout=GERMAN_MAC\nteensy2.menu.keys.de-ch=German Swiss\nteensy2.menu.keys.de-ch.build.keylayout=GERMAN_SWISS\nteensy2.menu.keys.is-is=Icelandic\nteensy2.menu.keys.is-is.build.keylayout=ICELANDIC\nteensy2.menu.keys.en-ie=Irish\nteensy2.menu.keys.en-ie.build.keylayout=IRISH\nteensy2.menu.keys.it-it=Italian\nteensy2.menu.keys.it-it.build.keylayout=ITALIAN\nteensy2.menu.keys.no-no=Norwegian\nteensy2.menu.keys.no-no.build.keylayout=NORWEGIAN\nteensy2.menu.keys.pt-pt=Portuguese\nteensy2.menu.keys.pt-pt.build.keylayout=PORTUGUESE\nteensy2.menu.keys.pt-br=Portuguese Brazilian\nteensy2.menu.keys.pt-br.build.keylayout=PORTUGUESE_BRAZILIAN\nteensy2.menu.keys.rs-rs=Serbian (Latin Only)\nteensy2.menu.keys.rs-rs.build.keylayout=SERBIAN_LATIN_ONLY\nteensy2.menu.keys.es-es=Spanish\nteensy2.menu.keys.es-es.build.keylayout=SPANISH\nteensy2.menu.keys.es-mx=Spanish Latin America\nteensy2.menu.keys.es-mx.build.keylayout=SPANISH_LATIN_AMERICA\nteensy2.menu.keys.sv-se=Swedish\nteensy2.menu.keys.sv-se.build.keylayout=SWEDISH\nteensy2.menu.keys.tr-tr=Turkish (partial)\nteensy2.menu.keys.tr-tr.build.keylayout=TURKISH\nteensy2.menu.keys.en-gb=United Kingdom\nteensy2.menu.keys.en-gb.build.keylayout=UNITED_KINGDOM\nteensy2.menu.keys.usint=US International\nteensy2.menu.keys.usint.build.keylayout=US_INTERNATIONAL\n\n\n"
</script>
<script type="text/x-red" data-container-name="arduino_boards_txt">
"# See: http://code.google.com/p/arduino/wiki/Platforms\n\nmenu.cpu=Processor\n\n##############################################################\n\nyun.name=Arduino Yún\nyun.upload.via_ssh=true\n\nyun.vid.0=0x2341\nyun.pid.0=0x0041\nyun.vid.1=0x2341\nyun.pid.1=0x8041\nyun.vid.2=0x2A03\nyun.pid.2=0x0041\nyun.vid.3=0x2A03\nyun.pid.3=0x8041\n\nyun.upload.tool=avrdude\nyun.upload.protocol=avr109\nyun.upload.maximum_size=28672\nyun.upload.maximum_data_size=2560\nyun.upload.speed=57600\nyun.upload.disable_flushing=true\nyun.upload.use_1200bps_touch=true\nyun.upload.wait_for_upload_port=true\n\nyun.bootloader.tool=avrdude\nyun.bootloader.low_fuses=0xff\nyun.bootloader.high_fuses=0xd8\nyun.bootloader.extended_fuses=0xfb\nyun.bootloader.file=caterina/Caterina-Yun.hex\nyun.bootloader.noblink=caterina/Caterina-Yun-noblink.hex\nyun.bootloader.unlock_bits=0x3F\nyun.bootloader.lock_bits=0x2F\n\nyun.build.mcu=atmega32u4\nyun.build.f_cpu=16000000L\nyun.build.vid=0x2341\nyun.build.pid=0x8041\nyun.build.usb_product=\"Arduino Yun\"\nyun.build.board=AVR_YUN\nyun.build.core=arduino\nyun.build.variant=yun\nyun.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nuno.name=Arduino Uno\n\nuno.vid.0=0x2341\nuno.pid.0=0x0043\nuno.vid.1=0x2341\nuno.pid.1=0x0001\nuno.vid.2=0x2A03\nuno.pid.2=0x0043\nuno.vid.3=0x2341\nuno.pid.3=0x0243\n\nuno.upload.tool=avrdude\nuno.upload.protocol=arduino\nuno.upload.maximum_size=32256\nuno.upload.maximum_data_size=2048\nuno.upload.speed=115200\n\nuno.bootloader.tool=avrdude\nuno.bootloader.low_fuses=0xFF\nuno.bootloader.high_fuses=0xDE\nuno.bootloader.extended_fuses=0xFD\nuno.bootloader.unlock_bits=0x3F\nuno.bootloader.lock_bits=0x0F\nuno.bootloader.file=optiboot/optiboot_atmega328.hex\n\nuno.build.mcu=atmega328p\nuno.build.f_cpu=16000000L\nuno.build.board=AVR_UNO\nuno.build.core=arduino\nuno.build.variant=standard\n\n##############################################################\n\ndiecimila.name=Arduino Duemilanove or Diecimila\n\ndiecimila.upload.tool=avrdude\ndiecimila.upload.protocol=arduino\n\ndiecimila.bootloader.tool=avrdude\ndiecimila.bootloader.low_fuses=0xFF\ndiecimila.bootloader.unlock_bits=0x3F\ndiecimila.bootloader.lock_bits=0x0F\n\ndiecimila.build.f_cpu=16000000L\ndiecimila.build.board=AVR_DUEMILANOVE\ndiecimila.build.core=arduino\ndiecimila.build.variant=standard\n\n## Arduino Duemilanove or Diecimila w/ ATmega328P\n## ----------------------------------------------\ndiecimila.menu.cpu.atmega328=ATmega328P\n\ndiecimila.menu.cpu.atmega328.upload.maximum_size=30720\ndiecimila.menu.cpu.atmega328.upload.maximum_data_size=2048\ndiecimila.menu.cpu.atmega328.upload.speed=57600\n\ndiecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA\ndiecimila.menu.cpu.atmega328.bootloader.extended_fuses=0xFD\ndiecimila.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex\n\ndiecimila.menu.cpu.atmega328.build.mcu=atmega328p\n\n## Arduino Duemilanove or Diecimila w/ ATmega168\n## ---------------------------------------------\ndiecimila.menu.cpu.atmega168=ATmega168\n\ndiecimila.menu.cpu.atmega168.upload.maximum_size=14336\ndiecimila.menu.cpu.atmega168.upload.maximum_data_size=1024\ndiecimila.menu.cpu.atmega168.upload.speed=19200\n\ndiecimila.menu.cpu.atmega168.bootloader.high_fuses=0xdd\ndiecimila.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\ndiecimila.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex\n\ndiecimila.menu.cpu.atmega168.build.mcu=atmega168\n\n##############################################################\n\nnano.name=Arduino Nano\n\nnano.upload.tool=avrdude\nnano.upload.protocol=arduino\n\nnano.bootloader.tool=avrdude\nnano.bootloader.unlock_bits=0x3F\nnano.bootloader.lock_bits=0x0F\n\nnano.build.f_cpu=16000000L\nnano.build.board=AVR_NANO\nnano.build.core=arduino\nnano.build.variant=eightanaloginputs\n\n## Arduino Nano w/ ATmega328P\n## --------------------------\nnano.menu.cpu.atmega328=ATmega328P\n\nnano.menu.cpu.atmega328.upload.maximum_size=30720\nnano.menu.cpu.atmega328.upload.maximum_data_size=2048\nnano.menu.cpu.atmega328.upload.speed=115200\n\nnano.menu.cpu.atmega328.bootloader.low_fuses=0xFF\nnano.menu.cpu.atmega328.bootloader.high_fuses=0xDA\nnano.menu.cpu.atmega328.bootloader.extended_fuses=0xFD\nnano.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex\n\nnano.menu.cpu.atmega328.build.mcu=atmega328p\n\n## Arduino Nano w/ ATmega328P (old bootloader)\n## --------------------------\nnano.menu.cpu.atmega328old=ATmega328P (Old Bootloader)\n\nnano.menu.cpu.atmega328old.upload.maximum_size=30720\nnano.menu.cpu.atmega328old.upload.maximum_data_size=2048\nnano.menu.cpu.atmega328old.upload.speed=57600\n\nnano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF\nnano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA\nnano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD\nnano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex\n\nnano.menu.cpu.atmega328old.build.mcu=atmega328p\n\n## Arduino Nano w/ ATmega168\n## -------------------------\nnano.menu.cpu.atmega168=ATmega168\n\nnano.menu.cpu.atmega168.upload.maximum_size=14336\nnano.menu.cpu.atmega168.upload.maximum_data_size=1024\nnano.menu.cpu.atmega168.upload.speed=19200\n\nnano.menu.cpu.atmega168.bootloader.low_fuses=0xff\nnano.menu.cpu.atmega168.bootloader.high_fuses=0xdd\nnano.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\nnano.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex\n\nnano.menu.cpu.atmega168.build.mcu=atmega168\n\n##############################################################\n\nmega.name=Arduino Mega or Mega 2560\n\nmega.vid.0=0x2341\nmega.pid.0=0x0010\nmega.vid.1=0x2341\nmega.pid.1=0x0042\nmega.vid.2=0x2A03\nmega.pid.2=0x0010\nmega.vid.3=0x2A03\nmega.pid.3=0x0042\nmega.vid.4=0x2341\nmega.pid.4=0x0210\nmega.vid.5=0x2341\nmega.pid.5=0x0242\n\nmega.upload.tool=avrdude\nmega.upload.maximum_data_size=8192\n\nmega.bootloader.tool=avrdude\nmega.bootloader.low_fuses=0xFF\nmega.bootloader.unlock_bits=0x3F\nmega.bootloader.lock_bits=0x0F\n\nmega.build.f_cpu=16000000L\nmega.build.core=arduino\nmega.build.variant=mega\n# default board may be overridden by the cpu menu\nmega.build.board=AVR_MEGA2560\n\n## Arduino Mega w/ ATmega2560\n## -------------------------\nmega.menu.cpu.atmega2560=ATmega2560 (Mega 2560)\n\nmega.menu.cpu.atmega2560.upload.protocol=wiring\nmega.menu.cpu.atmega2560.upload.maximum_size=253952\nmega.menu.cpu.atmega2560.upload.speed=115200\n\nmega.menu.cpu.atmega2560.bootloader.high_fuses=0xD8\nmega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD\nmega.menu.cpu.atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex\n\nmega.menu.cpu.atmega2560.build.mcu=atmega2560\nmega.menu.cpu.atmega2560.build.board=AVR_MEGA2560\n\n## Arduino Mega w/ ATmega1280\n## -------------------------\nmega.menu.cpu.atmega1280=ATmega1280\n\nmega.menu.cpu.atmega1280.upload.protocol=arduino\nmega.menu.cpu.atmega1280.upload.maximum_size=126976\nmega.menu.cpu.atmega1280.upload.speed=57600\n\nmega.menu.cpu.atmega1280.bootloader.high_fuses=0xDA\nmega.menu.cpu.atmega1280.bootloader.extended_fuses=0xF5\nmega.menu.cpu.atmega1280.bootloader.file=atmega/ATmegaBOOT_168_atmega1280.hex\n\nmega.menu.cpu.atmega1280.build.mcu=atmega1280\nmega.menu.cpu.atmega1280.build.board=AVR_MEGA\n\n##############################################################\n\nmegaADK.name=Arduino Mega ADK\n\nmegaADK.vid.0=0x2341\nmegaADK.pid.0=0x003f\nmegaADK.vid.1=0x2341\nmegaADK.pid.1=0x0044\nmegaADK.vid.2=0x2A03\nmegaADK.pid.2=0x003f\nmegaADK.vid.3=0x2A03\nmegaADK.pid.3=0x0044\n\nmegaADK.upload.tool=avrdude\nmegaADK.upload.protocol=wiring\nmegaADK.upload.maximum_size=253952\nmegaADK.upload.maximum_data_size=8192\nmegaADK.upload.speed=115200\n\nmegaADK.bootloader.tool=avrdude\nmegaADK.bootloader.low_fuses=0xFF\nmegaADK.bootloader.high_fuses=0xD8\nmegaADK.bootloader.extended_fuses=0xFD\nmegaADK.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex\nmegaADK.bootloader.unlock_bits=0x3F\nmegaADK.bootloader.lock_bits=0x0F\n\nmegaADK.build.mcu=atmega2560\nmegaADK.build.f_cpu=16000000L\nmegaADK.build.board=AVR_ADK\nmegaADK.build.core=arduino\nmegaADK.build.variant=mega\n\n##############################################################\n\nleonardo.name=Arduino Leonardo\nleonardo.vid.0=0x2341\nleonardo.pid.0=0x0036\nleonardo.vid.1=0x2341\nleonardo.pid.1=0x8036\nleonardo.vid.2=0x2A03\nleonardo.pid.2=0x0036\nleonardo.vid.3=0x2A03\nleonardo.pid.3=0x8036\n\nleonardo.upload.tool=avrdude\nleonardo.upload.protocol=avr109\nleonardo.upload.maximum_size=28672\nleonardo.upload.maximum_data_size=2560\nleonardo.upload.speed=57600\nleonardo.upload.disable_flushing=true\nleonardo.upload.use_1200bps_touch=true\nleonardo.upload.wait_for_upload_port=true\n\nleonardo.bootloader.tool=avrdude\nleonardo.bootloader.low_fuses=0xff\nleonardo.bootloader.high_fuses=0xd8\nleonardo.bootloader.extended_fuses=0xcb\nleonardo.bootloader.file=caterina/Caterina-Leonardo.hex\nleonardo.bootloader.unlock_bits=0x3F\nleonardo.bootloader.lock_bits=0x2F\n\nleonardo.build.mcu=atmega32u4\nleonardo.build.f_cpu=16000000L\nleonardo.build.vid=0x2341\nleonardo.build.pid=0x8036\nleonardo.build.usb_product=\"Arduino Leonardo\"\nleonardo.build.board=AVR_LEONARDO\nleonardo.build.core=arduino\nleonardo.build.variant=leonardo\nleonardo.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nleonardoeth.name=Arduino Leonardo ETH\nleonardoeth.vid.0=0x2a03\nleonardoeth.pid.0=0x0040\nleonardoeth.vid.1=0x2a03\nleonardoeth.pid.1=0x8040\n\nleonardoeth.upload.tool=avrdude\nleonardoeth.upload.protocol=avr109\nleonardoeth.upload.maximum_size=28672\nleonardoeth.upload.maximum_data_size=2560\nleonardoeth.upload.speed=57600\nleonardoeth.upload.disable_flushing=true\nleonardoeth.upload.use_1200bps_touch=true\nleonardoeth.upload.wait_for_upload_port=true\n\nleonardoeth.bootloader.tool=avrdude\nleonardoeth.bootloader.low_fuses=0xff\nleonardoeth.bootloader.high_fuses=0xd8\nleonardoeth.bootloader.extended_fuses=0xcb\nleonardoeth.bootloader.file=caterina/Caterina-LeonardoEthernet.hex\nleonardoeth.bootloader.unlock_bits=0x3F\nleonardoeth.bootloader.lock_bits=0x2F\n\nleonardoeth.build.mcu=atmega32u4\nleonardoeth.build.f_cpu=16000000L\nleonardoeth.build.vid=0x2a03\nleonardoeth.build.pid=0x8040\nleonardoeth.build.usb_product=\"Arduino Leonardo ETH\"\nleonardoeth.build.board=AVR_LEONARDO_ETH\nleonardoeth.build.core=arduino\nleonardoeth.build.variant=leonardo\nleonardoeth.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nmicro.name=Arduino Micro\n\nmicro.vid.0=0x2341\nmicro.pid.0=0x0037\nmicro.vid.1=0x2341\nmicro.pid.1=0x8037\nmicro.vid.2=0x2A03\nmicro.pid.2=0x0037\nmicro.vid.3=0x2A03\nmicro.pid.3=0x8037\nmicro.vid.4=0x2341\nmicro.pid.4=0x0237\nmicro.vid.5=0x2341\nmicro.pid.5=0x8237\n\nmicro.upload.tool=avrdude\nmicro.upload.protocol=avr109\nmicro.upload.maximum_size=28672\nmicro.upload.maximum_data_size=2560\nmicro.upload.speed=57600\nmicro.upload.disable_flushing=true\nmicro.upload.use_1200bps_touch=true\nmicro.upload.wait_for_upload_port=true\n\nmicro.bootloader.tool=avrdude\nmicro.bootloader.low_fuses=0xff\nmicro.bootloader.high_fuses=0xd8\nmicro.bootloader.extended_fuses=0xcb\nmicro.bootloader.file=caterina/Caterina-Micro.hex\nmicro.bootloader.unlock_bits=0x3F\nmicro.bootloader.lock_bits=0x2F\n\nmicro.build.mcu=atmega32u4\nmicro.build.f_cpu=16000000L\nmicro.build.vid=0x2341\nmicro.build.pid=0x8037\nmicro.build.usb_product=\"Arduino Micro\"\nmicro.build.board=AVR_MICRO\nmicro.build.core=arduino\nmicro.build.variant=micro\nmicro.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nesplora.name=Arduino Esplora\nesplora.vid.0=0x2341\nesplora.pid.0=0x003C\nesplora.vid.1=0x2341\nesplora.pid.1=0x803C\nesplora.vid.2=0x2A03\nesplora.pid.2=0x003C\nesplora.vid.3=0x2A03\nesplora.pid.3=0x803C\n\nesplora.upload.tool=avrdude\nesplora.upload.protocol=avr109\nesplora.upload.maximum_size=28672\nesplora.upload.maximum_data_size=2560\nesplora.upload.speed=57600\nesplora.upload.disable_flushing=true\nesplora.upload.use_1200bps_touch=true\nesplora.upload.wait_for_upload_port=true\n\nesplora.bootloader.tool=avrdude\nesplora.bootloader.low_fuses=0xff\nesplora.bootloader.high_fuses=0xd8\nesplora.bootloader.extended_fuses=0xcb\nesplora.bootloader.file=caterina/Caterina-Esplora.hex\nesplora.bootloader.unlock_bits=0x3F\nesplora.bootloader.lock_bits=0x2F\n\nesplora.build.mcu=atmega32u4\nesplora.build.f_cpu=16000000L\nesplora.build.vid=0x2341\nesplora.build.pid=0x803c\nesplora.build.usb_product=\"Arduino Esplora\"\nesplora.build.board=AVR_ESPLORA\nesplora.build.core=arduino\nesplora.build.variant=leonardo\nesplora.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nmini.name=Arduino Mini\n\nmini.upload.tool=avrdude\nmini.upload.protocol=arduino\n\nmini.bootloader.tool=avrdude\nmini.bootloader.low_fuses=0xff\nmini.bootloader.unlock_bits=0x3F\nmini.bootloader.lock_bits=0x0F\n\nmini.build.f_cpu=16000000L\nmini.build.board=AVR_MINI\nmini.build.core=arduino\nmini.build.variant=eightanaloginputs\n\n## Arduino Mini w/ ATmega328P\n## --------------------------\nmini.menu.cpu.atmega328=ATmega328P\n\nmini.menu.cpu.atmega328.upload.maximum_size=28672\nmini.menu.cpu.atmega328.upload.maximum_data_size=2048\nmini.menu.cpu.atmega328.upload.speed=115200\n\nmini.menu.cpu.atmega328.bootloader.high_fuses=0xd8\nmini.menu.cpu.atmega328.bootloader.extended_fuses=0xFD\nmini.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328-Mini.hex\n\nmini.menu.cpu.atmega328.build.mcu=atmega328p\n\n## Arduino Mini w/ ATmega168\n## -------------------------\nmini.menu.cpu.atmega168=ATmega168\n\nmini.menu.cpu.atmega168.upload.maximum_size=14336\nmini.menu.cpu.atmega168.upload.maximum_data_size=1024\nmini.menu.cpu.atmega168.upload.speed=19200\n\nmini.menu.cpu.atmega168.bootloader.high_fuses=0xdd\nmini.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\nmini.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex\n\nmini.menu.cpu.atmega168.build.mcu=atmega168\n\n##############################################################\n\nethernet.name=Arduino Ethernet\n\nethernet.upload.tool=avrdude\nethernet.upload.protocol=arduino\nethernet.upload.maximum_size=32256\nethernet.upload.maximum_data_size=2048\nethernet.upload.speed=115200\n\nethernet.bootloader.tool=avrdude\nethernet.bootloader.low_fuses=0xff\nethernet.bootloader.high_fuses=0xde\nethernet.bootloader.extended_fuses=0xFD\nethernet.bootloader.file=optiboot/optiboot_atmega328.hex\nethernet.bootloader.unlock_bits=0x3F\nethernet.bootloader.lock_bits=0x0F\n\nethernet.build.variant=ethernet\nethernet.build.mcu=atmega328p\nethernet.build.f_cpu=16000000L\nethernet.build.board=AVR_ETHERNET\nethernet.build.core=arduino\n\n##############################################################\n\nfio.name=Arduino Fio\n\nfio.upload.tool=avrdude\nfio.upload.protocol=arduino\nfio.upload.maximum_size=30720\nfio.upload.maximum_data_size=2048\nfio.upload.speed=57600\n\nfio.bootloader.tool=avrdude\nfio.bootloader.low_fuses=0xFF\nfio.bootloader.high_fuses=0xDA\nfio.bootloader.extended_fuses=0xFD\nfio.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex\nfio.bootloader.unlock_bits=0x3F\nfio.bootloader.lock_bits=0x0F\n\nfio.build.mcu=atmega328p\nfio.build.f_cpu=8000000L\nfio.build.board=AVR_FIO\nfio.build.core=arduino\nfio.build.variant=eightanaloginputs\n\n##############################################################\n\nbt.name=Arduino BT\n\nbt.upload.tool=avrdude\nbt.upload.protocol=arduino\nbt.upload.speed=19200\nbt.upload.disable_flushing=true\n\nbt.bootloader.tool=avrdude\nbt.bootloader.low_fuses=0xff\nbt.bootloader.unlock_bits=0x3F\nbt.bootloader.lock_bits=0x0F\n\nbt.build.f_cpu=16000000L\nbt.build.board=AVR_BT\nbt.build.core=arduino\nbt.build.variant=eightanaloginputs\n\n## Arduino BT w/ ATmega328P\n## ------------------------\nbt.menu.cpu.atmega328=ATmega328P\nbt.menu.cpu.atmega328.upload.maximum_size=28672\nbt.menu.cpu.atmega328.upload.maximum_data_size=2048\n\nbt.menu.cpu.atmega328.bootloader.high_fuses=0xd8\nbt.menu.cpu.atmega328.bootloader.extended_fuses=0xFD\nbt.menu.cpu.atmega328.bootloader.file=bt/ATmegaBOOT_168_atmega328_bt.hex\n\nbt.menu.cpu.atmega328.build.mcu=atmega328p\n\n## Arduino BT w/ ATmega168\n## -----------------------\nbt.menu.cpu.atmega168=ATmega168\nbt.menu.cpu.atmega168.upload.maximum_size=14336\nbt.menu.cpu.atmega168.upload.maximum_data_size=1024\n\nbt.menu.cpu.atmega168.bootloader.high_fuses=0xdd\nbt.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\nbt.menu.cpu.atmega168.bootloader.file=bt/ATmegaBOOT_168.hex\n\nbt.menu.cpu.atmega168.build.mcu=atmega168\n\n##############################################################\n\nLilyPadUSB.name=LilyPad Arduino USB\nLilyPadUSB.vid.0=0x1B4F\nLilyPadUSB.pid.0=0x9207\nLilyPadUSB.vid.1=0x1B4F\nLilyPadUSB.pid.1=0x9208\n\nLilyPadUSB.upload.tool=avrdude\nLilyPadUSB.upload.protocol=avr109\nLilyPadUSB.upload.maximum_size=28672\nLilyPadUSB.upload.maximum_data_size=2560\nLilyPadUSB.upload.speed=57600\nLilyPadUSB.upload.disable_flushing=true\nLilyPadUSB.upload.use_1200bps_touch=true\nLilyPadUSB.upload.wait_for_upload_port=true\n\nLilyPadUSB.bootloader.tool=avrdude\nLilyPadUSB.bootloader.low_fuses=0xff\nLilyPadUSB.bootloader.high_fuses=0xd8\nLilyPadUSB.bootloader.extended_fuses=0xce\nLilyPadUSB.bootloader.file=caterina-LilyPadUSB/Caterina-LilyPadUSB.hex\nLilyPadUSB.bootloader.unlock_bits=0x3F\nLilyPadUSB.bootloader.lock_bits=0x2F\n\nLilyPadUSB.build.mcu=atmega32u4\nLilyPadUSB.build.f_cpu=8000000L\nLilyPadUSB.build.vid=0x1B4F\nLilyPadUSB.build.pid=0x9208\nLilyPadUSB.build.usb_product=\"LilyPad USB\"\nLilyPadUSB.build.board=AVR_LILYPAD_USB\nLilyPadUSB.build.core=arduino\nLilyPadUSB.build.variant=leonardo\nLilyPadUSB.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nlilypad.name=LilyPad Arduino\n\nlilypad.upload.tool=avrdude\nlilypad.upload.protocol=arduino\n\nlilypad.bootloader.tool=avrdude\nlilypad.bootloader.unlock_bits=0x3F\nlilypad.bootloader.lock_bits=0x0F\n\nlilypad.build.f_cpu=8000000L\nlilypad.build.board=AVR_LILYPAD\nlilypad.build.core=arduino\nlilypad.build.variant=standard\n\n## LilyPad Arduino w/ ATmega328P\n## -----------------------------\nlilypad.menu.cpu.atmega328=ATmega328P\n\nlilypad.menu.cpu.atmega328.upload.maximum_size=30720\nlilypad.menu.cpu.atmega328.upload.maximum_data_size=2048\nlilypad.menu.cpu.atmega328.upload.speed=57600\n\nlilypad.menu.cpu.atmega328.bootloader.low_fuses=0xFF\nlilypad.menu.cpu.atmega328.bootloader.high_fuses=0xDA\nlilypad.menu.cpu.atmega328.bootloader.extended_fuses=0xFD\nlilypad.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex\n\nlilypad.menu.cpu.atmega328.build.mcu=atmega328p\n\n## LilyPad Arduino w/ ATmega168\n## ----------------------------\nlilypad.menu.cpu.atmega168=ATmega168\n\nlilypad.menu.cpu.atmega168.upload.maximum_size=14336\nlilypad.menu.cpu.atmega168.upload.maximum_data_size=1024\nlilypad.menu.cpu.atmega168.upload.speed=19200\n\nlilypad.menu.cpu.atmega168.bootloader.low_fuses=0xe2\nlilypad.menu.cpu.atmega168.bootloader.high_fuses=0xdd\nlilypad.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\nlilypad.menu.cpu.atmega168.bootloader.file=lilypad/LilyPadBOOT_168.hex\n\nlilypad.menu.cpu.atmega168.build.mcu=atmega168\n\n##############################################################\n\npro.name=Arduino Pro or Pro Mini\n\npro.upload.tool=avrdude\npro.upload.protocol=arduino\n\npro.bootloader.tool=avrdude\npro.bootloader.unlock_bits=0x3F\npro.bootloader.lock_bits=0x0F\n\npro.build.board=AVR_PRO\npro.build.core=arduino\npro.build.variant=eightanaloginputs\n\n## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P\n## --------------------------------------------------\npro.menu.cpu.16MHzatmega328=ATmega328P (5V, 16 MHz)\n\npro.menu.cpu.16MHzatmega328.upload.maximum_size=30720\npro.menu.cpu.16MHzatmega328.upload.maximum_data_size=2048\npro.menu.cpu.16MHzatmega328.upload.speed=57600\n\npro.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF\npro.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA\npro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0xFD\npro.menu.cpu.16MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex\n\npro.menu.cpu.16MHzatmega328.build.mcu=atmega328p\npro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L\n\n## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328P\n## ---------------------------------------------------\npro.menu.cpu.8MHzatmega328=ATmega328P (3.3V, 8 MHz)\n\npro.menu.cpu.8MHzatmega328.upload.maximum_size=30720\npro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048\npro.menu.cpu.8MHzatmega328.upload.speed=57600\n\npro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF\npro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA\npro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFD\npro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex\n\npro.menu.cpu.8MHzatmega328.build.mcu=atmega328p\npro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L\n\n## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168\n## -------------------------------------------------\npro.menu.cpu.16MHzatmega168=ATmega168 (5V, 16 MHz)\n\npro.menu.cpu.16MHzatmega168.upload.maximum_size=14336\npro.menu.cpu.16MHzatmega168.upload.maximum_data_size=1024\npro.menu.cpu.16MHzatmega168.upload.speed=19200\n\npro.menu.cpu.16MHzatmega168.bootloader.low_fuses=0xff\npro.menu.cpu.16MHzatmega168.bootloader.high_fuses=0xdd\npro.menu.cpu.16MHzatmega168.bootloader.extended_fuses=0xF8\npro.menu.cpu.16MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex\n\npro.menu.cpu.16MHzatmega168.build.mcu=atmega168\npro.menu.cpu.16MHzatmega168.build.f_cpu=16000000L\n\n## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168\n## --------------------------------------------------\npro.menu.cpu.8MHzatmega168=ATmega168 (3.3V, 8 MHz)\n\npro.menu.cpu.8MHzatmega168.upload.maximum_size=14336\npro.menu.cpu.8MHzatmega168.upload.maximum_data_size=1024\npro.menu.cpu.8MHzatmega168.upload.speed=19200\n\npro.menu.cpu.8MHzatmega168.bootloader.low_fuses=0xc6\npro.menu.cpu.8MHzatmega168.bootloader.high_fuses=0xdd\npro.menu.cpu.8MHzatmega168.bootloader.extended_fuses=0xF8\npro.menu.cpu.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex\n\npro.menu.cpu.8MHzatmega168.build.mcu=atmega168\npro.menu.cpu.8MHzatmega168.build.f_cpu=8000000L\n\n##############################################################\n\natmegang.name=Arduino NG or older\n\natmegang.upload.tool=avrdude\natmegang.upload.protocol=arduino\natmegang.upload.speed=19200\n\natmegang.bootloader.tool=avrdude\natmegang.bootloader.unlock_bits=0x3F\natmegang.bootloader.lock_bits=0x0F\n\natmegang.build.mcu=atmegang\natmegang.build.f_cpu=16000000L\natmegang.build.board=AVR_NG\natmegang.build.core=arduino\natmegang.build.variant=standard\n\n## Arduino NG or older w/ ATmega168\n## --------------------------------\natmegang.menu.cpu.atmega168=ATmega168\n\natmegang.menu.cpu.atmega168.upload.maximum_size=14336\natmegang.menu.cpu.atmega168.upload.maximum_data_size=1024\n\natmegang.menu.cpu.atmega168.bootloader.low_fuses=0xff\natmegang.menu.cpu.atmega168.bootloader.high_fuses=0xdd\natmegang.menu.cpu.atmega168.bootloader.extended_fuses=0xF8\natmegang.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_ng.hex\n\natmegang.menu.cpu.atmega168.build.mcu=atmega168\n\n## Arduino NG or older w/ ATmega8\n## ------------------------------\natmegang.menu.cpu.atmega8=ATmega8\n\natmegang.menu.cpu.atmega8.upload.maximum_size=7168\natmegang.menu.cpu.atmega8.upload.maximum_data_size=1024\n\natmegang.menu.cpu.atmega8.bootloader.low_fuses=0xdf\natmegang.menu.cpu.atmega8.bootloader.high_fuses=0xca\natmegang.menu.cpu.atmega8.bootloader.extended_fuses=\natmegang.menu.cpu.atmega8.bootloader.file=atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex\n\natmegang.menu.cpu.atmega8.build.mcu=atmega8\n\n##############################################################\n\nrobotControl.name=Arduino Robot Control\nrobotControl.vid.0=0x2341\nrobotControl.pid.0=0x0038\nrobotControl.vid.1=0x2341\nrobotControl.pid.1=0x8038\nrobotControl.vid.2=0x2A03\nrobotControl.pid.2=0x0038\nrobotControl.vid.3=0x2A03\nrobotControl.pid.3=0x8038\n\nrobotControl.upload.tool=avrdude\nrobotControl.upload.protocol=avr109\nrobotControl.upload.maximum_size=28672\nrobotControl.upload.maximum_data_size=2560\nrobotControl.upload.speed=57600\nrobotControl.upload.disable_flushing=true\nrobotControl.upload.use_1200bps_touch=true\nrobotControl.upload.wait_for_upload_port=true\n\nrobotControl.bootloader.tool=avrdude\nrobotControl.bootloader.low_fuses=0xff\nrobotControl.bootloader.high_fuses=0xd8\nrobotControl.bootloader.extended_fuses=0xcb\nrobotControl.bootloader.file=caterina-Arduino_Robot/Caterina-Robot-Control.hex\nrobotControl.bootloader.unlock_bits=0x3F\nrobotControl.bootloader.lock_bits=0x2F\n\nrobotControl.build.mcu=atmega32u4\nrobotControl.build.f_cpu=16000000L\nrobotControl.build.vid=0x2341\nrobotControl.build.pid=0x8038\nrobotControl.build.usb_product=\"Robot Control\"\nrobotControl.build.board=AVR_ROBOT_CONTROL\nrobotControl.build.core=arduino\nrobotControl.build.variant=robot_control\nrobotControl.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nrobotMotor.name=Arduino Robot Motor\nrobotMotor.vid.0=0x2341\nrobotMotor.pid.0=0x0039\nrobotMotor.vid.1=0x2341\nrobotMotor.pid.1=0x8039\nrobotMotor.vid.2=0x2A03\nrobotMotor.pid.2=0x0039\nrobotMotor.vid.3=0x2A03\nrobotMotor.pid.3=0x8039\n\nrobotMotor.upload.tool=avrdude\nrobotMotor.upload.protocol=avr109\nrobotMotor.upload.maximum_size=28672\nrobotMotor.upload.maximum_data_size=2560\nrobotMotor.upload.speed=57600\nrobotMotor.upload.disable_flushing=true\nrobotMotor.upload.use_1200bps_touch=true\nrobotMotor.upload.wait_for_upload_port=true\n\nrobotMotor.bootloader.tool=avrdude\nrobotMotor.bootloader.low_fuses=0xff\nrobotMotor.bootloader.high_fuses=0xd8\nrobotMotor.bootloader.extended_fuses=0xcb\nrobotMotor.bootloader.file=caterina-Arduino_Robot/Caterina-Robot-Motor.hex\nrobotMotor.bootloader.unlock_bits=0x3F\nrobotMotor.bootloader.lock_bits=0x2F\n\nrobotMotor.build.mcu=atmega32u4\nrobotMotor.build.f_cpu=16000000L\nrobotMotor.build.vid=0x2341\nrobotMotor.build.pid=0x8039\nrobotMotor.build.usb_product=\"Robot Motor\"\nrobotMotor.build.board=AVR_ROBOT_MOTOR\nrobotMotor.build.core=arduino\nrobotMotor.build.variant=robot_motor\nrobotMotor.build.extra_flags={build.usb_flags}\n\n##############################################################\n\ngemma.vid.0=0x2341\ngemma.pid.0=0x0c9f\n\ngemma.name=Arduino Gemma\n\ngemma.bootloader.low_fuses=0xF1\ngemma.bootloader.high_fuses=0xD5\ngemma.bootloader.extended_fuses=0xFE\ngemma.bootloader.tool=avrdude\ngemma.bootloader.lock_bits=\ngemma.bootloader.unlock_bits=\ngemma.bootloader.file=gemma/gemma_v1.hex\n\ngemma.build.mcu=attiny85\ngemma.build.f_cpu=8000000L\ngemma.build.core=arduino\ngemma.build.variant=gemma\ngemma.build.board=AVR_GEMMA\n\ngemma.upload.tool=avrdude\ngemma.upload.maximum_size=5310\n\n##############################################################\n\n# Adafruit Circuit Playground 32u4 w/Caterina Configuration\ncircuitplay32u4cat.name=Adafruit Circuit Playground\ncircuitplay32u4cat.bootloader.low_fuses=0xff\ncircuitplay32u4cat.bootloader.high_fuses=0xd8\ncircuitplay32u4cat.bootloader.extended_fuses=0xcb\ncircuitplay32u4cat.bootloader.file=caterina/Caterina-Circuitplay32u4.hex\ncircuitplay32u4cat.bootloader.unlock_bits=0x3F\ncircuitplay32u4cat.bootloader.lock_bits=0x2F\ncircuitplay32u4cat.bootloader.tool=avrdude\ncircuitplay32u4cat.build.mcu=atmega32u4\ncircuitplay32u4cat.build.f_cpu=8000000L\ncircuitplay32u4cat.build.vid=0x239A\ncircuitplay32u4cat.build.pid=0x8011\ncircuitplay32u4cat.build.core=arduino\ncircuitplay32u4cat.build.variant=circuitplay32u4\ncircuitplay32u4cat.build.board=AVR_CIRCUITPLAY\ncircuitplay32u4cat.build.usb_product=\"Circuit Playground\"\ncircuitplay32u4cat.build.usb_manufacturer=\"Adafruit\"\ncircuitplay32u4cat.build.extra_flags={build.usb_flags}\ncircuitplay32u4cat.upload.protocol=avr109\ncircuitplay32u4cat.upload.maximum_size=28672\ncircuitplay32u4cat.upload.speed=57600\ncircuitplay32u4cat.upload.disable_flushing=true\ncircuitplay32u4cat.upload.use_1200bps_touch=true\ncircuitplay32u4cat.upload.wait_for_upload_port=true\ncircuitplay32u4cat.upload.tool=avrdude\ncircuitplay32u4cat.vid.0=0x239A\ncircuitplay32u4cat.pid.0=0x8011\n\n##############################################################\n\nyunmini.name=Arduino Yún Mini\nyunmini.upload.via_ssh=true\n\nyunmini.vid.0=0x2a03\nyunmini.pid.0=0x0050\nyunmini.vid.1=0x2a03\nyunmini.pid.1=0x8050\n\nyunmini.upload.tool=avrdude\nyunmini.upload.protocol=avr109\nyunmini.upload.maximum_size=28672\nyunmini.upload.maximum_data_size=2560\nyunmini.upload.speed=57600\nyunmini.upload.disable_flushing=true\nyunmini.upload.use_1200bps_touch=true\nyunmini.upload.wait_for_upload_port=true\n\nyunmini.bootloader.tool=avrdude\nyunmini.bootloader.low_fuses=0xff\nyunmini.bootloader.high_fuses=0xd8\nyunmini.bootloader.extended_fuses=0xfb\nyunmini.bootloader.file=caterina/Caterina-YunMini.hex\nyunmini.bootloader.unlock_bits=0x3F\nyunmini.bootloader.lock_bits=0x2F\n\nyunmini.build.mcu=atmega32u4\nyunmini.build.f_cpu=16000000L\nyunmini.build.vid=0x2a03\nyunmini.build.pid=0x8050\nyunmini.build.usb_product=\"Arduino Yún Mini\"\nyunmini.build.board=AVR_YUNMINI\nyunmini.build.core=arduino\nyunmini.build.variant=yun\nyunmini.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nchiwawa.name=Arduino Industrial 101\nchiwawa.upload.via_ssh=true\n\nchiwawa.vid.0=0x2a03\nchiwawa.pid.0=0x0056\nchiwawa.vid.1=0x2a03\nchiwawa.pid.1=0x8056\n\nchiwawa.upload.tool=avrdude\nchiwawa.upload.protocol=avr109\nchiwawa.upload.maximum_size=28672\nchiwawa.upload.maximum_data_size=2560\nchiwawa.upload.speed=57600\nchiwawa.upload.disable_flushing=true\nchiwawa.upload.use_1200bps_touch=true\nchiwawa.upload.wait_for_upload_port=true\n\nchiwawa.bootloader.tool=avrdude\nchiwawa.bootloader.low_fuses=0xff\nchiwawa.bootloader.high_fuses=0xd8\nchiwawa.bootloader.extended_fuses=0xfb\nchiwawa.bootloader.file=caterina/Caterina-Industrial101.hex\nchiwawa.bootloader.unlock_bits=0x3F\nchiwawa.bootloader.lock_bits=0x2F\n\nchiwawa.build.mcu=atmega32u4\nchiwawa.build.f_cpu=16000000L\nchiwawa.build.vid=0x2a03\nchiwawa.build.pid=0x8056\nchiwawa.build.usb_product=\"Arduino Industrial 101\"\nchiwawa.build.board=AVR_INDUSTRIAL101\nchiwawa.build.core=arduino\nchiwawa.build.variant=yun\nchiwawa.build.extra_flags={build.usb_flags}\n\n##############################################################\n\none.name=Linino One\none.upload.via_ssh=true\n\none.vid.0=0x2a03\none.pid.0=0x0001\none.vid.1=0x2a03\none.pid.1=0x8001\n\none.upload.tool=avrdude\none.upload.protocol=avr109\none.upload.maximum_size=28672\none.upload.maximum_data_size=2560\none.upload.speed=57600\none.upload.disable_flushing=true\none.upload.use_1200bps_touch=true\none.upload.wait_for_upload_port=true\n\none.bootloader.tool=avrdude\none.bootloader.low_fuses=0xff\none.bootloader.high_fuses=0xd8\none.bootloader.extended_fuses=0xfb\none.bootloader.file=caterina/Caterina-LininoOne.hex\none.bootloader.unlock_bits=0x3F\none.bootloader.lock_bits=0x2F\n\none.build.mcu=atmega32u4\none.build.f_cpu=16000000L\none.build.vid=0x2a03\none.build.pid=0x8001\none.build.usb_product=\"Linino One\"\none.build.board=AVR_LININO_ONE\none.build.core=arduino\none.build.variant=yun\none.build.extra_flags={build.usb_flags}\n\n##############################################################\n\nunowifi.name=Arduino Uno WiFi\nunowifi.vid.0=0x2A03\nunowifi.pid.0=0x0057\n\nunowifi.upload.tool=avrdude\nunowifi.upload.protocol=arduino\nunowifi.upload.maximum_size=32256\nunowifi.upload.maximum_data_size=2048\nunowifi.upload.speed=115200\nunowifi.upload.network.endpoint_upload=/pgm/upload\nunowifi.upload.network.endpoint_sync=/pgm/sync\nunowifi.upload.network.sync_return=204:SYNC\nunowifi.upload.network.endpoint_reset=/log/reset\nunowifi.upload.network.port=80\n\nunowifi.bootloader.tool=avrdude\nunowifi.bootloader.low_fuses=0xFF\nunowifi.bootloader.high_fuses=0xDE\nunowifi.bootloader.extended_fuses=0x05\nunowifi.bootloader.unlock_bits=0x3F\nunowifi.bootloader.lock_bits=0x0F\nunowifi.bootloader.file=optiboot/optiboot_atmega328.hex\n\nunowifi.build.mcu=atmega328p\nunowifi.build.f_cpu=16000000L\nunowifi.build.board=AVR_UNO_WIFI_DEV_ED\nunowifi.build.core=arduino\nunowifi.build.variant=standard\nunowifi.build.esp_ch_uart_br=19200\nunowifi.build.extra_flags=-DESP_CH_UART -DESP_CH_UART_BR={build.esp_ch_uart_br}\n"
</script>