Music notation software is among the earliest software for desktop computers. SCORE in 1987, Finale came around in 1988, Capella in 1992, and Sibelius in 1993. Many others came and went during this time. Music notation software was so much more than the typical word processing or desktop publishing system. Specialized fonts were needed to display the music notation and there are many other variables for different instruments allowing individuals and others the ability to create complicated compositions in an inexpensive way.
Sibelius [SI] + [BAY] + [LEE] + [UHS] was originally developed for the Acorn system in 1986, then released on Windows and Macintosh in 1998-99. The software became very popular and in 2006 was purchased by the software giant AVID. The software was used enough to get a preservation assessment by the British Library in 2017 and draft status format description by the Library of Congress, written by the amazing Ashley!
Both reviews of the format emphasize the proprietary nature of the file format which has been used since the early versions. Aside from the early Acorn release, the Windows and Macintosh versions used a binary format with the SIB extension. They are actually quite easy to identify.
hexdump -C Sibelius-s01.sib | head 00000000 0f 53 49 42 45 4c 49 55 53 00 00 40 00 02 00 a4 |.SIBELIUS..@....| 00000010 f1 ed 00 00 00 30 00 00 00 02 00 00 00 01 00 00 |.....0..........| 00000020 00 2a 00 00 00 00 00 00 00 00 0f 53 49 42 45 4c |.*.........SIBEL| 00000030 49 55 53 00 00 40 00 02 00 00 00 00 00 00 00 3a |IUS..@.........:| 00000040 00 00 00 00 38 a1 28 06 b3 d2 2f 66 03 04 16 4e |....8.(.../f...N| 00000050 5f 5c 8d f3 95 27 3e f1 2a 1b 68 de 08 81 e8 9a |_\...'>.*.h.....| 00000060 ea 1c bf dd 54 0e 92 8d 4d be e3 34 ed 42 78 36 |....T...M..4.Bx6| 00000070 d2 e1 67 7b 8d f7 98 6a 3a 70 c4 8b 0b 08 7b 26 |..g{...j:p....{&| 00000080 f9 45 00 00 00 00 48 71 7c 4c 98 df 0b 38 7d 9d |.E....Hq|L...8}.| 00000090 2a 2d 84 9c a4 39 0f 4d da a2 cc 97 ad 3d b0 55 |*-...9.M.....=.U|
This is exactly how PRONOM and other identification methods determine they are Sibelius files. PRONOM has assigned the format fmt/696 and is looking for the hexadecimal bytes 0F534942454C495553
.
The problem with this identification method is that all the Sibelius files are identified as such, regardless of version. As mentioned by Ashley, version of the software used is highly important as new features were added all the time making backwards compatibility difficult. Add in the fact that there were different releases for each version which would limit these features even more and I can see how a musician could get very frustrated. If you created a score in Sibelius 5 and tried to open in Sibelius 5 Student version, you may find your composition lacking in many ways. The only way to avoid compatibility issues is to always open in the latest “Ultimate” version. Sibelius Ultimate can open all versions of the SIB format back to version 2. The software even has an export feature which allows you to export back to a previous version stripping what is necessary to ensure compatibility.
For those with a bunch of SIB files in their archives, how would you know which software version created the file? Well lets take a closer look at the bytes and see if we can find some patterns. Let it be known, I am not reverse engineering the format, just looking for patterns which will allow for proper identification!
I am not the first person to ask this question, many others want to know the versions of their SIB files. Thankfully others have found some clues on which bytes hold the version information. It seems we can determine the version based on 4 bytes shortly after the SIBELIUS string. Specifically bytes 10-13.
hexdump -C Sibelius2-s01.sib | head 00000000 0f 53 49 42 45 4c 49 55 53 00 00 08 00 22 00 47 |.SIBELIUS....".G| 00000010 98 4c 00 00 00 3a 00 00 00 00 4e 81 49 34 41 2c |.L...:....N.I4A,| 00000020 fa 76 62 f9 71 53 a9 93 0f 54 1e 20 6c 63 61 4d |.vb.qS...T. lcaM| 00000030 f7 b2 b0 a7 5d bd 82 3a 0d 86 02 8b f2 89 d2 a0 |....]..:........| 00000040 83 1f 8d e0 37 1b ed 1c 6a 8b 82 08 4b 6d 64 60 |....7...j...Kmd`| 00000050 71 59 e8 aa ef b1 3c df 5c 25 0a 9f 66 50 69 de |qY....<.\%..fPi.| 00000060 2a d3 4e 2a cd 97 88 06 67 5f 50 64 0f 8f 86 2b |*.N*....g_Pd...+| 00000070 08 0d 3f f7 80 26 e0 63 f6 7d 4e f8 e7 c0 3f fc |..?..&.c.}N...?.| 00000080 7a 77 ea b3 4a b9 30 59 13 47 6e 09 0a 0b ae 3c |zw..J.0Y.Gn....<| 00000090 c1 93 85 f6 41 f8 58 22 4b 92 35 3f b2 f5 3f 9d |....A.X"K.5?..?.|
From what others have gathered and updating it with more recent versions I have come up with a list.
Version | Hex 10-13 |
---|---|
Sibelius 1.2 | 00 00 00 0E |
Sibelius 2.x | 00 08 xx xx |
Sibelius 3.x | 00 0A xx xx |
Sibelius 4.x | 00 1B xx xx |
Sibelius 5.0 | 00 2D 00 03 |
Sibelius 5.1 | 00 2D 00 0D |
Sibelius 5.2.x – 5.4 | 00 2D 00 10 |
Sibelius 6.0.x | 00 36 00 01 |
Sibelius 6.1 | 00 36 00 17 |
Sibelius 6.2 | 00 36 00 1E |
Sibelius 7.0 | 00 39 00 0C |
Sibelius 7.0.1 – 7.0.2 | 00 39 00 0E |
Sibelius 7.0.3 | 00 39 00 13 |
Sibelius 7.1.0 | 00 39 00 15 |
Sibelius 7.1.2 – 7.1.3 | 00 39 00 16 |
Sibelius 7.5.x | 00 3D 00 0E |
Sibelius 8.0.0 – 8.0.1 | 00 3D 00 10 |
Sibelius 8.1.x | 00 3E 00 00 |
Sibelius 8.2 | 00 3E 00 01 |
Sibelius 8.3 | 00 3E 00 02 |
Sibelius 8.4.x | 00 3E 00 06 |
Sibelius 8.5.x | 00 3E 00 07 |
Sibelius 8.6.x, 8.7.0, 8.7.1 | 00 3F 00 00 |
Sibelius 8.7.2, 2018.1, 2018.4.x, 2018.5, 2018.6, 2018.7 | 00 3F 00 01 |
Sibelius 2018.11, 2018.12 | 00 3F 00 02 |
Sibelius 2019.1 | 00 3F 00 04 |
Sibelius 2019.4.x, 2019.5, 2019.7, 2019.9 | 00 3F 00 06 |
Sibelius 2019.12 | 00 3F 00 07 |
Sibelius 8.6-2019.12 | 00 3F 00 0A |
Sibelius 2020.1 | 00 3F 00 0B |
Sibelius 2020.3, 2020.6 | 00 40 00 01 |
Sibelius 2020.9 | 00 40 00 02 |
Sibelius 2022.5 | 00 40 00 03 |
Sibelius 2022.11 | 00 41 00 02 |
Sibelius 2022.12 | 00 42 00 00 |
Sibelius 2023.3 | 00 42 00 01 |
Sibelius 2023.8 | 00 43 00 07 |
Sibelius 2024.3.1 | 00 44 00 01 |
That is a lot of versions and I feel there may be some gaps that still need to be identified. It appears that the first two bytes are the major version and the second set of bytes is the minor version. Although it looks like a few major version bytes span across a few software versions. With this chart, one could be very specific in identifying which Sibelius version wrote the file, but for archiving purposes it seems we can group many of these capturing just the major version. The export screenshot above seems to have broken down significant changes and grouped similar formats together, the biggest being 8.6 through 2019.12. A comparison of “student” and “first” formats don’t have any obvious bytes which indicate as such, so for now they are all lumped together.
There is one other similar format which needs to be mentioned. Sibelius Scorch was a product made to share scores online. This has been replaced with Sibelius Cloud Publishing, but for awhile was the best way to share a score with others in a way that protected the original. I have no idea how they were made, but sites like scorestreet.net and sibeliusmusic.com were sites you could upload your score to for sharing. Some SCO files appear to have a PDF embedded within them for proper printing.
hexdump -C smd_h_0000000000097761.sco | head 00000000 0f 43 43 53 43 4f 52 43 48 00 00 36 00 1e 00 c0 |.CCSCORCH..6....| 00000010 d4 55 00 00 00 30 00 00 00 01 00 00 00 01 00 00 |.U...0..........| 00000020 00 22 0f 43 43 53 43 4f 52 43 48 00 00 36 00 1e |.".CCSCORCH..6..| 00000030 00 00 00 00 00 00 00 3a 00 00 00 00 03 56 11 b9 |.......:.....V..| 00000040 70 dc fe 90 50 48 30 df eb 39 88 23 8e 88 78 bf |p...PH0..9.#..x.| 00000050 da ab ab 5b e2 13 98 89 66 eb 94 67 8d 16 00 00 |...[....f..g....| 00000060 00 00 cf 6f 0c 67 85 ec 57 90 e5 c1 ea 8a eb 9f |...o.g..W.......| 00000070 c8 13 d2 1d 75 bd a5 9f eb b9 ef 1d 25 79 45 2c |....u.......%yE,| 00000080 05 bb 74 41 e8 8f 27 6a 01 07 d0 f5 3b 17 ce 87 |..tA..'j....;...| 00000090 7b c2 82 d9 41 6b 82 2f d8 b8 17 32 fa d3 59 05 |{...Ak./...2..Y.|
I am not sure the best way to handle all the different versions within the PRONOM registry. I went ahead and made a few signatures based on the export dialog of Sibelius 2024. Even with combining a few together, it leaves us with 17 new PUID’s. Maybe further discussion can refine these down a bit more? Regardless, each file can be associated with a specific Sibelius version, making it easier to open and migrate if needed without fear of opening in the wrong version. Take a look at some samples and my signatures on my GitHub page and let me know if there is a better way.