From 9a394d5a0b6c46ce3293b8e80b7251a07703bb26 Mon Sep 17 00:00:00 2001 From: Len Shustek Date: Mon, 15 Aug 2016 16:27:41 -0700 Subject: [PATCH] fix "running status" bug; add volume, instruments, percussion, file header, etc. --- LICENSE.txt | 35 +- README.txt | 157 ++-- miditones.c | 1932 +++++++++++++++++++++++++----------------- miditones.exe | Bin 192104 -> 200296 bytes miditones32.exe | Bin 161527 -> 0 bytes miditones_scroll.c | 712 +++++++++------- miditones_scroll.exe | Bin 146874 -> 183400 bytes 7 files changed, 1685 insertions(+), 1151 deletions(-) delete mode 100644 miditones32.exe diff --git a/LICENSE.txt b/LICENSE.txt index 0cdd65f..e6f88c6 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,14 +1,21 @@ -* (C) Copyright 2011, 2013, 2015, Len Shustek -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of version 3 of the GNU General Public License as -* published by the Free Software Foundation at http://www.gnu.org/licenses, -* with Additional Permissions under term 7(b) that the original copyright -* notice and author attibution must be preserved and under term 7(c) that -* modified versions be marked as different from the original. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* \ No newline at end of file +The MIT License (MIT) + +Copyright (c) 2016, 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 +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, 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. \ No newline at end of file diff --git a/README.txt b/README.txt index 957db50..038613e 100644 --- a/README.txt +++ b/README.txt @@ -1,39 +1,42 @@ -/*-------------------------------------------------------------------------------- +/********************************************************************************************* * +* MIDITONES: Convert a MIDI file into a simple bytestream of notes * -* About MIDITONES * +* MIDITONES converts a MIDI music file into a much simplified stream of commands, so that +* the music can easily be played on a small microcontroller-based synthesizer that has +* only simple tone generators. This is on github at www.github.com/LenShustek/miditones. * -* MIDITONES converts a MIDI music file into a much simplified stream of commands, -* so that a version of the music can be played on a synthesizer having only -* tone generators without any volume or tone controls. +* Volume ("velocity") and instrument information in the MIDI file can either be +* discarded or kept. All the tracks are prcoessed and merged into a single time-ordered +* stream of "note on", "note off", "change instrument" and "delay" commands. * -* Volume ("velocity") and instrument specifications in the MIDI files are generally -* discarded. All the tracks are prcoessed and merged into a single time-ordered -* stream of "note on", "note off", and "delay" commands. -* -* This was written for the "Playtune" Arduino library, which plays polyphonic music -* using up to 6 tone generators run by the timers on the processor. See the separate -* documentation for Playtune. But MIDITONES may prove useful for other tone -* generating systems. +* This was written for the "Playtune" series of Arduino and Teensy microcontroller +* synthesizers. See the separate documentation for the various Playtune.players at +* www.github.com/LenShustek/arduino-playtune +* www.github.com/LenShustek/ATtiny-playtune +* www.github.com/LenShustek/Playtune_poll +* www.github.com/LenShustek/Playtune_samp +* MIDITONES may also prove useful for other simple music synthesizers.. * * The output can be either a C-language source code fragment that initializes an * array with the command bytestream, or a binary file with the bytestream itself. * -* MIDITONES is written in standard ANSI C (plus strlcpy and strlcat functions), and -* is meant to be executed from the command line. There is no GUI interface. +* MIDITONES is written in standard ANSI C and is meant to be executed from the +* command line. There is no GUI interface. +* +* The MIDI file format is complicated, and this has not been tested on all of its +* variations. In particular we have tested only format type "1", which seems +* to be what most of them are. Let me know if you find MIDI files that it +* won't digest and I'll see if I can fix it. * -* The MIDI file format is complicated, and this has not been tested on a very -* wide variety of file types. In particular, we have tested only format type "1", -* which seems to be what most of them are. Let me know if you find MIDI files -* that it won't digest and I'll see if I can fix it. - -* This has been tested only on a little-endian PC, but I think it should work on -* big-endian processors too. Note that the MIDI file format is inherently -* big-endian. +* There is a companion program in the same repository called Miditones_scroll +* that can convert the bytestream generated by MIDITONES into a piano-player +* like listing for debugging or annotation. See the documentation in the +* beginning of its source code. * * -* ***** The command line ***** +* ***** The MIDITONES command line ***** * * To convert a MIDI file called "chopin.mid" into a command bytestream, execute * @@ -45,41 +48,57 @@ * * The general form for command line execution is this: * -* miditones [-p] [-lg] [-lp] [-s1] [-tn] [-b] [-cn] [-kn] [-v] +* miditones * * The is the base name, without an extension, for the input and -* output files. It can contain directory path information, or not. +* output files. It can contain directory path information, or not. +* +* The input file is .mid The output filename(s) +* are the base file name with .c, .bin, and/or .log extensions. +* +* +* The following commonly-used command-line options can be specified: +* +* -v Add velocity (volume) information to the output bytestream +* +* -i Add instrument change commands to the output bytestream +* +* -pt Translate notes in the MIDI percussion track to note numbers 128..255 +* and assign them to a tone generator as usual. +* +* -d Generate a self-describing file header that says which optional bytestream +* fields are present. This is highly recommended if you are using later +* Playtune players that can check the header to know what data to expect. +* +* -b Generate a binary file with the name .bin, instead of a +* C-language source file with the name .c. +* +* -tn Generate the bytestream so that at most n tone generators are used. +* The default is 6 tone generators, and the maximum is 16. The program +* will report how many notes had to be discarded because there weren't +* enough tone generators. * -* The input file is the base name with the extension ".mid". The output filename(s) -* are the base name with ".c", ".bin", and/or ".log" extensions. * +* The best combination of options to use with the later Playtune music players is: +* -v -i -pt -d * -* The following command-line options can be specified: * -* -p Only parse the MIDI file; don't generate an output file. +* The following are lesser-used command-line options: +* +* -p Only parse the MIDI file, and don't generate an output file. * Tracks are processed sequentially instead of being merged into chronological order. -* This is mostly useful when generating a log to debug MIDI file parsing problems. +* This is mostly useful for debugging MIDI file parsing problems. * * -lp Log input file parsing information to the .log file * * -lg Log output bytestream generation information to the .log file * +* -nx Put about "x" items on each line of the C file output +* * -sn Use bytestream generation strategy "n". * Two strategies are currently implemented: -* 1: favor track 1 notes instead of all tracks equally -* 2: try to keep each track to its own tone generator -* -* -tn Generate the bytestream so that at most n tone generators are used. -* The default is 6 tone generators, and the maximum is 16. -* The program will report how many notes had to be discarded because there -* weren't enough tone generators. Note that for the Arduino Playtunes -* library, it's ok to have the bytestream use more tone genreators than -* exist on your processor because any extra notes will be ignored, although -* it does make the file bigger than necessary . Of course, too many ignored -* notes will make the music sound really strange! -* -* -b Generate a binary file with the name .bin, instead of a -* C-language source file with the name .c. +* 1:favor track 1 notes instead of all tracks equally +* 2:try to keep each track to its own tone generator * * -cn Only process the channel numbers whose bits are on in the number "n". * For example, -c3 means "only process channels 0 and 1" @@ -87,31 +106,39 @@ * -kn Change the musical key of the output by n chromatic notes. * -k-12 goes one octave down, -k12 goes one octave up, etc. * -* -v Add velocity information to output +* -pi Ignore notes in the MIDI percussion track 9 (also called 10 by some) +* +* -dp Generate IDE-dependent C code to define PROGMEM +* +* -h Give command-line help. * * * ***** The score bytestream ***** * -* The generated bytestream is a series of commands that turn notes on and off, and -* start delays until the next note change. Here are the details, with numbers -* shown in hexadecimal. +* The generated bytestream is a series of commands that turn notes on and off, +* maybe change instruments, and begin delays until the next note change. +* Here are the details, with numbers shown in hexadecimal. * * If the high-order bit of the byte is 1, then it is one of the following commands: * -* 9t nn [vv] Start playing note nn on tone generator t. Generators are numbered -* starting with 0. The notes numbers are the MIDI numbers for the chromatic +* 9t nn [vv] +* Start playing note nn on tone generator t. Generators are numbered +* starting with 0. The note numbers are the MIDI numbers for the chromatic * scale, with decimal 60 being Middle C, and decimal 69 being Middle A (440 Hz). -* If the -v option is enabled, a second byte is added to indicate velocity. +* If the -v option was given, a second byte is added to indicate note volume. * * 8t Stop playing the note on tone generator t. * -* F0 End of score: stop playing. +* Ct ii Change tone generator t to play instrument ii from now on. This will only +* be generated if the -i option was given. +* +* F0 End of score; stop playing. * -* E0 End of score: start playing again from the beginning. +* E0 End of score; start playing again from the beginning. * (Shown for completeness; MIDITONES won't generate this.) * * If the high-order bit of the byte is 0, it is a command to delay for a while until -* the next note change.. The other 7 bits and the 8 bits of the following byte are +* the next note change. The other 7 bits and the 8 bits of the following byte are * interpreted as a 15-bit big-endian integer that is the number of milliseconds to * wait before processing the next command. For example, * @@ -120,8 +147,22 @@ * would cause a delay of 0x07d0 = 2000 decimal millisconds, or 2 seconds. Any tones * that were playing before the delay command will continue to play. * +* If the -d option is specified, the bytestream begins with a little header that tells +* what optional information will be in the data. This makes the file more self-describing, +* and allows music players to adapt to different kinds of files. The later Playtune +* players do that. The header looks like this: * -* Len Shustek, 4 Feb 2011 and later +* 'Pt' Two ascii characters that signal the presence of the header +* nn The length (in one byte) of the entire header, 6..255 +* ff1 A byte of flag bits, three of which are currently defined: +* 80 velocity information is present +* 40 instrument change information is present +* 20 translated percussion notes are present +* ff2 Another byte of flags, currently undefined +* tt The number (in one byte) of tone generators actually used in this music. +* +* Any subsequent header bytes covered by the count, if present, are currently undefined +* and should be ignored by players. * -*----------------------------------------------------------------------------------*/ - +* Len Shustek, 4 Feb 2011 and later +*********************************************************************************************/ \ No newline at end of file diff --git a/miditones.c b/miditones.c index e662ebe..e35a440 100644 --- a/miditones.c +++ b/miditones.c @@ -1,103 +1,43 @@ -/********************************************************************************* -* -* MIDITONES -* -* Convert a MIDI file into a bytestream of notes -* -* -* (C) Copyright 2011,2013,2015,2016 Len Shustek -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of version 3 of the GNU General Public License as -* published by the Free Software Foundation at http://www.gnu.org/licenses, -* with Additional Permissions under term 7(b) that the original copyright -* notice and author attibution must be preserved and under term 7(c) that -* modified versions be marked as different from the original. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -***********************************************************************************/ -/* -* Change log -* 19 January 2011, L.Shustek, V1.0 -* -Initial release. -* 26 February 2011, L. Shustek, V1.1 -* -Expand the documentation generated in the output file. -* -End the binary output file with an "end of score" command. -* -Fix bug: Some "stop note" commands were generated too early. -* 04 March 2011, L. Shustek, V1.2 -* -Minor error message rewording. -* 13 June 2011, L. Shustek, V1.3 -* -Add -s2 strategy to try to keep each track on its own tone generator -* for when there are separate speakers. This obviously works only when -* each track is monophonic. (Suggested by Michal Pustejovsky) -* 20 November 2011, L. Shustek, V1.4 -* -Add -cn option to mask which channels (tracks) to process -* -Add -kn option to change key -* Both of these are in support of music-playing on my Tesla Coil. -* 05 December 2011, L. Shustek, V1.5 -* -Fix command line parsing error for option -s1 -* -Display the commandline in the C file output -* -Change to decimal instead of hex for note numbers in the C file output -* 06 August 2013, L. Shustek, V1.6 -* -Changed to allow compilation and execution in 64-bit environments -* by using C99 standard intN_t and uintN_t types for MIDI structures, -* and formatting specifications like "PRId32" instead of "ld". -* 04 April 2015, L. Shustek, V1.7 -* -Made friendlier to other compilers: import source of strlcpy and strlcat, -* fixed various type mismatches that the LCC compiler didn't fret about. -* Generate "const" for data initialization for compatibility with Arduino IDE v1.6.x. -* 23 January 2016, D. Blackketter, V1.8 -* -Fix warnings and errors building on Mac OS X via "gcc miditones.c" -* 25 January 2016, D. Blackketter, Paul Stoffregen, V1.9 -* -Merge in velocity output option from Arduino/Teensy Audio Library -* 26 June 2016, L. Shustek, V1.10 -* -Fix overflow problem in calculating long delays. (Thanks go to Tiago Rocha.) -* In the process I discover and work around an LCC 32-bit compiler bug. -*/ -#define VERSION "1.10" - - -/*-------------------------------------------------------------------------------- -* +/********************************************************************************************* * -* About MIDITONES +* MIDITONES: Convert a MIDI file into a simple bytestream of notes * * -* MIDITONES converts a MIDI music file into a much simplified stream of commands, -* so that a version of the music can be played on a synthesizer having only -* tone generators without any volume or tone controls. +* MIDITONES converts a MIDI music file into a much simplified stream of commands, so that +* the music can easily be played on a small microcontroller-based synthesizer that has +* only simple tone generators. This is on github at www.github.com/LenShustek/miditones. * -* Volume ("velocity") and instrument specifications in the MIDI files are generally -* discarded. All the tracks are prcoessed and merged into a single time-ordered -* stream of "note on", "note off", and "delay" commands. +* Volume ("velocity") and instrument information in the MIDI file can either be +* discarded or kept. All the tracks are prcoessed and merged into a single time-ordered +* stream of "note on", "note off", "change instrument" and "delay" commands. * -* This was written for the "Playtune" Arduino library, which plays polyphonic music -* using up to 6 tone generators run by the timers on the processor. See the separate -* documentation for Playtune. But MIDITONES may prove useful for other tone -* generating systems. +* This was written for the "Playtune" series of Arduino and Teensy microcontroller +* synthesizers. See the separate documentation for the various Playtune.players at +* www.github.com/LenShustek/arduino-playtune +* www.github.com/LenShustek/ATtiny-playtune +* www.github.com/LenShustek/Playtune_poll +* www.github.com/LenShustek/Playtune_samp +* MIDITONES may also prove useful for other simple music synthesizers.. * * The output can be either a C-language source code fragment that initializes an * array with the command bytestream, or a binary file with the bytestream itself. * -* MIDITONES is written in standard ANSI C (plus strlcpy and strlcat functions), and -* is meant to be executed from the command line. There is no GUI interface. +* MIDITONES is written in standard ANSI C and is meant to be executed from the +* command line. There is no GUI interface. * -* The MIDI file format is complicated, and this has not been tested on a very -* wide variety of file types. In particular, we have tested only format type "1", -* which seems to be what most of them are. Let me know if you find MIDI files -* that it won't digest and I'll see if I can fix it. - -* This has been tested only on a little-endian PC, but I think it should work on -* big-endian processors too. Note that the MIDI file format is inherently -* big-endian. +* The MIDI file format is complicated, and this has not been tested on all of its +* variations. In particular we have tested only format type "1", which seems +* to be what most of them are. Let me know if you find MIDI files that it +* won't digest and I'll see if I can fix it. +* +* There is a companion program in the same repository called Miditones_scroll +* that can convert the bytestream generated by MIDITONES into a piano-player +* like listing for debugging or annotation. See the documentation in the +* beginning of its source code. * * -* ***** The command line ***** +* ***** The MIDITONES command line ***** * * To convert a MIDI file called "chopin.mid" into a command bytestream, execute * @@ -109,41 +49,57 @@ * * The general form for command line execution is this: * -* miditones [-p] [-lg] [-lp] [-s1] [-tn] [-b] [-cn] [-kn] [-v] +* miditones * * The is the base name, without an extension, for the input and -* output files. It can contain directory path information, or not. +* output files. It can contain directory path information, or not. +* +* The input file is .mid The output filename(s) +* are the base file name with .c, .bin, and/or .log extensions. +* +* +* The following commonly-used command-line options can be specified: +* +* -v Add velocity (volume) information to the output bytestream +* +* -i Add instrument change commands to the output bytestream +* +* -pt Translate notes in the MIDI percussion track to note numbers 128..255 +* and assign them to a tone generator as usual. +* +* -d Generate a self-describing file header that says which optional bytestream +* fields are present. This is highly recommended if you are using later +* Playtune players that can check the header to know what data to expect. +* +* -b Generate a binary file with the name .bin, instead of a +* C-language source file with the name .c. * -* The input file is the base name with the extension ".mid". The output filename(s) -* are the base name with ".c", ".bin", and/or ".log" extensions. +* -tn Generate the bytestream so that at most n tone generators are used. +* The default is 6 tone generators, and the maximum is 16. The program +* will report how many notes had to be discarded because there weren't +* enough tone generators. +* +* +* The best combination of options to use with the later Playtune music players is: +* -v -i -pt -d * * -* The following command-line options can be specified: +* The following are lesser-used command-line options: * -* -p Only parse the MIDI file; don't generate an output file. +* -p Only parse the MIDI file, and don't generate an output file. * Tracks are processed sequentially instead of being merged into chronological order. -* This is mostly useful when generating a log to debug MIDI file parsing problems. +* This is mostly useful for debugging MIDI file parsing problems. * * -lp Log input file parsing information to the .log file * * -lg Log output bytestream generation information to the .log file * +* -nx Put about "x" items on each line of the C file output +* * -sn Use bytestream generation strategy "n". * Two strategies are currently implemented: -* 1: favor track 1 notes instead of all tracks equally -* 2: try to keep each track to its own tone generator -* -* -tn Generate the bytestream so that at most n tone generators are used. -* The default is 6 tone generators, and the maximum is 16. -* The program will report how many notes had to be discarded because there -* weren't enough tone generators. Note that for the Arduino Playtunes -* library, it's ok to have the bytestream use more tone genreators than -* exist on your processor because any extra notes will be ignored, although -* it does make the file bigger than necessary . Of course, too many ignored -* notes will make the music sound really strange! -* -* -b Generate a binary file with the name .bin, instead of a -* C-language source file with the name .c. +* 1:favor track 1 notes instead of all tracks equally +* 2:try to keep each track to its own tone generator * * -cn Only process the channel numbers whose bits are on in the number "n". * For example, -c3 means "only process channels 0 and 1" @@ -151,31 +107,39 @@ * -kn Change the musical key of the output by n chromatic notes. * -k-12 goes one octave down, -k12 goes one octave up, etc. * -* -v Add velocity information to output +* -pi Ignore notes in the MIDI percussion track 9 (also called 10 by some) +* +* -dp Generate IDE-dependent C code to define PROGMEM +* +* -h Give command-line help. * * * ***** The score bytestream ***** * -* The generated bytestream is a series of commands that turn notes on and off, and -* start delays until the next note change. Here are the details, with numbers -* shown in hexadecimal. +* The generated bytestream is a series of commands that turn notes on and off, +* maybe change instruments, and begin delays until the next note change. +* Here are the details, with numbers shown in hexadecimal. * * If the high-order bit of the byte is 1, then it is one of the following commands: * -* 9t nn [vv] Start playing note nn on tone generator t. Generators are numbered -* starting with 0. The notes numbers are the MIDI numbers for the chromatic +* 9t nn [vv] +* Start playing note nn on tone generator t. Generators are numbered +* starting with 0. The note numbers are the MIDI numbers for the chromatic * scale, with decimal 60 being Middle C, and decimal 69 being Middle A (440 Hz). -* If the -v option is enabled, a second byte is added to indicate velocity. +* If the -v option was given, a second byte is added to indicate note volume. * * 8t Stop playing the note on tone generator t. * -* F0 End of score: stop playing. +* Ct ii Change tone generator t to play instrument ii from now on. This will only +* be generated if the -i option was given. +* +* F0 End of score; stop playing. * -* E0 End of score: start playing again from the beginning. +* E0 End of score; start playing again from the beginning. * (Shown for completeness; MIDITONES won't generate this.) * * If the high-order bit of the byte is 0, it is a command to delay for a while until -* the next note change.. The other 7 bits and the 8 bits of the following byte are +* the next note change. The other 7 bits and the 8 bits of the following byte are * interpreted as a 15-bit big-endian integer that is the number of milliseconds to * wait before processing the next command. For example, * @@ -184,15 +148,176 @@ * would cause a delay of 0x07d0 = 2000 decimal millisconds, or 2 seconds. Any tones * that were playing before the delay command will continue to play. * +* If the -d option is specified, the bytestream begins with a little header that tells +* what optional information will be in the data. This makes the file more self-describing, +* and allows music players to adapt to different kinds of files. The later Playtune +* players do that. The header looks like this: +* +* 'Pt' Two ascii characters that signal the presence of the header +* nn The length (in one byte) of the entire header, 6..255 +* ff1 A byte of flag bits, three of which are currently defined: +* 80 velocity information is present +* 40 instrument change information is present +* 20 translated percussion notes are present +* ff2 Another byte of flags, currently undefined +* tt The number (in one byte) of tone generators actually used in this music. +* +* Any subsequent header bytes covered by the count, if present, are currently undefined +* and should be ignored by players. * * Len Shustek, 4 Feb 2011 and later * -*----------------------------------------------------------------------------------*/ +*---------------------------------------------------------------------------------------- +* The MIT License (MIT) +* Copyright (c) 2011,2013,2015,2016, 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 +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* 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.c -br -brf -brs -ce -npsl -nut -i3 -l100 -lc100 + +/* +* Change log +* 19 January 2011, L.Shustek, V1.0 +* -Initial release. +* 26 February 2011, L. Shustek, V1.1 +* -Expand the documentation generated in the output file. +* -End the binary output file with an "end of score" command. +* -Fix bug: Some "stop note" commands were generated too early. +* 04 March 2011, L. Shustek, V1.2 +* -Minor error message rewording. +* 13 June 2011, L. Shustek, V1.3 +* -Add -s2 strategy to try to keep each track on its own tone generator +* for when there are separate speakers. This obviously works only when +* each track is monophonic. (Suggested by Michal Pustejovsky) +* 20 November 2011, L. Shustek, V1.4 +* -Add -cn option to mask which channels (tracks) to process +* -Add -kn option to change key +* Both of these are in support of music-playing on my Tesla Coil. +* 05 December 2011, L. Shustek, V1.5 +* -Fix command line parsing error for option -s1 +* -Display the commandline in the C file output +* -Change to decimal instead of hex for note numbers in the C file output +* 06 August 2013, L. Shustek, V1.6 +* -Changed to allow compilation and execution in 64-bit environments +* by using C99 standard intN_t and uintN_t types for MIDI structures, +* and formatting specifications like "PRId32" instead of "ld". +* 04 April 2015, L. Shustek, V1.7 +* -Made friendlier to other compilers: import source of strlcpy and strlcat, +* fixed various type mismatches that the LCC compiler didn't fret about. +* Generate "const" for data initialization for compatibility with Arduino IDE v1.6.x. +* 23 January 2016, D. Blackketter, V1.8 +* -Fix warnings and errors building on Mac OS X via "gcc miditones.c" +* 25 January 2016, D. Blackketter, Paul Stoffregen, V1.9 +* -Merge in velocity output option from Arduino/Teensy Audio Library +* 26 June 2016, L. Shustek, V1.10 +* -Fix overflow problem in calculating long delays. (Thanks go to Tiago Rocha.) +* In the process I discover and work around an LCC 32-bit compiler bug. +* 14 August 2016: L. Shustek, V1.11 +* -Fix our interpretation of MIDI "running status": it applies only to MIDI events +* (8x through Ex), not, as we thought, also to Sysex (Fx) or Meta (FF) events. +* -Improve parsing of text events for the log. +* -Change log file note and patch numbers, etc., to decimal. +* -Document a summary of the MIDI file format so I don't have to keep looking it up. +* -Add -pi and -pt options to ignore or translate the MIDI percussion track 9. +* -Remove string.h for more portability; add strlength(). +* -Add -i option for recording instrument types.in the bytestream. +* -Add -d option for generting a file description header. +* -Add -dp option to make generating the PROGMEM definition optional +* -Add -n option to specify number of items per output line +* -Do better error checking on options +* -Reformat option help +* +*/ +#define VERSION "1.11" + +/*-------------------------------------------------------------------------------------------- + +A CONCISE SUMMARY OF MIDI FILE FORMAT +L. Shustek, 16 July 2016. +Gleaned from http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html + +Notation: + is 1-4 bytes of 7-bit data, concatenated into one 7- to 28-bit number. The high bit of the last byte is 0. +lower case letters are hex digits. If preceeded by 0, only low 7 bits are used. +"xx" are ascii text characters +{xxx}... means indefinite repeat of xxx + +A MIDI file is: header_chunk {track_chunk}... + +header_chunk +"MThd" 00000006 ffff nnnn dddd + +track_chunk + +"MTrk" llllllll { track_event}... + +"running status" track_event + +0x to 7x: assume a missing 8n to En event code which is the same as the last MIDI-event track_event + +MIDI-event track_event + +8n 0kk 0vv note off, channel n, note kk, velocity vv +9n 0kk 0vv note on, channel n, note kk, velocity vv +An 0kk 0vv key pressure, channel n, note kk, pressure vv +Bn 0cc 0vv control value change, channel n, controller cc, new value vv +Cn 0pp program patch (instrument) change, channel n, new program pp +Dn 0vv channel pressure, channel n, pressure vv +En 0ll 0mm pitch wheel change, value llmm + +Note that channel 9 (called 10 by some programs) is used for percussion, particularly notes 35 to 81. + +Sysex event track_event + +F0 0ii {0dd}... F7 system-dependent data for manufacture ii. See www.gweep.net/~prefect/eng/reference/protocol/midispec.html +F2 0ll 0mm song position pointer +F3 0ss song select +F6 tune request +F7 end of system-dependent data +F8 timing clock sync +FA start playing +FB continue playing +FC stop playing +FE active sensing (hearbeat) + +Meta event track_event + +FF 00 02 ssss specify sequence number +FF 01 "xx"... arbitrary text +FF 02 "xx"... copyright notice +FF 03 "xx"... sequence or track name +FF 04 "xx"... instrument name +FF 05 "xx"... lyric to be sung +FF 06 "xx"... name of marked point in the score +FF 07 "xx"... description of cue point in the score +FF 20 01 0c default channel for subsequent events without a channel is c +FF 2F 00 end of track +FF 51 03 tttttt set tempo in microseconds per quarter-note +FF 54 05 hhmmssfrff set SMPTE time to start the track +FF 58 04 nnddccbb set time signature +FF 59 02 sfmi set key signature +FF 7F data sequencer-specific data + +--------------------------------------------------------------------------------------------*/ #include #include -#include #include #include #include @@ -202,346 +327,452 @@ /*********** MIDI file header formats *****************/ struct midi_header { - int8_t MThd[4]; - uint32_t header_size; - uint16_t format_type; - uint16_t number_of_tracks; - uint16_t time_division; + int8_t MThd[4]; + uint32_t header_size; + uint16_t format_type; + uint16_t number_of_tracks; + uint16_t time_division; }; struct track_header { - int8_t MTrk[4]; - uint32_t track_size; + int8_t MTrk[4]; + uint32_t track_size; }; /*********** Global variables ******************/ -#define MAX_TONEGENS 16 /* max tone generators: tones we can play simultaneously */ -#define DEFAULT_TONEGENS 6 /* default number of tone generators */ -#define MAX_TRACKS 24 /* max number of MIDI tracks we will process */ +#define MAX_TONEGENS 16 /* max tone generators: tones we can play simultaneously */ +#define DEFAULT_TONEGENS 6 /* default number of tone generators */ +#define MAX_TRACKS 24 /* max number of MIDI tracks we will process */ +#define PERCUSSION_TRACK 9 /* the track MIDI uses for percussion sounds */ -bool loggen, logparse, parseonly, strategy1, strategy2, binaryoutput, velocityoutput; +bool loggen, logparse, parseonly, strategy1, strategy2, binaryoutput, define_progmem, + velocityoutput, instrumentoutput, percussion_ignore, percussion_translate, do_header; FILE *infile, *outfile, *logfile; uint8_t *buffer, *hdrptr; unsigned long buflen; int num_tracks; int tracks_done = 0; +int outfile_maxitems = 25; int outfile_itemcount = 0; int num_tonegens = DEFAULT_TONEGENS; int num_tonegens_used = 0; +int instrument_changes = 0; +int note_on_commands = 0; unsigned channel_mask = 0xffff; // bit mask of channels to process -int keyshift = 0; // optional chromatic note shift for output file +int keyshift = 0; // optional chromatic note shift for output file long int outfile_bytecount = 0; unsigned int ticks_per_beat = 240; unsigned long timenow = 0; -unsigned long tempo; /* current tempo in usec/qnote */ +unsigned long tempo; /* current tempo in usec/qnote */ + +struct tonegen_status { /* current status of a tone generator */ + bool playing; /* is it playing? */ + int track; /* if so, which track is the note from? */ + int note; /* what note is playing? */ + int instrument; /* what instrument? */ +} tonegen[MAX_TONEGENS] = { + { + 0} +}; -struct tonegen_status { /* current status of a tone generator */ - bool playing; /* is it playing? */ - int track; /* if so, which track is the note from? */ - int note; /* what note is playing? */ -} -tonegen [MAX_TONEGENS] = { - {0}}; - -struct track_status { /* current processing point of a MIDI track */ - uint8_t *trkptr; /* ptr to the next note change */ - uint8_t *trkend; /* ptr past the end of the track */ - unsigned long time; /* what time we're at in the score */ - unsigned long tempo; /* the tempo last set, in usec/qnote */ - unsigned int preferred_tonegen; /* for strategy2: try to use this generator */ - unsigned char cmd; /* CMD_xxxx next to do */ - unsigned char note; /* for which note */ - unsigned char velocity; - unsigned char last_event; /* the last event, for MIDI's "running status" */ - bool tonegens[MAX_TONEGENS];/* which tone generators our notes are playing on */ -} -track[MAX_TRACKS] = { - {0}}; +struct track_status { /* current processing point of a MIDI track */ + uint8_t *trkptr; /* ptr to the next note change */ + uint8_t *trkend; /* ptr past the end of the track */ + unsigned long time; /* what time we're at in the score */ + unsigned long tempo; /* the tempo last set, in usec per qnote */ + unsigned int preferred_tonegen; /* for strategy2, try to use this generator */ + unsigned char cmd; /* CMD_xxxx next to do */ + unsigned char note; /* for which note */ + unsigned char chan; /* from which channel it was */ + unsigned char velocity; + unsigned char last_event; /* the last event, for MIDI's "running status" */ + bool tonegens[MAX_TONEGENS]; /* which tone generators our notes are playing on */ +} track[MAX_TRACKS] = { + { + 0} +}; +int midi_chan_instrument[16] = { + 0 +}; /* which instrument is currently being played on each channel */ /* output bytestream commands, which are also stored in track_status.cmd */ -#define CMD_PLAYNOTE 0x90 /* play a note: low nibble is generator #, note is next byte */ -#define CMD_STOPNOTE 0x80 /* stop a note: low nibble is generator # */ -#define CMD_RESTART 0xe0 /* restart the score from the beginning */ -#define CMD_STOP 0xf0 /* stop playing */ +#define CMD_PLAYNOTE 0x90 /* play a note: low nibble is generator #, note is next byte */ +#define CMD_STOPNOTE 0x80 /* stop a note: low nibble is generator # */ +#define CMD_INSTRUMENT 0xc0 /* change instrument; low nibble is generator #, instrument is next byte */ +#define CMD_RESTART 0xe0 /* restart the score from the beginning */ +#define CMD_STOP 0xf0 /* stop playing */ /* if CMD < 0x80, then the other 7 bits and the next byte are a 15-bit number of msec to delay */ /* these other commands stored in the track_status.com */ -#define CMD_TEMPO 0xFE /* tempo in usec per quarter note ("beat") */ -#define CMD_TRACKDONE 0xFF /* no more data left in this track */ +#define CMD_TEMPO 0xFE /* tempo in usec per quarter note ("beat") */ +#define CMD_TRACKDONE 0xFF /* no more data left in this track */ + + +struct file_hdr_t { /* what the optional file header looks like */ + char id1; // 'P' + char id2; // 't' + unsigned char hdr_length; // length of whole file header + unsigned char f1; // flag byte 1 + unsigned char f2; // flag byte 2 + unsigned char num_tgens; // how many tone generators are used by this score +} file_header = { +'P', 't', sizeof (struct file_hdr_t), 0, 0, MAX_TONEGENS}; +#define HDR_F1_VOLUME_PRESENT 0x80 +#define HDR_F1_INSTRUMENTS_PRESENT 0x40 +#define HDR_F1_PERCUSSION_PRESENT 0x20 +long int file_header_num_tgens_position; + /************** command-line processing *******************/ -void SayUsage(char *programName){ - static char *usage[] = { - "Convert MIDI files to an Arduino PLAYTUNE bytestream", - "miditones [-p] [-lg] [-lp] [-s1] [-tn] [-v] ", - " -p parse only, don't generate bytestream", - " -lp log input parsing", - " -lg log output generation", - " -s1 strategy 1: favor track 1", - " -s2 strategy 2: try to assign tracks to specific tone generators", - " -tn use at most n tone generators (default is 6, max is 16)", - " -b binary file output instead of C source text", - " -cn mask for which tracks to process, e.g. -c3 for only 0 and 1", - " -kn key shift in chromatic notes, positive or negative", - " -v include velocity data in play note commands", - "input file: .mid", - "output file: .bin or .c", - "log file: .log", - "" }; - int i=0; - while (usage[i][0] != '\0') fprintf(stderr, "%s\n", usage[i++]); +void SayUsage (char *programName) { + static char *usage[] = { + "Convert MIDI files to an Arduino PLAYTUNE bytestream", + "", + "Use: miditones ", + " input file will be .mid", + " output file will be .bin or .c", + " log file will be .log", + "", + "Commonly-used options:", + " -v include velocity data", + " -i include instrument change commands", + " -pt translate notes in the percussion track to notes 129 to 255", + " -d include a self-describing file header", + " -b generate binary file output instead of C source text", + " -tn use at most n tone generators (default is 6, max is 16)", + "", + " The best options for later Playtune music players are: -v -i -pt -d", + "", + "Lesser-used command-line options:", + " -p parse only, don't generate bytestream", + " -lp log input parsing", + " -lg log output generation", + " -nx Put about x items on each line of the C file output", + " -s1 strategy 1: favor track 1", + " -s2 strategy 2: try to assign tracks to specific tone generators", + " -cn mask for which tracks to process, e.g. -c3 for only 0 and 1", + " -kn key shift in chromatic notes, positive or negative", + " -pi ignore notes in the percussion track (9)", + " -dp define PROGMEM in output C code", + NULL + }; + int i = 0; + while (usage[i] != NULL) + 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. - does not start with a dash or a slash*/ - - int i,firstnonoption=0; - - /* --- The following skeleton comes from C:\lcc\lib\wizard\textmode.tpl. */ - for (i=1; i< argc;i++) { - if (argv[i][0] == '/' || argv[i][0] == '-') { - switch (toupper(argv[i][1])) { - case 'H': - case '?': - SayUsage(argv[0]); - exit(1); - case 'L': - if (toupper(argv[i][2]) == 'G') loggen = true; - else if (toupper(argv[i][2]) == 'P') logparse = true; - else goto opterror; - break; - case 'P': - parseonly = true; - break; - case 'B': - binaryoutput = true; - break; - case 'V': - velocityoutput = true; - break; - case 'S': - if (argv[i][2] == '1') strategy1 = true; - else if (argv[i][2] == '2') strategy2 = true; - else goto opterror; - break; - case 'T': - if (sscanf(&argv[i][2],"%d",&num_tonegens) != 1 || num_tonegens <1 || num_tonegens > MAX_TONEGENS) goto opterror; - printf("Using %d tone generators.\n", num_tonegens); - break; - case 'C': - if (sscanf(&argv[i][2],"%d",&channel_mask) != 1 || channel_mask > 0xffff) goto opterror; - printf("Channel (track) mask is %04X.\n", channel_mask); - break; - case 'K': - if (sscanf(&argv[i][2],"%d",&keyshift) != 1 || keyshift < -100 || keyshift > 100) goto opterror; - printf("Using keyshift %d.\n", keyshift); - break; - - /* add more option switches here */ -opterror: - default: - fprintf(stderr,"unknown option: %s\n",argv[i]); - SayUsage(argv[0]); - exit(4); + +int HandleOptions (int argc, char *argv[]) { +/* returns the index of the first argument that is not an option; i.e. +does not start with a dash or a slash*/ + + int i, nch, firstnonoption = 0; + +/* --- The following skeleton comes from C:\lcc\lib\wizard\textmode.tpl. */ + for (i = 1; i < argc; i++) { + if (argv[i][0] == '/' || argv[i][0] == '-') { + switch (toupper (argv[i][1])) { + case 'H': + case '?': + SayUsage (argv[0]); + exit (1); + case 'L': + if (toupper (argv[i][2]) == 'G') + loggen = true; + else if (toupper (argv[i][2]) == 'P') + logparse = true; + else + goto opterror; + if (argv[i][3] != '\0') + goto opterror; + break; + case 'P': + if (argv[i][2] == '\0') + parseonly = true; + else if (toupper (argv[i][2]) == 'I') + percussion_ignore = true; + else if (toupper (argv[i][2]) == 'T') + percussion_translate = true; + else + goto opterror; + if (argv[i][3] != '\0') + goto opterror; + break; + case 'B': + binaryoutput = true; + if (argv[i][2] != '\0') + goto opterror; + break; + case 'V': + velocityoutput = true; + if (argv[i][2] != '\0') + goto opterror; + break; + case 'I': + instrumentoutput = true; + if (argv[i][2] != '\0') + goto opterror; + break; + case 'S': + if (argv[i][2] == '1') + strategy1 = true; + else if (argv[i][2] == '2') + strategy2 = true; + else + goto opterror; + if (argv[i][3] != '\0') + goto opterror; + break; + case 'T': + if (sscanf (&argv[i][2], "%d%n", &num_tonegens, &nch) != 1 + || num_tonegens < 1 || num_tonegens > MAX_TONEGENS) + goto opterror; + printf ("Using %d tone generators.\n", num_tonegens); + if (argv[i][2 + nch] != '\0') + goto opterror; + break; + case 'N': + if (sscanf (&argv[i][2], "%d%n", &outfile_maxitems, &nch) != 1 || outfile_maxitems < 1) + goto opterror; + if (argv[i][2 + nch] != '\0') + goto opterror; + break; + case 'C': + if (sscanf (&argv[i][2], "%d%n", &channel_mask, &nch) != 1 || channel_mask > 0xffff) + goto opterror; + printf ("Channel (track) mask is %04X.\n", channel_mask); + if (argv[i][2 + nch] != '\0') + goto opterror; + break; + case 'K': + if (sscanf (&argv[i][2], "%d%n", &keyshift, &nch) != 1 || keyshift < -100 + || keyshift > 100) + goto opterror; + printf ("Using keyshift %d.\n", keyshift); + if (argv[i][2 + nch] != '\0') + goto opterror; + break; + case 'D': + if (argv[i][2] == '\0') { + do_header = true; + break; } - } - else { - firstnonoption = i; + if (toupper (argv[i][2]) == 'P') + define_progmem = true; + else + goto opterror; + if (argv[i][3] != '\0') + goto opterror; break; - } - } - return firstnonoption; + /* add more option switches here */ + opterror: + default: + fprintf (stderr, "\n*** unknown option: %s\n\n", argv[i]); + SayUsage (argv[0]); + exit (4); + } + } else { + firstnonoption = i; + break; + } + } + return firstnonoption; } -void print_command_line (int argc,char *argv[]) { - int i; - fprintf(outfile, "// command line: "); - for (i=0; i< argc; i++) fprintf(outfile,"%s ",argv[i]); - fprintf(outfile, "\n"); +void print_command_line (int argc, char *argv[]) { + int i; + fprintf (outfile, "// command line: "); + for (i = 0; i < argc; i++) + fprintf (outfile, "%s ", argv[i]); + fprintf (outfile, "\n"); } /**************** utility routines **********************/ +/* portable string length */ +int strlength (const char *str) { + int i; + for (i = 0; str[i] != '\0'; ++i); + return i; +} /* safe string copy */ -size_t miditones_strlcpy(char *dst, const char *src, size_t siz) { - char *d = dst; - const char *s = src; - size_t n = siz; - /* Copy as many bytes as will fit */ - if (n != 0) - { - while (--n != 0) - { - if ((*d++ = *s++) == '\0') - 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++) - ; - } - return (s - src - 1); /* count does not include NUL */ +size_t miditones_strlcpy (char *dst, const char *src, size_t siz) { + char *d = dst; + const char *s = src; + size_t n = siz; +/* Copy as many bytes as will fit */ + if (n != 0) { + while (--n != 0) { + if ((*d++ = *s++) == '\0') + 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++); + } + return (s - src - 1); /* count does not include NUL */ } /* safe string concatenation */ -size_t miditones_strlcat(char *dst, const char *src, size_t siz) { - char *d = dst; - const char *s = src; - size_t n = siz; - size_t dlen; - /* Find the end of dst and adjust bytes left but don't go past end */ - while (n-- != 0 && *d != '\0') - d++; - dlen = d - dst; - n = siz - dlen; - if (n == 0) - return (dlen + strlen(s)); - while (*s != '\0') - { - if (n != 1) - { - *d++ = *s; - n--; - } - s++; - } - *d = '\0'; - return (dlen + (s - src)); /* count does not include NUL */ +size_t miditones_strlcat (char *dst, const char *src, size_t siz) { + char *d = dst; + const char *s = src; + size_t n = siz; + size_t dlen; +/* Find the end of dst and adjust bytes left but don't go past end */ + while (n-- != 0 && *d != '\0') + d++; + dlen = d - dst; + n = siz - dlen; + if (n == 0) + return (dlen + strlength (s)); + while (*s != '\0') { + if (n != 1) { + *d++ = *s; + n--; + } + s++; + } + *d = '\0'; + return (dlen + (s - src)); /* count does not include NUL */ } /* match a constant character sequence */ int charcmp (const char *buf, const char *match) { - int len, i; - len = strlen (match); - for (i=0; i MIDI file error at position %04X (%d): %s\n", (uint16_t)(bufptr-buffer), (uint16_t)(bufptr-buffer), msg); - /* print some bytes surrounding the error */ - ptr = bufptr - 16; - 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); + unsigned char *ptr; + fprintf (stderr, "---> MIDI file error at position %04X (%d): %s\n", + (uint16_t) (bufptr - buffer), (uint16_t) (bufptr - buffer), msg); +/* print some bytes surrounding the error */ + ptr = bufptr - 16; + 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); } /* check that we have a specified number of bytes left in the buffer */ -void chk_bufdata(unsigned char *ptr, unsigned long int len) { - if ((unsigned)(ptr + len - buffer) > buflen) midi_error("data missing", ptr); +void chk_bufdata (unsigned char *ptr, unsigned long int len) { + if ((unsigned) (ptr + len - buffer) > buflen) + midi_error ("data missing", ptr); } - /* fetch big-endian numbers */ uint16_t rev_short (uint16_t val) { - return ((val&0xff)<<8) | ((val>>8)&0xff); + return ((val & 0xff) << 8) | ((val >> 8) & 0xff); } -uint32_t rev_long (uint32_t val){ - return (((rev_short((uint16_t)val) & 0xffff) << 16) | - (rev_short((uint16_t)(val >> 16)) & 0xffff)); +uint32_t rev_long (uint32_t val) { + return (((rev_short ((uint16_t) val) & 0xffff) << 16) | + (rev_short ((uint16_t) (val >> 16)) & 0xffff)); } /* account for new items in the non-binary output file and generate a newline every so often. */ void outfile_items (int n) { - outfile_bytecount += n; - outfile_itemcount += n; - if (!binaryoutput && outfile_itemcount > 20) { - fprintf (outfile, "\n"); - outfile_itemcount = 0; - } + outfile_bytecount += n; + outfile_itemcount += n; + if (!binaryoutput && outfile_itemcount > outfile_maxitems) { + fprintf (outfile, "\n"); + outfile_itemcount = 0; + } } /************** process the MIDI file header *****************/ void process_header (void) { - struct midi_header *hdr; - unsigned int time_division; - - chk_bufdata(hdrptr, sizeof(struct midi_header)); - hdr = (struct midi_header *) hdrptr; - if (!charcmp((char*)hdr->MThd,"MThd")) midi_error("Missing 'MThd'", hdrptr); - - num_tracks = rev_short(hdr->number_of_tracks); - - time_division = rev_short(hdr->time_division); - if (time_division < 0x8000) ticks_per_beat = time_division; - else ticks_per_beat = ((time_division >> 8) & 0x7f) /* SMTE frames/sec */ * (time_division & 0xff); /* ticks/SMTE frame */ - - if (logparse) { - fprintf (logfile, "Header size %" PRId32 "\n", rev_long(hdr->header_size)); - fprintf (logfile, "Format type %d\n", rev_short(hdr->format_type)); - fprintf (logfile, "Number of tracks %d\n", num_tracks); - fprintf (logfile, "Time division %04X\n", time_division); - fprintf (logfile, "Ticks/beat = %d\n", ticks_per_beat); - - } - hdrptr += rev_long(hdr->header_size) + 8; /* point past header to track header, presumably. */ - return; + struct midi_header *hdr; + unsigned int time_division; + + chk_bufdata (hdrptr, sizeof (struct midi_header)); + hdr = (struct midi_header *) hdrptr; + if (!charcmp ((char *) hdr->MThd, "MThd")) + midi_error ("Missing 'MThd'", hdrptr); + num_tracks = rev_short (hdr->number_of_tracks); + time_division = rev_short (hdr->time_division); + if (time_division < 0x8000) + ticks_per_beat = time_division; + else + ticks_per_beat = ((time_division >> 8) & 0x7f) /* SMTE frames/sec */ *(time_division & 0xff); /* ticks/SMTE frame */ + if (logparse) { + fprintf (logfile, "Header size %" PRId32 "\n", rev_long (hdr->header_size)); + fprintf (logfile, "Format type %d\n", rev_short (hdr->format_type)); + fprintf (logfile, "Number of tracks %d\n", num_tracks); + fprintf (logfile, "Time division %04X\n", time_division); + fprintf (logfile, "Ticks/beat = %d\n", ticks_per_beat); + } + hdrptr += rev_long (hdr->header_size) + 8; /* point past header to track header, presumably. */ + return; } /**************** Process a MIDI track header *******************/ void start_track (int tracknum) { - struct track_header *hdr; - unsigned long tracklen; - - chk_bufdata(hdrptr, sizeof(struct track_header)); - hdr = (struct track_header *) hdrptr; - if (!charcmp((char *)(hdr->MTrk),"MTrk")) midi_error("Missing 'MTrk'", hdrptr); - - tracklen = rev_long(hdr->track_size); - if (logparse) fprintf (logfile, "\nTrack %d length %ld\n", tracknum, tracklen); - hdrptr += sizeof (struct track_header); /* point past header */ - chk_bufdata(hdrptr, tracklen); - track[tracknum].trkptr = hdrptr; - hdrptr += tracklen; /* point to the start of the next track */ - track[tracknum].trkend = hdrptr; /* the point past the end of the track */ + struct track_header *hdr; + unsigned long tracklen; + + chk_bufdata (hdrptr, sizeof (struct track_header)); + hdr = (struct track_header *) hdrptr; + if (!charcmp ((char *) (hdr->MTrk), "MTrk")) + midi_error ("Missing 'MTrk'", hdrptr); + tracklen = rev_long (hdr->track_size); + if (logparse) + fprintf (logfile, "\nTrack %d length %ld\n", tracknum, tracklen); + hdrptr += sizeof (struct track_header); /* point past header */ + chk_bufdata (hdrptr, tracklen); + track[tracknum].trkptr = hdrptr; + hdrptr += tracklen; /* point to the start of the next track */ + track[tracknum].trkend = hdrptr; /* the point past the end of the track */ } /* Get a MIDI-style variable-length integer */ -unsigned long get_varlen (uint8_t **ptr) { - /* Get a 1-4 byte variable-length value and adjust the pointer past it. - These are a succession of 7-bit values with a MSB bit of zero marking the end */ - - unsigned long val; - int i, byte; - - val = 0; - for (i=0; i<4; ++i){ - byte = *(*ptr)++; - val = (val<<7) | (byte&0x7f); - if (!(byte&0x80)) return val; - } - return val; +unsigned long get_varlen (uint8_t ** ptr) { +/* Get a 1-4 byte variable-length value and adjust the pointer past it. +These are a succession of 7-bit values with a MSB bit of zero marking the end */ + + unsigned long val; + int i, byte; + + val = 0; + for (i = 0; i < 4; ++i) { + byte = *(*ptr)++; + val = (val << 7) | (byte & 0x7f); + if (!(byte & 0x80)) + return val; + } + return val; } @@ -551,446 +782,591 @@ unsigned long get_varlen (uint8_t **ptr) { then record that information in the track status block and return. */ void find_note (int tracknum) { - unsigned long int delta_time; - int event, chan; - int i; - int note, velocity; - int meta_cmd, meta_length; - unsigned long int sysex_length; - struct track_status *t; - - /* process events */ - - t = &track[tracknum]; /* our track status structure */ - while (t->trkptr < t->trkend) { - - delta_time = get_varlen(&t->trkptr); - if (logparse) { - fprintf (logfile, "trk %d ", tracknum); - if (delta_time) { - fprintf (logfile, "delta time %4ld, ", delta_time); - } else { - fprintf (logfile, " "); + unsigned long int delta_time; + int event, chan; + int i; + int note, velocity, controller, pressure, pitchbend, instrument; + int meta_cmd, meta_length; + unsigned long int sysex_length; + struct track_status *t; + char *tag; + +/* process events */ + + t = &track[tracknum]; /* our track status structure */ + while (t->trkptr < t->trkend) { + + delta_time = get_varlen (&t->trkptr); + if (logparse) { + fprintf (logfile, "trk %d ", tracknum); + if (delta_time) { + fprintf (logfile, "delta time %4ld, ", delta_time); + } else { + fprintf (logfile, " "); + } + } + t->time += delta_time; + if (*t->trkptr < 0x80) + event = t->last_event; /* using "running status": same event as before */ + else { /* otherwise get new "status" (event type) */ + event = *t->trkptr++; + } + if (event == 0xff) { /* meta-event */ + meta_cmd = *t->trkptr++; + meta_length = *t->trkptr++; + switch (meta_cmd) { + case 0x00: + if (logparse) + fprintf (logfile, "sequence number %d\n", rev_short (*(unsigned short *) t->trkptr)); + break; + case 0x01: + tag = "description"; + goto show_text; + case 0x02: + tag = "copyright"; + goto show_text; + case 0x03: + tag = "track name"; + if (tracknum == 0 && !parseonly && !binaryoutput) { + /* Incredibly, MIDI has no standard for recording the name of the piece! + Track 0's "trackname" is often used for that so we output it to the C file as documentation. */ + fprintf (outfile, "// "); + for (i = 0; i < meta_length; ++i) { + int ch = t->trkptr[i]; + fprintf (outfile, "%c", isprint (ch) ? ch : '?'); + } + fprintf (outfile, "\n"); } - } - t->time += delta_time; - - if (*t->trkptr < 0x80) /* "running status" */ event = t->last_event;/* means same event as before */ - else { /* new "status" (event type) */ - event = *t->trkptr++; - t->last_event = event; - } - - if (event == 0xff) { /* meta-event */ - meta_cmd = *t->trkptr++; - meta_length = *t->trkptr++; - switch (meta_cmd) { - case 0x2f: - if (logparse) fprintf(logfile, "end of track\n"); - break; - case 0x00: - if (logparse) fprintf(logfile, "sequence number %d\n", rev_short(*(unsigned short *)t->trkptr)); - break; - case 0x20: - if (logparse) fprintf(logfile, "channel prefix %d\n", *t->trkptr); - break; - case 0x51: /* tempo: 3 byte big-endian integer! */ - t->cmd = CMD_TEMPO; - t->tempo = rev_long(*(unsigned long *)(t->trkptr-1)) & 0xffffffL; - if (logparse) fprintf(logfile, "set tempo %ld usec/qnote\n", t->tempo); - t->trkptr += meta_length; - return; - case 0x54: - if (logparse) fprintf(logfile, "SMPTE offset %08" PRIx32 "\n", rev_long(*(unsigned long *)t->trkptr)); - break; - case 0x58: - if (logparse) fprintf(logfile, "time signature %08" PRIx32 "\n", rev_long(*(unsigned long *)t->trkptr)); - break; - case 0x59: - if (logparse) fprintf(logfile, "key signature %04X\n", rev_short(*(unsigned short *)t->trkptr)); - break; - default: /* assume it is a string */ - if (logparse) { - fprintf(logfile, "meta cmd %02X, length %d, \"", meta_cmd, meta_length); - for (i=0; itrkptr[i]; - fprintf(logfile, "%c", isprint(ch) ? ch : '?'); - } - fprintf(logfile, "\"\n"); - } - if (tracknum==0 && meta_cmd==0x03 && !parseonly && !binaryoutput) { - /* Incredibly, MIDI has no standard for recording the name of the piece! - Track 0's "trackname" (meta 0x03) is sometimes used for that, so - we output it to the C file as documentation. */ - fprintf(outfile, "// "); - for (i=0; itrkptr[i]; - fprintf(outfile, "%c", isprint(ch) ? ch : '?'); - } - fprintf(outfile, "\n"); - } - break; + goto show_text; + case 0x04: + tag = "instrument name"; + goto show_text; + case 0x05: + tag = "lyric"; + goto show_text; + case 0x06: + tag = "marked point"; + goto show_text; + case 0x07: + tag = "cue point"; + show_text: + if (logparse) { + fprintf (logfile, "meta cmd %02X, length %d, %s: \"", meta_cmd, meta_length, tag); + for (i = 0; i < meta_length; ++i) { + int ch = t->trkptr[i]; + fprintf (logfile, "%c", isprint (ch) ? ch : '?'); + } + fprintf (logfile, "\"\n"); } + break; + case 0x20: + if (logparse) + fprintf (logfile, "channel prefix %d\n", *t->trkptr); + break; + case 0x2f: + if (logparse) + fprintf (logfile, "end of track\n"); + break; + case 0x51: /* tempo: 3 byte big-endian integer! */ + t->cmd = CMD_TEMPO; + t->tempo = rev_long (*(unsigned long *) (t->trkptr - 1)) & 0xffffffL; + if (logparse) + fprintf (logfile, "set tempo %ld usec/qnote\n", t->tempo); t->trkptr += meta_length; - } - - else if (event <0x80) midi_error("Unknown MIDI event type", t->trkptr); - - else { - chan = event & 0xf; - switch (event>>4) { - case 0x8: - t->note = *t->trkptr++; - velocity = *t->trkptr++; -note_off: - if (logparse) fprintf (logfile, "note %02X off, chan %d, velocity %d\n", t->note, chan, velocity); - if ((1<cmd = CMD_STOPNOTE; - return; /* stop processing and return */ - } - break; // else keep looking - case 0x9: - t->note = *t->trkptr++; - velocity = *t->trkptr++; - if (velocity == 0) /* some scores use note-on with zero velocity for off! */ goto note_off; - t->velocity = velocity; - if (logparse) fprintf (logfile, "note %02X on, chan %d, velocity %d\n", t->note, chan, velocity); - if ((1<cmd = CMD_PLAYNOTE; - return; /* stop processing and return */ - } - break; // else keep looking - case 0xa: - note = *t->trkptr++; - velocity = *t->trkptr++; - if (logparse) fprintf (logfile, "after-touch %02X, %02X\n", note, velocity); - break; - case 0xb: - note = *t->trkptr++; - velocity = *t->trkptr++; - if (logparse) fprintf (logfile, "control change %02X, %02X\n", note, velocity); - break; - case 0xc: - note = *t->trkptr++; - if (logparse) fprintf(logfile, "program patch %02X\n", note); - break; - case 0xd: - chan = *t->trkptr++; - if (logparse) fprintf(logfile, "channel after-touch %02X\n", chan); - break; - case 0xe: - note = *t->trkptr++; - velocity = *t->trkptr++; - if (logparse) fprintf(logfile, "pitch wheel change %02X, %02X\n", note, velocity); - break; - case 0xf: - sysex_length = get_varlen(&t->trkptr); - if (logparse) fprintf(logfile, "SysEx event %02X, %ld bytes\n", event, sysex_length); - t->trkptr += sysex_length; - break; - default: - midi_error("Unknown MIDI command", t->trkptr); + return; + case 0x54: + if (logparse) + fprintf (logfile, "SMPTE offset %08" PRIx32 "\n", + rev_long (*(unsigned long *) t->trkptr)); + break; + case 0x58: + if (logparse) + fprintf (logfile, "time signature %08" PRIx32 "\n", + rev_long (*(unsigned long *) t->trkptr)); + break; + case 0x59: + if (logparse) + fprintf (logfile, "key signature %04X\n", rev_short (*(unsigned short *) t->trkptr)); + break; + case 0x7f: + tag = "sequencer data"; + goto show_hex; + default: /* unknown meta command */ + tag = "???"; + show_hex: + if (logparse) { + fprintf (logfile, "meta cmd %02X, length %d, %s: ", meta_cmd, meta_length, tag); + for (i = 0; i < meta_length; ++i) + fprintf (logfile, "%02X ", t->trkptr[i]); + fprintf (logfile, "\n"); + } + + break; + } + t->trkptr += meta_length; + } + + else if (event < 0x80) + midi_error ("Unknown MIDI event type", t->trkptr); + + else { + if (event < 0xf0) + t->last_event = event; // remember "running status" if not meta or sysex event + chan = event & 0xf; + t->chan = chan; + switch (event >> 4) { + case 0x8: + t->note = *t->trkptr++; + velocity = *t->trkptr++; + note_off: + if (logparse) + fprintf (logfile, "note %d off, chan %d, velocity %d\n", t->note, chan, velocity); + if ((1 << chan) & channel_mask) { /* if we're processing this channel */ + t->cmd = CMD_STOPNOTE; + return; /* stop processing and return */ } - } - } - t->cmd = CMD_TRACKDONE; /* no more notes to process */ - ++tracks_done; + break; // else keep looking + case 0x9: + t->note = *t->trkptr++; + velocity = *t->trkptr++; + if (velocity == 0) /* some scores use note-on with zero velocity for off! */ + goto note_off; + t->velocity = velocity; + if (logparse) + fprintf (logfile, "note %d on, chan %d, velocity %d\n", t->note, chan, velocity); + if ((1 << chan) & channel_mask) { /* if we're processing this channel */ + t->cmd = CMD_PLAYNOTE; + return; /* stop processing and return */ + } + break; // else keep looking + case 0xa: + note = *t->trkptr++; + velocity = *t->trkptr++; + if (logparse) + fprintf (logfile, "after-touch %d, %d\n", note, velocity); + break; + case 0xb: + controller = *t->trkptr++; + velocity = *t->trkptr++; + if (logparse) + fprintf (logfile, "control change %d, %d\n", controller, velocity); + break; + case 0xc: + instrument = *t->trkptr++; + midi_chan_instrument[chan] = instrument; // record new instrument for this channel + if (logparse) + fprintf (logfile, "program patch %d\n", instrument); + break; + case 0xd: + pressure = *t->trkptr++; + if (logparse) + fprintf (logfile, "channel after-touch %d\n", pressure); + break; + case 0xe: + pitchbend = *t->trkptr++ | (*t->trkptr++ << 7); + if (logparse) + fprintf (logfile, "pitch wheel change %d\n", pitchbend); + break; + case 0xf: + sysex_length = get_varlen (&t->trkptr); + if (logparse) + fprintf (logfile, "SysEx event %d, %ld bytes\n", event, sysex_length); + t->trkptr += sysex_length; + break; + default: + midi_error ("Unknown MIDI command", t->trkptr); + } + } + } + t->cmd = CMD_TRACKDONE; /* no more notes to process */ + ++tracks_done; } /********************* main ****************************/ -int main(int argc,char *argv[]) { - int argno; - char *filebasename; +int main (int argc, char *argv[]) { + int argno; + char *filebasename; #define MAXPATH 120 - char filename[MAXPATH]; - - int tracknum; - int earliest_tracknum; - unsigned long earliest_time; - int notes_skipped = 0; - - printf("MIDITONES V%s, (C) 2011,2015,2016 Len Shustek\n", VERSION); - printf("See the source code for license information.\n\n"); - if (argc == 1) { /* no arguments */ - SayUsage(argv[0]); - return 1; - } - - /* process options */ - - argno = HandleOptions(argc,argv); - filebasename = argv[argno]; - - /* Open the log file */ - - if (logparse || loggen) { - miditones_strlcpy(filename, filebasename, MAXPATH); - miditones_strlcat(filename, ".log", MAXPATH); - logfile = fopen(filename, "w"); - if (!logfile) { - fprintf(stderr, "Unable to open log file %s", filename); - return 1; - } - } - - /* Open the input file */ - - miditones_strlcpy(filename, filebasename, MAXPATH); - miditones_strlcat(filename, ".mid", MAXPATH); - infile = fopen(filename, "rb"); - if (!infile) { - fprintf(stderr, "Unable to open input file %s", filename); - return 1; - } - - /* Read the whole input file into memory */ - - fseek(infile, 0, SEEK_END); /* find file size */ - buflen = ftell(infile); - fseek(infile, 0, SEEK_SET); - - buffer = (unsigned char *) malloc (buflen+1); - if (!buffer) { - fprintf(stderr, "Unable to allocate %ld bytes for the file", buflen); - return 1; - } - - fread(buffer, buflen, 1, infile); - fclose(infile); - if (logparse) fprintf(logfile, "Processing %s, %ld bytes\n", filename, buflen); - - /* Create the output file */ - - if (!parseonly) { - miditones_strlcpy(filename, filebasename, MAXPATH); - if (binaryoutput) { - miditones_strlcat(filename, ".bin", MAXPATH); - outfile = fopen(filename, "wb"); - } - else { - miditones_strlcat(filename, ".c", MAXPATH); - outfile = fopen(filename, "w"); - } - if (!outfile) { - fprintf(stderr, "Unable to open output file %s", filename); - return 1; - } - if (!binaryoutput) { /* create header of C file that initializes score data */ - time_t rawtime; - time (&rawtime); - fprintf(outfile, "// Playtune bytestream for file \"%s.mid\" ", filebasename); - fprintf(outfile, "created by MIDITONES V%s on %s", VERSION, asctime(localtime(&rawtime))); - print_command_line(argc,argv); - if (channel_mask != 0xffff) - fprintf(outfile, "// Only the masked channels were processed: %04X\n", channel_mask); - if (keyshift != 0) - fprintf(outfile, "// Keyshift was %d chromatic notes\n", keyshift); - fprintf(outfile, "#ifdef __AVR__\n"); - fprintf(outfile, "#include \n"); - fprintf(outfile, "#else\n"); - fprintf(outfile, "#define PROGMEM\n"); - fprintf(outfile, "#endif\n"); - fprintf(outfile, "const unsigned char PROGMEM score [] = {\n"); - } - } - - /* process the MIDI file header */ - - hdrptr = buffer; /* pointer to file and track headers */ - process_header (); - printf (" Processing %d tracks.\n", num_tracks); - if (num_tracks > MAX_TRACKS) midi_error ("Too many tracks", buffer); - - /* initialize processing of all the tracks */ - - for (tracknum=0; tracknum < num_tracks; ++tracknum) { - start_track (tracknum); /* process the track header */ - find_note (tracknum); /* position to the first note on/off */ - /* if we are in "parse only" mode, do the whole track, - so we do them one at a time instead of time-synchronized. */ - if (parseonly) while (track[tracknum].cmd != CMD_TRACKDONE) find_note(tracknum); - } - - /* Continue processing all tracks, in an order based on the simulated time. - This is not unlike multiway merging used for tape sorting algoritms in the 50's! */ - - tracknum = 0; - if (!parseonly) do { /* while there are still track notes to process */ - struct track_status *trk; - struct tonegen_status *tg; - int tgnum; - int count_tracks; - unsigned long delta_time, delta_msec; - - /* Find the track with the earliest event time, - and output a delay command if time has advanced. - - A potential improvement: If there are multiple tracks with the same time, - first do the ones with STOPNOTE as the next command, if any. That would - help avoid running out of tone generators. In practice, though, most MIDI - files do all the STOPNOTEs first anyway, so it won't have much effect. - */ - - earliest_time = 0x7fffffff; - - /* Usually we start with the track after the one we did last time (tracknum), - so that if we run out of tone generators, we have been fair to all the tracks. - The alternate "strategy1" says we always start with track 0, which means - that we favor early tracks over later ones when there aren't enough tone generators. - */ - - count_tracks = num_tracks; - if (strategy1) tracknum = num_tracks; /* beyond the end, so we start with track 0 */ - do { - if (++tracknum >= num_tracks) tracknum=0; + char filename[MAXPATH]; + int tracknum; + int earliest_tracknum; + unsigned long earliest_time; + int notes_skipped = 0; + + printf ("MIDITONES V%s, (C) 2011-2016 Len Shustek\n", VERSION); + if (argc == 1) { /* no arguments */ + SayUsage (argv[0]); + return 1; + } + +/* process options */ + + argno = HandleOptions (argc, argv); + filebasename = argv[argno]; + +/* Open the log file */ + + if (logparse || loggen) { + miditones_strlcpy (filename, filebasename, MAXPATH); + miditones_strlcat (filename, ".log", MAXPATH); + logfile = fopen (filename, "w"); + if (!logfile) { + fprintf (stderr, "Unable to open log file %s", filename); + return 1; + } + fprintf (logfile, "MIDITONES V%s log file\n", VERSION); + } + +/* Open the input file */ + + miditones_strlcpy (filename, filebasename, MAXPATH); + miditones_strlcat (filename, ".mid", MAXPATH); + infile = fopen (filename, "rb"); + if (!infile) { + fprintf (stderr, "Unable to open input file %s", filename); + return 1; + } + +/* Read the whole input file into memory */ + + fseek (infile, 0, SEEK_END); /* find file size */ + buflen = ftell (infile); + fseek (infile, 0, SEEK_SET); + buffer = (unsigned char *) malloc (buflen + 1); + if (!buffer) { + fprintf (stderr, "Unable to allocate %ld bytes for the file", buflen); + return 1; + } + fread (buffer, buflen, 1, infile); + fclose (infile); + if (logparse) + fprintf (logfile, "Processing %s, %ld bytes\n", filename, buflen); + +/* Create the output file */ + + if (!parseonly) { + miditones_strlcpy (filename, filebasename, MAXPATH); + if (binaryoutput) { + miditones_strlcat (filename, ".bin", MAXPATH); + outfile = fopen (filename, "wb"); + } else { + miditones_strlcat (filename, ".c", MAXPATH); + outfile = fopen (filename, "w"); + } + if (!outfile) { + fprintf (stderr, "Unable to open output file %s", filename); + return 1; + } + file_header.f1 = (velocityoutput ? HDR_F1_VOLUME_PRESENT : 0) + | (instrumentoutput ? HDR_F1_INSTRUMENTS_PRESENT : 0) + | (percussion_translate ? HDR_F1_PERCUSSION_PRESENT : 0); + file_header.num_tgens = num_tonegens; + if (!binaryoutput) { /* create header of C file that initializes score data */ + time_t rawtime; + time (&rawtime); + fprintf (outfile, "// Playtune bytestream for file \"%s.mid\" ", filebasename); + fprintf (outfile, "created by MIDITONES V%s on %s", VERSION, + asctime (localtime (&rawtime))); + print_command_line (argc, argv); + if (channel_mask != 0xffff) + fprintf (outfile, "// Only the masked channels were processed: %04X\n", channel_mask); + if (keyshift != 0) + fprintf (outfile, "// Keyshift was %d chromatic notes\n", keyshift); + if (define_progmem) { + fprintf (outfile, "#ifdef __AVR__\n"); + fprintf (outfile, "#include \n"); + fprintf (outfile, "#else\n"); + fprintf (outfile, "#define PROGMEM\n"); + fprintf (outfile, "#endif\n"); + } + fprintf (outfile, "const unsigned char PROGMEM score [] = {\n"); + if (do_header) { // write the C initialization for the file header + fprintf (outfile, "'P','t', 6, 0x%02X, 0x%02X, ", file_header.f1, file_header.f2); + fflush (outfile); + file_header_num_tgens_position = ftell (outfile); // remember where the number of tone generators is + fprintf (outfile, "%2d, // (Playtune file header)\n", file_header.num_tgens); + } + } else if (do_header) { // write the binary file header + for (int i = 0; i < sizeof (file_header); ++i) + fputc (((unsigned char *) &file_header)[i], outfile); + file_header_num_tgens_position = (char *) &file_header.num_tgens - (char *) &file_header; + } + } + +/* process the MIDI file header */ + + hdrptr = buffer; /* pointer to file and track headers */ + process_header (); + printf (" Processing %d tracks.\n", num_tracks); + if (num_tracks > MAX_TRACKS) + midi_error ("Too many tracks", buffer); + +/* initialize processing of all the tracks */ + + for (tracknum = 0; tracknum < num_tracks; ++tracknum) { + start_track (tracknum); /* process the track header */ + find_note (tracknum); /* position to the first note on/off */ + /* if we are in "parse only" mode, do the whole track, + so we do them one at a time instead of time-synchronized. */ + if (parseonly) + while (track[tracknum].cmd != CMD_TRACKDONE) + find_note (tracknum); + } + +/* Continue processing all tracks, in an order based on the simulated time. +This is not unlike multiway merging used for tape sorting algoritms in the 50's! */ + + tracknum = 0; + if (!parseonly) + do { /* while there are still track notes to process */ + struct track_status *trk; + struct tonegen_status *tg; + int tgnum; + int count_tracks; + unsigned long delta_time, delta_msec; + + /* Find the track with the earliest event time, + and output a delay command if time has advanced. + + A potential improvement: If there are multiple tracks with the same time, + first do the ones with STOPNOTE as the next command, if any. That would + help avoid running out of tone generators. In practice, though, most MIDI + files do all the STOPNOTEs first anyway, so it won't have much effect. + */ + + earliest_time = 0x7fffffff; + + /* Usually we start with the track after the one we did last time (tracknum), + so that if we run out of tone generators, we have been fair to all the tracks. + The alternate "strategy1" says we always start with track 0, which means + that we favor early tracks over later ones when there aren't enough tone generators. + */ + + count_tracks = num_tracks; + if (strategy1) + tracknum = num_tracks; /* beyond the end, so we start with track 0 */ + do { + if (++tracknum >= num_tracks) + tracknum = 0; trk = &track[tracknum]; if (trk->cmd != CMD_TRACKDONE && trk->time < earliest_time) { - earliest_time = trk->time; - earliest_tracknum = tracknum; + earliest_time = trk->time; + earliest_tracknum = tracknum; } - } - while (--count_tracks); - - tracknum = earliest_tracknum; /* the track we picked */ - trk = &track[tracknum]; + } + while (--count_tracks); - if (loggen) fprintf (logfile, "Earliest time is trk %d, time %ld\n", tracknum, earliest_time); - if (earliest_time < timenow) midi_error ("INTERNAL: time went backwards", trk->trkptr); + tracknum = earliest_tracknum; /* the track we picked */ + trk = &track[tracknum]; + if (loggen) + fprintf (logfile, "Earliest time is trk %d, time %ld\n", tracknum, earliest_time); + if (earliest_time < timenow) + midi_error ("INTERNAL: time went backwards", trk->trkptr); - /* If time has advanced, output a "delay" command */ + /* If time has advanced, output a "delay" command */ - delta_time = earliest_time - timenow; - if (delta_time) { + delta_time = earliest_time - timenow; + if (delta_time) { /* Convert ticks to milliseconds based on the current tempo */ unsigned long long temp; temp = ((unsigned long long) delta_time * tempo) / ticks_per_beat; - delta_msec = temp / 1000; // get around LCC compiler bug - if (loggen) fprintf (logfile, "->Delay %ld msec (%ld ticks)\n", delta_msec, delta_time); - if (delta_msec > 0x7fff) midi_error ("INTERNAL: time delta too big", trk->trkptr); + delta_msec = temp / 1000; // get around LCC compiler bug + if (loggen) + fprintf (logfile, "->Delay %ld msec (%ld ticks)\n", delta_msec, delta_time); + if (delta_msec > 0x7fff) + midi_error ("INTERNAL: time delta too big", trk->trkptr); /* output a 15-bit delay in big-endian format */ if (binaryoutput) { - putc ((unsigned char) (delta_msec >> 8), outfile); - putc ((unsigned char) (delta_msec & 0xff), outfile); - outfile_bytecount += 2; - } - else { - fprintf (outfile, "%ld,%ld, ", delta_msec >> 8, delta_msec & 0xff); - outfile_items(2); + putc ((unsigned char) (delta_msec >> 8), outfile); + putc ((unsigned char) (delta_msec & 0xff), outfile); + outfile_bytecount += 2; + } else { + fprintf (outfile, "%ld,%ld, ", delta_msec >> 8, delta_msec & 0xff); + outfile_items (2); } - } - timenow = earliest_time; + } + timenow = earliest_time; - /* If this track event is "set tempo", just change the global tempo. - That affects how we generate "delay" commands. */ + /* If this track event is "set tempo", just change the global tempo. + That affects how we generate "delay" commands. */ - if (trk->cmd == CMD_TEMPO) { + if (trk->cmd == CMD_TEMPO) { tempo = trk->tempo; - if (loggen) fprintf (logfile, "Tempo changed to %ld usec/qnote\n", tempo); + if (loggen) + fprintf (logfile, "Tempo changed to %ld usec/qnote\n", tempo); find_note (tracknum); - } - - /* If this track event is "stop note", process it and all subsequent "stop notes" for this track - that are happening at the same time. Doing so frees up as many tone generators as possible. */ - - else if (trk->cmd == CMD_STOPNOTE) do { - - // stop a note - for (tgnum=0; tgnum < num_tonegens; ++tgnum) { /* find which generator is playing it */ - tg = &tonegen[tgnum]; - if (tg->playing && tg->track == tracknum && tg->note == trk->note) { - if (loggen) fprintf (logfile, "->Stop note %02X, generator %d, track %d\n", tg->note, tgnum, tracknum); - if (binaryoutput) { - putc (CMD_STOPNOTE | tgnum, outfile); - outfile_bytecount += 1; - } - else { - fprintf (outfile, "0x%02X, ", CMD_STOPNOTE | tgnum); - outfile_items (1); - } - tg->playing = false; - trk->tonegens[tgnum] = false; - } - } - find_note (tracknum); // use up the note - } - while (trk->cmd == CMD_STOPNOTE && trk->time == timenow); - - /* If this track event is "start note", process only it. - Don't do more than one, so we allow other tracks their chance at grabbing tone generators. */ - - else if (trk->cmd == CMD_PLAYNOTE) { - bool foundgen = false; - - if (strategy2) { /* try to use the same tone generator this track used last time */ - tg = &tonegen [trk->preferred_tonegen]; - if (!tg->playing) { - tgnum = trk->preferred_tonegen; - foundgen = true; - } - } - if (!foundgen) for (tgnum=0; tgnum < num_tonegens; ++tgnum) { /* search for a free tone generator */ - tg = &tonegen[tgnum]; - if (!tg->playing) { - foundgen = true; - break; - } - } - if (foundgen) { - int shifted_note; - if (tgnum+1 > num_tonegens_used) num_tonegens_used = tgnum+1; - tg->playing = true; - tg->track = tracknum; - tg->note = trk->note; - trk->tonegens[tgnum] = true; - trk->preferred_tonegen = tgnum; - if (loggen) fprintf (logfile, "->Start note %02X, generator %d, track %d\n", trk->note, tgnum, tracknum); - shifted_note = trk->note + keyshift; - if (shifted_note < 0) shifted_note = 0; - if (shifted_note > 127) shifted_note = 127; - if (binaryoutput) { - putc (CMD_PLAYNOTE | tgnum, outfile); - putc (shifted_note, outfile); - outfile_bytecount += 2; - if (velocityoutput) { - putc (trk->velocity, outfile); - outfile_bytecount++; - } - } - else { - if (velocityoutput == 0) { - fprintf (outfile, "0x%02X,%d, ", CMD_PLAYNOTE | tgnum, shifted_note); - outfile_items(2); + } + + /* If this track event is "stop note", process it and all subsequent "stop notes" for this track + that are happening at the same time. Doing so frees up as many tone generators as possible. */ + + else if (trk->cmd == CMD_STOPNOTE) + do { + // stop a note + if (!percussion_ignore || trk->chan != PERCUSSION_TRACK) /* if we didn't ignore it as percussion */ + for (tgnum = 0; tgnum < num_tonegens; ++tgnum) { /* find which generator is playing it */ + tg = &tonegen[tgnum]; + if (tg->playing && tg->track == tracknum && tg->note == trk->note) { + if (loggen) + fprintf (logfile, + "->Stop note %d, generator %d, track %d\n", + tg->note, tgnum, tracknum); + if (binaryoutput) { + putc (CMD_STOPNOTE | tgnum, outfile); + outfile_bytecount += 1; } else { - fprintf (outfile, "0x%02X,%d,%d, ", CMD_PLAYNOTE | tgnum, shifted_note, trk->velocity); - outfile_items(3); + fprintf (outfile, "0x%02X, ", CMD_STOPNOTE | tgnum); + outfile_items (1); } - } + tg->playing = false; + trk->tonegens[tgnum] = false; + } + } + find_note (tracknum); // use up the note } - else { - if (loggen) fprintf (logfile, "----> No free generator, skipping note %02X, track %d\n", trk->note, tracknum); - ++notes_skipped; + while (trk->cmd == CMD_STOPNOTE && trk->time == timenow); + + /* If this track event is "start note", process only it. + Don't do more than one, so we allow other tracks their chance at grabbing tone generators. */ + + else if (trk->cmd == CMD_PLAYNOTE) { + if (!percussion_ignore || trk->chan != PERCUSSION_TRACK) { /* ignore percussion track notes if asked to */ + bool foundgen = false; + /* maybe try to use the same tone generator that this track used last time */ + if (strategy2) { + tg = &tonegen[trk->preferred_tonegen]; + if (!tg->playing) { + tgnum = trk->preferred_tonegen; + foundgen = true; + } + } + /* if not, then try for a free tone generator that had been playing the same instrument we need */ + if (!foundgen) + for (tgnum = 0; tgnum < num_tonegens; ++tgnum) { + tg = &tonegen[tgnum]; + if (!tg->playing && tg->instrument == midi_chan_instrument[trk->chan]) { + foundgen = true; + break; + } + } + /* if not, then try for any free tone generator */ + if (!foundgen) + for (tgnum = 0; tgnum < num_tonegens; ++tgnum) { + tg = &tonegen[tgnum]; + if (!tg->playing) { + foundgen = true; + break; + } + } + if (foundgen) { + int shifted_note; + if (tgnum + 1 > num_tonegens_used) + num_tonegens_used = tgnum + 1; + tg->playing = true; + tg->track = tracknum; + tg->note = trk->note; + trk->tonegens[tgnum] = true; + trk->preferred_tonegen = tgnum; + ++note_on_commands; + if (tg->instrument != midi_chan_instrument[trk->chan]) { /* new instrument for this generator */ + tg->instrument = midi_chan_instrument[trk->chan]; + ++instrument_changes; + if (loggen) + fprintf (logfile, + "gen %d changed to instrument %d\n", tgnum, tg->instrument); + if (instrumentoutput) { /* output a "change instrument" command */ + if (binaryoutput) { + putc (CMD_INSTRUMENT | tgnum, outfile); + putc (tg->instrument, outfile); + } else { + fprintf (outfile, "0x%02X,%d, ", CMD_INSTRUMENT | tgnum, tg->instrument); + outfile_items (2); + } + } + } + if (loggen) + fprintf (logfile, + "->Start note %d, generator %d, instrument %d, track %d\n", + trk->note, tgnum, tg->instrument, tracknum); + if (percussion_translate && trk->chan == PERCUSSION_TRACK) { /* if requested, */ + shifted_note = trk->note + 128; // shift percussion notes up to 128..255 + } else { /* shift notes as requested */ + shifted_note = trk->note + keyshift; + if (shifted_note < 0) + shifted_note = 0; + if (shifted_note > 127) + shifted_note = 127; + } + if (binaryoutput) { + putc (CMD_PLAYNOTE | tgnum, outfile); + putc (shifted_note, outfile); + outfile_bytecount += 2; + if (velocityoutput) { + putc (trk->velocity, outfile); + outfile_bytecount++; + } + } else { + if (velocityoutput == 0) { + fprintf (outfile, "0x%02X,%d, ", CMD_PLAYNOTE | tgnum, shifted_note); + outfile_items (2); + } else { + fprintf (outfile, "0x%02X,%d,%d, ", + CMD_PLAYNOTE | tgnum, shifted_note, trk->velocity); + outfile_items (3); + } + } + } else { + if (loggen) + fprintf (logfile, + "----> No free generator, skipping note %d, track %d\n", + trk->note, tracknum); + ++notes_skipped; + } } - find_note (tracknum); // use up the note - } - - } /* !parseonly do */ - while (tracks_done < num_tracks); - - if (!parseonly) { - // generate the end-of-score command and some commentary - if(binaryoutput) putc(CMD_STOP, outfile); - else { - fprintf(outfile, "0x%02x};\n// This score contains %ld bytes, and %d tone generator%s used.\n", CMD_STOP, outfile_bytecount, num_tonegens_used, num_tonegens_used == 1 ? " is" : "s are"); - if (notes_skipped) fprintf(outfile, "// %d notes had to be skipped.\n", notes_skipped); - } - printf (" %s %d tone generators were used.\n", num_tonegens_used < num_tonegens ? "Only":"All", num_tonegens_used); - if (notes_skipped) printf(" %d notes were skipped because there weren't enough tone generators.\n", notes_skipped); - printf (" %ld bytes of score data were generated.\n", outfile_bytecount); - } - - - printf (" Done.\n"); - return 0; + find_note (tracknum); // use up the note + } + + } /* !parseonly do */ + while (tracks_done < num_tracks); + + if (!parseonly) { + // generate the end-of-score command and some commentary + if (binaryoutput) + putc (CMD_STOP, outfile); + else { + fprintf (outfile, + "0x%02x};\n// This score contains %ld bytes, and %d tone generator%s used.\n", + CMD_STOP, outfile_bytecount, num_tonegens_used, + num_tonegens_used == 1 ? " is" : "s are"); + if (notes_skipped) + fprintf (outfile, "// %d notes had to be skipped.\n", notes_skipped); + } + printf (" %s %d tone generators were used.\n", + num_tonegens_used < num_tonegens ? "Only" : "All", num_tonegens_used); + if (notes_skipped) + printf + (" %d notes were skipped because there weren't enough tone generators.\n", + notes_skipped); + printf (" %ld bytes of score data were generated.\n", outfile_bytecount); + if (loggen) + fprintf (logfile, "%d note-on commands, %d instrument changes.\n", + note_on_commands, instrument_changes); + } + if (do_header) { // rewrite the file header with the actual number of tone generators used + if (fseek (outfile, file_header_num_tgens_position, SEEK_SET) != 0) + fprintf (stderr, "Can't seek to number of tone generators in the header"); + else { + if (binaryoutput) + putc (num_tonegens_used, outfile); + else + fprintf (outfile, "%2d", num_tonegens_used); + } + } + fclose (outfile); + if (loggen || logparse) + fclose (logfile); + printf (" Done.\n"); + return 0; } diff --git a/miditones.exe b/miditones.exe index 658b6a2fe4a01bc9acd29a90ce50bf84abc91dd0..7a2bddabe47e89b39bd2f71760a8dfe36a50d7ca 100644 GIT binary patch delta 57608 zcmce<3tU#k);~V8K?OuXxhkNK7Zep05Dk=+tAc`(nwPu)KA@7^G zJ*socu2NQ*Wnp>LZbnuoQ!6T~hp^(5r?eaY@0!_rv!4g+J?DLYpFf{kv*$Z&)>^Y> z&DyhPZ_sh3x8ok~`ke#EHZ?9hkgTv9dotF+hOyp?62ne%#un{*a6GTxbz)kNGKH;n zw!- zUGDG6AcgQV_V4(>zEM}=(pO=k{KOup4E7TGfO@&@o2H!R%5};1Q1{4j`va3%dYymx zkfA7Ry~A75lbNH`&RM2)*>73a)3fVBKPH~6+K`NGzuMQik5`^_w?E=O$W{&Oz;rIN z_R8QnwV|hyd|sZ#9iJt0mQ-^zX7vZVAR!mi5!5ZSB)Ep$$RFEV*-d z7#W>eyDT`PwztE*v$He(=plH3IU;6s7q2+3gZOP1W>k3{vAKtLTufrTeWa@qies7J z%J$jupc`XH+`}7*(TS~kqZ{+tehkfRTR>de6b1$E;l4tCrc)yZsW^U5;>@<~LWbaK z_%ka`f@|A_`93?sq!rBS(iSQ2R5aD>Uj z&>cp)-=hUnmt_-9w)~aux8626nK#y1Cd-*SUP?L}djgBdha5U{V z^kMD8q3buPUh2Bf%-Ii|ooT-jPwJFqzMD>vHTRe~zOS=)_6i;zm0pwOtIKrLxDgQrkPgd!B1AMzS)txp~xH z`5VQH(9;P~SO>mYYfi^yY95?j;~y5)4|A>cNkxY&%=snQ;`-TV`_$PQXu7aebe62T zyM=(7WsbINY-Gg3Sc;o}OhB<~!}i&}(FQIAg9BTyB%h|gT#As(_N&>De<1W4wE{GMl($_zCD6! z@s{KzVzli8sT!#_dQ)wvR_pF#4$s5I$1-b{4!2}lvrZz`-Y2DsW|oD^xe4T?$+2Q zSpT4~jXzU9xzd3AGZ4%WzKC{m zeO7J%89vXu52Sgb+cxE35jC%XyK{nRSsW)8eOU;Wd%@y5AF=NCKl}r)o(jc|w|?yG zZ0nE2fJD~;t((0y?z3q-=OOTESN(+#GGdE{w*VhRcv{V;NryV!k-R*7Zh8sJ1y?>k zw>*O@`8?;LKhFi*mjxsy9PZ|iF%WY&Ra;;}KB6}zjK&aRc1qnA`>sI$VA>?7?KtJL zeSln>j-(?gq1A1%_8x)p^A2yzI?Sqiw9Uu8LbLQREFJvcD7`qy07{?ViMM%{q*{v7bitrCE5=X0gCD8PEQijC*N`NEy$PjN@h* zA8dk*jo_f(vzp<{7U}SN%kWf=_1BzMH|x;;8Lz@~+(Sow9ye0Gg{ABttnYY6`DpLFQ+UTL21A)KCYm0yWx zgS00|cAZ&v6GqscE4Bee|E6ugOWit#rPgM>gwAKv>x%rt%gw#7MQ@4*Y(!qtvQfJ~ z0U5P^wB1_R%T`jR@`(zhONz<`o+l9sE3 z_wu1OUwACN=E`8P;oq?c;YS0eaf~BNpkx9mabJ(eoXx(xDi~75kw*Wo=}4m)-C5fT zKXk!qNxC)5*RdE4H9ImXkgfNMLOVyvthqNEDBX%1arY5>W?P`}M+epAw#aAu-ykyM zX!ClqqxLrHl3rIwn<&TLbDf=f3oINZER;>D-x8aD_(&7h3Q6fT?jqUHo{};O&U#oC z?yNgVV0xVm&*IcWKOp*U13ewcQQh31@}s-v2>0PcI2+m9*~ssymu7zh zn#jm=24?GYBxqJP!#c8(N*62r!{5<#i$|E5CL_P;C!B@V%A!xuFsQrZ!eit+t#bNt z#^43Z{W;XlkGDQMPEe|-t4pVq zxM>7srX6x|`iIA9BcSm)8rNY28sGW7m=zofAh7NnATG0NJ~AyTTlfHT*LBoYPb8iW z%p06W_pqd`cwWO+8_CjLJ6ys&DO4^

+znZo|d`%wVI(S9$*9AO4D&%^z&SEoH)K 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

hsiGS8~ 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 delta 49836 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 z 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 DoiY%t diff --git a/miditones32.exe b/miditones32.exe deleted file mode 100644 index b3d6c31118fc369d827a41124e0a5182dfe5e89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161527 zcmeFa4|o;TwKqH`IUy%-V2%(lYLuf56-AIJ6e2-`GJsYzf+Y9{1#9q_ic**XYIDd* zC#NzFM`;VawuKh2(%N2ZX$y)FnIri!I?MD4=#J? z-l_>hhYl`sNtY{XNcNLp)hiq@Muk%lHFxV}|25fWIC1 zBkm}iB}pE7#XsU-`~$>&p>i=I;Zg$rP5ls1l6oZR&U9h{JJYjKk`|r`{y&6GP^;Fc zNZY*`5AemmE+4^zMD))?f|9g&!aXZj(px?iW(S2%{}+*@#tAF#U7{{=d2Dol|8*d4 z5Q3W^(4^gkh-*cC)9=#*@ydwa{Q{9?la$f^fq097HxTmAxBtIMpt!Njys^mJH^YmD zC#kYIv&d)OS`;v{c9X_6&9A5gC{SK~G9(4cq?B;)+ec=nYsyK;07=ow1FR04+5 z{}e^Vl!S3zzq!(He#-~0!~sd zUF&^nCVnd_Z+Rh~5>1~&(8(0{@iy^hOsBWo?!L>p^>Oc_yTDjpqdIoYBxE+hQG_=$)PT}F?wcv%1b zge1N21R~9|@?KZ7oHl1NVK|cs#hFYv#+ZCOt+xUsnu6k2jJf^g*6T?3O4GehQLarJ z!00V6kW{X3@vgu9_D>zHx1!SJ$-cx4_ZuhmW{;uuJChn_{uy~6K8zfvFaKMaq_>n+ zTF?G~l@y3(DI-L#k+g$%-}MUV>@DRlpxenHjl#Dm3CbB+P_FS6K%m5$-z?oL?;Wk5 zxLnQCPmGtNa|gy$dgfWqzffjgqe(w8N4-Hm@m0D0DNxZ*+^Ej4E!0n3qfXXOTr1a8 z73e3flk2A;HvYdDrCeUWp92;0<5Xbdi2h-@Q`At8LYZN|GsXHF>y@|KWBpp>lfhSI z);z0DK=s6I&EK4}c}JP#iSGcVQ_yZtqLs_hazr=h9AMNahhO9HH#z(UhnI1B_6rV@jbn70k$cieTNufo%A=+uv^X7GD@eG_L+|##KpjWA>7jjqH6wf+g)mTu z;Q%<+!wE?(wl6fp$KA$w+|>GwkM$;xv8eyi3)YQ}oRG9EdzcB_4?UE^k+e2SrWNYp zfTRvW(&k*!iezi1R@#I2amXj3Tb`r@V4z;0k=5xeff=v_#)u``tE2rQKhXOC)`4oIyf3HvJW=}|{!@MdbqsZh?`gsvP% zCdY|r2N1XjJ%}Esfoo4slIb&<8AtP5lAD*37+7aMd2iv>usHJG{Hsg;q~`8Mfh9Y@ zb(Vl$)O4_2Pmw=GD^N-3e<6->)1QG}$j>{Km7$3Pb@2z^C8f&;lHLLV^rP7U6|`5D ziXdQiG0G%AclNw#VZY{!o&RN!um{D?58`)zhF;&mwERNiWGVILKuO=~fH`>&Xl74l z%6%(-%ZiqfZaAm&p$9zjJ#GTY0zt?8*1aG71a8PVgajW8 zI91v6wSz0IBciu3T2LTk`qQ8yqWqQCfy}6Iq7Dr)B1tQUP0$PWG01*a5{ncw zbR>Ca&~s_%pIqo<;yAP|9r2=waG4sE%ua7XWsx*f*6mbN z0`dD?@vm~F>54xQ+Di1bgf+gOhk}{n|1P2|Rlp%PlEim8xfkPDS5E3Vs5?^OZ>9Mh z&U^;+9Ae5x@uKQK6{L2Lg=G7xd?a;d1BS&Yom}6>H7Sac#_37o^Z;iaa8ji_gAGrO zagHMk(qeOpFxR8y=PrQFMk)5amkT4VzgwHv2m9Ek^hbcH<)AaN(Rm!#!^gcf%^6*j z-aYXJKTrl3<}`b6nBg~KrPGOdD0BQZOi)Of?{M3pay%)g*(9WuX(9b5dS_@4@{`m8 z80gTFbX=Q=vqyx=)4)9pBwLRPhsZor5HzompBr6wg31tPO?>X|vyDXw`+SNUQ1%2t zw1n~Ty1UOt!$8ZIU4$AdE0j)TV z@i_7px&9>pbmvyNKAUiyTjcdmCu0}N^rqXKtl*b!v4k|+v(rMRoT7P_2X4;Ze+UG{k51p6BzRSff5D3k) z^G~uEoK=ps+0CMvET$tFtNqDJJqI|>YJbR+CNxqIqQsiznG*jqdi50RFR~a=YZ&#; zN-|y<`k*sqRQ~cPmDnHOkSP{DBbl5|){##3Q#aXdnaOTUCSyVU{F6*U{XU)cYi`=} z(`nU*9nEsI?$9sNXr+u6Xi?y3L9adC#4tnaH@_l3S9rCtsMQR&_IjtE|8|*FspgoA zTJ4;dt^wZs(9hB&J~6m(j)DP-RTA#0c`5W%I<}KzeR|jj%|y>a+LbLwzk^V34iDe8 zaI!yALqFw&JU;wak??=W8I!pCbj~tHk26FDsXBcZN`f{N0cYW}Nd=~a9sxVnoIbXp z@n%+{g#MmvgfS>f7$^3f@aiXg@_JHm{e&z({#^uUCgj6RXe-ZzsJ(uq@AnvIKRRk% zC5_8c0QtF5#)7V-(p~6iT@DZS7U2`?NWl3oqb4PD?y*0;7v)KUTtA69 z>W5lK;@63Aiu&hdr-!>}aBFa>yNr+4RgU^R4yLC$81;D^{8lI!?k^4Fa5Sm;nX<$KU>YVMdpou2aZC8FNvN~0l7YBQ4x*f&!D)0q&B zU1?9&8T#pV8fa`yr>GVwxPsd~Q|#dgL6uElSmEQW$`rTSTQWud_LpHk@P_(xoSdx~ znIs3bb=|wc{0kHC7|=(yMAwkD#J^A_D2DDNvJXe8yuQ#_dRfLVUNm@*hGs;rfOkJ& zzIhrD|1J7mOefHBT4O(Cc8ut9&@>zP$({?NK?TGuq?Xq!+ymNU&5E=x;jFJ9WE`eXLn+Z045?PHxqujT> z{N{a%rW)kLbiqFsNG4A~^cGL0^?MhQ<}^CbnI!FEhbKCr=LhC~WoGWfkh>sS?Gfnk zX%HWmF+q&_nX99ss*}nX6sSq5Zb1g_p!zR56)oTzd^vg)jqy~WUe&`wb^8Lf7?t`& zh9rL_qC=Z9VBZmX_Y@g>`*I}sUPfftO^~St3o;Vu(vJir?Gu@He!%g_xV;kq~8`8L;P67O<>XS7sWI|ow?=IoWC35`o9`V}X_ zUFm{; zng#`3&|_)PP#5%_H0aYhDvmF7XBzaL0J&3ho()(pqRqH-rR#uc%@R16fua@))?#u< z3KqJO;{GD+LekAJpKRYJ+`7CJEM+U^b+rk;oFN4LvVgjS_D*`I2|yU)^j{%K7&}mqGNDpSwF>aHO7#F?`8t-^$^ph_8jahlcj#A>z!*5hVifMLj~( z+Hn7WnN8AcqLWBKLZJZH5YKXz2scQ~!k{%J;l#?3B4>0IAH9hhxK*egMmggc#b~$_ z9P9j)1u2a`BJj%iGoVf zi&Ft|m7!;uH!>{N(Y4H5b(XbSbbmBtWMK+Xi|Rj#+_f3WYWEw{NtDTQqcPKKXnnfG z>zOLdL%%hddm(T9O3XzvNk%|Yj?O_9wM0V@7+$4#FCM$ml}UZu2xdgf@iZIg3DrD+ z5*gf7M1$$g^~m)Nz{XslWVKh0{)WQ4gx20QvgB@`9Q_GENk+$jA7>X47U`YUzR*2s zrr!*cDDsoF@TH`bDM8&IBOp|1Rp19T<*;<^OU;Ii$k1(Rv6@WFk7b1**R5CNNX|@7 zBDidxIi)~yxcIO_C|wCh%Ig#GuaNK(Y+{f&-4clpO*SWUlUVJ80Dv3+bJjrV(iBFH zz6@w{bUtW72E1gT&SCKif_?V|j3}wR*+9=TOIRC~toDGx+zEo7UZ(5O7N)DuzIs62 z{g;&UTvB%a=`yI<>1H6;?}d&Cslkp-o4y@#S}Ugj1_P4f^@squ%2&HGPb-9Rx9?Qx z1D{PDYlX2IeLpYps269biYxn(^FtHT%JR!^v9hFUW~6Z>n>#myWvTO13J-2!0i!k~ z0jgc=f?x)ceKkhZyx1U^tNSBWUZrKT3c+_q?bO*t(zJw%`gGB_dvjV5g*NaS5+q5u z+>V-W{n91C$nj@5KTe=sA;=BLFLY5_d;jn-6)pgyaL@Z>nY{M0R6$40KU3ln>BJj2 zaej5SHO5UmF)3Bd9{W>-AkRa8N!iHTMV1Z^+)4F6>*k!@9&kF1`sMXQFcC=gfS+YZ z5UWNcrV#lDtl!jdBefsWSvNe|u-Np+kd?3zCX>x%8lmqo zYiuH4{w9$t&>MJ8fw9Xj3WP#wj4h1eH#s{&YZ|xbFmk>ol^5kaE%hdH4$TC>IOVe!&^~UUd zR@T0*ERLwTz&Kjo=`Aw+MR;0`kcaWcyw1WR6M({^g_j&Kx>|@K>6TlXHf)$*fjkSa zN?!ne@(~UczuxyZ=ERTRzuMOt`^-BLgMAf<^|!^_I@{iFYtMT{JKpy(77Tuk2s-KsZNF3|T8%H=#ybq>GRin-J!iv-5Kv zK#yPUOo1aB-3I(_y!(SJsL~(v=IrUhD!vOUzTF+{P z-5T2PmMHPTd9`H6uR)r~HRH5^?U{{V^;0KGIopFH*NoS4^tllS;0aoRXu28Hy>k7y zER4XiL&G_TOH(;qt+!-X=Y;$W9+3iP>n%BYIO1rs-~bYr;*A(Lh*$6-#eaj>bODgX zLGalUrHM8sEMRn^c8MdQU4HZ$)W$awY(qm*Dos9JAFuds2L?cQu_7t6` z>;Y}Uqq(I^YKE6Ct!0G9U$_XP0H0A4D4kV{g~VLF@f88rxfg+f`j|4}Zc@^QyUkh4 z16OkWbzoFPh2+O~GM+Ffp6imiUc$9^@^Rjp#xU)3?!pnOR7p{Ek!jZ8=$_K@Lw` zM89o+9kM7bSI5sd`$UQss7UCs;^W* z#g}UyQpD2n2#-Tp2zanI5;_dHtNvc?qxcdKcEzt|#?>QEL0oY!w0pdktIw@>X4`|P zA!MR?wTbarC`jGO*D!1id-Hn3vL3FNnltl1NVwsw zzPDT!>9h+}etbRa97RJ>X;NddN6SzSno7h_4nX>x$EO#QdidhB`NZhC zq}^!B-a@8`BgYY2*wQtU>dHslxK=BEHqdu7Q#r&G$R-K?LJ%|+zque{1nN#mWs+2L zW%9k;x(>3t4J}^^XSV!iu$a;EpT{ebHe$j%o-#K$ma9>r~h3 zRrUA{529-9>x|_D-X#tji+g9qly&7H=^Ys8EWxJHb74CQID#VR&(Rt!8rPzKZhKc( z8V}Z;l!B;`H@WUcpcLhdXFUUV6p-w*(x8Y)$NMp`%oi}GnrvH>{!6{Pw4$<@B^y(G zo#v8K~L$9_tD_tyLbfLuGo*Rco@23 z-zwiY^zG-}T9l7pAAbFPf9-46|0<>X=DO|(s>JQ@9FO|2?s&E8CwXgGV_A8%r#d(E z;8E1Z`W5Ip2FH{LD!^~O`VA^VVQg+hKj@T2NkwjkehbTf_WRWppg?? zj|8DoJYrD^apl%irJxg|aJrb)f!O980>Q!Lv-T~gBKm0^v?x@Pk+h2?(I&IiPM zr+A0{c&nxIBebv4*K|Zg5)jJes}5rH*y1gc@NXVaIzBVJMfiPdACM1s5ZMhx54&7{ z+)-2HeUUb<4}s67?x@oT}k7cC}d9(@Sa+2>?z4|ca!n6M`R?tmH=7BjmW!+iW{d96UiaI5&;yK${4>-gn46e zVMqAnQd2n@dCk8RgWQf~{WQM!7IiE;Nk&BPF6{WAy#q2^J@jx+&CxQ6Usew3m{b(G zvB>M`C@Mmo`Ie%HKBfWjp{D#tN}0+7MLsm>rVaCBv=RCiAF32n;<``ishw+{W!~n6 z*9*oz@2}YD>cub|qxmu_!W~U+8gJXteeaJ%5)xfHi7cHV33Bn8XHkLzB!Doqv-&)s zE)5{vRNP3l-_cEy>G+Q$T^)@-S#jZ^G4&{3M`Op^ht6M*(2=glF-6URf_~C;xV__V zO%ESF+>xm_9o?)kdpo*G)b?}5jiHk$)|~S4PHG4KrfN?JEJUg$`vVNxKdh~G4tu$Q z033kN((VDcwzk7tbXyZZ5y?JIKQ4fz!ckmL!OG5M`PlZgSV)5 zwA>CWeg*nwnE%f42f)4n%XyAEq;vdE0OBK((ex&wlTiuq31Xe&pFS<>Fh}{^tS5=A z(R0oO<)M_@vi!F`iBq>dkiaU?CTj7`r$w!#PAXmxIB1MPxZ~~4a98KDF2N|XwhG0d zh%H=&{`l*z?$)`l+R?JBmgT=`WM(M?r>>{v5e}BnRN1`VA_STf!_( z$F`HiRakWR&LW@n_iFC8o7grFr1dINGObrQ;8E|VmI>R*XzwPoye66DyFlxBrK1r> z24?thoEpHCg|{DW*I$*sIrPx8(=IfvM-0**}i}-vB2ge(yypR5T7cy9-DYnKbm#;+in_8 zduV7oQxN^3pwZi$rCyjU>R-92moB`$$fI7m@BPt-zuhGg96Fy;f{`QWW^(i{-{A-o z-goo@02!0t54ZR3&r(Z>XmB9W5ll4DVI7)Gq&m7_^r&E5QUL=)l(2AMLYWi#59e6K z3McCLfOx0Uqgx34FkS_9W}TpS{}1B}_?`Mr>Nb8DSNNT*DgMy*0;Dj|8*3lzA%=RW zq{AIQ1~+86F{JS7`@Kdh9xW10dN`;DC7gmFpzd>K=${O!`H0RbVC+r9P;Ba5j^sqkTxPuLTs7(t!1^FuB!Pp;d7Vj=qmDY&dYX0EY(H^Q|N2Vm1{% z*rFVyj+zJQ*7rv;hh}!kAoS){2PEvDo_oMC64}Z@-NM4^xV2s*e2|qLj@Q1kUU3z>^i)F6gXwP5^w{N6gMVExT2`L zi8phBPcOyp@H}&Yp8}%P*B}Lz`Wt9R7z68T5HZha)|>NRrlAHltTub~sgiazrW?a* zdMFnfmA9TF3QGgijRm5(iq96_0$dRiuFpQWWp z`>m2BY5y5X+gA#Hd{$XTqN1~1e$JeTC!aoZcu63$axlMyxNC1U7NzT@1Tw*lSG&S! zck8C9u8E4}B43=>xpov1B&Gina|`L)UnbQ#hF6Hz#`0#sx*gUQHTVtEqpz~%g&rkq z$(nD5#E5g|&}4X8jLjcs_U# zd@oX|hwNb$*3Z*eJ|^L)@7qHwtd?O^9!~92wjuV*Dy;V@LWqeHpsi?}U@0dM0su=N zP))c!Ia`LXueg)j(}hr_+o+v_dHMM%)Rvd_HG_3-(Abz+i}6aYmR;O=U0rh)6;nGH z(^_%HqVZ&`_N4rLVBgVzF^XG}@u|LF0Eg!V{%Z{QE++RWtt2Q7lVLaoyM}@p4sC^P zBv*{^+SH5!-1a?5a=s+(dl?V#09%kT0mm@~-_jP;LQFeQL2bA|AnV}+n0io51nr*l zqR|~S0#(o-#APuH>TD`5wg*50H6@aZTk4<#+!Gk-qksN&wif-5#foli*0%&x<%-r$ff49 zwu2s3GxZ}|nRZ~QK7Ao9qoii{Em&tN>(NDq59T>*uZZ!M4B^aD-E>69x|v_#rxOU) zHB6|W?})+XkiCA6dO@A@Q|Pa}J_1wD=^n#I=GzRVKK=-bL0mBO%hZiFqa~M_%7GGP zog7_^1bTQq_L5W}REH3{hZX0{w}v4jI3L#`W;Wqm>50=A)KLz`&%7+K&4;L#)lQ$QX~&DX2o%%I<{NLGh-BTMHz zVza6d%TRkz!nD->Ww3a$0=zri?TI9H)M+f#jz+fgsSwr=&f>D6mFCa4_Th!P$h`Sh zNiWKf?h;c4gc_354tn!!vfCVJs&PV!$2WDQQ>oHc7uS_ep$(tJI=v`TJ;01Y!^qy>**EJm&KMaM{ zGMe%lYu^LeAlaw>SZzP;r|yrf>Zc*bD)@f;ZF=;zCwu$4?wR0|+Jxe(TjM3g(&j?8 z*~q{Q@8NOUi;kA(D0}qqo?$gMJ+*N(I>SIr4n2UDLTzXHSU7fuhL*aoOYjPF@$4XY zPp4K(u_&EOD!0C~$bDDp%dKzXrA1lijnK~q&PTs)MNT2x|JE z>mfG@dSI-f?1?tY_4k5*J^UJ&Aq?vT^~>>_8Mp@vAlpHBuM~uGoImxQGH?RNmg5ro z7vRRCGYPa@N?Sv$vz@KlG9miUPpyvL}x6b}MaaQ2bB5f!0 zdeyTrQX;}JD(;_IV?b){lL7{~NN)Z8V;;-Lf5^Ocf$sTp-UY8Y#IX@A1B0=gAVh0K zY20AXCIa&N}Kn4TH6w2Rn#Du(wQdn=IkPp z)|4cz+NYAVnCl*>1SmOkBLYk|3R3ZSI!dFwcfkRD|HO4T|DTGQz$>!Z&fEa4 zVuZbVRRFaf2(86F!T=^=7@*pd2Qcy#a6W+NlL@YzQ}UQKO$*RzC$I$Zk~?w$l^!&N z0aSJiDk!;k?bq?l(Soja6PooQx;_kaFh?t0z$FTXj3t z5*7wZ!9OjdMfX73B>8=?AMQeh(V~BtRT7S@yaDYS5|c0r=LC43;4iiBL^zl01Nj)?yhK^9DGQ%W$4ZW}0=zIInM(4%-( z$w4`Wsg{I2XCyZvjKI2b4~p!>NQ485^$7I}dIP~F`LQ}AJgtnhk=$$`YBa+3%riF; zcC6+q>@N>5BwqZ^E&^3g6xr#Go^tCU5p#+-P+uu(l@zq5xp>SdX~k78H(K!*a3az= zm7IH0_7hQoq(8~`ffcv~cI>uf6jf8E9(_(Vo&N>ZWMiS8YHTUVGop?R-Anz%E&^G< zV#a(p>32^W_(K5{si;!J1);_1=!Zpg-=YYT-Ia#lb4s$o;d4TFrlYURjIJIm7;v@X7?ZL)S|uW_T-x&9}afP43hR{uOFKeLJ;`*?>{F!W!x$f-qoybJW1O zJ%%H~Em7fh-4ZRHH^tbfwmj1jGY30XX|6Ld(-|X0lFpdgFXcHk`Kgi2Yn&lX_c4;` z!wYz$k<3Hb_lY2P_a^*TiMEBlwuSz-g@Lw(`E3ge+7=eJEey6TENWXgwr$~MZ3`#1 zEu7T0a4Px71b+F{w(?1BXe-ZeD-X1l``gNWgkOPi zxbFo_&n0`X2!jvFoHf;~m?S^jY9KIcqWtWBqhgX-aT!Ae3!Dm(k ztB@fDW<`)8h32dxh6K%uu?#6PXI;jSv1Y|YhFoUOn#7Qa zX2n#7O#0JNqhjh^P1tS5e#A<&=zUZ5mZ`;!#jl&W*&aB64LDe`EBp0UDfFrAS!zXJ&oB3!Z^+t^fW4u6GjhX(9@XRLm1tRK~JNyn=mZKprLnG%3`Q%?#r zB?R-P?i6N95avx*3Ns}P^QL1d%#=XPo4Qh%DWRA*9ZF%Q1Y_RRp2AEC$Gqu{6lO|5 z=1r|B%+|Z^Mq}aW=rJ^p%8L0k$lf2=iwTTmX2Cy<@mkct%S~Djb{ZJ5Lh76r`LV<9 zk38Z1cw39I8}T#;q8~F#7}kaTcogDc&h?q!L|=OurCYGxR5lpVNeCO8rsBDmhW35C zDAJg@D`L*vwGO+NhOX_-L~`Sm-C|Ec1C1(;PdRta`Qv{}pKZgQ2cs`DDz>Q6IFbo4 z-XxZ;hm-L|G`3KA41Uv3_-U&$0WjH=Ocus1 zCgabqv_4D2Ajd_x-05q8V4kJ&c(%w$SXa@AjJIzMS-YhgUaCmBIoE$njEBJG)|Es7 z_g0NC7DUXidX2gDu-jCm9_tMn;Dr6I%wyXEVB(Iu?xstxsQ&csAXVO?fVm()c0*R| zTd=+#|68o)`+j|Yma(8)|1@hYje_(>41g2nqHau@Vw0ZGPh_qAin#z6j3m6~AicRC zevhCz9IMOc_8l#Lgl+#IS{w8b!v`@AwVvnBJIWDBXG@Ypsf1s(K6G`2vJ6 zczm8y_m`Yp@zwdp$HrTF6CdAE`n~2T@HxTE185RAWo9Jjx$%&OO+@UMSQtU%1;cvktVt_pFMLA;O#!S_L{LQm5VZaegLpy+z zMpPj8=unK#{A_Mfo}t;}E4FSnO^uc0Shna1R|C*e@{Jcd}tavew!J_DePS`ZSs>3_C<_1dYp zp}|PJK-pOz(maYtlIjpn8^z=e`??1l}Q zMheNiAOD;2CXG$dPHrj32Jl5b8k0>#Yl#GpL`tu`OY=s2!C43`(uSByevXO)IuZfK z3&2jW1i+)-E7vJb{0Y3tdljd2y!K6_XU?PE>~+d#Mo*d1%)yh9@X1A5K4!4azN1;$ z3-X<;N0pOEXjdXe(uNry?K=uZZ*8ZnU3VVLjQ(8JHJw|Iu55xkJPNZgFlE!{@(Bqg+3& zN!Ueb=D6Ev`aIwnrCTVTURS4IagZ=Jl%mr!z7nOsrUmzz0SGUW&ngGkFqycKFks9* zrmyjj)4(q_ZaL+|tqt!aRt5dzH8}$c9zA^u4Lh+9dpW94AWf8`U&9Ny_hcZ8IM-k5 zEcaU%-+-~Qo>-`zOIV0@^J-BFh-7@UAV{eF*E8z1XF!Eer1)_>kjzJ63lEW3?dsWd z!-+Op5BEsgIeNGtpp7usVDH=-6_<@Iq=mn3ETvHuVf%k+1Bs68I9X>$&6%bY)GUer z9`r;Zv5|qgU{~l0gzn9eAwY~Grd{jTE*@A6I=zVtUP>8-W-u&3NrT5D4ZYgF-&6|v zs*YpBrP9+^Rp5EmSa96H9Tf@><^!V zShEbr9UOI7Qo-bU8x!AN)CYS$XX;_Uq>kxD?Wv>91;>%IvEY!Qw7VN4#EZz2Q6VAh z+-1C6BVm-oeOh+6*gL6r7m&{OOL5xlA@W|QoB(5UNW}(0=xBQbCDW?}0&;yTL>UR6 zxKoaj6B;e(M0qG-L$|+#$|jeJavU2i&yI~G;3ch(dUHJ8WfEw|e*k=uQ*s}-dPTLb zI-A-T6dBt5YmCM81Nm^ucFLQYdYe4FnhNJVEVE^tShwheeJd!CYCSpI)xxVXn5@Rp zr!=)COf8r}jr_+mQlzMAA#$+B(xRq~nfjx1PptE2u@+Fvame4651Gj8|ANW@PEv%o zkPn!5Ayine(E3fWV_yPhJn(sA`43jw(@ypSp0|Fq)&2^r9t2Q4RQ(0Bg$j5}TEfFI z!J=v(oUC^BMI`q&d#Ax6T$Xe@@17ZyB#V6clr1fBHb?u8(02c50zXEy2hU~>L&%gz z?sR7~wmZY!mrsF8tB9BsMomwQLsLqO*UmTEuQM0)uiKbIR0dc&XKp@j1ww)K#7*ku zwdd#w9ER{iTjceB$5T&Sua?Gb4&AR_A+PV^;Dd7XO$1Pa(eZyr;PdH&vRmS8buiZG zmBch9zvhq4_2&~SIL?Jm4|giX>Y252>tC=pQaB0=L+?@Cf<$cNNWz_GeJdHKmeLJ% z+S!o?iWsjA>&V%96nkH`9K@^b@5tGldPBF?5hd{90?0Z3K88M_cR*JNwA{KlMU(c5 zcjRnDN`d+^P~pg+V?&=)JUR&H%p`sTu#|H2fJ6s6slGg)lLE#%&Szc)mI}j->*mC9 zpE31FZZNO#K&Ih(msddb1}cZ77Jfc)d!}m))tlk?Jr6c;GTFdsv;Eoy1F9VzImh54 zLK>N9e@?w;+4(vy`%s4^D@$H~lfzAdPLB-J6IHkjG@;1Rhe#8`{S&mcU%=0~pC8xz z|3n69Rr*Pi4qZ29Ex(RjJg@7Ca(Ux^V-xGc*%VQkj8IY$t~}-XZ6x^5Z6Vw?+=ld( z&quTWXGPtEDm}fr2?`%3S9eBHr!7jTc|z&M78F{|Og1Gr5d#>CoQHkkhjyeD{41}J zIr7K<6NMyuuU^lHS?Y`!Ta)r+OL!a81+=`*hAw0)fF+Ef2G9$3K1<-vsc{k(n#Ge$ z&W{npMugC51l8FziyBBXmZaH8iJzrs$Cg8<(jVLrC0NG=_E%xLZ#ad<^{3M~yruP2 z8bi@~4@U`nxWJ|!AUngXQa@Nx85=60Eu=?T>`2Cl0=HRNFEo>syqJ*I%?$(=V=Nbd zBb0V*^>Ckcf>*GTeU`kpv#$xFm(&s5so?50KV6oZ?gSS`-=v z;bKWT&5s!?vOv#>Qv}2_-NN_W46Yt{J_99+ANPl11|6in!^VPW zc2#$*>QJ&5(Yy1h`@onUM>?;g;jMnsqg{t}r63kdvB8Mu-3u_63h1TZ^`JfIM?Ey4 z*nj1M<22uP%R~o)`f0Vv-(2S5oE|{ucRt6WSLN7zTE)b;dA>8BMxwK^kmfDv3t!GA zv&XQ~(TaC31a4ndKSoZN)tC#~v7c@bm91M^i^)#6p}av`{@y@m z|3*BDWax!3Fo=|9jgg}#u|SLWG8dpt0?jenIj3d^Uqx1Y6s4ux1K};mG7^35@hN~{ zXp!dN4d&ntaFDCMn+CTsxYeAQ1;y)0!(U_gYk*^%W%VgN^r-;#Y!|_zBVoAmwb`t> zItcYir^87x6!aj{;oR%7G`x}Fjiwjflt*44&w-2*KKb!31dNuOanD#IdPF^Z3`V6z zIYtgQ+#<$m*%MQCa|8I4uTIHm0MJgk{!++^`ICHd^eK>Yl94D(>c`OqYU{IAAFj4&eo5$GE%v7m$PxJ!I7$$u3Bj zYd4o`w7lnRk%B}zd1@GWUJMvx}c7+|TjGV_La>id%?X7#F1|D6UA5WAKY*H$W$n zvdcQvy0UWp0XeXOc+`v2Ic;a*Zx_PfVYI|1Q*Y-wBN;tQz3Ow(m8Ut%P@ZAau$75z zC1RapP37s%sj14MJ3FYd{(#>!xgDHfhpW<%fBmzF=P5=$oM&WuRIJ8tca6<22GkLxf6DeBCUw0c8Rb#)MHG(FyY1jA#JQ@Tq;#;Hg|D=##Xu!VUvypCj}X*%=_2tNavL>sj)yI9)!X-PiKl6;yZ$und> zmioh%XYIH2@ODYd<1i$Nb||>pC_1jE%PAub8Exf^&=0~OZgsS+0~+k+0S)#E&g%(L zYnvSn|9#dWZb@{|Qbl(V|2D{-lGpZBUZPMUuV)ae0VB*RWhhTO8vgsN z<*B^TAiLvq1|unwjMaGA3zY9f#5TO`R$H||32$tcm~nmX3Tn-a6`IAw6lpY zF7C_hnYJKa%!e_7PuB&EEV9^xEa-LwbY1pLVVp35$SP5eYr{|N`RrgCAvL2NO`JX5 zjrk|2!=j}O9MtDN@@s~>BwSM^cCf2w@w|Ho&XgwoSP%^jVfF`TSK{um*zRftU;}6Z zo?ktdSZFV|Zih1zB?rgoQ$Wj5x-f1)|EW*+VW@=tVb)7zqO?LsD~Ltg<1nTbxGRM^ zJMucTdHpdlISokIo%}z>M zF#@_Fa`clMjLJgn0hk?dW@FL?w+|}OZ&vz^01xFVutMrHzv0tsijeat{hP@7TIc$J zbA7%!BWTRxIqcToAhAF$*9=^s4uCard0@9#f`$X^ZN`2^-T0iz>x0)-pobhz(x$@41N z7nJm^$Ts?JuH>`OKb%DTqoMj}P>)$O>ooC)b^p9q)WyB~vbDQR&x_8}COXQvi9lsS`WlFA&P8|oe`kP#oR*1cGS?gP$WC*#gdo0E{P*;6!7xu_n zk{){v#dAUts1J><%kWli<#Su)B^rI(L4c&Vkw<-FKly}{)4){%l$-_n5Es7(Fq(Sm z+Zrhu$p^J+?ZXSI8*9hdlnkE&CfY`HDuCGXy{U1X@@B8{rU#oJqm&t~Fo(O#YUo;B zo;POmyfGI$txct?MCo3Op$2BCU3%3aNuS&5=rP(T?C5jbo%rqO-BNr$>djiG^ua&h zS9-f#e+0c{ZLyvR%IhxzmYyi9#dJ&mFo-GM9@I3vxpI9k$ zJ+12N301EDHw0>fdLks(U&OF#x&CJyctEZ%Lm=MFX;#biOF8hcTpuFvukjX{iy1Mw zOcC%VA-=k*gmVP<;QdrY1mZuSgbge}Iod`IJ4!DomXP%Xxqc;3>gFcsYj^@oW0BHJ zab--Iwh9%&alVxNXTXfJ{9EB=*S_SioJr>Dkfh98?TcBet!0qEeI8c`d=C7|Vn0M; zZ{-06Rf7E3hbWe)i1;xC(Hf$qU=t39{%l+{rBF51`q(9DEQMq&; zIZEP8RxkWiNuqgbRE(%tSx`aN- zj}@hhat?x=rR0kbMHnXveA=L;1PU_TGoYk%xTx1%?iTgXfTI2Zr9k>JHKod;jHPhe z0Um_Aa&Dq5{xhH<5R7j@0MnoZ9F?b}7%Wmm)FI4?C%!_YiNx=xG{jg|{H|os3u+PG z&dxDDeubAxAO>6#mnQ+9coBk>uOyYpQMwEVFI}Uhi%w-j$9{>F8h%B~kJJP_lWQwxdBK``FM}rgbH>Bc=Mf_Jd9+DREm!{&UYJLy~GvqGfOSUt-NS|P1 zkEo_H`+gC~vKNyS?c2qxr#Xl0ceZ_lcn_XQ>)Y+YtitW2Dz0_G7@VxjsX0D^90hOG z*2+U$sB^etJXJh)ZsWdvcmY_3@J8K@Noj0Pn5^kiC)b@ySlBDY%@_^{3bc3waD^qO z&xoCvjHQ5nZx-4%IbkegXG1F>*u_BG;4z^)#Q9(w1oCP9Ka)@Eneu5BIuWFN+W*hw z(|)FW+VKI5G<=}AvS}*Q1Hp@~hwa>a^_#U9=!qHf`c=>yeBVrdd>H~{%xA!um)T_i zE|k|V!RR^sxqUI&_Xec+%Tr$j#^BHEJEfVal6hHUB zk$@CF9!EB?Vp($Z2tqB<%TSG^&`gq=OiJ1B(z2<5NfWWK>}w%h-5jsY6L}=yHUi5eY?UlL=`Bons^X3dnyOvx|Qtl0`-)PIngQhxf;cT z5~te;h`^<9low!$7T#GCn-t1@=7LtE95-e1a0S+ltBE9P`%RXvs5nZyiB!cXhvT8$ zD9?8ki#ufOh^G-!s>;cAfb#`<)iEjF&Yt#T<{n`z8faiAn$k83it(0cP5RVabtpcw ziJX0MbTcJHme|E6uYVjb?Ed}^0!~r%4Qes85h5S%AHC6QDEVd?uKp$yWy5oPj8;)f z_Zkgsyzpt0T@)}@2jdD+Izvh-*npG-ppT;Lq5!2F!YQGgAx?jGI_CvFl=-#6xP|%w z&-&DCZ3MZ@kC}@K%t^na)PE3By=C4YhTsF^enWBe{gn*-EdpPNW3jqI1cK^l79Ozs z?#nl#W0}d+x(dexU)*eMogxkGqvA)ypt;NPLf=7H2`vL%bwQxQX z0EdhvkL||NO91etl&e==zy&Te!}+}Z5^fXhZ#Fg+kzk@hJZ*eA#}&DmJ1~mM#h4~z z8kI%xvc%~Qgd~06=g}`@`UPjApN?Ys^lC;4)1^;K5=r_26~{`UDx;ZyT(FK(B+N>$ znQLsy=PUx0#kuJsoEpb@5ULp^R5yDAGTMC5VcV zpUc&c(sp4sQ35L{*PH0<2ve@FLnw{?doQ>Oqm z)*z^G%Jb5Knce@x0V-dR)|cD?F)V9p8v`_+mLx=wEK=KwWWn!8jWOs7BZ4vg zFC;96oQZGJ@&SCa+LMXm<^aBFO2;XufF9S%nXJ^cz&eBR8pmLf>{JUSQ(Q(Zl8{cI zJ9OC&YS%K`*y58CH)d7&ouT8M4cxlUN=d8pasdLl&SxpEvo;w2wV=iJ#-rZMWboBo zDCJb6fg4E}USLv>UGx@Pb z^;vi!+Tt@*oLiPE@+mMH4q)_@?Z?RR@3$Vk|$J^pVi4HLY#CCxgYv@A2+(oZx zOl-QqduKy}p3io3m|Gq*7TZPeBvEp~xvGFlA6-p4<(7lFsI+`;F&+bEX0*t=(z1eF z%>PEF_N1O?#t+kb(Rn1*NsNS@W(qCEB)P$6;A<)S;^Zk*B<~qK4?mp=>MFF z;|qhea{Z4ftQj<3Y`>I zj`5T=g#?MRxFD7eI-&{5CN1mSzYg?w_mkmd{dQqWZr z-e&)dSMxrTMN7&BRNvSUtiUzrQ}b(caYjYWwZTsStEI~dvTQ*?7*qYf*oF5=7MRAP`4P4r;%MFn)E4T87-(PEV=VYG)kd8VgM!3W@#6))C!>~ zUG_*YgKMM*62ppKKRhq}k*Sh)1hVj{qrX7sjo}HqWC*4>Qz{6@v?t`?5)OX=C;&JlSgXnhYYmp*kxhEv9DW|KU7d7pdj@LW=C` zVR`PTrw z@KFtyDEUm!qYkaUsM5*D1{*e%y-hytZX5s!X28&nxMs0Ep!QvRhRerA*leIHR+jwy zM59N3z7giFyWCoc>)B9Zd9T)uSuVIDAC_N!ZX&uZ>q-~^UIlY44e0$A8LEX}l;IiK zOzH)?M2w(lL5_qt2S@iUNnJ^u4^~4NeoWkl?aUs;3@?IYOmyUx&e!Mo$eZ~2ilvrok zBjvsIlW8_F036xFFiCs6SD6`5ud2osB8+6U6tEz%BV$bUgbYdpm@$j{>EWzcT{u8bh^E9*aJL`0~zY*T6ctx0HT5l8QlN zzXYz?{52_AB3G>@vxm(*@wXVDs5ii?rz-J3;?=>;7g`~RmcwvI)M2rl@1fBeQSWbI ztNpQ@$5L<3E`rhe;tp|&BHlfW99L8_>VM;rGm^Prc!m6PKJgMv))i0&=Ib z6X6v7zY*-zq~4re1S59nlr0J!Uxf5fq5>()wcdJHw%#Zk(e>ca;irgJhjor$4ni2+ zGTF}Yi&Jl%&l0S&VKLG$_8A6#uhBYNQ2@CZ(c{2&M_CUcmrkXqGu(<%lB1p78zl%f zxzhF_+!K_iHx4qCU|m&^Zqw=I>hpjXuE35iQN3;=6|O_5WEn;w_=#Z06J5HG9=NQp zoxZPv1zYz5SYD@et3T%%l0-pgLpzn>S@9(Gcxzv0g9R8EWq2&t0kqnJUrge3rtT$nP@ByR+T0SQI0F=lhh&vR0R5rk>u8X3^QO zn<>#Vd7H0Wjtifr9E&;|o*)cd^7||W-imjQFLQZaH5lLy3n0D)*i9G5APyFH?TjY|Gt{UMxBv zFNU%ktB)9fx@v)@!bj<%JxD`Mg=Yo)=BnAWR0GF{pr5PE(~s8TsGL{!;ZnGHknzWTj@R?4v0!8Lb&S3m*swrd zmThz}=&lQI%tCVr=Q&X-fTL_oVw^j`Q2g+xuB1piNS!xIJZb1cSzL7{Gez)lcHg3n zdeu%$IX6n`JbR9*YkW*FBU{V@?y||quril3%*f3y%cM2vAEWgm_UuUGHj#{I9ubVqEP%>x zrlI*}Q`sDuI#K<*qfihk9KR18_L-aJ%Wt8{Wi~1mcif^eVhVD;UbQi8kZA3^uByOs zUUv8_BpRgK4DZ=Wt(z=_uoGy5O;4uUV0dFEv{IOvq;asm$}JZyzMWIiQ*7Q)N4aK- ztr_-Pa3^R7Su+Rf^zS#HS*Le`ScXpbatG{DvHrdhCw?(C*=Q&`xFpWW0gdEGZX*eA zb$M8}6$XdDW7)Y3FzO@7(yg4D7Ui<7t`JrqCT<4UV#whoh{m-=i84MYf}6Np8;@;? zY@cw`9_nwLg4<%uC>gA5C1@y5m~$J)#i%PY=I+T>8pm;mX7E=-I+Z6}fht9A_MbxF zv^Qn^MC#h;dUH_*^aQBfOk2G3CsbRzN$#l{+zOa}U}9&(Gh7`U`7DLmu-DUGPS=X6 zD_~L3(Svd`^BQB|CCPeo|C*V$f* z!-Z;3$m?@ZA~s)sJ^Tb55`?c^78^>txiXv=&33+E%J}F8<1dfqkEHl@fxO;YE9H4P z&=Oq-MdU%mvR2*#wH4yPM{~e9UgJMP)HH2Rc;W!*Qlnu_99V5vy6raHWj~bBkdoHq zUXDgXO4kA;`UA*0*{PGx=?)}%IX3erB}%}wL`BAK?d|`ut0zz^d_aJPf~?n%dy;m)fiaJ>r7{mq)v%X_u5~eSzXUmfb|8%X0!bgxlX#7t<^#gCuQ3}=9;GoB{XVtY zzh1K6fHw%IU8S{`V@{az1|76VB*k=)T|ozhD=0l}>%y&ewQ8x!QqS-SU7GR<9bli( zxdMY`ft#p;lBoEG6W0uc{|c%HoRyU{%j;<)Ep_b4ro13E(BTOvI#ftuw-F^#3W%xf zFy|KWM}fjn*0aq9idzTwd=hR%w-R=X5#E6=9s`_)0oyjC%Sj8x&{xYt#u$R(AgIG| zJ-idgiFFR=qz1y`J&U_`IKRmQmmE8v?jeFFsK5(P&?z3GB(c+cG6hn^9W9Wn2R<1p z&p?+&03@-Hdj$EKyNG@JtW*6lXkdjk@5f0;2w9txLJSUcO$fwf`7eZ5tb|LumiRuC z2g{u#{J&FB43c0!yjKn^zmIO-khFKHcI3z2VDa(_*SbjI)c| zW!l~5_Qt6pTbAB9&WKV|AIJqfHaoM!=eQNA1x~F3M0>Q)k4DkppxiC*ojJ%ekgyMR zva{wLsyFq5FRr)b)L!qNiYYzc$B~fYeyFg!t0sZnL%az9jsJLRE9W0Ee8qd}L|?EP z+e$Ls<+^e_EB&?gaxILHMk;7*54Hy43vzJwx!A@@y%{s& zsm6QmIvu$ij^mVxeqc`gee`j3noq8$4j_4Iky9%Dogt*7FYi!_5BN*ZIBV43S$&xp z)~-CwM4d+9vNVBb1p(xSvx(KX86;ES@g-oS8aw+^!0PKWUf?4YH&DCBD$m5=TtT0| z)R!(lc7-j6AH!!g^5=T<;|Vf>bnNA|v}PV;&1{9%06C_-hW*W?Fjxb6Rbcm);lm?? zcjKil-p3%QBgV5`bb{??0I=Y_?qwzUI4SnsB#=&LVjC%4Vgk5b!tPf|@E>$AsB(3}{TfZ$XO`=G_qqFw*aUO~F3Ov}ej7K5>& z9ZM!YoFKwT%zij^;)uR24~K@asGa5B#m?v+GCi0fz_pw{cyujJ1Dta3$Yb5tMyi@V zcy!@_b4OQzIU+vr=#jX-g^rxiDJDnD7iUjM4@!{*nhO_%ZXr1h;k*n4;UvZvacA>s z6l)u`Onh<{Tcii+Hy1jXn9k03r9#J0k|%-+e^G|b^6r=Vg1Cv5X%?Jz*2WKxLZ>2M zE0CGPjMG7UO5K>1p zDtYDMylST!dt-6l(d(?hXXvm>dB=NPS2p%M_@TVwvLD>hH^YnVC8%mF(DervW4#0^ zajOK@xaXA{e{`l;x4g}@B66TJ6udA#C4H{p^6wD>dVv1)k%%0O)$z$R9JRy}8R3l?;U_Y}n=`^&Gr~`2grCU>Z_fzt$O!Mu2=C4a@5u-^W`qx9gb!wfU&{!$ zW`y6!2)Ad14`qbAGQ!6)!d6DOJ0ska5k8&~PNc$AXaD?nx&*#)^YTi9q6d~LZ8!d) z_)W&q45!SE>i-^LN>VZoHc@)%9R^9I-xqP>?Vr#8&r4uOnUw##GV;ls_7B~Va~kmf z5&)iF{+G#7&;KP}{+aDRCGbxP{8Iu+2`uX>ldiyD4*t52lu3WY->>jjjlXgDOT1Mk z?ZV%;@HYp4WAT@TzoUoCq_^>RZGM^bosr^iDZ*Rb_uKLNPOwaxcVU_I2L8TuQJJ&? zf7|i*F8(HbsZ0t6XFl{`)r7$ajCtVR;62||t5yadS{hvWwTD(z1@B#=E(xx#Lg>D# z2dh>rQLFA1sP_gRe26ePZsphSU%tEwiL1W0L|a)ER6~@4q8_|h4OTt)kak}vs3Myr zm4{ZW1eqBRJRsft-~->JtXBrd+XQ2(L`KPCUKU*P;Jv5k3trqj$K&7C!J8fm zE?rTT!TV(*+xs89kNF8AyM>np)fG#=_H|GjEErgL*_eCje=y@UD2=~*zPe_aP%_6$@+nunJEBS~(pTDJV5;MYP+9=s2=0SQr2QI@Y={tXh`VCjFecb{=mRO_Sf zSE%Z4a?S{YfaD?PjO3g_g2ONYMkXs#UqGn{FPLb;cmkqHX6U9osf+T`MRlDu(qO z5zUHDiesTh^0g0v3|9#TI5wS@@ed+t)(1h?r(Ihk> zIw~SD$y+Z=KPkakD)h{0hkDYB&NLGf8avdx$P!uo?Gxg{A`%mwCF*Pj&XROC5LOu# zCC4U4^^2uLbSxpLeaCjq+B9k7Td6&J2h|OFHN7Yr5gQ&A$=~pZ$SAfmUn%E_=tMeR zG%7YMIypQds7~mhg!1wIViMy+!yUd1cf*bMb}Ayg7F$S_?sO+1!r6h? z$Aa3lXxyT6yS7a_1$AX}i;HCkaJKOFEcK*h=HKjwNtBNXie$@(jEas3dcJsKa7t{Yrfn;MhM1?n7mAMSmohtpMKBLVC-xwx&cwLngs_O9usBwR z)3xZRu!vZW8Bwu3au#u1Y;gMYqGE8x3L;=Bl?^KSVyU1?6)ILN3soJe1+}L8o%$yy zCPfTz`ZORmZg8wwxHJ&MHWn^A4NYt^Bq(B#vz2;xRA*cEErs}~q_F-$gZoEBMEiCd ze;IaZRv3E{>oX`cGASaVTvA*zg`GOm3)XGF1XfObs8fMA=Nw=X;{Ihtf3JX5VXATV zN)xgPlnpYoVD^i5N0cCuzO(O;8|3edb98AFmTm4)<0aBlV*%} zHiWaZgG5kI=Wp*Ij^@rO#o4gEJ4i%A0y_co6(5%vhujwWNos*Lt`T9nLRtr;iuN$pXVSHME^J>r5-n^=Wn$* zN06YPa)YSff1FO)1I)stmU!ocWOfDLf^g0o(aL%xW-6gD{;2z7yXC3q=+F&&Ll~+$}Zxp@R&HxZLxn}?m;Cv8HFZC zCpqh=T3Kdsh!a(;R?3+?u~JY_BD0wk(Qjx_CC=S6&FqG<#rLBsbKZ0kiSZF(QIVXj z{{3Eeckb0pRkcRQ%A>ppY*QI_|ODrlXIRR z&(Sb}zB!AjY*2WdbM5E9YD{xN6RhnhXTB1HdX|gt4blCKCQhvA#7VJ^gL?mMLlG~= z#SV(#@+oEi;qrp+#|AY_2v3fRjSFhuy5UQmyR>bRwmm+oogCXHF1B-WM7N0W&i#{{ zCPZ}#O%g)142^9X(YH-#Lc{okHlagXCdal+j&7LTuTw;PyRf9Taf2F1gi$PIC>~sy z9S4e6<}eyuDZEw+=HL(&%Q2fRJyOJm#yV56OuR$?k_`R_sehYi4IIX&48HsrGsu52 zcngd*gZdYP^L$Xsod16pM2Ce1B_zi>XA_aWVR(1~*Lk&qDhv^|(u*cT!XnJ!%X!=> zqF;=2k{%Ql7i}&BL}UN)nG2?25eab|3(ff`I!M$iU*2@-GIyAMZRqXY?fNtK-7nc| z=E?dbM=^5mY4j*Y{{G8h^watQ`O!~z`ybzCy0pV>e;uQ}+0?e2$I_Q2OpSQ(e>b%K z$y?&fci&r(zsUMgb4m`+n7wUCh5SXzxL>wEIwsQvHyjbYV`a+{Yu-3K{`nlu2G{2c zLWC&c{Ff94)v?ckw_XpLQa@Mg&*rpjIeKH^K@t6)Z`=5@KYCrLU;1v7lV9F``eD@g z?+&l7VOpB^mUp_|wWlt+*1PVf$4a(Y+40z0m3F*d@s)P^>d#kN=NcTIZ~M+ddy7on z@?qbP%O9W1e`;YrneLr#V)CHR@?=aNQ?hQRh-2-i-WmJGfR0(-E|z?9%Wr229{lpv zp~NzJh)PK zRK_9eCLbE})6y3Q^w>84z=|{0nWN4WtH*e!`>fgaxtFH>I6As=+`;Pd!)kxstD%}% z;Xj$qoid&9-Oc~+rnXY2Tk_vc;Vrd^|F_``8TL&)7qu#;|JUuF>%H$cyXW|EcW(VL z`PN%+eLXC;YfQr~6^b>lTDIHAWq>J4Y0noImUhXqa(0LJ->SUGQ!>7~zL@QA^(b;jbtCvtE~p$=5DBQ>+{Aov!$c75CK4 zH!Q46w%HFoogO_o8C-Aa(H|lQ5ALMjo*Dk3r(@>CVSQfw{>E>Y?sajd=r+MsG z#80DEE&s9R^0RLgtzWF~re+Op6)s(IP5N`ar)JMw|IxI$%_;`PmCDvzm5ZHo&6#e2 zZ@Lc(eRzEPyqZmZ$$PQi-IimPFUj9C!=iIXOJ1#U^`(+CKA1GeGpOtO1x0d?zBsau zGu`LD={}h^|3=U6+8pTrNpR~;@4q%QfAqlJ6KXEo?bVX&wy8TjDs;@|d;R0vk1HP&l5BUgY7aYQ zH9KdHWcPg2bae`?jTwhbnH)_HH^sJPoBo~zOC^HI%rA1YOAPKJ+G z46U%EL>8yLhra3Rra${0|Kj;qmw)N`clO`qoaz4ZO?ULa9KN8OGhGEyMwAl~qKPQS z4U9>v(M1z41M7P)m;&4I(5gFe=R8DLlcJi1r zbK8b(x#`oiMcWpgn>c~L(b3NP;w58~qoYfCQ^9OHe081w`TvK1D^#phxk}Y))oauY z?Hk6`aKHXhuMCKeiH(aNn2?y1JZSKcp~FOKp@xlKY}}-2v*s;Ywrbs`ZM*gzI(F*Z zrE9nDFZB>IwN#mMLBXYq_K$A;^01^=2KE?S;)Mn+#H?2vi29?vxi>qef#^kigE%*TpYV4dqmy&S z3BKq3kNtm}@!T@XmFD?2{JqIokeub4t`Lv?W&MAv@mvJ?623A{zNfGLn&iifr;m&e zCVT%jBX)Am*oU0+*zL)fK2y33y+ml=$k>FWLA?b36=pg2t{I;!Yaq_9Xdr%PEViu@%=S0qRx3jrEGb~XJgox*z{QrOW-@62srMco+cu$DVcZArGCbxlHA96d>9Sf|WDMYp;C?!*Zu?(cL}B%0V+8hl{TiId`@ zop`D;vm)lGWZvbWQw;B_!C{Hql5^tq#7S{6=6bUgZ}Bu~UAaZz^h+pPO~zuW8A=ahW&&; z{7=j5LX?(wv5YL8gCnBsY4S~oE6LVaRd&Z}G6Ad0b688>z}oUQ)|Gj33Q|l}oU_Jck|RP3$P|U}ssBSDjsCHS8*D zV|O_aUy|dohn$EZas~F0&g;`qxeLSOZVWd@$WMtQL363+4lIw`a8z;)m#FOQA zd`<4bDaNV3_yn10(s8;xk29n>q=-L>=gKEIPg;3|m@hNpn=&iDAxq+0vLe1MYvDrK z0N;^aaglL}>_xm(#^QT&ATHRUMe*92g!i~la z@+TAjikqbOWovr=%m2r+67G<-ai?sDyX0d0L~g;|au4p26HNV|5q~Ow!Gm&|$vh@L zDhuQj;tM&~WQq}=kbUr^^xh2XPyDqUi09-m{67z3Ms*i6sZ0fh$gI|zdP))JR~4{;s*VL! z3w%!Xz(T4&7B&`81BruF5*ATg%(SzKtEhEYUG2mg>Qk(#&SNe09oAM4u#T~=%J`fR z^^FZw9^yu-GQMbRteOxvQSGt0>WwW_9JW+ru$8)uZImd)9;$3?uj*h2)et+WSFp2+ z!>(!&c2l#lyV`^=sU6ru?ZIB^F7{S`V2CPJn7vg6V_y}4Vd@o(P>C3+reQxdAN#9i z7^RMz%r`hd{em$nN04)7egP9yc}!IGFiAz3OcD-KlW>S}n3_jCLT$!T#?fjQ@fdX# z$En|NymA#0Vxp>mlT=fjtlHpfsv}M{PFG>XGgLCpR3mVfnvAp6Mx3J#<6Px@8Qwf~ z8W$MfP&bI*RDa@Is?hW7v#Kb*qpIQ})eIM_7+j(faH$%P@2QozOs&Ng>Jwb4zQa}O z2Ci0r;u@8{C|A3xEPkMZalNX88`R7Ap^C(fsy}X4!*GjntFfw@OlF&!i65)^xLxfM z&hQcOVYM5Ns4wwzbrFxMYxsq_gU8e(Jf*S}6XLWgf?uo3cuuv%Z&V*VuZH5cYAjw* zOYovvjhBtr)L!E2>MY(+xAA-R0Dn+zz6Cxe5mf?6ZI6Is@yNoAzc`yu8K;xN6TpINMe^Bg&sW_)9DqMUT?sRdKYHa zM=^`Oj#+j75?s6Ll9*jr!5q2`=G0v=myW~SdMxJA^D(bph57Uj%&(7O0sS35XDp(B zA%0%p#iH6S$tw|E1WW4DSV~vL(z*eb)59>>SW-_WuB>Nb6}=D}>-Vs=UXN|`UTkY@ zr_T|$*AKCS&dD91jyecC=@+nzv8%2{++8=omvkuh)Z?(1eh>TTjTowTW4QhUBlPp7 z*+X?p?577{lup7|^gJA(w_>#3gR#aqeSlz5&V zj|=o_d|U6qh58UK(kF1S{sWh2#qE!Gbv9h8^Wrk&a$Syih3k3rmNu=-2%7jUbsz1;KzD2ZrAg0 zhkhG(>Q%T)@5N8_A>5;n;$GuE{T1bLQVUWHfn2Y5~2 zHOG^WD>@gQyD*zLfZ4@;7+B+0OA5-G!_&Sv5=U8g~e

hQ6dIk5rc4m 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 z zFla0uqC9&thv3otjk?Fg}*u7$~u0S-A{^P%lz$2X6t@U>7)^faYW5-oamc=8%KFZYimnkC6h)s z<+VpOQt46oPWxW6+H4oWB8s7Ec^KmIPnjX~Upd@`M>nbuEZ4h}&z{O8ECa3Ib#!~> z{2qRjDN9*JeVu(Yuk`Z5I@^7*hSAHs%7Nz;-F&5-t6_eUDc3{IoJC=qP^sH#$s{}0 z#QVuQXyyj+MZO>^b3Ksmw1jy<{Umz2TB(Yh-=9en~Tb@vp+1ty>S&B22| zizlkAi6p0x7CU>on%U%adFAYdb6Cz;(2kSx`-@CjcpY0GDz|htS0+`w`cOVSic!?w zR_NAO5{rJBDZ`~nk3OqdvwipPC*2porwO9fi7h~C-4f=1W=v)D@b*Hs^R-Cv>&zsR z*51CA+C=TMRn~m^w zMQG#Oq^_n6m$dY3l-7qsCh%K(zQ!_IA;&)@@?U`IL|g)tkTl^X%H@>3l~s$iDsuEnz{LV#?;)FsV5_ho$BrW7{e(SESk5h0oknT^y-r< z>zC@h!m`2V6cT3c*oE31UeVzFgK(NKXJvxVyk+w)TEMqqcPMRUkXmZNQeLZdnHf!H z#7%N^BDLhg#fRRF8evN^q?yW(V6#+J5@qF`E6 z7HTwzwQK;F`&y!QLv0|!j`6PgAe`^v7*s`YUb=G0ilTc>aR2DCr7P>hDV~IxQ|ZIc zU%Ikxadf;VVXA}2@)aCD`RE4{iRs-=CZ1+Z38>I*{^D=FSNol&FX4VO5WUrR@Y7zW z_voz2G%W4uW;$tY+E|=aOqQwHjf-efNo1|a7=}CN<=mMy(U-7j_bxFfNn$3Z#-ixv zT00iUusH*T&$H;;&2e$JSTw?{@g9RQM$;RjvGKF_@v z2|fCV$M*;8iLOs+eMWte$tBhoy{1A|XhKcxz+ZnC0ho2O2uO!v!W?C5%6*}l>e2o< z=P}(@hFif%b+y{nR&iLml)=>OXVXMMJf5aK4*Sx8qN?hd|2xa3iKaNty1T3f#8}yG zz+YqS3ZSyB0@96`Fq3`R^aV9!r3)*XssQ)H7Jn$KQ$~*6mHevtPRUKoMn{+ePx2Jb z&jK+Cr9e!Av@3EqAuFaw`HD83<8gg>cwEQ&emld*C4NBK858E%C@w1^m*EkQYf3S$ zV_19LZ`WQYWHXDAd!4jj-&x?;;gF@(;<=+g^-xmi)I(11e4yr4;X}Wr!i#Miv_{gl z;o#UM_+JjL0b*o&fYX~fBWn+iEpP31GroFVxWw@?pgY1?ByyG}rpGbI zUZq6N(okq!yub7II>FMRQMA z7c#kZX4v?96sde?K{h9rr^vLVK1t=APTbhE#RgZJ`>d0b<3&a!sCJ{ajyys}B*Xm+ zE;&<9gto1k+SM9+ZLrZg)M)R<=+nKd5}%PB#iBwRcWX4HpRgM?i8f~6byPXDRL8uZ7Q>f>6~nA5kTcrdk>bP#nR8s4w9n7 zLf2F90MCLy0QG`5F{P+3VdiPjTuMJ{bxXpET0McNV=E)-3v7P58!XDcmS|XZw&zIH zH${>lJ-!=c#LX7!Tf0`Q@8lXlM~k|Q)@Ue}-S{i8i{yJl<+`rUo;*9y7ixiD0Z$-c zP1bWgs>mreF}IMS`ZxwVeW18RtrnPIqaW>91~vuMWy^50%hu|AX&Xz5A*)su9X)$6 zBNZ+EC{0yw=>4**a>ELfk`vMIHpMQdIIFCiU3JnBJlii}TnHm_5zt&gz1#bD&uvxZ zFUWGT%~rnS_%5K@>_&sC*tLS2fnvE;xzs~gerjH?oT+z&oGRJS=Hs9#M}hdU1u3IT zm_<>WyJW)>FcDgzTq#Gbt*X=DUYJ$Yg@)`(m*zLCl@C#uG&J)ctvWP^p>E@K>FTyv zmnuadlJ`-92Z2uJsOL_{9Jo%U__&Cqt-OnSnix}#NNdMinbf(!3qvOwl1W)rg->SE zpX5_zX@0B{WnY9np2fx1J~)e^q6cWL{op60tHyX1QyT3OW_eW6ZYqvv(j8ZvU@9F6 z_v_3q^Me{d)YXyyik3C)^_`nryXrU)u7My5T4%~PcXn+kj$RSNIx~u}3Z}Yv0+(py zsqlNOLt5Wy(C)_CZH5h6jnO{qRjDP?b*)|VwP|0_Cl9+%y!(pvTpU;rOGQiCRn&ZX zoZTnaRN&TEwVW#cs@seWJ}x#5rk!~7n9)58w7t(aO1T%eIulZM#nZ639d}V1MYzL7 zs8c3dP<0V%YT0f*%0f!2gd1&qrA;kY^%QIZe~ClRRIYC-EbVB&`f|4UTMG)f#RYWD zqPe2mMwSh!M1@r@^VW|er}@@qZjD{4Juda1P8+$~4pB}UZKPvE9IiNO+5h-GPPS)t z35-3vI(wr@B={zrnfP=X{he>|ch8o{i z2vr<*_f(~MJhknjnrq~D9SW6O^My9{PBi*g+sIPXoYGrmZ4h5~f~tu#Y9_e?$NFq4 z-`=9aj=S&R!Hcs|JG)YeZoPD`B2RX7sE7ktG|RYFQ!KCG!olF~PP>$@z)UgCO7sQ$ zyL_|eDchkGyx#@yXkDjn_Z+r5GfsCU7$c#WN_B_zNv^fm3b$kFF{w6ZyVFI{*0N;? ziBKOW4LGVyaRE6`lo-E83a7Io+<{D;mC)2v%GJIwL3!|%xATi{%#29fzQ zF{N`ZVOEJVU1;wM`Mnc0t!P8Ud8zf>+?;4rKK9%0SmfbEH{$tpTv{=onv;j-Gq!i4 zW)h7lZj-2RA}5z*M|ZVy`>wU4Il3jubb8o*j6p1nXna`Xe~FrY1>8mPML_=sNab6? zG-O%h=jeB*tA+-9w(L35e~;aZ%i`RUxHi>nDm|u!>#uDcY-@LRsL!Z{dkiPvBiH4y znJS~Qu{t|CT9HxBJC5r;H!`j$vS4bGDq>Dc00Ti7{j&ko%=8p0k9T4xJu0AuMG<3Y}+aw?`Y1tts^ zutqsO8t-SPCWvp1#4YamMB-I1sRGhCm@wRhWh26^XA!{m@JMP9HB;w~t4P?}qzN%$HY?>452%L%mjSJ!eH9x06Dk^Xd$u`;j;kvhisr z?odYCH;P1ELxh_pEZ*xsyzeMw)W}<#5#^Ztm{~#bDT-@ z1y-sP`9b`vyG&c7@n%L!3A~ z#7dMYbSW#h+YmVu%ZiI*Wd{cbxX1~Y`60^mpKZ94vgJrH?QLt@I2xc$vA1FN(xxse zEm7>~p`n2j&dCImOWItJWiI8$dPkw%&VZ`k35Zikb7Q=EZF2Lp5C3Q0EDQTw+^q`R zXe*a|e96*FmxRlfX;Xdn8FR)ho?o}PK^L-T=Nh&Zu5+$#OQa|@NV{|ck+r2AoU z1Tu_fS>hLQV^6xd^MgIxSl4xy6)d(YKOL_Z9nQan)D;8>htzzM`na%Esk%Q>olR zHI*y3Q#qw_(>Zm*$!VOjdhnboDdyfGnxvEmrw2-Th^c|{d2pJWly43{HL%Lg0xGC@Vd%s8z4tB-4%ezPUiB#dZI3M=@LzLmza`$<^qBfkA z*Mc?us(LPox*~_<*pq%y_mq*o&++zA~Y*^(%?ppiShO55s3vNyW zj&)Prg>VSr)=lM>TTus2%ImIvqH+|LpZ{LzLiHzh}JPAT2n!sjgM0 zimRvy$GNNh2D#66?oR}Fc&b8cC(CZmeYbay)Zt)PUT^pAUL%f8)9E$Q81!mQ2&25L zo*L*y(9z-A)hU%w|BvaE@bSAF|J1j;@ehBWO1eAeoXwC3-nzC4eJCrsn(~WaciZ(& zmGaeinoBF(QC9ly#<23`uN(U`g1f&+Y`+g~{`(fi`TfChu2r1w-fl5Y*0ya~-3?dK z2yW)69XnjU+;vsjTkhOeRlM#_sdwYLkm7Y0G2Qp>9;S=e-Kuo%?oy?5cefpVdiJuT zOV8aq^Ko&IO@vhmuBM=Hm2gjb)k zSBU(#?ntD*wWrry+q8zZamN_-tviaS_-r^^FYff9+}vS4bp59p%|ond-u=#3*gQ5aZK!>nU<~VK;eq zw+bS6zhvOu-D-txzsN)JyEO*6hb0ErPE?AWb4L`4iStO>@+9JSaxW(}i+yjH+^f0M z$-T5^FioRq722~w_WKPTtf zwvEZTE`2BI8WXFtqNGcmX}L^)EMb@(;3XiPBvQ)IFQUNUtp!rn+YhSXQ(1bkYm2b1 z)?^Jsr}S*wX!T0|u#|RPU*>*xFnbSt?)bf!E50$~z{3Q(=a{)?zQh9M{)g%h?82Pz zn~!g}2{ZG^m~;1~asNrzk94aC^Oh}`)z>w>{0eE$Uw_T`cFa{LRo;@r-2I)Jw(5%9~sG?m%nemK=FC*J*)%xcWX9-1_F7n#1~p|j3fO@6+8{FiRiChW3J7w6ulEO-3$Z@;!1^TEGA zWA_ToZ}&g*bT#IqzkOx>6e?uhxKCuJP|jbieWK7yJnKGw-&x(xoSG)S?>}_zPsO+H zZn*5gHqzh!@lQTI19SehSC!vHxc%MN78+$vyQVNr=Cy?h8JP#>&P`K}-S?i;J%w^l z%bwM;pYlx0p1QjibN+o_JNhP>Ke>v zzp~-d?{;I#{u1Sqxfk;jmz{9gKGHd+>Zq%yV0LyKc=aygdF%Aw%6UR#B^ z{jTG;&&S;Vk{Twf09L&resg`amkr0FeOi_ZTm5|V@f_$UywYw8&mRMKc-|ojTy;ys#}#$V@dsA zeMmBz#-ijg^%==u8pD#el*wKUeRn5j73N)-IZUNhiz%MI9`k<8M$BE9c}&R@TQU1E zw_z$zy_k|y4CuwkU@G3B;j3_0I`x=}H$xrl!K}ru^m5oGH`HQ2gV~6?(#>HiUm7b< zU~a>%bhlv_Kd-hF4=-9Io?U%ZJo;Yz#gB`|i3e977N4y?AbxqMIe@!(X3-My$r`ib zi#3MD2di(2_Z96DzpFkg{#LYA{H(^j_*c(-o=;;~e4S{J_&1FW@oS>J z;?F`j(F*ZgqRry5M7zXOiMET6(%2I3q_HMGNiugBCJ--xMsJdde)dMl>p z2vi&fKPc5bUCb(jgw~nggX0JlHh{?2g$rr_L%V`fCo5 z*6a{obF(yCJ9{E6+P;u_4|dHhSH|p`(?1oni)P*uvulp{R?IHi`b5mGx&9Y1yXLTi zF}vo#O#_w?}*toXFm|Li+9-*vuiHe z7qe@Q8i?7&^Q0iwA-|f-j*Z)yo^2byX>x04j{dQ}XXskH=D7Bl zUA*4igY7?haj^YqX&sAw|5MF*!7ko~r3%Y;YCMUj`A*!a;#sAWCfLOz)RP%!Po%}$_QmYtC7zDi#nXL+z~OuGdb)eb z|E|8^ZTjN&YYTO{zgYCYrl9MG!49uERksC$UA&~O^98$jQQf`^cJa8n9Ovwbw0N*D z#_ZzF{yMUow0JM|2a>S)6AyWF%q|{Bw{L>Kcxl~?arQ)7@x2|{OaDVio8PIJXx!f6f@Po%cYV5(2{r=4856;oqoE9r}N>?FMA z#BG?83-g$oV{@3AtE(_Ihl?jr-HQ;a&GW>gu~_fSskOu>xv&<0wP`Qus_!*ost-33 zPGh-NCURj$CbYuHgobQWd7<3{ltXjOUTdDZTRf=dw5>9k>*~pmZ4Vd z8f$&Tr!l>g{D{^y%7lj2V~V!+6OZP!otRcG#MGRc!PMN{NBrUm8ZpIt*` z?DXRPK@=AExH4Moh_t^)i_=Yh^N*R$*$+&0uOS?j;?`g}vlgyilI> zL_-EtFOmx}Mf0~|YVOF(Jth|psN9VCt(c-U^_ZejwV0w^d&#G0W4!Mw)G+$)g>yPHK>njx7=w_r;K`jGoKo`*S zN#dt&20Or=;2!WGcoh5)JP%$3Zvd?`X)S0xI2OzR)!;m^2-Jhs0JXq&-9mls9Z*5r zPXI@QlfV+t0X_q605=1@d36W48$1Xe0gr*Fz>DBD@Fp;{Uj^6!)W%xVRong&yatl0 zS1=WP8~hNw2wnqkf@CRkKR6c51l6DxXdPk|Xaw!xGeBz)+d(h53+NKfBj5?}4Cn`1 za~uHgfOhE8jbIzldP6U`3uw(@7w7{|fM-BIcnOG>%`c3kAvsH3qUgA+aL{NT>&P8 zlRyrf2R;T?0V&y(ijqy>I1o&qm{ z{Qw2drVMar-b@9vz?q;9@Cbpq1grs^q&Aztb>Jqj1N4Hs!GoX=JOQ2qFM!v;??EZN z`FLBf z`oqvBPz7p0Em#EV!79)Nt_Rz|F7O=C?QpH-=|JpMFcZ{(TCfPL2J1l=_zbuK+zfib zJ>Ws`D0mz^1zrFH;BAm(t#2%t2&RIWpa#@}kAX`-BWMR(!1drJumju)?g0;iN5SLZ zDeye_C3qRU0p11WtR?F1OldktVc`2v#&wRPxYfdL-|V@q7WX%Fc^d*tuki zy$4@X(Th5y;_MaVLT_CKd&XqBo6Jd_E*=*1>B_H)Z#iekn{)2>hoam%`$SU~o~5#J zEBqu=F71O2_IW$vD4|4?dCiZDb37VV@FgubDPPhVroz^UFDL%&z{90-;jj1=s|+cV zR_Rl&{+uS&Zc~e9EWP7ZY7#7HaQ+gejL9g;ibg(NhMz89mS^OvR!EvL!+a~P zuf9#1vHVUXb&5An{pl;!V#;I=;XXd&(opzf8WV=Ny0|Ast}bThI+^^a1O=N~0mp4XiKW=eJ<1#H+ng>TwM>RuP8*vO<67bP zOq%jBI()97o0*eru4jZ?cWsE}y4?2(t~=S0ku)dy{!$kDi%X7g2Bp}w!KXNVgqk`9 zH`gazZO^oAuC`5>)4X4Lgzs`0^+}a#3vcpq;zC;geL9IK&d|@QZLF@J&CPr%HcHbC zj8R)kM+?#o%^ls=u2EaYxkX(M)X0-RqqITSvVuJ$JBbJT1kP#biZh4tqBtjW{sTMO z2plDt!Wjf9fl!9uczq(RR)*>)wHlO}b4ff_*0Xk)dwSu8ix((PTU#|5(H@oleBN{aB_C0o)r$ozXn=meuW`)hWzBkE{zrWOfzsi?99{1&*7HLeeUcIrYqr0t8 zXqv4)dnL7+F1qF9)?nRIOb(^#Mt+x>=u))p(@oATT*9$#Yph!d6Il1vjuw?#u2Csg zaGpvh=-qwxQd62dj&_ilIL?{lf_Qp_vo+-0){fw|KC{I3 z=#k1TZgyz7H(IyBW!0@?sHW~LQBIB3w7Cj5{V@s}ie;MM%P?j_ylg7Nh7t0X&z$2% zn~e*7Caz6vUG_M)a1q_QZL)6he56d5&j+KkVWD*6LK{kxlYBnPCJoI;!RMnkR&QIp zTfDzq6U~N2*QEKB?bRATHPN}tFb-;{4bh{|(rYuRp!$8N@8_(qR{~G_YHsa`aR;A| zjZj7*4<~58?@8-FjRm!I%G_{7p}y$LRs1qx{%Qobe;l*gpm?o*2MKDQ2uC6ul^mR8FACtvr)GLK>$+&1{zIfHUAI6sG|wO(k} zNVR!KM9XSSqAQf8SZhi1^>~OaA>|sQR~Cvk9#V*CD1P?2gg{^2dk7Vz&m**OW8Ji5 zXwS5{XK>jLk^gTJO5gJ}_0=8Kb=usUaXhzVQm9*W2vd~oA>7g?(kyF7Qp(QioEmSo z7uu|wdRB!Q3TM%FVa@D4qc|;SSn@c`O8rYTWO8!UNF4P+Lj!AU#XI|J}DIzT_1sR>fm4b&*3OH0~bYdpDvI<~td^$WVgYW;pB6IyuT)V*Wnz6W1O5R2L=Y zyS_~x$T&a6sISuIA4uKJccyBP)^B76m(n~NTb*r3m(pWC=PBIOQy<9e@gA1X0F;C-u<&0Tt^LTcmbEOC%CPsg3aMb8*SWA|q4Tob_S$D@`dP|UWvuQ6zLo4yW}f!t zTxCYr2L+^Wy#AuiuXrf9LZ_dH(V$TzIoc^|DNR3TzxArc@Si7d8qxYY%n9a-1EFF8R{*lQxf5eUJVA zd21haLFdLikDrcZMjB)O88*>hgkn?a@NO*Z|}O*~!>3*bimX6weAx((r>4t<+6 z|H8Lre0v7V0%Y>fTH z^MvSlp|9-A=(gcAxS5GDHD8Q*H+lxsg`fM;)gO(r4B<*mijnjS#&16TOHUC-QI=o% zP&LD-jEbHzFM5B?Z-Y~F{=dP$DEo_AB+S1?Tt!?Se>KXFn|t!<-$s-vX$Jf^zb1!) zUM0;NK38%rx~Eu$3~>})ljcnyT49UsDf4!evMYmpe;=itGJnY2olq;fo?poWy1M?| zV0*lJnB3Dy;a*!A9i%lM+~JsmhBDjJ6t=>Q2U+4+r__7qd0?}nvcWh$KlyiKjPFNeHNLz|SpP9M3ebIx%2mG+^A7OPRH zG%fd&S*aN6b_#JfG#9wJ(AwOJW)#J(u&0`_dDTn98p@V$YSu`Q`%KatDg0?>Y{y99 zXPGg?!vLiE3mqsRp#gFERQy6%am%MC+O$QRl4g=mrRe)%>nrMw7KLHHQ><^T z_5DbeTOL-X9TmSHQB<^GX=1r~Hxt68%!tYq&^#N~En;^#hTSRA&2>q@wIkjr32B_D zJ9s19CpnD2y-Olms@RV+G35x1@4@S1)1$U3a-d0bvUjaR{#U!Yx;-^}WHV=uy$xno zx6;S>_QL#JA;fXh}B*RAPCaoX{k z-SquA*?f9#H0F4YD;rkNzH5S}?7@`b>_L>_96u7yB@R&rd$qh84@vv0F%iQy#6`Ww9GbA*F6&Qm@iq%FO3jhwG`7fJH=C#t9;8@~QCyll+}egXZ;hM*BOR-54~7*m8&181T8gxYHFP`PHSRwq<{RozJ)lT&FU^k3 zIXS96xaBYRE&B;?rqbgn)hNq1t)|xV=_|5D`D>K9($j*$u{8Rxo1$2X+}9c#OLLUJ zQqwYG9Bciz>qdxUy^W(S7ROaSRE_6}LVnaYl4c{mL;17Lh_)4HucY~8lv?1e3Q;QT z-}rCZNk7zYlHFZb?{Y1=r_7cpuA=`nQEVx5t@mH)WBqhivY_kvN%I+e|Fo4umr5O{ zYlRuoGo2g8wt`Y{VNC)*x+Kt9oH~R{tb<;Tyy;!G_8HG!Ra6Bmy zzCAXCD=E5hhQfVY8o5noYsa~birf^t&Y|cp#3!@To=i>9n(V?c-b;}R%2+2aM~Y#s z2H4gMN@AG{1yZk-d?+276JHZZ!qxw*NkJ2$KO)aG+mOJUz?)<&*E zePv;_wwdfd+D&v;`)gM72`%TW=EK$PZ5F5I|FH4s zUUYlQVdDvk(3^Re%&N4bb?skOf~{D7%>-3&IMtZb?C+FWCDZ;++jo=P?-F~A+5IlH zSGHXEQTBS0b1yUR=sO`X+DxI_xZmaGyy*8BvpV`+VXv*ZFqP(Z?|w?+;KB8`bNm8= zextxf-x9hl$6%)OdjR*H^yw25Df6jMaC89sbbj~Zf4vQ# zHhWeZ^GAm3^hDZBY6l$bq@33CZDJYMyE0XoXF;)ZB%;%5Y+0 zl&Nkp=65#yDD%Qmh;`Pz%* #include @@ -106,16 +118,19 @@ /*********** Global variables ******************/ -#define MAX_TONEGENS 16 /* max tone generators we could display */ +#define MAX_TONEGENS 16 /* max tone generators we could display */ + +#define SILENT -1 /* "silent note" code */ -int gen_note[MAX_TONEGENS]; // the note we're playing, or SILENT -#define SILENT -1 -int gen_volume[MAX_TONEGENS]; // the volume we're playing +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]; FILE *infile, *outfile; unsigned char *buffer, *bufptr; unsigned long buflen; -unsigned int num_tonegens = 6; // default number of generators +unsigned int num_tonegens = 6; // default number of generators unsigned int max_tonegen_found = 0; unsigned int notes_skipped; @@ -126,324 +141,419 @@ unsigned delay; bool codeoutput = false; bool expect_volume = false; bool ignore_volume = false; +bool ignore_instruments = false; + +struct file_hdr_t { /* what the optional file header looks like */ + char id1; // 'P' + char id2; // 't' + unsigned char hdr_length; // length of whole file header + unsigned char f1; // flag byte 1 + unsigned char f2; // flag byte 2 + unsigned char num_tgens; // how many tone generators are used by this score +}; +#define HDR_F1_VOLUME_PRESENT 0x80 +#define HDR_F1_INSTRUMENTS_PRESENT 0x40 +#define HDR_F1_PERCUSSION_PRESENT 0x20 + + +static char *notename[256] = { /* maximum 5 characters */ + + // map from MIDI note number to octave and note name, + + "-1C ", "-1C#", "-1D ", "-1D#", "-1E ", "-1F ", "-1F#", "-1G ", "-1G#", "-1A ", "-1A#", "-1B ", + " 0C ", " 0C#", " 0D ", " 0D#", " 0E ", " 0F ", " 0F#", " 0G ", " 0G#", " 0A ", " 0A#", " 0B ", + " 1C ", " 1C#", " 1D ", " 1D#", " 1E ", " 1F ", " 1F#", " 1G ", " 1G#", " 1A ", " 1A#", " 1B ", + " 2C ", " 2C#", " 2D ", " 2D#", " 2E ", " 2F ", " 2F#", " 2G ", " 2G#", " 2A ", " 2A#", " 2B ", + " 3C ", " 3C#", " 3D ", " 3D#", " 3E ", " 3F ", " 3F#", " 3G ", " 3G#", " 3A ", " 3A#", " 3B ", + " 4C ", " 4C#", " 4D ", " 4D#", " 4E ", " 4F ", " 4F#", " 4G ", " 4G#", " 4A ", " 4A#", " 4B ", + " 5C ", " 5C#", " 5D ", " 5D#", " 5E ", " 5F ", " 5F#", " 5G ", " 5G#", " 5A ", " 5A#", " 5B ", + " 6C ", " 6C#", " 6D ", " 6D#", " 6E ", " 6F ", " 6F#", " 6G ", " 6G#", " 6A ", " 6A#", " 6B ", + " 7C ", " 7C#", " 7D ", " 7D#", " 7E ", " 7F ", " 7F#", " 7G ", " 7G#", " 7A ", " 7A#", " 7B ", + " 8C ", " 8C#", " 8D ", " 8D#", " 8E ", " 8F ", " 8F#", " 8G ", " 8G#", " 8A ", " 8A#", " 8B ", + " 9C ", " 9C#", " 9D ", " 9D#", " 9E ", " 9F ", " 9F#", " 9G ", + + // or to channel 9 percussion notes as relocated by Miditones to notes 128..255 + + "P000 ", "P001 ", "P002 ", "P003 ", "P004 ", "P005 ", "P006 ", "P007 ", + "P008 ", "P009 ", "P010 ", "P011 ", "P012 ", "P013 ", "P014 ", "P015 ", + "P016 ", "P017 ", "P018 ", "P019 ", "P020 ", "P021 ", "P022 ", "P023 ", + "P024 ", "P025 ", "P026 ", "Laser", "Whip ", "ScrPu", "ScrPl", "Stick", + "MetCk", "P033 ", "MetBl", "BassD", "KickD", "SnaSt", "SnaD ", "Clap ", + "ESnaD", "FTom2", "HHatC", "FTom1", "HHatF", "LTom ", "HHatO", "LMTom", + "HMTom", "CrCym", "HTom ", "RiCym", "ChCym", "RiBel", "Tamb ", "SpCym", + "CowBl", "CrCym", "VSlap", "RiCym", "HBong", "LBong", "CongD", "Conga", + "Tumba", "HTimb", "LTimb", "HAgog", "LAgog", "Cabas", "Marac", "SWhis", + "LWhis", "SGuir", "LGuir", "Clave", "HWood", "LWood", "HCuic", "LCuic", + "MTria", "OTria", "Shakr", "Sleig", "BelTr", "Casta", "SirdD", "Sirdu", + "P088 ", "P089 ", "P090 ", "SnDmR", "OcDrm", "SmDrB", "P094 ", "P095 ", + "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" +}; -static char *notename[256] = { - - // map from MIDI note number to octave and note name, - - "-1C ","-1C#","-1D ","-1D#","-1E ","-1F ","-1F#","-1G ","-1G#","-1A ","-1A#","-1B ", - " 0C "," 0C#"," 0D "," 0D#"," 0E "," 0F "," 0F#"," 0G "," 0G#"," 0A "," 0A#"," 0B ", - " 1C "," 1C#"," 1D "," 1D#"," 1E "," 1F "," 1F#"," 1G "," 1G#"," 1A "," 1A#"," 1B ", - " 2C "," 2C#"," 2D "," 2D#"," 2E "," 2F "," 2F#"," 2G "," 2G#"," 2A "," 2A#"," 2B ", - " 3C "," 3C#"," 3D "," 3D#"," 3E "," 3F "," 3F#"," 3G "," 3G#"," 3A "," 3A#"," 3B ", - " 4C "," 4C#"," 4D "," 4D#"," 4E "," 4F "," 4F#"," 4G "," 4G#"," 4A "," 4A#"," 4B ", - " 5C "," 5C#"," 5D "," 5D#"," 5E "," 5F "," 5F#"," 5G "," 5G#"," 5A "," 5A#"," 5B ", - " 6C "," 6C#"," 6D "," 6D#"," 6E "," 6F "," 6F#"," 6G "," 6G#"," 6A "," 6A#"," 6B ", - " 7C "," 7C#"," 7D "," 7D#"," 7E "," 7F "," 7F#"," 7G "," 7G#"," 7A "," 7A#"," 7B ", - " 8C "," 8C#"," 8D "," 8D#"," 8E "," 8F "," 8F#"," 8G "," 8G#"," 8A "," 8A#"," 8B ", - " 9C "," 9C#"," 9D "," 9D#"," 9E "," 9F "," 9F#"," 9G ", - - // or to channel 9 percussion notes as relocated by Miditones to notes 128..255 - - "P000 ", "P001 ", "P002 ", "P003 ", "P004 ", "P005 ", "P006 ", "P007 ", - "P008 ", "P009 ", "P010 ", "P011 ", "P012 ", "P013 ", "P014 ", "P015 ", - "P016 ", "P017 ", "P018 ", "P019 ", "P020 ", "P021 ", "P022 ", "P023 ", - "P024 ", "P025 ", "P026 ", "Laser", "Whip ", "ScrPu", "ScrPl", "Stick", - "MetCk", "P033 ", "MetBl", "BassD", "KickD", "SnaSt", "SnaD ", "Clap ", - "ESnaD", "FTom2", "HHatC", "FTom1", "HHatF", "LTom ", "HHatO", "LMTom", - "HMTom", "CrCym", "HTom ", "RiCym", "ChCym", "RiBel", "Tamb ", "SpCym", - "CowBl", "CrCym", "VSlap", "RiCym", "HBong", "LBong", "CongD", "Conga", - "Tumba", "HTimb", "LTimb", "HAgog", "LAgog", "Cabas", "Marac", "SWhis", - "LWhis", "SGuir", "LGuir", "Clave", "HWood", "LWood", "HCuic", "LCuic", - "MTria", "OTria", "Shakr", "Sleig", "BelTr", "Casta", "SirdD", "Sirdu", - "P088 ", "P089 ", "P090 ", "SnDmR", "OcDrm", "SmDrB", "P094 ", "P095 ", - "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" +static char *instrumentname[128] = { /* maximum 6 characters */ + "APiano", "BPiano", "EPiano", "HPiano", "E1Pian", "E2Pian", "Harpsi", "Clavic", + "Celest", "Glockn", "MusBox", "Vibrap", "Marimb", "Xyloph", "TubBel", "Dulcim", + "DOrgan", "POrgan", "ROrgan", "COrgan", "dOrgan", "Accord", "Harmon", "TAccor", + "NyGuit", "StGuit", "JzGuit", "ClGuit", "MuGuit", "OvGuit", "DsGuit", "HaGuit", + "AcBass", "FiBass", "PiBass", "FrBass", "S1Bass", "S2Bass", "y1Bass", "y2Bass", + "Violin", "Viola ", "Cello ", "CnBass", "TrStng", "PzStng", "OrHarp", "Timpan", + "S1Ensb", "S1Ensb", "y1Strg", "y2Strg", "ChAhhs", "VcOohs", "SyVoic", "OrcHit", + "Trumpt", "Trombn", "Tuba ", "MuTrum", "FrHorn", "Brass ", "y1Bras", "y2Bras", + "SopSax", "AltSax", "TenSax", "BarSax", "Oboe ", "EnHorn", "Basson", "Clarin", + "Piccol", "Flute ", "Record", "PFlute", "BlBotl", "Shakuh", "Whistl", "Ocarin", + "Square", "Sawtoo", "Callip", "Chiff ", "Charag", "Voice ", "Fifths", "BassLd", + "Pad1 ", "Pad2 ", "Pad3 ", "Pad4 ", "Pad5 ", "Pad6 ", "Pad7 ", "Pad 8 ", + "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 " }; /************** command-line processing *******************/ -void SayUsage(char *programName){ - static char *usage[] = { - "Display a MIDITONES bytestream", - "Usage: miditones_scroll ", - " reads .bin", - " -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", - "" }; - int i=0; - while (usage[i][0] != '\0') fprintf(stderr, "%s\n", usage[i++]); +void SayUsage (char *programName) { + static char *usage[] = { + "Display a MIDITONES bytestream", + "Usage: miditones_scroll ", + " reads .bin", + " -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", + "" + }; + int i = 0; + while (usage[i][0] != '\0') + 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. - does not start with a dash or a slash*/ - - int i,firstnonoption=0; - - /* --- The following skeleton comes from C:\lcc\lib\wizard\textmode.tpl. */ - for (i=1; i< argc;i++) { - if (argv[i][0] == '/' || argv[i][0] == '-') { - switch (toupper(argv[i][1])) { - case 'H': - case '?': - SayUsage(argv[0]); - exit(1); - case 'C': - codeoutput = true; - break; - case 'T': - if (sscanf(&argv[i][2],"%d",&num_tonegens) != 1 || num_tonegens <1 || num_tonegens > MAX_TONEGENS) goto opterror; - printf("Displaying %d tone generators.\n", num_tonegens); - break; - case 'V': - expect_volume = true; - if (argv[i][2] == '\0') break; - if (toupper(argv[i][2]) == 'I') ignore_volume = true; - else goto opterror; - break; - - /* add more option switches here */ -opterror: - default: - fprintf(stderr,"unknown option: %s\n",argv[i]); - SayUsage(argv[0]); - exit(4); - } - } - else { - firstnonoption = i; +int HandleOptions (int argc, char *argv[]) { + /* returns the index of the first argument that is not an option; i.e. + does not start with a dash or a slash */ + + int i, firstnonoption = 0; + + /* --- The following skeleton comes from C:\lcc\lib\wizard\textmode.tpl. */ + for (i = 1; i < argc; i++) { + if (argv[i][0] == '/' || argv[i][0] == '-') { + switch (toupper (argv[i][1])) { + case 'H': + case '?': + SayUsage (argv[0]); + exit (1); + case 'C': + codeoutput = true; + break; + case 'T': + if (sscanf (&argv[i][2], "%d", &num_tonegens) != 1 || num_tonegens < 1 + || num_tonegens > MAX_TONEGENS) + goto opterror; + printf ("Displaying %d tone generators.\n", num_tonegens); break; - } - } - return firstnonoption; + case 'V': + expect_volume = true; + if (argv[i][2] == '\0') + break; + if (toupper (argv[i][2]) == 'I') + ignore_volume = true; + else + goto opterror; + break; + + /* add more option switches here */ + opterror: + default: + fprintf (stderr, "unknown option: %s\n", argv[i]); + SayUsage (argv[0]); + exit (4); + } + } else { + firstnonoption = i; + break; + } + } + return firstnonoption; } /*************** portable string length *****************/ -int strlength(const char *str) { - int i; - for (i=0; str[i] != '\0'; ++i) ; - return i; +int strlength (const char *str) { + int i; + for (i = 0; str[i] != '\0'; ++i); + return i; } /*************** safe string copy *****************/ -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) { - while (--n != 0) { - if ((*d++ = *s++) == '\0') 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++) ; - } - return (s - src - 1); /* count does not include NUL */ +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) { + while (--n != 0) { + if ((*d++ = *s++) == '\0') + 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++); + } + return (s - src - 1); /* count does not include NUL */ } /*************** safe string concatenation *****************/ -unsigned int strlcat(char *dst, const char *src, unsigned int siz) { - char *d = dst; - const char *s = src; - 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++; - dlen = d - dst; - n = siz - dlen; - if (n == 0) return (dlen + strlength(s)); - while (*s != '\0') { - if (n != 1) { - *d++ = *s; - n--; - } - s++; - } - *d = '\0'; - return (dlen + (s - src)); /* count does not include NUL */ +unsigned int strlcat (char *dst, const char *src, unsigned int siz) { + char *d = dst; + const char *s = src; + 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++; + dlen = d - dst; + n = siz - dlen; + if (n == 0) + return (dlen + strlength (s)); + while (*s != '\0') { + if (n != 1) { + *d++ = *s; + n--; + } + s++; + } + *d = '\0'; + return (dlen + (s - src)); /* count does not include NUL */ } /*************** Found a fatal input 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); - /* print some bytes surrounding the error */ - ptr = bufptr - 16; - 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); + unsigned char *ptr; + fprintf (stderr, "\n---> file format error at position %04X (%d): %s\n", + (unsigned int) (bufptr - buffer), (unsigned int) (bufptr - buffer), msg); + /* print some bytes surrounding the error */ + ptr = bufptr - 16; + 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); } /************** 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) { - if (codeoutput) fprintf (outfile, "/*"); // start comment - // print the current timestamp - fprintf (outfile, "%5d %7d.%03d ", delay, timenow/1000, timenow%1000); - // print the current status of all tone generators - for (gen=0; gen>= 1) - count += bitmap & 1; - return count; + int count; + for (count = 0; bitmap; bitmap >>= 1) + count += bitmap & 1; + return count; } /********************* main loop ****************************/ -int main(int argc,char *argv[]) { - int argno, i; - char *filebasename; +int main (int argc, char *argv[]) { + int argno, i; + 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("See the source code for license information.\n\n"); - if (argc == 1) { /* no arguments */ - SayUsage(argv[0]); - return 1; - } - - /* process options */ - - argno = HandleOptions(argc,argv); - filebasename = argv[argno]; - - /* Open the input file */ - - strlcpy(filename, filebasename, MAXPATH); - 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; - - /* Read the whole input file into memory */ - - fseek(infile, 0, SEEK_END); /* find file size */ - buflen = ftell(infile); - fseek(infile, 0, SEEK_SET); - buffer = (unsigned char *) malloc (buflen+1); - if (!buffer) { - fprintf(stderr, "Unable to allocate %ld bytes for the file", buflen); - return 1; - } - fread(buffer, buflen, 1, infile); - fclose(infile); - printf("Processing %s.bin, %ld bytes\n", filebasename, buflen); - if (codeoutput) { - time_t rawtime; - time (&rawtime); - 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"); - } - - /* Do the titles */ - - fprintf(outfile, "\n"); - if (codeoutput) fprintf(outfile, "//"); - fprintf(outfile, "duration time "); - for (i=0; i< num_tonegens; ++i) - fprintf(outfile, expect_volume && !ignore_volume ? " gen%-5d" : " gen%-2d", i); - fprintf(outfile," bytestream code\n\n"); - for (gen=0; gen max_tonegen_found) max_tonegen_found = gen; - cmd = cmd & 0xf0; - if (cmd == 0x90) { //****** note on - gen_note[gen] = *++bufptr; // note number - tonegens_used |= 1<= 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); - gen_note[gen] = SILENT; - } - else file_error ("unknown command", bufptr); - } - } - - - /* Do the final cleanup */ - - delay = 0; - --bufptr; - if (codeoutput) --bufptr; //don't do 0xF0 for code, because we don't want the trailing comma - print_status(); // print final status - if (codeoutput) { - fprintf(outfile, " 0xf0};\n"); - 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"); - } - printf("\nAt 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 ("Done.\n"); + 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); + if (argc == 1) { /* no arguments */ + SayUsage (argv[0]); + return 1; + } + + /* process options */ + + argno = HandleOptions (argc, argv); + filebasename = argv[argno]; + + /* Open the input file */ + + strlcpy (filename, filebasename, MAXPATH); + 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; + + /* Read the whole input file into memory */ + + fseek (infile, 0, SEEK_END); /* find file size */ + buflen = ftell (infile); + fseek (infile, 0, SEEK_SET); + buffer = (unsigned char *) malloc (buflen + 1); + if (!buffer) { + fprintf (stderr, "Unable to allocate %ld bytes for the file", buflen); + return 1; + } + fread (buffer, buflen, 1, infile); + fclose (infile); + printf ("Processing %s.bin, %ld bytes.\n", filebasename, buflen); + if (codeoutput) { + time_t rawtime; + time (&rawtime); + 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"); + } + + /* 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); + } + } + } + + /* Do the titles */ + + fprintf (outfile, "\n"); + if (codeoutput) + fprintf (outfile, "//"); + fprintf (outfile, "duration time "); + for (i = 0; i < num_tonegens; ++i) + fprintf (outfile, expect_volume && !ignore_volume ? " gen%-5d" : " gen%-2d", i); + fprintf (outfile, " bytestream code\n\n"); + for (gen = 0; gen < num_tonegens; ++gen) + gen_note[gen] = SILENT; + tonegens_used = 0; + lastbufptr = buffer; + + /* Process the commmands sequentially */ + + for (; bufptr < buffer + buflen; ++bufptr) { + cmd = *bufptr; + if (cmd < 0x80) { /* delay */ + delay = ((unsigned int) cmd << 8) + *++bufptr; + print_status (); // tone generator status now + timenow += delay; // advance time + } else if (cmd != 0xf0) { /* a command */ + gen = cmd & 0x0f; + if (gen > max_tonegen_found) + max_tonegen_found = gen; + cmd = cmd & 0xf0; + 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 (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_note[gen] == SILENT) + file_error ("tone generator not on", bufptr); + gen_note[gen] = SILENT; + } else if (cmd == 0xc0) { /* change instrument */ + gen_instrument[gen] = *++bufptr & 0x7f; + gen_instrument_changed[gen] = true; + } else + file_error ("unknown command", bufptr); + } + } + + + /* Do the final cleanup */ + + delay = 0; + --bufptr; + if (codeoutput) + --bufptr; //don't do 0xf0 for code, because we don't want the trailing comma + print_status (); // print final status + if (codeoutput) { + fprintf (outfile, " 0xf0};\n"); + 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 + fprintf (outfile, "\n"); + printf ("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 ("Done.\n"); } - diff --git a/miditones_scroll.exe b/miditones_scroll.exe index aba14d13a0f22eb2ed91636e33008d1648d24a8f..33b39ebbef1d35da1f6f807a7fc4dc3a86cb867f 100644 GIT binary patch literal 183400 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 VgS`VQJC~=iD^eRrdWS>*e*x_A{>lIV literal 146874 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