diff --git a/src/main.cpp b/src/main.cpp index 2b0d582..7229db4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -621,24 +621,24 @@ void displayVolumes(xmp_module_info *mi, xmp_frame_info *fi) { void displayNoteRoll(xmp_module_info *mi, xmp_frame_info *fi) { int ins = mi->mod->ins; chtype no_pair = COLOR_PAIR(5); - for (int y = vOffset; y < ins; y++) { - if (!dynamicRoll) { prMin = 0; prMax = 144; } - else if (y == vOffset) { - for (int l = 0; l < (96/12); l++) { - int cnote = (l*12); - if (cnote < prMin && l == (prMin / 12)) { - wmove(dis, 0, 0); - wprintw(dis, "<%i", l); - } else if (cnote <= prMax && cnote >= prMin) { - wmove(dis, 0, (((cnote - prMin) * (COLS - 5)) / (prMax - prMin))+3); - wprintw(dis, "%i", l); - } + if (dynamicRoll) { + for (int l = 0; l < (96/12); l++) { + int cnote = (l*12); + if (cnote < prMin && l == (prMin / 12)) { + wmove(dis, 0, 0); + wprintw(dis, "<%i", l); + } else if (cnote <= prMax && cnote >= prMin) { + wmove(dis, 0, (((cnote - prMin) * (COLS - 5)) / (prMax - prMin))+3); + wprintw(dis, "%i", l); } } + } + for (int y = vOffset; y < ins; y++) { + if (!dynamicRoll) { prMin = 0; prMax = 144; } if (y > (LINES - 5)+vOffset || y < 0) continue; - wmove(dis, y-vOffset+1, 0); + wmove(dis, (y-vOffset)+1, 0); wattron(dis, no_pair); - wprintw(dis, "%02X", y); + wprintw(dis, "%02X", y+1); wattroff(dis, no_pair); wclrtoeol(dis); for (int c = 0; c < mi->mod->chn; c++) { @@ -654,15 +654,15 @@ void displayNoteRoll(xmp_module_info *mi, xmp_frame_info *fi) { int note = ((cinfo.note - prMin) * (COLS - 5)) / (dynamicRoll?(prMax - prMin):96); if (cinfo.instrument != y) continue; - wmove(dis, y-vOffset+1, note+3); + wmove(dis, (y-vOffset)+1, note+3); if (cinfo.volume >= 32) waddstr(dis, "#"); - else if (cinfo.volume >= 16 && (char)mvwinch(dis, y-vOffset+1, note+3) != '#') + else if (cinfo.volume >= 16 && (char)mvwinch(dis, (y-vOffset)+1, note+3) != '#') waddstr(dis, "="); - else if (cinfo.volume > 0 && ((char)mvwinch(dis, y-vOffset+1, note+3) != '-' || (char)mvwinch(dis, y-vOffset, note+3) != '#')) + else if (cinfo.volume > 0 && ((char)mvwinch(dis, (y-vOffset)+1, note+3) != '-' || (char)mvwinch(dis, (y-vOffset)+1, note+3) != '#')) waddstr(dis, "-"); } - wmove(dis, y+1, COLS-4); + wmove(dis, y, COLS-4); } }