The amazing Ashley recently did a little writeup on the Sibelius music notation software. I thought I would take the opportunity to talk about another music notation software which needs a little update. Finale was created in 1987 for the Macintosh by a company called Coda Music and became quite popular with musicians and composers. The ability to use a computer to typeset a musical score was a huge advancement. This was all possible by the use of music notation fonts.
Finale was originally written by Coda Music Technology, owned for a time by Net4Music, now currently owned by MakeMusic. Over the years there has been additional products developed along side Finale.
The first version of Finale was developed for the Macintosh and didn’t have an extension. But by version 3.5 there was a comparable Windows version and the use of the extension .MUS. In order to share the files between the different platforms Finale also created an ETF file, which instead of the binary MUS the ETF is a plain text “transportable” file.
Both formats are based on the Enigma or “Environment for Notation Intuitive Graphic Music Algorithms” format. These formats were last used with Finale 2012 when a new format took over in 2014. Let’s start from the beginning.
hexdump -C Finale1-s01 | head 00000000 46 69 6e 61 6c 65 aa 20 31 2e 30 2e 30 20 45 4e |Finale. 1.0.0 EN| 00000010 49 47 41 20 53 74 72 75 63 74 75 72 65 73 20 43 |IGA Structures C| 00000020 6f 70 79 72 69 67 68 74 20 31 39 38 37 20 62 79 |opyright 1987 by| 00000030 20 43 6f 64 61 2e 20 41 6c 6c 20 72 69 67 68 74 | Coda. All right| 00000040 73 20 72 65 73 65 72 76 65 64 2e 20 50 61 74 65 |s reserved. Pate| 00000050 6e 74 20 50 65 6e 64 69 6e 67 00 00 00 00 00 00 |nt Pending......| 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000080 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
This is a sample of the very first version of Finale. Currently not identifiable by PRONOM. You may also noticed in this version it was called ENIGA.
hexdump -C Finale2.6.3 | head 00000000 46 69 6e 61 6c 65 28 54 4d 29 20 31 2e 38 20 43 |Finale(TM) 1.8 C| 00000010 6f 70 79 72 69 67 68 74 20 31 39 38 37 20 62 79 |opyright 1987 by| 00000020 20 43 6f 64 61 2e 20 41 6c 6c 20 72 69 67 68 74 | Coda. All right| 00000030 73 20 72 65 73 65 72 76 65 64 2e 00 00 00 00 00 |s reserved......| 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000080 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 00 00 00 09 00 00 02 00 00 00 46 4e 50 65 74 72 |..........FNPetr|
A file from version 2.6.3 shows a different format structure, also not currently identified by PRONOM.
hexdump -C F35-s01.mus | head 00000000 45 4e 49 47 4d 41 20 42 49 4e 41 52 59 20 46 49 |ENIGMA BINARY FI| 00000010 4c 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |LE..............| 00000020 46 69 6e 61 6c 65 28 52 29 20 33 2e 35 20 43 6f |Finale(R) 3.5 Co| 00000030 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 35 |pyright (c) 1995| 00000040 20 43 6f 64 61 20 4d 75 73 69 63 20 54 65 63 68 | Coda Music Tech| 00000050 6e 6f 6c 6f 67 79 00 00 00 00 00 00 00 00 00 00 |nology..........| 00000060 00 02 00 00 00 00 7c 02 08 00 00 00 03 03 50 03 |......|.......P.| 00000070 46 49 4e 00 57 49 4e 00 02 04 50 03 03 03 50 03 |FIN.WIN...P...P.| 00000080 00 00 00 00 00 00 00 00 00 00 00 00 7c 02 08 00 |............|...| 00000090 00 00 03 03 50 03 46 49 4e 00 57 49 4e 00 02 04 |....P.FIN.WIN...|
By Version 3 we see the format stabilize and this header is used until Finale 2012. There was other various products which also used the format so there is some variation.
hexdump -C Tutorial1a.mus | head 00000000 45 4e 49 47 4d 41 20 42 49 4e 41 52 59 20 46 49 |ENIGMA BINARY FI| 00000010 4c 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |LE..............| 00000020 50 72 69 6e 74 4d 75 73 69 63 28 52 29 20 32 30 |PrintMusic(R) 20| 00000030 31 30 20 43 6f 70 79 72 69 67 68 74 20 31 39 39 |10 Copyright 199| 00000040 38 2d 32 30 30 39 20 4d 61 6b 65 4d 75 73 69 63 |8-2009 MakeMusic| 00000050 20 49 6e 63 2e 00 00 00 00 00 00 00 00 00 00 00 | Inc............| 00000060 00 02 0e 01 00 00 6a 02 0e 00 00 00 04 02 02 0b |......j.........| 00000070 46 49 4e 00 57 49 4e 00 03 04 02 0b 0d 02 00 0b |FIN.WIN.........| 00000080 00 00 00 00 00 00 00 00 00 00 00 00 6d 08 0d 00 |............m...| 00000090 00 00 31 02 00 0f 4e 54 52 00 4d 41 43 00 10 02 |..1...NTR.MAC...|
The current PRONOM identification for fmt/397 is looking for the “ENIGMA BINARY FILE” bytes but also the string “Finale(R)”, so this PrintMusic variation is not identified correctly.
Another format that is a little more rare to see, but is part of the Finale formats collection. Finale Performance Assessment File (.fpa) is an older format discontinued in 2007, but has a similar format. It was a tool similar to the current SmartMusic tool.
hexdump -C Tuba.FPA | head 00000000 46 49 4e 41 4c 45 20 50 45 52 46 4f 52 4d 41 4e |FINALE PERFORMAN| 00000010 43 45 20 41 53 53 45 53 53 4d 45 4e 54 00 00 00 |CE ASSESSMENT...| 00000020 46 69 6e 61 6c 65 28 52 29 20 32 30 30 35 20 43 |Finale(R) 2005 C| 00000030 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 |opyright (c) 198| 00000040 37 2d 32 30 30 34 20 4d 61 6b 65 4d 75 73 69 63 |7-2004 MakeMusic| 00000050 21 20 49 6e 63 2e 00 6f 6c 6f 67 79 00 00 00 00 |! Inc..ology....| 00000060 00 02 06 00 00 00 68 06 09 00 00 00 16 02 00 09 |......h.........| 00000070 46 49 4e 00 57 49 4e 00 01 04 01 09 16 02 00 09 |FIN.WIN.........| 00000080 00 00 00 00 00 00 00 00 00 00 00 00 68 07 0d 00 |............h...| 00000090 00 00 0a 01 00 0a 46 49 4e 00 57 49 4e 00 03 03 |......FIN.WIN...|
As for the Enigma Transportable File, there is a couple variations.
hexdump -C Finale1-s02.etf | head 00000000 45 4e 49 47 4d 41 20 74 72 61 6e 73 70 6f 72 74 |ENIGMA transport| 00000010 61 62 6c 65 20 66 69 6c 65 0d 45 4e 49 47 4d 41 |able file.ENIGMA| 00000020 20 53 74 72 75 63 74 75 72 65 73 20 43 6f 70 79 | Structures Copy| 00000030 72 69 67 68 74 20 31 39 38 37 20 62 79 20 43 6f |right 1987 by Co| 00000040 64 61 2e 20 41 6c 6c 20 52 69 67 68 74 73 20 52 |da. All Rights R| 00000050 65 73 65 72 76 65 64 2e 20 50 61 74 65 6e 74 20 |eserved. Patent | 00000060 50 65 6e 64 69 6e 67 2e 0d 0d 5e 6f 74 68 65 72 |Pending...^other| 00000070 73 0d 5e 46 4e 28 30 29 20 22 50 65 74 72 75 63 |s.^FN(0) "Petruc| 00000080 63 69 22 0d 5e 49 55 28 30 29 20 31 20 30 20 2d |ci".^IU(0) 1 0 -| 00000090 38 30 20 32 20 30 20 2d 33 31 36 20 0d 5e 49 55 |80 2 0 -316 .^IU| hexdump -C Finale37-Sample.etf | head 00000000 45 4e 49 47 4d 41 20 54 52 41 4e 53 50 4f 52 54 |ENIGMA TRANSPORT| 00000010 41 42 4c 45 20 46 49 4c 45 0d 0d 5e 68 65 61 64 |ABLE FILE..^head| 00000020 65 72 0d 5e 30 31 20 22 46 69 6e 61 6c 65 28 52 |er.^01 "Finale(R| 00000030 29 20 33 2e 37 20 43 6f 70 79 72 69 67 68 74 20 |) 3.7 Copyright | 00000040 28 63 29 20 31 39 38 37 2d 31 39 39 36 20 43 6f |(c) 1987-1996 Co| 00000050 64 61 20 4d 75 73 69 63 20 54 65 63 68 6e 6f 6c |da Music Technol| 00000060 6f 67 79 22 0d 5e 30 32 20 31 20 30 20 30 20 30 |ogy".^02 1 0 0 0| 00000070 20 0d 5e 30 33 20 31 32 30 20 31 31 20 39 20 0d | .^03 120 11 9 .| 00000080 5e 30 34 20 22 22 0d 5e 30 35 20 35 37 36 37 32 |^04 "".^05 57672| 00000090 32 30 34 20 0d 5e 30 36 20 22 46 49 4e 22 0d 5e |204 .^06 "FIN".^|
The current signature of ETF files is only able to correctly identify the later version of the string in all caps. The fmt/398 PRONOM ID could use an alternate signature to ensure all variations are identified correctly. There is a couple versions of the specification out there, but does not add much to what is known.
Starting in 2014 Finale starting using a new file format to store its notations. The native format now uses the MUSX extension. This new format uses a ZIP container to store all the data. Let’s take a look at the inside.
Path = Finale26-s01.musx Type = zip Physical Size = 98608 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2022-12-19 16:28:36 ..... 34 34 mimetype 2022-12-19 16:28:36 ..... 252 168 META-INF/container.xml 2022-12-19 16:28:36 ..... 347 218 NotationMetadata.xml 2022-12-19 16:28:36 ..... 1163 821 presets/10001.preset 2022-12-19 16:28:36 ..... 649 544 presets/1.preset 2022-12-19 16:28:36 ..... 96140 96155 score.dat ------------------- ----- ------------ ------------ ------------------------ 2022-12-19 16:28:36 98585 97940 6 files
The mimetype file appears to be “application/vnd.makemusic.notation”
The NotationMetadata.xml file stores much of the information needed and begins with the root tag.
<metadata version="26.2" xmlns="http://www.makemusic.com/2012/NotationMetadata">
It seems the presence of the NotationMetadata.xml file and the mimetype would be sufficient for identification in a container signature.
The current version of Finale can export to a few different “Music XML” versions. This includes MUSICXML, regular XML, and a compressed MXL file. The only one needs attention is the compressed MXL file and added to PRONOM. It already has a PUID, fmt/897, but no signature. Here is what it looks like inside the ZIP container.
Path = Finale27-s01.mxl Type = zip Physical Size = 4737 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2024-02-07 23:55:50 ..... 34 34 mimetype 2024-02-07 23:55:50 D.... 0 2 META-INF 2024-02-07 23:55:50 ..... 202 144 META-INF/container.xml 2024-02-07 23:55:50 ..... 18004 1996 Finale27-s01.musicxml 2024-02-07 23:55:52 ..... 17554 1953 p1.musicxml ------------------- ----- ------------ ------------ ------------------------ 2024-02-07 23:55:52 35794 4129 4 files, 1 folders
Looks like a standard identifiable MUSICXML file within the container with a mimetype of “application/vnd.recordare.musicxml”. The MUSICXML file will be impossible to use for identification because of the variable file name, but the mimetype should do just fine.
Hopefully that covers all the major formats that need identification. I saw on a list that I will soon be working on an old Macintosh which has hundreds of Finale files, I hope these updates cover those needs! Take a look at my GitHub for my signatures and plenty of samples.