MuseScore: Create, play and print beautiful sheet music
musescore.org
musescore.org
The best thing about it being free is not so much that it is free for me, as the arranger (I've bought score editing software before). It is the fact that I can actually send the digital scores to the singers, and tell them they can use the same software for free to rehearse on their own (e.g., setting the volume of their voice louder, etc.).
(I used the SF2 version of this soundfont in my new iPad music app[3], <shill> a kind of doodle-y, multi-instrument sequencer where you draw your notes directly on a pannable and zoomable canvas rather than plotting them out one-by-one like in most DAWs. You can draw notes at any point in time and bend them to any pitch, allowing you to easily play around with guitar solos and complex rhythms. It's sort of my modern take on sheet music. But I digress... </shill> Since the Fluid SF2 is so big compared to the SF3, I'm going to try to modify sftools to re-convert SF3 back to SF2 in order to keep my bundle size down.)
[1]: https://musescore.org/en/handbook/soundfonts
Example: https://www.soundslice.com/scores/auld-lang-syne/
You can test it out by switching the play mode to "Synthetic" (click "Full mix" at bottom). Change instruments by clicking "Guitar" along the left margin.
There's also something else going on with that screenshot, though. The person who took it put page breaks in different places than in the actual score, which is why that tempo marking is overlapping. If you open that same score in MuseScore, the tempo marking is positioned appropriately.
The most recent post was http://blog.steinberg.net/2015/12/development-diary-part-12/
No disclaimers; I'm not affiliated with the product. Just a keen reader of the development diary.
Edit: Also, the JS `setInterval` callback can be delayed.
Edit: After debugging their code some more, the above isn't why (though is still inefficient). The audio player (SoundManager) they are using only updates the audio playback time at a rough granularity. If I log the time values, I get the following (all in milliseconds):
0
182.404
681.59
1180.778
1680.963
2179.152
...
The song is 120 BPM which means that the first bar changes is at 2000ms causing the first bar change to be 179ms late.