diff -urN cui127/kbd.c cui128/kbd.c --- cui127/kbd.c Sun Apr 20 23:00:00 2014 +++ cui128/kbd.c Wed Apr 23 22:00:00 2014 @@ -201,7 +201,7 @@ if(ev_obj == p->note_no){ int note = val; int oct_v = (note - 9 + 12) / 12 - 1; - int name_v = (note - 9) % 12; + int name_v = (note - 9 + 12) % 12; double fq = 440 * pow(2, (note - 69) / 12.0); if(cui_menu_int_get(p->oct) != oct_v) cui_menu_int_set(p->oct, oct_v); @@ -214,6 +214,7 @@ int note = oct_v * 12 + name_v + 9; if(cui_num_get(p->note_no) != note){ cui_num_set(p->note_no, note); + note = cui_num_get(p->note_no); cui_handler_call(p->note_no, CUI_EVT_BUTTON, note); } }else if(ev_obj == p->name){ @@ -222,12 +223,14 @@ int note = oct_v * 12 + name_v + 9; if(cui_num_get(p->note_no) != note){ cui_num_set(p->note_no, note); + note = cui_num_get(p->note_no); cui_handler_call(p->note_no, CUI_EVT_BUTTON, note); } }else if(ev_obj == p->freq){ double fq = cui_num_dbl_get(p->freq); int note = (int)( ( log(fq/440) / log(2) ) * 12 + 69 + 0.5 ); cui_num_set(p->note_no, note); + note = cui_num_get(p->note_no); cui_handler_call(p->note_no, CUI_EVT_BUTTON, note); }else return FALSE; break;