External plugins for Carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

450 lines
18KB

  1. // generated by Fast Light User Interface Designer (fluid) version 1.0300
  2. #include "external/zynaddsubfx/UI/MicrotonalUI.h"
  3. //Copyright (c) 2002-2005 Nasca Octavian Paul
  4. //License: GNU GPL version 2 or later
  5. void MicrotonalUI::cb_Invert_i(Fl_Osc_Check* o, void*) {
  6. if (o->value()==0) centerinvertcounter->deactivate();
  7. else centerinvertcounter->activate();
  8. }
  9. void MicrotonalUI::cb_Invert(Fl_Osc_Check* o, void* v) {
  10. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Invert_i(o,v);
  11. }
  12. void MicrotonalUI::cb_applybutton_i(Fl_Button*, void*) {
  13. apply();
  14. }
  15. void MicrotonalUI::cb_applybutton(Fl_Button* o, void* v) {
  16. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_applybutton_i(o,v);
  17. }
  18. void MicrotonalUI::cb_Import_i(Fl_Button*, void*) {
  19. const char *filename;
  20. filename=fl_file_chooser("Open:","(*.scl)",NULL,0);
  21. if (filename==NULL) return;
  22. osc->write("/load_scl", "s", filename);
  23. if (true) {
  24. updateTuningsInput();
  25. nameinput->update();
  26. commentinput->update();
  27. tuningsinput->position(0);
  28. octavesizeoutput->update();
  29. };
  30. }
  31. void MicrotonalUI::cb_Import(Fl_Button* o, void* v) {
  32. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import_i(o,v);
  33. }
  34. void MicrotonalUI::cb_mappingenabledbutton_i(Fl_Osc_Check* o, void*) {
  35. if (o->value()==0) keymappinggroup->deactivate();
  36. else keymappinggroup->activate();
  37. o->show();
  38. }
  39. void MicrotonalUI::cb_mappingenabledbutton(Fl_Osc_Check* o, void* v) {
  40. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_mappingenabledbutton_i(o,v);
  41. }
  42. void MicrotonalUI::cb_Import1_i(Fl_Button*, void*) {
  43. const char *filename;
  44. filename=fl_file_chooser("Open:","(*.kbm)",NULL,0);
  45. if (filename==NULL) return;
  46. osc->write("/load_kbm", "s", filename);
  47. if (true) {
  48. updateMappingInput();
  49. mappinginput->position(0);
  50. mapsizeoutput->update();
  51. firstnotecounter->update();
  52. lastnotecounter->update();
  53. middlenotecounter->update();
  54. mappingenabledbutton->update();
  55. afreqinput->update();
  56. anotecounter->update();
  57. };
  58. }
  59. void MicrotonalUI::cb_Import1(Fl_Button* o, void* v) {
  60. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import1_i(o,v);
  61. }
  62. void MicrotonalUI::cb_anotecounter_i(Fl_Osc_Counter* o, void*) {
  63. /*if (microtonal->getnotefreq(o->value(),0)<0.0) o->textcolor(FL_RED);
  64. else o->textcolor(FL_BLACK);*/
  65. o->redraw();
  66. }
  67. void MicrotonalUI::cb_anotecounter(Fl_Osc_Counter* o, void* v) {
  68. ((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_anotecounter_i(o,v);
  69. }
  70. void MicrotonalUI::cb_Close_i(Fl_Button*, void*) {
  71. microtonaluiwindow->hide();
  72. }
  73. void MicrotonalUI::cb_Close(Fl_Button* o, void* v) {
  74. ((MicrotonalUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
  75. }
  76. void MicrotonalUI::cb_Enable_i(Fl_Osc_Check* o, void*) {
  77. if (o->value()==0) microtonalgroup->deactivate();
  78. else microtonalgroup->activate();
  79. }
  80. void MicrotonalUI::cb_Enable(Fl_Osc_Check* o, void* v) {
  81. ((MicrotonalUI*)(o->parent()->user_data()))->cb_Enable_i(o,v);
  82. }
  83. Fl_Osc_Window* MicrotonalUI::make_window(Fl_Osc_Interface *osc, std::string base) {
  84. { microtonaluiwindow = new Fl_Osc_Window(405, 450, "Scales");
  85. microtonaluiwindow->box(FL_FLAT_BOX);
  86. microtonaluiwindow->color(FL_BACKGROUND_COLOR);
  87. microtonaluiwindow->selection_color(FL_BACKGROUND_COLOR);
  88. microtonaluiwindow->labeltype(FL_NO_LABEL);
  89. microtonaluiwindow->labelfont(0);
  90. microtonaluiwindow->labelsize(14);
  91. microtonaluiwindow->labelcolor(FL_FOREGROUND_COLOR);
  92. microtonaluiwindow->user_data((void*)(this));
  93. microtonaluiwindow->align(Fl_Align(FL_ALIGN_TOP));
  94. microtonaluiwindow->when(FL_WHEN_RELEASE);
  95. { new Fl_Box(0, 0, 0, 0);
  96. microtonaluiwindow->init(osc, base);
  97. } // Fl_Box* o
  98. { Fl_Group* o = new Fl_Group(249, 2, 155, 45);
  99. o->tooltip("Center where the note\'s freqs. are turned upside-down");
  100. o->box(FL_ENGRAVED_FRAME);
  101. { Fl_Osc_Check* o = new Fl_Osc_Check(254, 13, 55, 30, "Invert keys");
  102. o->tooltip("Turn upside-down the note frequencies");
  103. o->box(FL_NO_BOX);
  104. o->down_box(FL_DOWN_BOX);
  105. o->color(FL_BACKGROUND_COLOR);
  106. o->selection_color(FL_FOREGROUND_COLOR);
  107. o->labeltype(FL_NORMAL_LABEL);
  108. o->labelfont(1);
  109. o->labelsize(11);
  110. o->labelcolor(FL_FOREGROUND_COLOR);
  111. o->callback((Fl_Callback*)cb_Invert);
  112. o->align(Fl_Align(132|FL_ALIGN_INSIDE));
  113. o->when(FL_WHEN_RELEASE);
  114. o->init("Pinvertupdown");
  115. } // Fl_Osc_Check* o
  116. { Fl_Osc_Counter* o = centerinvertcounter = new Fl_Osc_Counter(319, 13, 80, 20, "Center");
  117. centerinvertcounter->box(FL_UP_BOX);
  118. centerinvertcounter->color(FL_BACKGROUND_COLOR);
  119. centerinvertcounter->selection_color(FL_INACTIVE_COLOR);
  120. centerinvertcounter->labeltype(FL_NORMAL_LABEL);
  121. centerinvertcounter->labelfont(1);
  122. centerinvertcounter->labelsize(11);
  123. centerinvertcounter->labelcolor(FL_FOREGROUND_COLOR);
  124. centerinvertcounter->minimum(0);
  125. centerinvertcounter->maximum(127);
  126. centerinvertcounter->step(1);
  127. centerinvertcounter->textfont(1);
  128. centerinvertcounter->align(Fl_Align(130));
  129. centerinvertcounter->when(FL_WHEN_CHANGED);
  130. o->lstep(12/*microtonal->getoctavesize()*/);
  131. o->init("Pinvertupdowncenter");
  132. } // Fl_Osc_Counter* centerinvertcounter
  133. o->end();
  134. } // Fl_Group* o
  135. { microtonalgroup = new Fl_Group(3, 49, 402, 398);
  136. microtonalgroup->box(FL_ENGRAVED_FRAME);
  137. { applybutton = new Fl_Button(8, 413, 107, 28, "Retune");
  138. applybutton->tooltip("Retune the synth accorging to the inputs from \"Tunnings\" and \"Keyboard Map\
  139. pings\"");
  140. applybutton->box(FL_THIN_UP_BOX);
  141. applybutton->labeltype(FL_EMBOSSED_LABEL);
  142. applybutton->labelfont(1);
  143. applybutton->labelsize(13);
  144. applybutton->callback((Fl_Callback*)cb_applybutton);
  145. } // Fl_Button* applybutton
  146. { Fl_Osc_Output* o = octavesizeoutput = new Fl_Osc_Output(150, 423, 35, 17, "nts./oct.");
  147. octavesizeoutput->tooltip("Notes/Octave");
  148. octavesizeoutput->box(FL_NO_BOX);
  149. octavesizeoutput->color(FL_BACKGROUND_COLOR);
  150. octavesizeoutput->selection_color(FL_BACKGROUND_COLOR);
  151. octavesizeoutput->labeltype(FL_NORMAL_LABEL);
  152. octavesizeoutput->labelfont(0);
  153. octavesizeoutput->labelsize(10);
  154. octavesizeoutput->labelcolor(FL_FOREGROUND_COLOR);
  155. octavesizeoutput->maximum(500);
  156. octavesizeoutput->step(1);
  157. octavesizeoutput->value(12);
  158. octavesizeoutput->textfont(1);
  159. octavesizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  160. octavesizeoutput->when(FL_WHEN_CHANGED);
  161. o->init("octavesize");
  162. } // Fl_Osc_Output* octavesizeoutput
  163. { Fl_Osc_Input* o = nameinput = new Fl_Osc_Input(8, 64, 285, 25, "Name:");
  164. nameinput->box(FL_DOWN_BOX);
  165. nameinput->color(FL_BACKGROUND2_COLOR);
  166. nameinput->selection_color(FL_SELECTION_COLOR);
  167. nameinput->labeltype(FL_NORMAL_LABEL);
  168. nameinput->labelfont(1);
  169. nameinput->labelsize(11);
  170. nameinput->labelcolor(FL_FOREGROUND_COLOR);
  171. nameinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  172. nameinput->when(FL_WHEN_RELEASE);
  173. o->maximum_size(MICROTONAL_MAX_NAME_LEN);
  174. o->init("Pname");
  175. } // Fl_Osc_Input* nameinput
  176. { Fl_Osc_Input* o = tuningsinput = new Fl_Osc_Input(8, 144, 182, 264, "Tunings:");
  177. tuningsinput->type(4);
  178. tuningsinput->box(FL_DOWN_BOX);
  179. tuningsinput->color(FL_BACKGROUND2_COLOR);
  180. tuningsinput->selection_color(FL_SELECTION_COLOR);
  181. tuningsinput->labeltype(FL_NORMAL_LABEL);
  182. tuningsinput->labelfont(1);
  183. tuningsinput->labelsize(11);
  184. tuningsinput->labelcolor(FL_FOREGROUND_COLOR);
  185. tuningsinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  186. tuningsinput->when(FL_WHEN_NEVER);
  187. o->init("tunings");
  188. } // Fl_Osc_Input* tuningsinput
  189. { Fl_Osc_Input* o = commentinput = new Fl_Osc_Input(8, 104, 391, 25, "Comment:");
  190. commentinput->box(FL_DOWN_BOX);
  191. commentinput->color(FL_BACKGROUND2_COLOR);
  192. commentinput->selection_color(FL_SELECTION_COLOR);
  193. commentinput->labeltype(FL_NORMAL_LABEL);
  194. commentinput->labelfont(1);
  195. commentinput->labelsize(11);
  196. commentinput->labelcolor(FL_FOREGROUND_COLOR);
  197. commentinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  198. commentinput->when(FL_WHEN_RELEASE);
  199. o->maximum_size(MICROTONAL_MAX_NAME_LEN);
  200. o->init("Pcomment");
  201. } // Fl_Osc_Input* commentinput
  202. { Fl_Osc_Counter* o = new Fl_Osc_Counter(313, 69, 70, 20, "Shift");
  203. o->type(1);
  204. o->box(FL_UP_BOX);
  205. o->color(FL_BACKGROUND_COLOR);
  206. o->selection_color(FL_INACTIVE_COLOR);
  207. o->labeltype(FL_NORMAL_LABEL);
  208. o->labelfont(0);
  209. o->labelsize(11);
  210. o->labelcolor(FL_FOREGROUND_COLOR);
  211. o->minimum(-64);
  212. o->maximum(63);
  213. o->step(1);
  214. o->textfont(1);
  215. o->align(Fl_Align(FL_ALIGN_TOP));
  216. o->when(FL_WHEN_CHANGED);
  217. o->init("Pscaleshift");
  218. } // Fl_Osc_Counter* o
  219. { Fl_Button* o = new Fl_Button(243, 411, 84, 15, "Import .SCL file");
  220. o->tooltip("Inport Scala .scl file (tunnings)");
  221. o->box(FL_THIN_UP_BOX);
  222. o->labelfont(1);
  223. o->labelsize(10);
  224. o->callback((Fl_Callback*)cb_Import);
  225. } // Fl_Button* o
  226. { keymappinggroup = new Fl_Group(193, 144, 206, 264, "Keyboard Mapping");
  227. keymappinggroup->box(FL_ENGRAVED_BOX);
  228. keymappinggroup->labelfont(1);
  229. keymappinggroup->labelsize(11);
  230. { Fl_Osc_Input* o = mappinginput = new Fl_Osc_Input(250, 147, 146, 258);
  231. mappinginput->type(4);
  232. mappinginput->box(FL_DOWN_BOX);
  233. mappinginput->color(FL_BACKGROUND2_COLOR);
  234. mappinginput->selection_color(FL_SELECTION_COLOR);
  235. mappinginput->labeltype(FL_NORMAL_LABEL);
  236. mappinginput->labelfont(1);
  237. mappinginput->labelsize(11);
  238. mappinginput->labelcolor(FL_FOREGROUND_COLOR);
  239. mappinginput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  240. mappinginput->when(FL_WHEN_NEVER);
  241. o->init("mapping");
  242. } // Fl_Osc_Input* mappinginput
  243. { Fl_Osc_Counter* o = firstnotecounter = new Fl_Osc_Counter(199, 195, 42, 18, "First note");
  244. firstnotecounter->tooltip("First MIDI note number");
  245. firstnotecounter->type(1);
  246. firstnotecounter->box(FL_UP_BOX);
  247. firstnotecounter->color(FL_BACKGROUND_COLOR);
  248. firstnotecounter->selection_color(FL_INACTIVE_COLOR);
  249. firstnotecounter->labeltype(FL_NORMAL_LABEL);
  250. firstnotecounter->labelfont(0);
  251. firstnotecounter->labelsize(10);
  252. firstnotecounter->labelcolor(FL_FOREGROUND_COLOR);
  253. firstnotecounter->minimum(0);
  254. firstnotecounter->maximum(127);
  255. firstnotecounter->step(1);
  256. firstnotecounter->textfont(1);
  257. firstnotecounter->textsize(11);
  258. firstnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  259. firstnotecounter->when(FL_WHEN_CHANGED);
  260. o->init("Pfirstkey");
  261. } // Fl_Osc_Counter* firstnotecounter
  262. { Fl_Osc_Counter* o = lastnotecounter = new Fl_Osc_Counter(199, 225, 42, 18, "Last note");
  263. lastnotecounter->tooltip("Last MIDI note number");
  264. lastnotecounter->type(1);
  265. lastnotecounter->box(FL_UP_BOX);
  266. lastnotecounter->color(FL_BACKGROUND_COLOR);
  267. lastnotecounter->selection_color(FL_INACTIVE_COLOR);
  268. lastnotecounter->labeltype(FL_NORMAL_LABEL);
  269. lastnotecounter->labelfont(0);
  270. lastnotecounter->labelsize(10);
  271. lastnotecounter->labelcolor(FL_FOREGROUND_COLOR);
  272. lastnotecounter->minimum(0);
  273. lastnotecounter->maximum(127);
  274. lastnotecounter->step(1);
  275. lastnotecounter->value(127);
  276. lastnotecounter->textfont(1);
  277. lastnotecounter->textsize(11);
  278. lastnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  279. lastnotecounter->when(FL_WHEN_CHANGED);
  280. o->init("Plastkey");
  281. } // Fl_Osc_Counter* lastnotecounter
  282. { Fl_Osc_Counter* o = middlenotecounter = new Fl_Osc_Counter(199, 267, 42, 18, "Midle note");
  283. middlenotecounter->tooltip("Midle note (where scale degree 0 is mapped to)");
  284. middlenotecounter->type(1);
  285. middlenotecounter->box(FL_UP_BOX);
  286. middlenotecounter->color(FL_BACKGROUND_COLOR);
  287. middlenotecounter->selection_color(FL_INACTIVE_COLOR);
  288. middlenotecounter->labeltype(FL_NORMAL_LABEL);
  289. middlenotecounter->labelfont(0);
  290. middlenotecounter->labelsize(10);
  291. middlenotecounter->labelcolor(FL_FOREGROUND_COLOR);
  292. middlenotecounter->minimum(0);
  293. middlenotecounter->maximum(127);
  294. middlenotecounter->step(1);
  295. middlenotecounter->value(60);
  296. middlenotecounter->textfont(1);
  297. middlenotecounter->textsize(11);
  298. middlenotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  299. middlenotecounter->when(FL_WHEN_CHANGED);
  300. o->init("Pmiddlenote");
  301. } // Fl_Osc_Counter* middlenotecounter
  302. { Fl_Osc_Output* o = mapsizeoutput = new Fl_Osc_Output(201, 382, 44, 20, "Map Size");
  303. mapsizeoutput->box(FL_NO_BOX);
  304. mapsizeoutput->color(FL_BACKGROUND_COLOR);
  305. mapsizeoutput->selection_color(FL_BACKGROUND_COLOR);
  306. mapsizeoutput->labeltype(FL_NORMAL_LABEL);
  307. mapsizeoutput->labelfont(0);
  308. mapsizeoutput->labelsize(10);
  309. mapsizeoutput->labelcolor(FL_FOREGROUND_COLOR);
  310. mapsizeoutput->maximum(500);
  311. mapsizeoutput->step(1);
  312. mapsizeoutput->value(12);
  313. mapsizeoutput->textfont(1);
  314. mapsizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
  315. mapsizeoutput->when(FL_WHEN_CHANGED);
  316. o->init("Pmapsize");
  317. } // Fl_Osc_Output* mapsizeoutput
  318. keymappinggroup->end();
  319. } // Fl_Group* keymappinggroup
  320. { Fl_Osc_Check* o = mappingenabledbutton = new Fl_Osc_Check(198, 150, 48, 21, "ON");
  321. mappingenabledbutton->tooltip("Enable the Mapping (otherwise the mapping is linear)");
  322. mappingenabledbutton->box(FL_FLAT_BOX);
  323. mappingenabledbutton->down_box(FL_DOWN_BOX);
  324. mappingenabledbutton->color(FL_BACKGROUND_COLOR);
  325. mappingenabledbutton->selection_color(FL_FOREGROUND_COLOR);
  326. mappingenabledbutton->labeltype(FL_NORMAL_LABEL);
  327. mappingenabledbutton->labelfont(1);
  328. mappingenabledbutton->labelsize(14);
  329. mappingenabledbutton->labelcolor(FL_FOREGROUND_COLOR);
  330. mappingenabledbutton->callback((Fl_Callback*)cb_mappingenabledbutton);
  331. mappingenabledbutton->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
  332. mappingenabledbutton->when(FL_WHEN_RELEASE);
  333. o->init("Pmappingenabled");
  334. } // Fl_Osc_Check* mappingenabledbutton
  335. { Fl_Button* o = new Fl_Button(243, 428, 84, 16, "Import .kbm file");
  336. o->tooltip("Inport Scala .kbm file (keyboard mapping)");
  337. o->box(FL_THIN_UP_BOX);
  338. o->labelfont(1);
  339. o->labelsize(10);
  340. o->callback((Fl_Callback*)cb_Import1);
  341. } // Fl_Button* o
  342. microtonalgroup->end();
  343. } // Fl_Group* microtonalgroup
  344. { Fl_Group* o = new Fl_Group(108, 2, 140, 45);
  345. o->box(FL_ENGRAVED_FRAME);
  346. { Fl_Osc_Counter* o = anotecounter = new Fl_Osc_Counter(173, 17, 65, 20, "\"A\" Note");
  347. anotecounter->tooltip("The \"A\" note (the reference note for which freq. (\"A\" freq) is given)");
  348. anotecounter->box(FL_UP_BOX);
  349. anotecounter->color(FL_BACKGROUND_COLOR);
  350. anotecounter->selection_color(FL_INACTIVE_COLOR);
  351. anotecounter->labeltype(FL_NORMAL_LABEL);
  352. anotecounter->labelfont(1);
  353. anotecounter->labelsize(10);
  354. anotecounter->labelcolor(FL_FOREGROUND_COLOR);
  355. anotecounter->minimum(0);
  356. anotecounter->maximum(127);
  357. anotecounter->step(1);
  358. anotecounter->value(69);
  359. anotecounter->textfont(1);
  360. anotecounter->textsize(10);
  361. anotecounter->callback((Fl_Callback*)cb_anotecounter);
  362. anotecounter->align(Fl_Align(129));
  363. anotecounter->when(FL_WHEN_CHANGED);
  364. o->lstep(12);
  365. o->init("PAnote");
  366. } // Fl_Osc_Counter* anotecounter
  367. { Fl_Osc_Value* o = afreqinput = new Fl_Osc_Value(118, 17, 45, 20, "\"A\" Freq.");
  368. afreqinput->tooltip("The freq. of \"A\" note (default=440.0)");
  369. afreqinput->box(FL_DOWN_BOX);
  370. afreqinput->color(FL_BACKGROUND2_COLOR);
  371. afreqinput->selection_color(FL_SELECTION_COLOR);
  372. afreqinput->labeltype(FL_NORMAL_LABEL);
  373. afreqinput->labelfont(1);
  374. afreqinput->labelsize(10);
  375. afreqinput->labelcolor(FL_FOREGROUND_COLOR);
  376. afreqinput->minimum(1);
  377. afreqinput->maximum(20000);
  378. afreqinput->step(0.001);
  379. afreqinput->value(440);
  380. afreqinput->textfont(1);
  381. afreqinput->textsize(10);
  382. afreqinput->align(Fl_Align(FL_ALIGN_TOP));
  383. afreqinput->when(FL_WHEN_CHANGED);
  384. o->init("PAfreq");
  385. } // Fl_Osc_Value* afreqinput
  386. o->end();
  387. } // Fl_Group* o
  388. { Fl_Button* o = new Fl_Button(333, 413, 67, 28, "Close");
  389. o->box(FL_THIN_UP_BOX);
  390. o->callback((Fl_Callback*)cb_Close);
  391. } // Fl_Button* o
  392. { Fl_Osc_Check* o = new Fl_Osc_Check(3, 3, 102, 45, "Enable Microtonal");
  393. o->box(FL_UP_BOX);
  394. o->down_box(FL_DOWN_BOX);
  395. o->color(FL_BACKGROUND_COLOR);
  396. o->selection_color(FL_FOREGROUND_COLOR);
  397. o->labeltype(FL_NORMAL_LABEL);
  398. o->labelfont(1);
  399. o->labelsize(11);
  400. o->labelcolor(FL_FOREGROUND_COLOR);
  401. o->callback((Fl_Callback*)cb_Enable);
  402. o->align(Fl_Align(132|FL_ALIGN_INSIDE));
  403. o->when(FL_WHEN_RELEASE);
  404. o->init("Penabled");
  405. } // Fl_Osc_Check* o
  406. microtonaluiwindow->end();
  407. } // Fl_Osc_Window* microtonaluiwindow
  408. return microtonaluiwindow;
  409. }
  410. void MicrotonalUI::updateTuningsInput() {
  411. tuningsinput->update();
  412. }
  413. void MicrotonalUI::updateMappingInput() {
  414. mappinginput->update();
  415. }
  416. MicrotonalUI::MicrotonalUI(Fl_Osc_Interface *osc_, std::string base) {
  417. osc=osc_;make_window(osc, base);
  418. }
  419. MicrotonalUI::~MicrotonalUI() {
  420. microtonaluiwindow->hide();
  421. delete(microtonaluiwindow);
  422. }
  423. void MicrotonalUI::show() {
  424. microtonaluiwindow->show();
  425. }
  426. void MicrotonalUI::apply() {
  427. osc->write("/microtonal/tunings", "s", tuningsinput->value());
  428. osc->write("/microtonal/mapping", "s", mappinginput->value());
  429. octavesizeoutput->update();
  430. mapsizeoutput->update();
  431. anotecounter->update();
  432. }