diff --git a/src/main.cpp b/src/main.cpp index 3fcdd79..2b0d582 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -623,8 +623,20 @@ void displayNoteRoll(xmp_module_info *mi, xmp_frame_info *fi) { 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 (y > (LINES - 5)+vOffset || y < 0) continue; - wmove(dis, y-vOffset, 0); + wmove(dis, y-vOffset+1, 0); wattron(dis, no_pair); wprintw(dis, "%02X", y); wattroff(dis, no_pair); @@ -642,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, 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, 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, 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, note+3) != '#')) waddstr(dis, "-"); } - wmove(dis, y, COLS-4); + wmove(dis, y+1, COLS-4); } }