{
   "id" : "1-50n",
   "is_private" : null,
   "code" : "//Gui for NanoKontrol 2 by GlacioArdor\r\n\r\n//Gui\r\n\r\n(\r\ns.waitForBoot({\r\n\r\nvar win, defFont, title,\r\nccs, lbls, syms, trackLbl;\r\n\r\n// Main window\r\n// Window.closeAll;\r\n\r\nwin = Window.new(\"NanoKontrol2 GUI\", Rect(0, 600, 1024, 300), false, true);\r\nwin.onClose = {s.freeAll; \"NanoKontrol2 GUI window closed.\".postln; \"\".postln};\r\n// win.background = Color.gray(0.9);\r\n//win.alpha = 0.9;\r\n//FreqScope.new;\r\n\r\ntitle = StaticText.new(win, Rect(45, 50, 250, 20));\r\ntitle.align = \\left;\r\ntitle.font = Font(\"Arial\", 28);\r\ntitle.string = \"nanoKONTROL2\";\r\n\r\n//Create 8 slider and add labels\r\nccs = SparseArray.new;\r\nlbls = SparseArray.new;\r\nsyms = SparseArray.new;\r\n\r\n8.do { |i|\r\n\tccs.put(i, Slider.new(win, Rect(343 + (87 * i), 90, 27, 140)));\r\n\tlbls.put(i,\r\n\t\tStaticText.new(win, Rect(335 + (87 * i), 235, 40, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(\"CC#0\" ++ i)\r\n\t);\r\n};\r\n\r\n//Create 8 knobs and labels on top\r\n(16 .. 23).do { |i|\r\n\tccs.put(i, Knob.new(win, Rect(335 + (87 * (i-16)), 25, 45, 45)));\r\n\tlbls.put(i,\r\n\t\tStaticText.new(win, Rect(335 + (87 * (i-16)), 70, 40, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(\"CC#\" ++ i)\r\n\t);\r\n};\r\n\r\n//Create 3 buttons on left of each slider\r\n// for this you need nested loops (there's another trick, but not today)\r\n(32 .. 39).do { |i|\r\n\t3.do { |j|\r\n\t\tvar ccnum = i + (16 * j);\r\n\t\tccs.put(ccnum, Button(win, Rect(310 + (87 * (i-32)), 98 + (47 * j), 26, 26)));\r\n\t\tlbls.put(ccnum,\r\n\t\t\tStaticText.new(win, Rect(302 + (87 * (i-32)), 124 + (47 * j), 40, 20))\r\n\t\t\t.align_(\\center)\r\n\t\t\t.font_(Font(\"Arial\", 11))\r\n\t\t\t.string_(\"CC#\" ++ ccnum)\r\n\t\t);\r\n\t\tsyms.put(ccnum,\r\n\t\t\tStaticText.new(win, Rect(303 + (87 * (i-32)), 102 + (47 * j), 40, 20))\r\n\t\t\t.align_(\\center)\r\n\t\t\t.font_(Font(\"Arial\", 11))\r\n\t\t\t.string_(\"SMR\".at(j))\r\n\t\t);\r\n\t};\r\n};\r\n\r\n[43, 44, 42, 41, 45].do { |ccnum, i|\r\n\tccs.put(ccnum, Button(win, Rect(40 + (50 * i), 192, 26, 26)));\r\n\tlbls.put(ccnum,\r\n\t\tStaticText.new(win, Rect(35 + (50 * i), 218, 40, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(\"CC#\" ++ ccnum)\r\n\t);\r\n\tsyms.put(ccnum,\r\n\t\tStaticText.new(win, Rect(40 + (50 * i), 175, 26, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(#[\"<<\", \">>\", \"□\", \">\", \"o\"].at(i))\r\n\t);\r\n};\r\n\r\n[46, 60, 61, 62].do { |ccnum, i|\r\n\tccs.put(ccnum, Button(win, Rect(40 + (50 * i), 148, 26, 13)));\r\n\tlbls.put(ccnum,\r\n\t\tStaticText.new(win, Rect(35 + (50 * i), 158, 40, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(\"CC#\" ++ ccnum)\r\n\t);\r\n\tsyms.put(ccnum,\r\n\t\tStaticText.new(win, Rect(36 + (50 * i), 132, 32, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 9))\r\n\t\t.string_(#[\"CYCLE\", \"SET\", \"<\", \">\"].at(i))\r\n\t);\r\n};\r\n\r\n[58, 59].do { |ccnum, i|\r\n\tccs.put(ccnum, Button(win, Rect(40 + (50 * i), 104, 26, 13)));\r\n\tlbls.put(ccnum,\r\n\t\tStaticText.new(win, Rect(35 + (50 * i), 114, 40, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(\"CC#\" ++ ccnum)\r\n\t);\r\n\tsyms.put(ccnum,\r\n\t\tStaticText.new(win, Rect(36 + (50 * i), 89, 36, 20))\r\n\t\t.align_(\\center)\r\n\t\t.font_(Font(\"Arial\", 11))\r\n\t\t.string_(#[\"<\", \">\"].at(i))\r\n\t);\r\n};\r\n\r\ntrackLbl = StaticText.new(win, Rect(63, 89, 30, 20));\r\ntrackLbl.align = \\center;\r\ntrackLbl.font = Font(\"Arial\", 9);\r\ntrackLbl.string = \"TRACK\";\r\n\r\nwin.front;\r\n\r\n}); // end of waitForBoot\r\n\r\n)",
   "labels" : [
      "gui"
   ],
   "description" : "GUI for NanoKontrol2 (barebone)",
   "ancestor_list" : [],
   "name" : "«Gui for NanoKontrol 2»",
   "author" : "jmasterj89"
}
