From b167f406f7a09dc5f2765204da3c9213369794b6 Mon Sep 17 00:00:00 2001 From: Len Shustek Date: Tue, 15 Jan 2019 10:00:29 -0800 Subject: [PATCH] various enhancements; see the change log --- SAMPLE_MoneyMoney_scroll.txt | 157 --------------- miditones_scroll.c | 369 +++++++++++++++++------------------ miditones_scroll.exe | Bin 183912 -> 53760 bytes miditones_scroll_example.txt | 178 +++++++++++++++++ 4 files changed, 355 insertions(+), 349 deletions(-) delete mode 100644 SAMPLE_MoneyMoney_scroll.txt create mode 100644 miditones_scroll_example.txt diff --git a/SAMPLE_MoneyMoney_scroll.txt b/SAMPLE_MoneyMoney_scroll.txt deleted file mode 100644 index d018b8d..0000000 --- a/SAMPLE_MoneyMoney_scroll.txt +++ /dev/null @@ -1,157 +0,0 @@ -MIDITONES_SCROLL V1.5, (C) 2011,2016 Len Shustek -Processing MoneyMoney.bin, 30291 bytes. -Found Pt self-describing file header with flags E0 00, # tone gens = 16 - -duration time gen0 gen1 gen2 gen3 gen4 gen5 bytestream code - - 2000 0.000 0000: 50 74 06 E0 00 10 07 D0 - 15 2.000 HHatC v65 0008: 90 AA 41 00 0F - 484 2.015 000D: 80 01 E4 - 15 2.499 HHatC v65 0010: 90 AA 41 00 0F - 484 2.514 0015: 80 01 E4 - 15 2.998 HHatC v65 0018: 90 AA 41 00 0F - 484 3.013 001D: 80 01 E4 - 15 3.497 HHatC v65 0020: 90 AA 41 00 0F - 484 3.512 0025: 80 01 E4 - BPiano BPiano BPiano BPiano Xyloph - 62 3.996 4E v104 4A v108 5C v104 5E v108 6E v88 0028: C0 01 90 40 68 C1 01 91 45 6C C2 01 92 48 68 C3 01 93 4C 6C C4 0D 94 58 58 00 3E - 62 4.058 6E v88 0043: 83 82 81 80 00 3E - 125 4.120 0049: 84 00 7D - 62 4.245 4E v96 4A v100 5C v84 5E v78 6E v72 004C: 90 40 60 91 45 64 92 48 54 93 4C 4E 94 58 48 00 3E - 62 4.307 6E v72 005D: 83 82 81 80 00 3E - 125 4.369 0063: 84 00 7D - 62 4.494 4E v84 4A v88 5C v78 5E v92 6E v84 0066: 90 40 54 91 45 58 92 48 4E 93 4C 5C 94 58 54 00 3E - 62 4.556 6E v84 0077: 83 82 81 80 00 3E - 125 4.618 007D: 84 00 7D - 62 4.743 4E v100 4A v100 5C v82 5E v88 6E v88 0080: 90 40 64 91 45 64 92 48 52 93 4C 58 94 58 58 00 3E - 62 4.805 6E v88 0091: 83 82 81 80 00 3E - 125 4.867 0097: 84 00 7D - 62 4.992 4E v96 4A v100 5C v88 5E v104 6E v88 009A: 90 40 60 91 45 64 92 48 58 93 4C 68 94 58 58 00 3E - 62 5.054 6E v88 00AB: 83 82 81 80 00 3E - 125 5.116 00B1: 84 00 7D - 125 5.241 4E v88 4A v92 5C v78 5E v104 6E v88 00B4: 90 40 58 91 45 5C 92 48 4E 93 4C 68 94 58 58 00 7D - 98 5.366 4E v88 4A v92 5C v78 5E v104 00C5: 84 00 62 - 26 5.464 00C8: 83 82 81 80 00 1A - 125 5.490 4E v108 5E v66 00CE: 90 40 6C 94 4C 42 00 7D - 125 5.615 4A v108 5A v62 00D6: 80 90 45 6C 84 94 51 3E 00 7D - 125 5.740 5C v96 6C v62 00E0: 80 90 48 60 84 94 54 3E 00 7D - 125 5.865 5E v104 6E v80 00EA: 80 90 4C 68 84 94 58 50 00 7D - 62 5.990 4F v104 4A v86 5C v84 5D# v65 6D# v68 00F4: 80 90 41 68 91 45 56 92 48 54 93 4B 41 84 94 57 44 00 3E - 62 6.052 6D# v68 0107: 83 82 81 80 00 3E - 125 6.114 010D: 84 00 7D - 62 6.239 4F v59 4A v88 5C v80 5D# v82 6D# v88 0110: 90 41 3B 91 45 58 92 48 50 93 4B 52 94 57 58 00 3E - 62 6.301 6D# v88 0121: 83 82 81 80 00 3E - 125 6.363 0127: 84 00 7D - 62 6.488 4F v96 4A v100 5C v84 5D# v82 6D# v88 012A: 90 41 60 91 45 64 92 48 54 93 4B 52 94 57 58 00 3E - 62 6.550 6D# v88 013B: 83 82 81 80 00 3E - 125 6.612 0141: 84 00 7D - 62 6.737 4F v92 4A v100 5C v80 5D# v82 6D# v76 0144: 90 41 5C 91 45 64 92 48 50 93 4B 52 94 57 4C 00 3E - 62 6.799 6D# v76 0155: 83 82 81 80 00 3E - 125 6.861 015B: 84 00 7D - 62 6.986 4F v100 4A v108 5C v84 5D# v80 6D# v64 015E: 90 41 64 91 45 6C 92 48 54 93 4B 50 94 57 40 00 3E - 62 7.048 6D# v64 016F: 83 82 81 80 00 3E - 125 7.110 0175: 84 00 7D - 125 7.235 4F v78 4A v100 5C v78 5D# v74 6D# v80 0178: 90 41 4E 91 45 64 92 48 4E 93 4B 4A 94 57 50 00 7D - 98 7.360 4F v78 4A v100 5C v78 5D# v74 0189: 84 00 62 - 26 7.458 018C: 83 82 81 80 00 1A - 125 7.484 4F v104 5F v64 0192: 90 41 68 94 4D 40 00 7D - 125 7.609 4A v82 5A v64 019A: 80 90 45 52 84 94 51 40 00 7D - 125 7.734 5C v74 6C v62 01A4: 80 90 48 4A 84 94 54 3E 00 7D - 125 7.859 5D# v92 6D# v76 01AE: 80 90 4B 5C 84 94 57 4C 00 7D - 125 7.984 3D v86 4F v92 4A v92 5D v88 6D v88 01B8: 80 90 32 56 91 41 5C 92 45 5C 93 4A 58 84 94 56 58 00 7D - 333 8.109 3D v86 4F v92 4A v92 5D v88 01CB: 84 01 4D - 20 8.442 3D v86 4F v92 5D v88 01CE: 82 00 14 - 20 8.462 3D v86 4F v92 01D1: 83 00 14 - 114 8.482 3D v86 4F v92 5C v104 6C v84 01D4: 92 48 68 94 54 54 00 72 - 10 8.596 3D v86 5C v104 6C v84 01DC: 81 00 0A - 88 8.606 3D v86 5C v104 01DF: 84 00 58 - 36 8.694 3D v86 01E2: 82 00 24 - 62 8.730 3D v86 4A v72 5A v62 01E5: 91 45 48 94 51 3E 00 3E - 62 8.792 3D v86 5A v62 01ED: 81 00 3E - 93 8.854 3D v86 01F0: 84 00 5D - 31 8.947 01F3: 80 00 1F - 78 8.978 3E v74 4D v82 4G# v104 5C v104 6C v84 01F6: 90 34 4A 91 3E 52 92 44 68 93 48 68 94 54 54 00 4E - 15 9.056 3E v74 4D v82 6C v84 0207: 82 83 00 0F - 31 9.071 3E v74 6C v84 020B: 81 00 1F - 83 9.102 3E v74 020E: 84 00 53 - 41 9.185 0211: 80 00 29 - 125 9.226 3E v58 4D v86 4G# v112 5C v112 6C v84 0214: 90 34 3A 91 3E 56 92 44 70 93 48 70 94 54 54 00 7D - 250 9.351 3E v58 4D v86 4G# v112 5C v112 0225: 84 00 FA - 83 9.601 3E v58 0228: 83 82 81 00 53 - 41 9.684 022D: 80 00 29 - 125 9.725 4C v112 4E v96 4A v100 5A v80 0230: 90 3C 70 91 40 60 92 45 64 94 51 50 00 7D - 229 9.850 4C v112 4E v96 4A v100 023E: 84 00 E5 - 26 10.079 4C v112 4E v96 0241: 82 00 1A - 31 10.105 4C v112 0244: 81 00 1F - 338 10.136 0247: 80 01 52 - 62 10.474 2A v96 024A: 90 2D 60 00 3E - 62 10.536 2A v96 3E v100 024F: 91 34 64 00 3E - 31 10.598 2A v96 3E v100 3A v82 0254: 92 39 52 00 1F - 10 10.629 3E v100 3A v82 0259: 80 00 0A - 20 10.639 3A v82 025C: 81 00 14 - 15 10.659 3C v88 3A v82 025F: 90 30 58 00 0F - 46 10.674 3C v88 0264: 82 00 2E - 20 10.720 3C v88 3E v86 0267: 91 34 56 00 14 - 41 10.740 3E v86 026C: 80 00 29 - 15 10.781 3A v76 3E v86 026F: 90 39 4C 00 0F - 31 10.796 3A v76 0274: 81 00 1F - 15 10.827 0277: 80 00 0F - 62 10.842 4C v100 027A: 90 3C 64 00 3E - 62 10.904 4C v100 4E v88 027F: 91 40 58 00 3E - 10 10.966 4C v100 4E v88 4A v112 6A v92 0284: 92 45 70 94 5D 5C 00 0A - 20 10.976 4E v88 4A v112 6A v92 028C: 80 00 14 - 31 10.996 4A v112 6A v92 028F: 81 00 1F - 62 11.027 6A v92 0292: 82 00 3E - 875 11.089 0295: 84 03 6B - FiBass Callip - 15 11.964 1A v56 3A v74 5A v55 BassD v61 0298: C0 21 90 21 38 91 39 4A 95 A3 3D C2 52 92 51 37 00 0F - 109 11.979 1A v56 3A v74 5A v55 02AA: 85 00 6D - 125 12.088 1A v56 3B v72 5B v53 02AD: 81 91 3B 48 82 92 53 35 00 7D - 93 12.213 2A v58 4C v66 6C v52 02B7: 80 90 2D 3A 81 91 3C 42 82 92 54 34 00 5D - 31 12.306 4C v66 6C v52 02C5: 80 00 1F - 125 12.337 4E v96 6E v51 02C8: 81 91 40 60 82 92 58 33 00 7D - 15 12.462 1A v56 3A v84 5A v50 BassD v61 02D2: 90 21 38 81 91 39 54 95 A3 3D 82 92 51 32 00 0F - 109 12.477 1A v56 3A v84 5A v50 02E2: 85 00 6D - 125 12.586 1A v56 3B v88 5B v48 02E5: 81 91 3B 58 82 92 53 30 00 7D - 83 12.711 2A v54 4C v82 6C v47 02EF: 80 90 2D 36 81 91 3C 52 82 92 54 2F 00 53 - 41 12.794 4C v82 6C v47 02FD: 80 00 29 - 125 12.835 4E v112 6E v46 0300: 81 91 40 70 82 92 58 2E 00 7D - 15 12.960 1A v60 3A v108 5A v44 BassD v62 030A: 90 21 3C 81 91 39 6C 95 A3 3E 82 92 51 2C 00 0F - 109 12.975 1A v60 3A v108 5A v44 031A: 85 00 6D - 125 13.084 1A v60 3B v104 5B v43 031D: 81 91 3B 68 82 92 53 2B 00 7D - 119 13.209 2A v54 4C v100 6C v42 0327: 80 90 2D 36 81 91 3C 64 82 92 54 2A 00 77 - 5 13.328 4C v100 6C v42 0335: 80 00 05 - 125 13.333 4E v108 6E v40 0338: 81 91 40 6C 82 92 58 28 00 7D - 15 13.458 1A v62 3A v100 5A v39 BassD v63 0342: 90 21 3E 81 91 39 64 95 A3 3F 82 92 51 27 00 0F - 109 13.473 1A v62 3A v100 5A v39 0352: 85 00 6D - 125 13.582 1A v62 3B v112 5B v38 0355: 81 91 3B 70 82 92 53 26 00 7D - 125 13.707 2A v58 4C v104 6C v37 035F: 80 90 2D 3A 81 91 3C 68 82 92 54 25 00 7D - 10 13.832 2A v58 4E v117 6E v35 036D: 81 91 40 75 82 92 58 23 00 0A - 114 13.842 4E v117 6E v35 0377: 80 00 72 - 15 13.956 1A v60 3A v100 5A v34 BassD v63 037A: 90 21 3C 81 91 39 64 95 A3 3F 82 92 51 22 00 0F - 109 13.971 1A v60 3A v100 5A v34 038A: 85 00 6D - 125 14.080 1A v60 3B v100 5B v33 038D: 81 91 3B 64 82 92 53 21 00 7D - 72 14.205 2A v54 4C v86 6C v31 0397: 80 90 2D 36 81 91 3C 56 82 92 54 1F 00 48 - 52 14.277 4C v86 6C v31 03A5: 80 00 34 - 125 14.329 4E v92 6E v30 03A8: 81 91 40 5C 82 92 58 1E 00 7D - 15 14.454 1A v60 3A v84 5A v29 BassD v64 03B2: 90 21 3C 81 91 39 54 95 A3 40 82 92 51 1D 00 0F - 109 14.469 1A v60 3A v84 5A v29 03C2: 85 00 6D - 125 14.578 1A v60 3B v74 5B v27 03C5: 81 91 3B 4A 82 92 53 1B 00 7D - 57 14.703 2A v50 4C v70 6C v26 03CF: 80 90 2D 32 81 91 3C 46 82 92 54 1A 00 39 - 67 14.760 4C v70 6C v26 03DD: 80 00 43 - 125 14.827 4E v86 6E v25 03E0: 81 91 40 56 82 92 58 19 00 7D - 15 14.952 1A v62 3A v74 5A v24 BassD v65 03EA: 90 21 3E 81 91 39 4A 95 A3 41 82 92 51 18 00 0F - 109 14.967 1A v62 3A v74 5A v24 03FA: 85 00 6D - 125 15.076 1A v62 3B v74 5B v22 03FD: 81 91 3B 4A 82 92 53 16 00 7D - 88 15.201 2A v54 4C v60 6C v21 0407: 80 90 2D 36 81 91 3C 3C 82 92 54 15 00 58 - 36 15.289 4C v60 6C v21 0415: 80 00 24 - 125 15.325 4E v72 6E v20 0418: 81 91 40 48 82 92 58 14 00 7D - 15 15.450 1A v58 3A v56 5A v18 BassD v65 0422: 90 21 3A 81 91 39 38 95 A3 41 82 92 51 12 00 0F - 109 15.465 1A v58 3A v56 5A v18 0432: 85 00 6D - 125 15.574 1A v58 3B v64 5B v17 0435: 81 91 3B 40 82 92 53 11 00 7D - <...> -<...> 7652: F0 - -At most 16 tone generators were used. -2349 notes were not displayed because we were told to show only 6 generators. -Done. diff --git a/miditones_scroll.c b/miditones_scroll.c index 4c77db5..1931238 100644 --- a/miditones_scroll.c +++ b/miditones_scroll.c @@ -2,64 +2,58 @@ * * MIDITONES_SCROLL * -* Decode a PLAYTUNE bytestream of notes as a time-ordered scroll, sort of like a -* piano roll with non-uniform time. This is a command-line program with no GUI. +* Decode a PLAYTUNE bytestream of notes as a time-ordered scroll, sort of like +* a piano roll with non-uniform time. Instrument and volume information, if +* present, is displayed. * -* -* There are two primary uses: +* This is a command-line program with no GUI. There are two primary uses: * * (1) To debug errors that cause some MIDI scripts to sound strange. * * (2) To create a C-program array initialized with the bytestream, but annotated -* with the original notes. This is semantically the same as the normal output -* of MIDITONES, but is easier to edit manually. The downside is that the C -* source code file is much larger. +* with the original notes. This is semantically the same as the normal output +* of MIDITONES, but is easier to edit manually. The downside is that the C +* source code file is much larger. * * In both cases it reads a xxx.bin file that was created from a MIDI file by * MIDITONES using the -b option. * -* -* For use case (1), just invoke the program with the base filename. The output is -* to the console, which can be directed to a file using the usual >file redirection. -* For example, starting with the original midi file "song.mid", say this: -* +* Starting with the midi file "song.mid", do this: * miditones -b song -* miditones_scroll song >song.txt -* +* miditones_scroll song * and then the file "song.txt" will contain the piano roll. * +* If instead you do this: +* miditones -b song +* miditones_scroll -c song +* then the file "song.c" will contain the annotated PLAYTUNE bytestream C code. * -* For use case (2), use the -c option to create a .c file. -* For example, starting with the original midi file "song.mid", say this: -* -* miditones -b song -* miditones_scroll -c song -* -* and then the file "song.c" will contain the PLAYTUNE bytestream C code. -* -* -* Other command-line options: +* Other command-line options besides -c: * -* -tn says that up to n tone generators should be displayed. The default +* -tn Up to n tone generators should be displayed. The default * is 6 and the maximum is 16. * -* -v says that we expect the binary file to contain encoded note volume -* information as generated from Miditones with the -v option. That -* volume information is displayed next to each note. +* -v Expect the binary file to contain encoded note volume +* information as generated from Miditones with the -v option, +* even if there is no file header that says so. +* The volume is displayed next to each note. * -* -vi says that we expect volume information to be in the file, but we -* should ignore it when creating the display. -* -* -ii says we should not display instrument information we find +* -vi Expect volume information to be in the file, but ignore +* it when creating the display. * +* -x Show notes in hex instead of as octave-noteletter-sharp * * For source code to this and related programs, see -* www.github.com/LenShustek/miditones -* www.github.com/LenShustek/arduino-playtune +* www.github.com/LenShustek/miditones +* www.github.com/LenShustek/arduino-playtune +* www.github.com/LenShustek/Playtune_poll +* www.github.com/LenShustek/Playtune_poll +* www.github.com/LenShustek/Playtune_synth +* www.github.com/LenShustek/ATtiny-playtune * *---------------------------------------------------------------------------------------- * The MIT License (MIT) -* Copyright (c) 2011,2013,2015,2016, Len Shustek +* Copyright (c) 2011,2013,2015,2016,2019, Len Shustek * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -78,8 +72,7 @@ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ******************************************************************************************/ -// formatted with: indent miditones_scroll.c -br -brf -brs -ce -npsl -nut -i3 -l100 -lc100 - +// formatted with: Astyle -style=lisp -indent=spaces=3 -mode=c /* * Change log * @@ -108,9 +101,17 @@ * - Count the number of unnecessary "stop note" commands in the bytestream * 3 January 2019, Chris van Marle, V1.7 * - Handle repeat command (0xe0) +* 13 January 2019, L. Shustek, V1.8 +* - Warn about consecutive delays without intervening notes +* - Mark the location of warnings with a '!' before the hex address +* - Move the "duration" column (now "delay") to before the +* bytestream, to better indicate what order events happen in. +* - Write the output to .txt, if not -c +* - Decode the header flags +* - Reformat to condense the code */ -#define VERSION "1.6" +#define VERSION "1.8" #include #include @@ -119,7 +120,6 @@ #include #include - /*********** Global variables ******************/ #define MAX_TONEGENS 16 /* max tone generators we could display */ @@ -132,13 +132,15 @@ 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; +FILE *infile, *outfile, *infofile; 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 = 0; unsigned int stopnotes_before_startnote = 0; +unsigned int consecutive_delays = 0; +bool warning = false; unsigned long timenow = 0; unsigned char cmd, gen; @@ -147,7 +149,7 @@ unsigned delay; bool codeoutput = false; bool expect_volume = false; bool ignore_volume = false; -bool ignore_instruments = false; +bool showhex = false; struct file_hdr_t { /* what the optional file header looks like */ char id1; // 'P' @@ -195,8 +197,7 @@ static char *notename[256] = { /* maximum 5 characters */ "P096 ", "P097 ", "P098 ", "P099 ", "P100 ", "P101 ", "P102 ", "P103 ", "P104 ", "P105 ", "P106 ", "P107 ", "P108 ", "P109 ", "P110 ", "P111 ", "P112 ", "P113 ", "P114 ", "P115 ", "P116 ", "P117 ", "P118 ", "P119 ", - "P120 ", "P121 ", "P122 ", "P123 ", "P124 ", "P125 ", "P126 ", "P127" -}; + "P120 ", "P121 ", "P122 ", "P123 ", "P124 ", "P125 ", "P126 ", "P127" }; static char *instrumentname[128] = { /* maximum 6 characters */ "APiano", "BPiano", "EPiano", "HPiano", "E1Pian", "E2Pian", "Harpsi", "Clavic", @@ -214,8 +215,7 @@ static char *instrumentname[128] = { /* maximum 6 characters */ "FX1 ", "FX2 ", "FX3 ", "FX4 ", "FX5 ", "FX6 ", "FX7 ", "FX8 ", "Sitar ", "Banjo ", "Shamis", "Koto ", "Kalimb", "Bagpip", "Fiddle", "Shanai", "TnkBel", "Agogo ", "StDrum", "WdBlok", "TaiDrm", "MelTom", "SynDrm", "RevCym", - "GuitFr", "Breath", "Seashr", "BirdTw", "Phone ", "Copter", "Claps ", "Guns " -}; + "GuitFr", "Breath", "Seashr", "BirdTw", "Phone ", "Copter", "Claps ", "Guns " }; /************** command-line processing *******************/ @@ -228,13 +228,12 @@ void SayUsage (char *programName) { " -tn displays up to n tone generators", " -v expects and displays volume information", " -vi expects and ignores volume information", - " -c option creates an annotated C source file as .c", - "" - }; + " -c creates an annotated C source file as .c", + " -x show notes in hex instead of octave/note", + "" }; int i = 0; while (usage[i][0] != '\0') - fprintf (stderr, "%s\n", usage[i++]); -} + fprintf (stderr, "%s\n", usage[i++]); } int HandleOptions (int argc, char *argv[]) { /* returns the index of the first argument that is not an option; i.e. @@ -253,11 +252,13 @@ int HandleOptions (int argc, char *argv[]) { case 'C': codeoutput = true; break; + case 'X': + showhex = true; + break; case 'T': if (sscanf (&argv[i][2], "%d", &num_tonegens) != 1 || num_tonegens < 1 - || num_tonegens > MAX_TONEGENS) + || num_tonegens > MAX_TONEGENS) goto opterror; - printf ("Displaying %d tone generators.\n", num_tonegens); break; case 'V': expect_volume = true; @@ -270,27 +271,22 @@ int HandleOptions (int argc, char *argv[]) { break; /* add more option switches here */ - opterror: +opterror: default: fprintf (stderr, "unknown option: %s\n", argv[i]); SayUsage (argv[0]); - exit (4); - } - } else { + exit (4); } } + else { firstnonoption = i; - break; - } - } - return firstnonoption; -} + break; } } + return firstnonoption; } /*************** portable string length *****************/ int strlength (const char *str) { int i; for (i = 0; str[i] != '\0'; ++i); - return i; -} + return i; } /*************** safe string copy *****************/ @@ -298,19 +294,15 @@ unsigned int strlcpy (char *dst, const char *src, unsigned int siz) { char *d = dst; const char *s = src; unsigned int n = siz; - /* Copy as many bytes as will fit */ - if (n != 0) { + if (n != 0) { /* Copy as many bytes as will fit */ while (--n != 0) { if ((*d++ = *s++) == '\0') - break; - } - } + break; } } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) *d = '\0'; /* NUL-terminate dst */ - while (*s++); - } + while (*s++); } return (s - src - 1); /* count does not include NUL */ } @@ -322,140 +314,118 @@ unsigned int strlcat (char *dst, const char *src, unsigned int siz) { unsigned int n = siz; unsigned int dlen; /* Find the end of dst and adjust bytes left but don't go past end */ - while (n-- != 0 && *d != '\0') - d++; + while (n-- != 0 && *d != '\0') d++; dlen = d - dst; n = siz - dlen; - if (n == 0) - return (dlen + strlength (s)); + if (n == 0) return (dlen + strlength (s)); while (*s != '\0') { if (n != 1) { *d++ = *s; - n--; - } - s++; - } + n--; } + s++; } *d = '\0'; return (dlen + (s - src)); /* count does not include NUL */ } - -/*************** Found a fatal input file format error ************************/ +/*************** Found a file format error ************************/ void file_error (char *msg, unsigned char *bufptr) { unsigned char *ptr; - fprintf (stderr, "\n---> file format error at position %04X (%d): %s\n", - (unsigned int) (bufptr - buffer), (unsigned int) (bufptr - buffer), msg); + fprintf (outfile, "\n---> file format error at position %04X (%d), time %d.%03d: %s\n", + (unsigned int) (bufptr - buffer), (unsigned int) (bufptr - buffer), timenow / 1000, timenow % 1000, msg); /* print some bytes surrounding the error */ ptr = bufptr - 16; - if (ptr < buffer) - ptr = buffer; + if (ptr < buffer) ptr = buffer; for (; ptr <= bufptr + 16 && ptr < buffer + buflen; ++ptr) - fprintf (stderr, ptr == bufptr ? " [%02X] " : "%02X ", *ptr); - fprintf (stderr, "\n"); - exit (8); -} + fprintf (outfile, ptr == bufptr ? " [%02X] " : "%02X ", *ptr); + fprintf (outfile, "\n"); } /************** Output a line for the current status as we start a delay **************/ // show the current time, status of all the tone generators, and the bytestream data that got us here void print_status (void) { - int gen; + unsigned gen; bool any_instr_changed = false; for (gen = 0; gen < num_tonegens; ++gen) any_instr_changed |= gen_instrument_changed[gen]; if (any_instr_changed) { if (codeoutput) fprintf (outfile, "//"); - fprintf (outfile, "%21s", ""); + fprintf (outfile, "%15s", ""); for (gen = 0; gen < num_tonegens; ++gen) { if (gen_instrument_changed[gen]) { gen_instrument_changed[gen] = false; - fprintf (outfile, "%6s", instrumentname[gen_instrument[gen]]); - } else + fprintf (outfile, "%6s", instrumentname[gen_instrument[gen]]); } + else fprintf (outfile, "%6s", ""); if (expect_volume && !ignore_volume) - fprintf (outfile, "%5s", ""); - } - fprintf (outfile, "\n"); - } + fprintf (outfile, "%5s", ""); } + fprintf (outfile, "\n"); } if (codeoutput) fprintf (outfile, "/*"); // start comment // print the current timestamp - fprintf (outfile, "%5d %7d.%03d ", delay, timenow / 1000, timenow % 1000); + fprintf (outfile, "%7d.%03d ", timenow / 1000, timenow % 1000); // print the current status of all tone generators for (gen = 0; gen < num_tonegens; ++gen) { - fprintf (outfile, "%6s", gen_note[gen] == SILENT ? " " : notename[gen_note[gen]]); + if (showhex && gen_note[gen] != SILENT) + fprintf(outfile, " 0x%02X ", gen_note[gen]); + else fprintf (outfile, "%6s", gen_note[gen] == SILENT ? " " : notename[gen_note[gen]]); if (expect_volume && !ignore_volume) if (gen_note[gen] == SILENT) fprintf (outfile, " "); else - fprintf (outfile, " v%-3d", gen_volume[gen]); - } + fprintf (outfile, " v%-3d", gen_volume[gen]); } // display the hex commands that created these changes - fprintf (outfile, " %04X: ", (unsigned int) (lastbufptr - buffer)); // offset + fprintf (outfile, "%3u.%03u %c%04X: ", delay/1000, delay%1000, warning ? '!' : ' ', (unsigned int) (lastbufptr - buffer)); + warning = false; if (codeoutput) fprintf (outfile, "*/ "); // end comment for (; lastbufptr <= bufptr; ++lastbufptr) fprintf (outfile, codeoutput ? "0x%02X," : "%02X ", *lastbufptr); fprintf (outfile, "\n"); - lastbufptr = bufptr + 1; - -} + lastbufptr = bufptr + 1; } int countbits (unsigned int bitmap) { int count; for (count = 0; bitmap; bitmap >>= 1) count += bitmap & 1; - return count; -} + return count; } /********************* main loop ****************************/ int main (int argc, char *argv[]) { - int argno, i; + int argno; char *filebasename; #define MAXPATH 80 char filename[MAXPATH]; - unsigned int tonegens_used; // bitmap of tone generators used - unsigned int num_tonegens_used; // count of tone generators used - printf ("MIDITONES_SCROLL V%s, (C) 2011,2016 Len Shustek\n", VERSION); + printf ("MIDITONES_SCROLL V%s, (C) 2011,2019 Len Shustek\n", VERSION); if (argc == 1) { /* no arguments */ SayUsage (argv[0]); - return 1; - } + return 1; } - /* process options */ - - argno = HandleOptions (argc, argv); + argno = HandleOptions (argc, argv); /* process options */ filebasename = argv[argno]; - /* Open the input file */ - - strlcpy (filename, filebasename, MAXPATH); + strlcpy (filename, filebasename, MAXPATH); // Open the input file strlcat (filename, ".bin", MAXPATH); infile = fopen (filename, "rb"); if (!infile) { fprintf (stderr, "Unable to open input file %s", filename); - return 1; - } - - /* Create the output file */ - - if (codeoutput) { - strlcpy (filename, filebasename, MAXPATH); - strlcat (filename, ".c", MAXPATH); - outfile = fopen (filename, "w"); - if (!infile) { - fprintf (stderr, "Unable to open output file %s", filename); - return 1; - } - } else - outfile = stdout; + return 8; } + printf("Opening %s\n", filename); + + strlcpy (filename, filebasename, MAXPATH); // open the output file + strlcat (filename, codeoutput ? ".c" : ".txt", MAXPATH); + outfile = fopen (filename, "w"); + if (!outfile) { + fprintf (stderr, "Unable to open output file %s", filename); + return 8; } + printf("Creating %s\n", filename); + infofile = codeoutput ? stdout : outfile; /* Read the whole input file into memory */ @@ -465,62 +435,77 @@ int main (int argc, char *argv[]) { buffer = (unsigned char *) malloc (buflen + 1); if (!buffer) { fprintf (stderr, "Unable to allocate %ld bytes for the file", buflen); - return 1; - } + return 8; } fread (buffer, buflen, 1, infile); fclose (infile); - printf ("Processing %s.bin, %ld bytes.\n", filebasename, buflen); - if (codeoutput) { - time_t rawtime; - time (&rawtime); + + /* write the prologue */ + + time_t rawtime; + time (&rawtime); + printf ("Reading %s.bin with %ld bytes\n", filebasename, buflen); + if (!codeoutput) { + fprintf(outfile, "MIDITONES_SCROLL V%s on %s", VERSION, asctime(localtime(&rawtime))); + fprintf(outfile, "command line: "); + for (int i = 0; i < argc; i++) fprintf(outfile, "%s ", argv[i]); + fprintf(outfile, "\n"); + fprintf(outfile, "reading %s.bin with %ld bytes\n", filebasename, buflen); + if (num_tonegens < MAX_TONEGENS) fprintf(outfile, "displaying only %d tone generators.\n", num_tonegens); + } + else { fprintf (outfile, "// Playtune bytestream for file \"%s.bin\"", filebasename); fprintf (outfile, " created by MIDITONES_SCROLL V%s on %s\n", VERSION, asctime (localtime (&rawtime))); - fprintf (outfile, "const byte PROGMEM score [] = {\n"); - } + fprintf (outfile, "const byte PROGMEM score [] = {\n"); } + bufptr = lastbufptr = buffer; /* Check for the optional self-describing file header */ - bufptr = buffer; - { - struct file_hdr_t *hdrptr = (struct file_hdr_t *) buffer; - if (buflen > sizeof (struct file_hdr_t) && hdrptr->id1 == 'P' && hdrptr->id2 == 't') { - printf ("Found Pt self-describing file header with flags %02X %02X, # tone gens = %d\n", - hdrptr->f1, hdrptr->f2, hdrptr->num_tgens); - expect_volume = hdrptr->f1 & HDR_F1_VOLUME_PRESENT; - bufptr += hdrptr->hdr_length; - if (codeoutput) { - fprintf (outfile, "'P','t', 6, 0x%02X, 0x%02X, %2d, // (Playtune file header)\n", - hdrptr->f1, hdrptr->f2, hdrptr->num_tgens); - } - } - } + struct file_hdr_t *hdrptr = (struct file_hdr_t *) buffer; + if (buflen > sizeof (struct file_hdr_t) && hdrptr->id1 == 'P' && hdrptr->id2 == 't') { + fprintf(infofile, "\nfound Pt self-describing file header with flags %02X %02X\n", hdrptr->f1, hdrptr->f2); + fprintf(infofile, " number of tone generators used: %d\n", hdrptr->num_tgens); + if (hdrptr->f1 & HDR_F1_VOLUME_PRESENT) fprintf(infofile, " volume levels are present\n"); + if (hdrptr->f1 & HDR_F1_INSTRUMENTS_PRESENT) fprintf(infofile, " instrument changes are present\n"); + if (hdrptr->f1 & HDR_F1_PERCUSSION_PRESENT) fprintf(infofile, " percussion is encoded as notes 128 to 255\n"); + + expect_volume = hdrptr->f1 & HDR_F1_VOLUME_PRESENT; + bufptr += hdrptr->hdr_length; + lastbufptr = bufptr; + if (codeoutput) { + fprintf (outfile, "'P','t', 6, 0x%02X, 0x%02X, %2d, // (Playtune file header)\n", + hdrptr->f1, hdrptr->f2, hdrptr->num_tgens); } } /* Do the titles */ fprintf (outfile, "\n"); - if (codeoutput) - fprintf (outfile, "//"); - fprintf (outfile, "duration time "); - for (i = 0; i < num_tonegens; ++i) + if (codeoutput) fprintf (outfile, "//"); + fprintf (outfile, " time "); + for (unsigned i = 0; i < num_tonegens; ++i) fprintf (outfile, expect_volume && !ignore_volume ? " gen%-5d" : " gen%-2d", i); - fprintf (outfile, " bytestream code\n\n"); + fprintf (outfile, "delay addr bytestream code\n\n"); for (gen = 0; gen < num_tonegens; ++gen) gen_note[gen] = SILENT; - tonegens_used = 0; - lastbufptr = buffer; - /* Process the commmands sequentially */ + unsigned tonegens_used = 0; + bool gotcommand = true; + + /* Process the commmands in order */ for (; bufptr < buffer + buflen; ++bufptr) { cmd = *bufptr; if (cmd < 0x80) { /* delay */ - delay = ((unsigned int) cmd << 8) + *++bufptr; - print_status (); // tone generator status now + if (!gotcommand) { + ++consecutive_delays; + warning = true; } + gotcommand = false; + 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 && cmd != 0xe0) { /* a command */ + gen_did_stopnote[gen] = false; } + else if (cmd != 0xf0 && cmd != 0xe0) { /* a command */ + gotcommand = true; gen = cmd & 0x0f; if (gen > max_tonegen_found) max_tonegen_found = gen; @@ -528,27 +513,25 @@ 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 (gen_did_stopnote[gen]) { // unnecesary stop note + ++stopnotes_before_startnote; + warning = true; } if (expect_volume) gen_volume[gen] = *++bufptr; // volume - if (gen >= num_tonegens) - ++notes_skipped; // won't be displaying this note - } else if (cmd == 0x80) { /* note off */ + if (gen >= num_tonegens) ++notes_skipped; // won't be displaying this note + } + else if (cmd == 0x80) { /* note off */ if (gen_note[gen] == SILENT) - file_error ("tone generator not on", bufptr); + file_error("tone generator not on", bufptr); gen_note[gen] = SILENT; - gen_did_stopnote[gen] = true; - } else if (cmd == 0xc0) { /* change instrument */ + gen_did_stopnote[gen] = true; } + else if (cmd == 0xc0) { /* change instrument */ gen_instrument[gen] = *++bufptr & 0x7f; - gen_instrument_changed[gen] = true; - } else - file_error ("unknown command", bufptr); - } - } - + gen_instrument_changed[gen] = true; } + else { + file_error("unknown command", bufptr); + fprintf(stderr, "*** unknown command in input bytestream; see output file\n"); + exit(8); } } } /* Do the final cleanup */ @@ -559,15 +542,17 @@ int main (int argc, char *argv[]) { print_status (); // print final status if (codeoutput) { fprintf (outfile, " 0x%02x};\n", *(bufptr+1) & 0xf0); - num_tonegens_used = countbits (tonegens_used); + unsigned num_tonegens_used = countbits (tonegens_used); fprintf (outfile, "// This score contains %ld bytes, and %d tone generator%s used.\n", - buflen, num_tonegens_used, num_tonegens_used == 1 ? " is" : "s are"); - } else + buflen, num_tonegens_used, num_tonegens_used == 1 ? " is" : "s are"); } + else fprintf (outfile, "\n"); - printf ("At most %u tone generators were used.\n", max_tonegen_found + 1); + + fprintf (infofile, "At most %u tone generators were used.\n", max_tonegen_found + 1); 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"); -} + fprintf (infofile, "%u notes were not displayed because we were told to show only %u generators.\n", + notes_skipped, num_tonegens); + fprintf (infofile, "%u stopnote commands were unnecessary.\n", stopnotes_before_startnote); + fprintf (infofile, "%u consecutive delays could have been merged.\n", consecutive_delays); + if (stopnotes_before_startnote + consecutive_delays > 0) fprintf (infofile, "(Those locations are marked with \"!\")\n"); + printf ("Done.\n"); } diff --git a/miditones_scroll.exe b/miditones_scroll.exe index 47d3654077f3643a8d7087a3e92f6f297cc2e02d..ab64fa824160e8938c5d82a64da8bc42b5f10433 100644 GIT binary patch literal 53760 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

nN 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 diff --git a/miditones_scroll_example.txt b/miditones_scroll_example.txt new file mode 100644 index 0000000..5b31a3d --- /dev/null +++ b/miditones_scroll_example.txt @@ -0,0 +1,178 @@ +MIDITONES_SCROLL V1.8 on Tue Jan 15 08:25:22 2019 +command line: ..\..\miditones_scroll\debug\miditones_scroll -t6 money +reading money.bin with 29733 bytes +displaying only 6 tone generators. + +found Pt self-describing file header with flags E0 00 + number of tone generators used: 16 + volume levels are present + instrument changes are present + percussion is encoded as notes 128 to 255 + + time gen0 gen1 gen2 gen3 gen4 gen5 delay addr bytestream code + + 0.000 2.000 0006: 07 D0 + 2.000 HHatC v65 0.015 0008: 90 AA 41 00 0F + 2.015 0.485 000D: 80 01 E5 + 2.500 HHatC v65 0.015 0010: 90 AA 41 00 0F + 2.515 0.485 0015: 80 01 E5 + 3.000 HHatC v65 0.015 0018: 90 AA 41 00 0F + 3.015 0.485 001D: 80 01 E5 + 3.500 HHatC v65 0.015 0020: 90 AA 41 00 0F + 3.515 0.485 0025: 80 01 E5 + BPiano BPiano BPiano BPiano Xyloph + 4.000 4E v104 4A v108 5C v104 5E v108 6E v88 0.062 0028: C0 01 90 40 68 C1 01 91 45 6C C2 01 92 48 68 C3 01 93 4C 6C C4 0D 94 58 58 00 3E + 4.062 6E v88 0.063 0043: 80 81 82 83 00 3F + 4.125 0.125 0049: 84 00 7D + 4.250 4E v96 4A v100 5C v84 5E v78 6E v72 0.062 004C: 90 40 60 91 45 64 92 48 54 93 4C 4E 94 58 48 00 3E + 4.312 6E v72 0.063 005D: 80 81 82 83 00 3F + 4.375 0.125 0063: 84 00 7D + 4.500 4E v84 4A v88 5C v78 5E v92 6E v84 0.062 0066: 90 40 54 91 45 58 92 48 4E 93 4C 5C 94 58 54 00 3E + 4.562 6E v84 0.063 0077: 80 81 82 83 00 3F + 4.625 0.125 007D: 84 00 7D + 4.750 4E v100 4A v100 5C v82 5E v88 6E v88 0.062 0080: 90 40 64 91 45 64 92 48 52 93 4C 58 94 58 58 00 3E + 4.812 6E v88 0.063 0091: 80 81 82 83 00 3F + 4.875 0.125 0097: 84 00 7D + 5.000 4E v96 4A v100 5C v88 5E v104 6E v88 0.062 009A: 90 40 60 91 45 64 92 48 58 93 4C 68 94 58 58 00 3E + 5.062 6E v88 0.063 00AB: 80 81 82 83 00 3F + 5.125 0.125 00B1: 84 00 7D + 5.250 4E v88 4A v92 5C v78 5E v104 6E v88 0.125 00B4: 90 40 58 91 45 5C 92 48 4E 93 4C 68 94 58 58 00 7D + 5.375 4E v88 4A v92 5C v78 5E v104 0.098 00C5: 84 00 62 + 5.473 0.026 00C8: 80 81 82 83 00 1A + 5.499 4E v108 5E v66 0.125 00CE: 90 40 6C 94 4C 42 00 7D + 5.624 4A v108 5A v62 0.125 00D6: 90 45 6C 94 51 3E 00 7D + 5.749 5C v96 6C v62 0.125 00DE: 90 48 60 94 54 3E 00 7D + 5.874 5E v104 6E v80 0.125 00E6: 90 4C 68 94 58 50 00 7D + 5.999 4F v104 4A v86 5C v84 5D# v65 6D# v68 0.063 00EE: 90 41 68 91 45 56 92 48 54 93 4B 41 94 57 44 00 3F + 6.062 6D# v68 0.062 00FF: 80 81 82 83 00 3E + 6.124 0.125 0105: 84 00 7D + 6.249 4F v59 4A v88 5C v80 5D# v82 6D# v88 0.063 0108: 90 41 3B 91 45 58 92 48 50 93 4B 52 94 57 58 00 3F + 6.312 6D# v88 0.062 0119: 80 81 82 83 00 3E + 6.374 0.125 011F: 84 00 7D + 6.499 4F v96 4A v100 5C v84 5D# v82 6D# v88 0.063 0122: 90 41 60 91 45 64 92 48 54 93 4B 52 94 57 58 00 3F + 6.562 6D# v88 0.062 0133: 80 81 82 83 00 3E + 6.624 0.125 0139: 84 00 7D + 6.749 4F v92 4A v100 5C v80 5D# v82 6D# v76 0.063 013C: 90 41 5C 91 45 64 92 48 50 93 4B 52 94 57 4C 00 3F + 6.812 6D# v76 0.062 014D: 80 81 82 83 00 3E + 6.874 0.125 0153: 84 00 7D + 6.999 4F v100 4A v108 5C v84 5D# v80 6D# v64 0.063 0156: 90 41 64 91 45 6C 92 48 54 93 4B 50 94 57 40 00 3F + 7.062 6D# v64 0.062 0167: 80 81 82 83 00 3E + 7.124 0.125 016D: 84 00 7D + 7.249 4F v78 4A v100 5C v78 5D# v74 6D# v80 0.125 0170: 90 41 4E 91 45 64 92 48 4E 93 4B 4A 94 57 50 00 7D + 7.374 4F v78 4A v100 5C v78 5D# v74 0.099 0181: 84 00 63 + 7.473 0.026 0184: 80 81 82 83 00 1A + 7.499 4F v104 5F v64 0.125 018A: 90 41 68 94 4D 40 00 7D + 7.624 4A v82 5A v64 0.125 0192: 90 45 52 94 51 40 00 7D + 7.749 5C v74 6C v62 0.125 019A: 90 48 4A 94 54 3E 00 7D + 7.874 5D# v92 6D# v76 0.125 01A2: 90 4B 5C 94 57 4C 00 7D + 7.999 3D v86 4F v92 4A v92 5D v88 6D v88 0.125 01AA: 90 32 56 91 41 5C 92 45 5C 93 4A 58 94 56 58 00 7D + 8.124 3D v86 4F v92 4A v92 5D v88 0.334 01BB: 84 01 4E + 8.458 3D v86 4F v92 5D v88 0.021 01BE: 82 00 15 + 8.479 3D v86 4F v92 0.020 01C1: 83 00 14 + 8.499 3D v86 4F v92 5C v104 6C v84 0.115 01C4: 92 48 68 94 54 54 00 73 + 8.614 3D v86 5C v104 6C v84 0.010 01CC: 81 00 0A + 8.624 3D v86 5C v104 0.089 01CF: 84 00 59 + 8.713 3D v86 0.036 01D2: 82 00 24 + 8.749 3D v86 4A v72 5A v62 0.063 01D5: 91 45 48 94 51 3E 00 3F + 8.812 3D v86 5A v62 0.062 01DD: 81 00 3E + 8.874 3D v86 0.094 01E0: 84 00 5E + 8.968 0.031 01E3: 80 00 1F + 8.999 3E v74 4D v82 4G# v104 5C v104 6C v84 0.079 01E6: 90 34 4A 91 3E 52 92 44 68 93 48 68 94 54 54 00 4F + 9.078 3E v74 4D v82 6C v84 0.015 01F7: 82 83 00 0F + 9.093 3E v74 6C v84 0.031 01FB: 81 00 1F + 9.124 3E v74 0.084 01FE: 84 00 54 + 9.208 0.041 0201: 80 00 29 + 9.249 3E v58 4D v86 4G# v112 5C v112 6C v84 0.125 0204: 90 34 3A 91 3E 56 92 44 70 93 48 70 94 54 54 00 7D + 9.374 3E v58 4D v86 4G# v112 5C v112 0.250 0215: 84 00 FA + 9.624 3E v58 0.084 0218: 81 82 83 00 54 + 9.708 0.041 021D: 80 00 29 + 9.749 4C v112 4E v96 4A v100 5A v80 0.125 0220: 90 3C 70 91 40 60 92 45 64 94 51 50 00 7D + 9.874 4C v112 4E v96 4A v100 0.230 022E: 84 00 E6 + 10.104 4C v112 4E v96 0.026 0231: 82 00 1A + 10.130 4C v112 0.031 0234: 81 00 1F + 10.161 0.338 0237: 80 01 52 + 10.499 2A v96 0.063 023A: 90 2D 60 00 3F + 10.562 2A v96 3E v100 0.062 023F: 91 34 64 00 3E + 10.624 2A v96 3E v100 3A v82 0.032 0244: 92 39 52 00 20 + 10.656 3E v100 3A v82 0.010 0249: 80 00 0A + 10.666 3A v82 0.021 024C: 81 00 15 + 10.687 3C v88 3A v82 0.016 024F: 90 30 58 00 10 + 10.703 3C v88 0.046 0254: 82 00 2E + 10.749 3C v88 3E v86 0.021 0257: 91 34 56 00 15 + 10.770 3E v86 0.042 025C: 80 00 2A + 10.812 3A v76 3E v86 0.016 025F: 90 39 4C 00 10 + 10.828 3A v76 0.031 0264: 81 00 1F + 10.859 0.015 0267: 80 00 0F + 10.874 4C v100 0.063 026A: 90 3C 64 00 3F + 10.937 4C v100 4E v88 0.062 026F: 91 40 58 00 3E + 10.999 4C v100 4E v88 4A v112 6A v92 0.011 0274: 92 45 70 94 5D 5C 00 0B + 11.010 4E v88 4A v112 6A v92 0.021 027C: 80 00 15 + 11.031 4A v112 6A v92 0.031 027F: 81 00 1F + 11.062 6A v92 0.062 0282: 82 00 3E + 11.124 0.875 0285: 84 03 6B + FiBass Callip + 11.999 1A v56 3A v74 5A v55 BassD v61 0.016 0288: C0 21 90 21 38 91 39 4A 95 A3 3D C2 52 92 51 37 00 10 + 12.015 1A v56 3A v74 5A v55 0.109 029A: 85 00 6D + 12.124 1A v56 3B v72 5B v53 0.125 029D: 91 3B 48 92 53 35 00 7D + 12.249 2A v58 4C v66 6C v52 0.094 02A5: 90 2D 3A 91 3C 42 92 54 34 00 5E + 12.343 4C v66 6C v52 0.031 02B0: 80 00 1F + 12.374 4E v96 6E v51 0.125 02B3: 91 40 60 92 58 33 00 7D + 12.499 1A v56 3A v84 5A v50 BassD v61 0.016 02BB: 90 21 38 91 39 54 95 A3 3D 92 51 32 00 10 + 12.515 1A v56 3A v84 5A v50 0.109 02C9: 85 00 6D + 12.624 1A v56 3B v88 5B v48 0.125 02CC: 91 3B 58 92 53 30 00 7D + 12.749 2A v54 4C v82 6C v47 0.084 02D4: 90 2D 36 91 3C 52 92 54 2F 00 54 + 12.833 4C v82 6C v47 0.041 02DF: 80 00 29 + 12.874 4E v112 6E v46 0.125 02E2: 91 40 70 92 58 2E 00 7D + 12.999 1A v60 3A v108 5A v44 BassD v62 0.016 02EA: 90 21 3C 91 39 6C 95 A3 3E 92 51 2C 00 10 + 13.015 1A v60 3A v108 5A v44 0.109 02F8: 85 00 6D + 13.124 1A v60 3B v104 5B v43 0.125 02FB: 91 3B 68 92 53 2B 00 7D + 13.249 2A v54 4C v100 6C v42 0.120 0303: 90 2D 36 91 3C 64 92 54 2A 00 78 + 13.369 4C v100 6C v42 0.005 030E: 80 00 05 + 13.374 4E v108 6E v40 0.125 0311: 91 40 6C 92 58 28 00 7D + 13.499 1A v62 3A v100 5A v39 BassD v63 0.016 0319: 90 21 3E 91 39 64 95 A3 3F 92 51 27 00 10 + 13.515 1A v62 3A v100 5A v39 0.109 0327: 85 00 6D + 13.624 1A v62 3B v112 5B v38 0.125 032A: 91 3B 70 92 53 26 00 7D + 13.749 2A v58 4C v104 6C v37 0.125 0332: 90 2D 3A 91 3C 68 92 54 25 00 7D + 13.874 2A v58 4E v117 6E v35 0.011 033D: 91 40 75 92 58 23 00 0B + 13.885 4E v117 6E v35 0.114 0345: 80 00 72 + 13.999 1A v60 3A v100 5A v34 BassD v63 0.016 0348: 90 21 3C 91 39 64 95 A3 3F 92 51 22 00 10 + 14.015 1A v60 3A v100 5A v34 0.109 0356: 85 00 6D + 14.124 1A v60 3B v100 5B v33 0.125 0359: 91 3B 64 92 53 21 00 7D + 14.249 2A v54 4C v86 6C v31 0.073 0361: 90 2D 36 91 3C 56 92 54 1F 00 49 + 14.322 4C v86 6C v31 0.052 036C: 80 00 34 + 14.374 4E v92 6E v30 0.125 036F: 91 40 5C 92 58 1E 00 7D + 14.499 1A v60 3A v84 5A v29 BassD v64 0.016 0377: 90 21 3C 91 39 54 95 A3 40 92 51 1D 00 10 + 14.515 1A v60 3A v84 5A v29 0.109 0385: 85 00 6D + 14.624 1A v60 3B v74 5B v27 0.125 0388: 91 3B 4A 92 53 1B 00 7D + 14.749 2A v50 4C v70 6C v26 0.058 0390: 90 2D 32 91 3C 46 92 54 1A 00 3A + 14.807 4C v70 6C v26 0.067 039B: 80 00 43 + 14.874 4E v86 6E v25 0.125 039E: 91 40 56 92 58 19 00 7D + 14.999 1A v62 3A v74 5A v24 BassD v65 0.016 03A6: 90 21 3E 91 39 4A 95 A3 41 92 51 18 00 10 + 15.015 1A v62 3A v74 5A v24 0.109 03B4: 85 00 6D + 15.124 1A v62 3B v74 5B v22 0.125 03B7: 91 3B 4A 92 53 16 00 7D + 15.249 2A v54 4C v60 6C v21 0.089 03BF: 90 2D 36 91 3C 3C 92 54 15 00 59 + 15.338 4C v60 6C v21 0.036 03CA: 80 00 24 + 15.374 4E v72 6E v20 0.125 03CD: 91 40 48 92 58 14 00 7D + 15.499 1A v58 3A v56 5A v18 BassD v65 0.016 03D5: 90 21 3A 91 39 38 95 A3 41 92 51 12 00 10 + 15.515 1A v58 3A v56 5A v18 0.109 03E3: 85 00 6D + 15.624 1A v58 3B v64 5B v17 0.125 03E6: 91 3B 40 92 53 11 00 7D + BPiano BPiano + 15.749 2A v60 4C v66 6C v16 3A v60 4C v78 4E v72 0.058 03EE: 90 2D 3C 93 39 3C C4 01 94 3C 4E C5 01 95 40 48 C6 57 96 40 49 91 3C 42 92 54 10 00 3A + 15.807 2A v60 4C v66 6C v16 3A v60 4E v72 0.005 040B: 84 00 05 + 15.812 2A v60 4C v66 6C v16 3A v60 4E v72 0.010 040E: 86 00 0A + 15.822 2A v60 4C v66 6C v16 0.011 0411: 83 85 00 0B + 15.833 4C v66 6C v16 0.041 0415: 80 00 29 +<...snip...> + 188.300 1A# v92 4A# v102 2A# v100 3A# v127 5C# v100 5F v117 0.021 740D: 87 88 8F 00 15 + 188.321 1A# v92 4A# v102 2A# v100 3A# v127 5C# v100 5F v117 0.031 7412: 8D 00 1F + 188.352 1A# v92 2A# v100 3A# v127 5C# v100 5F v117 0.036 7415: 81 00 24 + 188.388 2A# v100 5C# v100 5F v117 0.011 7418: 80 83 89 00 0B + 188.399 2A# v100 5F v117 0.005 741D: 84 00 05 + 188.404 2A# v100 0.026 7420: 85 00 1A + 188.430 0.000 7423: 82 F0 + +At most 16 tone generators were used. +2306 notes were not displayed because we were told to show only 6 generators. +0 stopnote commands were unnecessary. +1 consecutive delays could have been merged. +(Those locations are marked with "!")