diff -urN midi_prog-/Makefile midi_prog/Makefile --- midi_prog-/Makefile Mon Apr 28 22:00:00 2014 +++ midi_prog/Makefile Mon Apr 28 22:30:00 2014 @@ -1,6 +1,6 @@ CC = gcc LIB = -lm -lpthread -L../cui -lcui -TARG = prog38 +TARG = prog39 OBJS = main.o vcf.o ch.o delay.o stat.o note.o env.o tone.o filter.o lfo.o modu.o vco.o wave.o out.o rd.o util.o OBJS += cui_tone.o CFLAGS += -Wall -I.. diff -urN midi_prog-/cui_tone.c midi_prog/cui_tone.c --- midi_prog-/cui_tone.c Mon Apr 28 22:00:00 2014 +++ midi_prog/cui_tone.c Mon Apr 28 22:30:00 2014 @@ -4,6 +4,7 @@ #include "cui/button.h" #include "cui/menu.h" #include "cui/num.h" +#include "cui/ckbox.h" #include "cui/handler.h" #include "cui/arg.h" #include "tone.h" @@ -27,84 +28,48 @@ struct tone_compo_rec *tcr = tone_compo_get(ch_v, note_v, &n); struct tone_rec *tr; - cui wave1 = cui_name_child(sheet, "wave1"); - cui wave2 = cui_name_child(sheet, "wave2"); - cui tune = cui_name_child(sheet, "tune"); - cui mix = cui_name_child(sheet, "mix"); - - cui filt1 = cui_name_child(sheet, "filt1"); - cui filt2 = cui_name_child(sheet, "filt2"); - cui freq1 = cui_name_child(sheet, "freq1"); - cui freq2 = cui_name_child(sheet, "freq2"); - cui Q1 = cui_name_child(sheet, "Q1"); - cui Q2 = cui_name_child(sheet, "Q2"); - - cui attack = cui_name_child(sheet, "attack"); - cui decay = cui_name_child(sheet, "decay"); - cui sustain = cui_name_child(sheet, "sustain"); - cui release = cui_name_child(sheet, "release"); - - cui level = cui_name_child(sheet, "level"); - - cui lfo_mp1 = cui_name_child(sheet, "lfo_mp1"); - cui lfo_mp2 = cui_name_child(sheet, "lfo_mp2"); - cui lfo_mf1 = cui_name_child(sheet, "lfo_mf1"); - cui lfo_mf2 = cui_name_child(sheet, "lfo_mf2"); - - cui lfo_wave = cui_name_child(sheet, "lfo_wave"); - cui lfo_freq = cui_name_child(sheet, "lfo_freq"); - cui lfo_delay = cui_name_child(sheet, "lfo_delay"); - - cui env_mp1 = cui_name_child(sheet, "env_mp1"); - cui env_mp2 = cui_name_child(sheet, "env_mp2"); - cui env_mf1 = cui_name_child(sheet, "env_mf1"); - cui env_mf2 = cui_name_child(sheet, "env_mf2"); - - cui delay = cui_name_child(sheet, "delay"); - cui delay_sec = cui_name_child(sheet, "delay_sec"); - cui delay_gain = cui_name_child(sheet, "delay_gain"); - cui chorus = cui_name_child(sheet, "chorus"); - i = cui_menu_int_get(tone_i); tr = tcr[i].tone; - cui_menu_popup_vp_set(wave1, &tr->vco.wave1); - cui_menu_popup_vp_set(wave2, &tr->vco.wave2); - cui_num_vp_set(tune, &tr->vco.tune); - cui_num_dbl_vp_set(mix, &tr->vco.mix); - - cui_menu_popup_vp_set(filt1, &tr->fl1.type); - cui_num_dbl_vp_set(freq1, &tr->fl1.freq); - cui_num_dbl_vp_set(Q1, &tr->fl1.Q); - cui_menu_popup_vp_set(filt2, &tr->fl2.type); - cui_num_dbl_vp_set(freq2, &tr->fl2.freq); - cui_num_dbl_vp_set(Q2, &tr->fl2.Q); - - cui_num_dbl_vp_set(attack, &tr->env.attack); - cui_num_dbl_vp_set(decay, &tr->env.decay); - cui_num_dbl_vp_set(sustain, &tr->env.sustain); - cui_num_dbl_vp_set(release, &tr->env.release); - - cui_num_dbl_vp_set(level, &tr->level); - - cui_num_vp_set(lfo_mp1, &tr->lfo_modu.pitch1); - cui_num_vp_set(lfo_mp2, &tr->lfo_modu.pitch2); - cui_num_vp_set(lfo_mf1, &tr->lfo_modu.filter1); - cui_num_vp_set(lfo_mf2, &tr->lfo_modu.filter2); - - cui_menu_popup_vp_set(lfo_wave, &tr->lfo.wave); - cui_num_dbl_vp_set(lfo_freq, &tr->lfo.freq); - cui_num_dbl_vp_set(lfo_delay, &tr->lfo.delay); - - cui_num_vp_set(env_mp1, &tr->env_modu.pitch1); - cui_num_vp_set(env_mp2, &tr->env_modu.pitch2); - cui_num_vp_set(env_mf1, &tr->env_modu.filter1); - cui_num_vp_set(env_mf2, &tr->env_modu.filter2); - - cui_menu_popup_vp_set(delay, &tr->delay.onoff); - cui_num_dbl_vp_set(delay_sec, &tr->delay.sec); - cui_num_dbl_vp_set(delay_gain, &tr->delay.gain); - cui_menu_popup_vp_set(chorus, &tr->chorus); + cui_menu_popup_vp_set(cui_name_child(sheet, "wave1"), &tr->vco.wave1); + cui_menu_popup_vp_set(cui_name_child(sheet, "wave2"), &tr->vco.wave2); + cui_num_vp_set(cui_name_child(sheet, "tune"), &tr->vco.tune); + cui_num_dbl_vp_set(cui_name_child(sheet, "mix"), &tr->vco.mix); + cui_ckbox_vp_set(cui_name_child(sheet, "ring"), &tr->vco.ring); + + cui_menu_popup_vp_set(cui_name_child(sheet, "filt1"), &tr->fl1.type); + cui_num_dbl_vp_set(cui_name_child(sheet, "freq1"), &tr->fl1.freq); + cui_num_dbl_vp_set(cui_name_child(sheet, "Q1"), &tr->fl1.Q); + cui_menu_popup_vp_set(cui_name_child(sheet, "filt2"), &tr->fl2.type); + cui_num_dbl_vp_set(cui_name_child(sheet, "freq2"), &tr->fl2.freq); + cui_num_dbl_vp_set(cui_name_child(sheet, "Q2"), &tr->fl2.Q); + + cui_num_dbl_vp_set(cui_name_child(sheet, "attack"), &tr->env.attack); + cui_num_dbl_vp_set(cui_name_child(sheet, "decay"), &tr->env.decay); + cui_num_dbl_vp_set(cui_name_child(sheet, "sustain"), &tr->env.sustain); + cui_num_dbl_vp_set(cui_name_child(sheet, "release"), &tr->env.release); + + cui_num_dbl_vp_set(cui_name_child(sheet, "level"), &tr->level); + + cui_num_vp_set(cui_name_child(sheet, "lfo_mp1"), &tr->lfo_modu.pitch1); + cui_num_vp_set(cui_name_child(sheet, "lfo_mp2"), &tr->lfo_modu.pitch2); + cui_num_vp_set(cui_name_child(sheet, "lfo_mf1"), &tr->lfo_modu.filter1); + cui_num_vp_set(cui_name_child(sheet, "lfo_mf2"), &tr->lfo_modu.filter2); + + cui_menu_popup_vp_set(cui_name_child(sheet, "lfo_wave"), &tr->lfo.wave); + cui_num_dbl_vp_set(cui_name_child(sheet, "lfo_freq"), &tr->lfo.freq); + cui_num_dbl_vp_set(cui_name_child(sheet, "lfo_delay"), &tr->lfo.delay); + + cui_num_vp_set(cui_name_child(sheet, "env_mp1"), &tr->env_modu.pitch1); + cui_num_vp_set(cui_name_child(sheet, "env_mp2"), &tr->env_modu.pitch2); + cui_num_vp_set(cui_name_child(sheet, "env_mf1"), &tr->env_modu.filter1); + cui_num_vp_set(cui_name_child(sheet, "env_mf2"), &tr->env_modu.filter2); + + cui_ckbox_vp_set(cui_name_child(sheet, "delay"), &tr->delay.onoff); + cui_num_dbl_vp_set(cui_name_child(sheet, "delay_sec"), &tr->delay.sec); + cui_num_dbl_vp_set(cui_name_child(sheet, "delay_gain"), &tr->delay.gain); + + cui_ckbox_vp_set(cui_name_child(sheet, "chorus"), &tr->chorus); return TRUE; } @@ -119,23 +84,20 @@ int ch_v = cui_menu_int_get(ch); cui note = cui_name_child(sheet, "note"); int note_v = cui_num_get(note); - cui bs_ch = cui_name_child(sheet, "bs_ch"); - cui prog = cui_name_child(sheet, "prog"); static char prog_buf[16]; - cui tone_n = cui_name_child(sheet, "tone_n"); static char tone_n_buf[16]; cui tone_i = cui_name_child(sheet, "tone_i"); int i, n; struct tone_compo_rec *tcr = tone_compo_get(ch_v, note_v, &n); - cui_show_hide(bs_ch, tcr != NULL); + cui_show_hide(cui_name_child(sheet, "bs_ch"), tcr != NULL); if(tcr == NULL) return TRUE; sprintf(prog_buf, "prog=%d", CH_PROG(ch_v)); - cui_label_str_set(prog, prog_buf); + cui_label_str_set(cui_name_child(sheet, "prog"), prog_buf); sprintf(tone_n_buf, "tone_n=%d", n); - cui_label_str_set(tone_n, tone_n_buf); + cui_label_str_set(cui_name_child(sheet, "tone_n"), tone_n_buf); cui_menu_int_min_max_set(tone_i, 0, n-1); @@ -160,7 +122,6 @@ char *wave_lst[] = { "sin", "saw", "square", "noise", NULL }; char *filt_lst[] = { "OFF", "LPF", "HPF", "BPF", NULL }; - char *onoff_lst[] = { "OFF", "ON", NULL }; ch = cui_menu_int_new(sheet, 0, 0, -1, 0, 0, 15); cui_wlb_name_new(sheet, "ch ", "ch", NULL); @@ -168,7 +129,7 @@ note = cui_num_new(sheet, CUI_CHILD_X2+1, CUI_CHILD_Y, 3+3, 69, 0, 127, 0); cui_wlb_name_new(sheet, "note ", "note", NULL); - bs_ch = cui_base_new(sheet, 0, CUI_CHILD_Y2+1, 0, 0); + bs_ch = cui_base_new(sheet, 0, CUI_CHILD_Y2, 0, 0); bs_ch->name = "bs_ch"; cui_label_new(bs_ch, 0, 0, "prog= ")->name = "prog"; @@ -179,7 +140,7 @@ /* vco */ - bs_vco = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " VCO "); + bs_vco = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " VCO "); cui_menu_popup_new(bs_vco, 0, 0, -1, wave_lst, 0); cui_wlb_name_new(bs_vco, "wave1 ", "wave1", NULL); @@ -193,11 +154,13 @@ cui_num_dbl_new(bs_vco, CUI_CHILD_X, CUI_CHILD_Y2, 4+3, 0, 0, 1, 0.01, 0); cui_wlb_name_new(bs_vco, "mix ", "mix", NULL); + cui_ckbox_new(bs_vco, CUI_CHILD_X, CUI_CHILD_Y2, "ring", FALSE)->name = "ring"; + cui_wh_fit(bs_vco); /* filt */ - bs_filt = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " Filter "); + bs_filt = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " Filter "); cui_menu_popup_new(bs_filt, 0, 0, -1, filt_lst, 0); cui_wlb_name_new(bs_filt, "filter1 ", "filt1", NULL); @@ -223,7 +186,7 @@ /* env */ - bs_env = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " ENV "); + bs_env = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " ENV "); cui_num_dbl_new(bs_env, 0, 0, 5+3, 0, 0, 10, 0.01, 0); cui_wlb_name_new(bs_env, "attack ", "attack", " sec"); @@ -239,12 +202,12 @@ cui_wh_fit(bs_env); - cui_num_dbl_new(bs_ch, 0, CUI_CHILD_Y2+1, 5+3, 0, 0, 10, 0.01, 0); + cui_num_dbl_new(bs_ch, 0, CUI_CHILD_Y2, 5+3, 0, 0, 10, 0.01, 0); cui_wlb_name_new(bs_ch, "level ", "level", NULL); /* lfo modu */ - bs_lfo_modu = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " LFO modu "); + bs_lfo_modu = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " LFO modu "); cui_num_new(bs_lfo_modu, 0, 0, 6+3, 0, -24000, 24000, 0); cui_wlb_name_new(bs_lfo_modu, "pitch1 ", "lfo_mp1", " cent"); @@ -262,7 +225,7 @@ /* lfo */ - bs_lfo = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " LFO "); + bs_lfo = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " LFO "); cui_menu_popup_new(bs_lfo, 0, 0, -1, wave_lst, 0); cui_wlb_name_new(bs_lfo, "wave ", "lfo_wave", NULL); @@ -277,7 +240,7 @@ /* env modu */ - bs_env_modu = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " ENV modu "); + bs_env_modu = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " ENV modu "); cui_num_new(bs_env_modu, 0, 0, 6+3, 0, -24000, 24000, 0); cui_wlb_name_new(bs_env_modu, "pitch1 ", "env_mp1", " cent"); @@ -295,10 +258,9 @@ /* delay */ - bs_delay = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2+1, 0, 0, " delay "); + bs_delay = cui_title_panel_new_sheet(bs_ch, 0, CUI_CHILD_Y2, 0, 0, " delay "); - cui_menu_popup_new(bs_delay, 0, 0, -1, onoff_lst, 0); - cui_wlb_name_new(bs_delay, NULL, "delay", NULL); + cui_ckbox_new(bs_delay, 0, 0, "ON", FALSE)->name = "delay"; cui_num_dbl_new(bs_delay, CUI_CHILD_X2+2, CUI_CHILD_Y, 4+3, 0, 0, 10, 0.1, 0); cui_wlb_name_new(bs_delay, NULL, "delay_sec", " sec"); @@ -308,8 +270,7 @@ cui_wh_fit(bs_delay); - cui_menu_popup_new(bs_ch, 0, CUI_CHILD_Y2+1, -1, onoff_lst, 0); - cui_wlb_name_new(bs_ch, "chorus ", "chorus", NULL); + cui_ckbox_new(bs_ch, 0, CUI_CHILD_Y2, "chorus", FALSE)->name = "chorus"; cui_hide(bs_ch); cui_wh_fit(bs_ch);