2020-10-03 17:05:10 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
print durations
diff --git a/seqt.c b/seqt.c index ea36f83..6c6c284 100644 --- a/seqt.c +++ b/seqt.c @@ -8,18 +8,20 @@ char map[MAPSIZE][RECSIZE]; unsigned char matrix[MAXINDEX][MAXTRACK][MAXVOICE]; void -print_blank() +print_blank(unsigned char duration) { int voice; + printf(" %c ", duration + '0' - 1); for (voice = 0; voice < MAXVOICE; voice++) printf("--"); } void -print_notes(int track, int index, int head) +print_notes(unsigned char duration, int track, int index, int head) { int voice; unsigned char cell; + printf(" %c ", duration + '0' - 1); for (voice = 0; voice < MAXVOICE; voice++) { cell = matrix[index][track][voice]; if (cell & 0x80) @@ -43,38 +45,36 @@ print_tracks(int vscroll, int lines, int hscroll, int tracks) int active_tracks = MAXTRACK-1; int min_track, max_track; int track, min_count; - unsigned char duration; + unsigned char duration[MAXTRACK]; min_track = hscroll + 1; /* inclusive */ max_track = hscroll + tracks + 1; /* exclusive */ if (max_track > MAXTRACK) max_track = MAXTRACK; while (active_tracks) { for (track = 1; track < MAXTRACK; track++) { - if (inside_view) - printf(" "); if (index[track] == MAXINDEX) { if (inside_view) - print_blank(); + print_blank(duration[track]); continue; } if (!count[track]) { - duration = matrix[index[track]][0][track >> 1]; - duration = track & 1 ? duration & 0x0F : duration >> 4; - if (!duration) { + duration[track] = matrix[index[track]][0][track >> 1]; + duration[track] = track & 1 ? duration[track] & 0x0F : duration[track] >> 4; + if (!duration[track]) { index[track] = MAXINDEX; active_tracks--; if (inside_view) - print_blank(); + print_blank(duration[track]); continue; } /* head */ if (inside_view) - print_notes(track, index[track], 1); - count[track] = 0x40 >> (duration - 1); + print_notes(duration[track], track, index[track], 1); + count[track] = 0x40 >> (duration[track] - 1); } else { /* tail */ if (inside_view) - print_notes(track, index[track], 0); + print_notes(duration[track], track, index[track], 0); } } if (vscroll) { @@ -100,7 +100,7 @@ main() { if (load_txt(stdin) < 0) return 1; - print_tracks(2, 3, 1, 3); + print_tracks(0, 10, 0, 3); if (save_txt(stdout) < 0) return 2; return 0;