@ -95,6 +95,9 @@
The < basefilename > is the base name , without an extension , for the input and
output files . It can contain directory path information , or not .
If the user specifies the full . mid filename , the . mid or . MID extension
will be dropped and the remaining name will be used as < basefilename > .
The input file is < basefilename > . mid , and the output filename ( s )
are the base file name with . c , . h , . bin , and / or . log extensions .
@ -347,7 +350,7 @@
flexible in order to avoid small delays and thus save space in the bytestream .
- Don ' t discard fractions of a millisecond in the delay timing , to avoid gradual
drift of the music . This has been a minor problem since V1 .0 in 2011.
4 January 2019 , Len Shustek , V2 .00
4 January 2019 , Len Shustek , V2 .0
- Major revision : completely rewrite score processing to allow out - of - order event
queuing . That lets us implement " release " time that ends notes early , and
" sustain " time at reduced volume , if we are encoding volume . You can sometimes
@ -360,6 +363,10 @@
- Simplify and generalize option parsing , and rename some of the newer ones .
- Add - scorename so multiple scores can be directly # included into . ino files
without manually editing the names .
17 October 2020 , Ben Combee , V2 .1
- Let user supply full filename to MIDI file on command line to be friendlier
to users using shell autocompletion . If a . mid or . MID file is provided ,
the extension will be dropped to generate the base filename .
future version ideas
@ -375,7 +382,7 @@ future version ideas
channel 8 // organ
options - attacktime = 1000 - sustainlevel = 80 % - releasetime = 100 - notemin = 200
*/
# define VERSION "2.00 "
# define VERSION "2.1 "
/*--------------------------------------------------------------------------------------------
@ -1531,10 +1538,11 @@ void process_track_data(void) {
int main ( int argc , char * argv [ ] ) {
int argno ;
char * filebasename ;
int basenamelen ;
# define MAXPATH 120
char filename [ MAXPATH ] ;
printf ( " MIDITONES V%s, (C) 2011-2019 Len Shustek \n " , VERSION ) ;
printf ( " MIDITONES V%s, (C) 2011-2020 Len Shustek \n " , VERSION ) ;
if ( argc = = 1 ) { // no arguments
SayUsage ( argv [ 0 ] ) ;
return 1 ; }
@ -1546,6 +1554,14 @@ int main (int argc, char *argv[]) {
exit ( 4 ) ; }
filebasename = argv [ argno ] ;
// strip off trailing .mid or .MID extension if provided by user
basenamelen = strlength ( filebasename ) ;
if ( basenamelen > 4 & &
( charcmp ( filebasename + basenamelen - 4 , " .mid " ) | |
charcmp ( filebasename + basenamelen - 4 , " .MID " ) ) ) {
filebasename [ basenamelen - 4 ] = 0 ;
}
if ( logparse | | loggen ) { // open the log file
miditones_strlcpy ( filename , filebasename , MAXPATH ) ;
miditones_strlcat ( filename , " .log " , MAXPATH ) ;