From 50592f0ce47d461193ab245a5a0fc8a333c19a17 Mon Sep 17 00:00:00 2001 From: Len Shustek Date: Fri, 30 Sep 2016 12:54:58 -0700 Subject: [PATCH] Report on the number of unnecessary "stop note" commands in the byestream --- miditones_scroll.c | 16 ++++++++++++++-- miditones_scroll.exe | Bin 183400 -> 183912 bytes 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/miditones_scroll.c b/miditones_scroll.c index 77068ac..2062b43 100644 --- a/miditones_scroll.c +++ b/miditones_scroll.c @@ -104,9 +104,11 @@ * 6 August 2016, L. Shustek, V1.5 * - Handle optional instrument change information. * - Look for the optional self-describing file header. +* 30 September 2016, L. Shustek, V1.6 +* - Count the number of unnecessary "stop note" commands in the bytestream */ -#define VERSION "1.5" +#define VERSION "1.6" #include #include @@ -126,13 +128,15 @@ int gen_note[MAX_TONEGENS]; // the note we're playing, or SILENT int gen_volume[MAX_TONEGENS]; // the volume we're playing int gen_instrument[MAX_TONEGENS]; // the instrument we're playing bool gen_instrument_changed[MAX_TONEGENS]; +bool gen_did_stopnote[MAX_TONEGENS]; // did we just do a stopnote? FILE *infile, *outfile; unsigned char *buffer, *bufptr; unsigned long buflen; unsigned int num_tonegens = 6; // default number of generators unsigned int max_tonegen_found = 0; -unsigned int notes_skipped; +unsigned int notes_skipped = 0; +unsigned int stopnotes_before_startnote = 0; unsigned long timenow = 0; unsigned char cmd, gen; @@ -512,6 +516,8 @@ int main (int argc, char *argv[]) { delay = ((unsigned int) cmd << 8) + *++bufptr; print_status (); // tone generator status now timenow += delay; // advance time + for (gen = 0; gen < MAX_TONEGENS; ++gen) + gen_did_stopnote[gen] = false; } else if (cmd != 0xf0) { /* a command */ gen = cmd & 0x0f; if (gen > max_tonegen_found) @@ -520,6 +526,10 @@ int main (int argc, char *argv[]) { if (cmd == 0x90) { /* note on */ gen_note[gen] = *++bufptr; // note number tonegens_used |= 1 << gen; // record that we used this generator at least once + if (gen_did_stopnote[gen]) { + ++stopnotes_before_startnote; + // printf("unnecessary stopnote on gen %d\n", gen); + } if (expect_volume) gen_volume[gen] = *++bufptr; // volume if (gen >= num_tonegens) @@ -528,6 +538,7 @@ int main (int argc, char *argv[]) { if (gen_note[gen] == SILENT) file_error ("tone generator not on", bufptr); gen_note[gen] = SILENT; + gen_did_stopnote[gen] = true; } else if (cmd == 0xc0) { /* change instrument */ gen_instrument[gen] = *++bufptr & 0x7f; gen_instrument_changed[gen] = true; @@ -555,5 +566,6 @@ int main (int argc, char *argv[]) { if (notes_skipped) printf ("%u notes were not displayed because we were told to show only %u generators.\n", notes_skipped, num_tonegens); + printf("%u stopnote commands were unnecessary.\n", stopnotes_before_startnote); printf ("Done.\n"); } diff --git a/miditones_scroll.exe b/miditones_scroll.exe index 33b39ebbef1d35da1f6f807a7fc4dc3a86cb867f..47d3654077f3643a8d7087a3e92f6f297cc2e02d 100644 GIT binary patch delta 30464 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 BjLHB2