OpenSpace wrote:out of curiosity
you said you made a script/tool that extracts each sch1 (mus) segment out of that main one.
if that is true, then non converted mus files should be (as whole) again the same size as main mus file... (~140 mb)
if it is so, would it be problem for you to upload those mus files on megaupload or simmiliar ?
since we already got cmd line to wav conversion here.
I'll post the tool. C++. Not rocket science. It compiles and runs under cygwin and linux.
==== cut here ====
//
// Extract AFX sound segments from a .MUS file
//
// Found in: Harry Potter and the Order of the Phoenix/audio/music
//
// hog_music_stream.mus filedmp
//
/*
0000 3dfcc42c 00000000 00000000 00000000 *=..,............*
0010 00000000 00000000 00000000 00000000 *................*
....
0100 5343486c 28000000 47535452 01000001 *SCHl(...GSTR....*
0110 060165fd 80010385 03018fda 820102a0 *..e.............*
0120 01178402 7d00ff00 5343436c 0c000000 *....}...SCCl....*
0130 00000010 5343446c 90120000 000016af *....SCDl........*
0140 00000000 174bfe94 00e65324 4d840f33 *.....K....S$M..3*
0150 e8051887 b6006030 82b26998 07492725 *......`0..i..I'%*
*/
//
#include <iostream>
#include <fstream>
#include <string>
#include <string.h>
using namespace std;
bool
match(string pattern)
{
if (pattern == "SCHl")
return true;
/*
if (pattern == "SCCl")
return true;
if (pattern == "SCDl")
return true;
if (pattern == "SCEl")
return true;
if (pattern == "SCHl")
return true;
if (pattern == "SCLl")
return true;
*/
return false;
}
int
main(int argc, char* argv[])
{
if (argc != 2)
{
cout << "Usage: prog.exe filename" << endl;
return 1;
}
ifstream input(argv[1], ios_base::binary);
ofstream output;
char buf[5];
buf[sizeof(buf)-1] = 0;
int count = 0;
bool matching = false;
while (input)
{
input.read(&buf[0], sizeof(buf)-1);
if (match(buf))
{
if (matching)
output.close();
count++;
char outfile[32];
sprintf(outfile, "ASF%05u.ASF", count);
cout << "Opening " << outfile << " for writing!" << endl;
output.open(outfile, ios_base::binary);
matching = true;
}
if (matching)
{
output.write(&buf[0], sizeof(buf)-1);
}
}
return 0;
}