/* INSTEXTR Extracts instruments from CMF files */
#include <stdio.h>
char instr_buf[128][16];
main(int argc,char **argv)
{
FILE* f;
int instr_offs,num_instr,i;
char fname[10];
if(argc > 2)
{
if(f = fopen(argv[1],"rb"))
{
fseek(f,6,SEEK_SET);
fread(&instr_offs,2,1,f);
fseek(f,0x24,SEEK_SET);
fread(&num_instr,2,1,f);
fseek(f,instr_offs,SEEK_SET);
for(i=0;i<num_instr;i++)
fread(&instr_buf[i][0],1,16,f);
fclose(f);
for(i=0;i<num_instr;i++)
{
itoa(i+atoi(argv[2]),fname,10);
f = fopen(fname,"wb");
fwrite(&instr_buf[i][0],1,16,f);
fclose(f);
}
}
else
printf("File %s not found\n",argv[1]);
}
else
{
printf("INSTEXTR extracts instruments from a CMF file\n");
printf("usage: instextr <CMFfile> <Startnumber>\n");
}
}