Add octaves to Piano Roll

This commit is contained in:
Wirlaburla 2024-02-27 18:02:49 -06:00
parent b57f03f963
commit b57095ead6

View File

@ -623,8 +623,20 @@ void displayNoteRoll(xmp_module_info *mi, xmp_frame_info *fi) {
chtype no_pair = COLOR_PAIR(5); chtype no_pair = COLOR_PAIR(5);
for (int y = vOffset; y < ins; y++) { for (int y = vOffset; y < ins; y++) {
if (!dynamicRoll) { prMin = 0; prMax = 144; } 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; if (y > (LINES - 5)+vOffset || y < 0) continue;
wmove(dis, y-vOffset, 0); wmove(dis, y-vOffset+1, 0);
wattron(dis, no_pair); wattron(dis, no_pair);
wprintw(dis, "%02X", y); wprintw(dis, "%02X", y);
wattroff(dis, no_pair); 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); int note = ((cinfo.note - prMin) * (COLS - 5)) / (dynamicRoll?(prMax - prMin):96);
if (cinfo.instrument != y) continue; if (cinfo.instrument != y) continue;
wmove(dis, y-vOffset, note+3); wmove(dis, y-vOffset+1, note+3);
if (cinfo.volume >= 32) if (cinfo.volume >= 32)
waddstr(dis, "#"); 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, "="); 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, "-"); waddstr(dis, "-");
} }
wmove(dis, y, COLS-4); wmove(dis, y+1, COLS-4);
} }
} }