tags:

views:

328

answers:

4

I'm working on a music writing application and would like to add the functionality to import Finale music files. Right now, the only thing I know is that they are enigma binary files.

Does anyone have any suggestions on where I could start so that I could be able to parse through these types of files?

+4  A: 

Get a good hex editor and start looking inside some files. Look for common structure. Do some detective work. Look for fields that might be counts, sizes or offsets within the file. Make trivial changes in Finale and observe the changes in the file. Make changes with the hex editor, then load the changed file back into Finale and see if the change does what you thought it would.

So this is a completely unhelpful answer, but the best way to reverse the file-format is to jump in and just do it. You're probably in for a very long process BTW, but at least it's fun.

Oh, and pray the file-format isn't compressed...

Any ideas on what you consider to be a good hex editor? I'm new to this process.
DoryuX
WinHex always did the job for me. Have fun!
+2  A: 

I don't know about the older .mus files, but the newer .eft files are partially described here:

http://www.lilypond.org/web/devel/misc/etfformat.

TonyOssa
Nice find, this will come in handy once I get the file to where I can see the different sections.
DoryuX
+1  A: 

I would look into the MusicXml format, http://www.recordare.com/xml.html.

Finale should have the ability to export to MusicXml. (I think it is with a plug-in shipped with newer versions of Finale). From there, it should be relatively straightforward, because it is xml, after all.

+2  A: 

Finale files are not just binary files, but compressed, encrypted binary files. ETF files are text files and do have some documentation in older versions of the Finale plug-in developer kit. But ETF export was removed from Finale several versions ago.

As was previously suggested, your best bet is to import MusicXML files instead. This will give you higher-quality imports in much less development time. MusicXML support is built into Finale since 2006, PrintMusic since 2006, Allegro and Songwriter since 2007, and will be coming to NotePad and Reader in 2009. Plug-ins are available that export MusicXML files from Finale all the way back to 2000 on Windows, 2004 on Mac OS X PPC, and 2007 on Mac OS X Intel. The MusicXML support in Finale has been under development for nearly 8 years and provides a near-lossless export of Finale files into an open, standard, royalty-free format.

MusicXML is supported by over 100 programs, so by adding MusicXML support you not only get Finale file support, but support for files originally created with Sibelius, capella, Encore, or (via PDFtoMusic Pro) any program that can print a PDF version of a musical score.

There is lots of information about MusicXML at http://www.recordare.com/xml.html. This includes the MusicXML DTD and XSD, a tutorial,sample files, and more. There is also a MusicXML developer mailing list available for signup at http://www.recordare.com/lists#MusicXML.

MusicXML 2.0 has a lot of features, so do not try to tackle all of it at once. Start off supporting the basics of pitches and rhythms, then add more and more features over time based on what your customers need.

Michael
As tempting as getting a hex editor and running through all that, I think this process will save a lot of time and headaches.
DoryuX