diff -urN midi_prog-/Makefile midi_prog/Makefile --- midi_prog-/Makefile Thu Mar 26 02:00:00 2015 +++ midi_prog/Makefile Fri Mar 27 00:00:00 2015 @@ -1,6 +1,6 @@ CC = gcc LIB = -lm -lpthread -L../cui -lcui -TARG = prog43 +TARG = prog44 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 Thu Mar 26 02:00:00 2015 +++ midi_prog/cui_tone.c Fri Mar 27 00:00:00 2015 @@ -38,6 +38,8 @@ 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_ckbox_vp_set(cui_name_child(sheet, "alias_noise1"), &tr->vco.alias_noise1); + cui_ckbox_vp_set(cui_name_child(sheet, "alias_noise2"), &tr->vco.alias_noise2); 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); @@ -149,9 +151,13 @@ cui_menu_popup_new(bs_vco, 0, 0, -1, wave_lst, 0); cui_wlb_name_new(bs_vco, "wave1 ", "wave1", NULL); - cui_menu_popup_new(bs_vco, CUI_CHILD_X2+3, CUI_CHILD_Y, -1, wave_lst, 0); + cui_ckbox_new(bs_vco, CUI_CHILD_X, CUI_CHILD_Y2, "alias_noise1", FALSE)->name = "alias_noise1"; + + cui_menu_popup_new(bs_vco, CUI_CHILD_X2+3, 0, -1, wave_lst, 0); cui_wlb_name_new(bs_vco, "wave2 ", "wave2", NULL); + cui_ckbox_new(bs_vco, CUI_CHILD_X, CUI_CHILD_Y2, "alias_noise2", FALSE)->name = "alias_noise2"; + cui_num_new(bs_vco, CUI_CHILD_X, CUI_CHILD_Y2, 6+3, 0, -24000, 24000, 0); cui_wlb_name_new(bs_vco, "tune ", "tune", " cent"); diff -urN midi_prog-/tone.c midi_prog/tone.c --- midi_prog-/tone.c Wed Mar 25 01:00:03 2015 +++ midi_prog/tone.c Fri Mar 27 00:00:00 2015 @@ -73,7 +73,7 @@ { OFF, }, OFF, },{ "hi-hat close", - { WAVE_SQUARE, WAVE_SQUARE, 700, 0.9, ON }, + { WAVE_SQUARE, WAVE_SQUARE, 700, 0.9, ON, ON, ON }, { LPF, 16000, 2 }, { OFF, }, { 0, 0.15, 0, 0.15 }, 0.6, @@ -82,7 +82,7 @@ { OFF, }, OFF, },{ "hi-hat open", - { WAVE_SQUARE, WAVE_SQUARE, 700, 0.9, ON }, + { WAVE_SQUARE, WAVE_SQUARE, 700, 0.9, ON, ON, ON }, { LPF, 16000, 2 }, { OFF, }, { 0, 0, 1, 0.35 }, 0.6, @@ -326,10 +326,10 @@ modu_out(env_v, &tn->env_modu, modu_v); vco = &tn->vco; - v1 = vco_out(vco->wave1, &stat->vco[0], freq, ot->sec, modu_v[0]); + v1 = vco_out(vco->wave1, vco->alias_noise1, &stat->vco[0], freq, ot->sec, modu_v[0]); modu_v[1] += vco->tune * (1.0 / 1200); - v2 = vco_out(vco->wave2, &stat->vco[1], freq, ot->sec, modu_v[1]); + v2 = vco_out(vco->wave2, vco->alias_noise2, &stat->vco[1], freq, ot->sec, modu_v[1]); if(vco->ring){ v = v1 * v2; v1 = (v1 + v2) * 0.5; diff -urN midi_prog-/vco.c midi_prog/vco.c --- midi_prog-/vco.c Sun Jan 26 00:00:00 2014 +++ midi_prog/vco.c Fri Mar 27 00:00:00 2015 @@ -9,14 +9,14 @@ } double -vco_out(int wave, struct vco_stat_rec *stat, double freq, double sec, double modu_v) +vco_out(int wave, int alias_noise, struct vco_stat_rec *stat, double freq, double sec, double modu_v) { double cycle_prev; if(modu_v != 0) freq *= pow(2, modu_v); cycle_prev = stat->cycle; vco_stat_update(stat, freq, sec); - return wave_out2(wave, cycle_prev, stat->cycle); + return wave_out2(wave, alias_noise, cycle_prev, stat->cycle); } /* EOF */ diff -urN midi_prog-/vco.h midi_prog/vco.h --- midi_prog-/vco.h Fri Jan 24 00:00:00 2014 +++ midi_prog/vco.h Fri Mar 27 00:00:00 2015 @@ -12,9 +12,10 @@ int tune; /* for vco2 */ double mix; int ring; + int alias_noise1, alias_noise2; }; void vco_stat_update(struct vco_stat_rec *stat, double freq, double sec); -double vco_out(int wave, struct vco_stat_rec *stat, double freq, double sec, double modu_v); +double vco_out(int wave, int alias_noise, struct vco_stat_rec *stat, double freq, double sec, double modu_v); #endif diff -urN midi_prog-/wave.c midi_prog/wave.c --- midi_prog-/wave.c Sun Jan 26 00:00:00 2014 +++ midi_prog/wave.c Fri Mar 27 00:00:00 2015 @@ -26,7 +26,7 @@ } double -wave_out2(int wave, double cycle_prev, double cycle) +wave_out2(int wave, int alias_noise, double cycle_prev, double cycle) { double d, v, v_prev; @@ -35,6 +35,7 @@ case WAVE_NOISE: return wave_out(wave, cycle); } + if(alias_noise) return wave_out(wave, cycle); cycle -= (int)cycle; cycle_prev -= (int)cycle_prev; d = cycle - cycle_prev; diff -urN midi_prog-/wave.h midi_prog/wave.h --- midi_prog-/wave.h Sun Jan 26 00:00:00 2014 +++ midi_prog/wave.h Fri Mar 27 00:00:00 2015 @@ -10,6 +10,6 @@ #define WAVE_INTEGRAL (1<<8) double wave_out(int wave, double cycle); -double wave_out2(int wave, double cycle_prev, double cycle); +double wave_out2(int wave, int alias_noise, double cycle_prev, double cycle); #endif