Synthesia 11

Try new versions before anyone else!
Always the latest dev version: [ win ] [ mac ] [ android: beta opt-in or apk ]
Please report comments and bugs!

Your data hasn't disappeared: development previews store their data in a different place. Details here.
User avatar
jimhenry
Posts: 1857

Post by jimhenry »

Congratulations! May everyone stay happy and healthy. :D
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
monkel
Posts: 194

Post by monkel »

Excellent news! Enjoy your baby honeymoon!

New device support incoming?

Image
Nicholas
Posts: 12698

Post by Nicholas »

I dunno, "Happy Pat drum" sounds pretty cool. :lol: None of my test keyboards have drum pads on them. Maybe I should grab that one. ;)
Nicholas
Posts: 12698

Post by Nicholas »

Progress Update!

September 2019:
  • Cared for an infant.
  • Released Synthesia 10.6 after an iOS update forced my hand a little early.
Simple recording and sheet music down stems(!) are coming next time.
monkel
Posts: 194

Post by monkel »

"And he said there'd be down stems and there was much commotion in the streets and folk from near and far congregated in the market places."

From the book Nicholas, chapter 10.
Magic73
Posts: 25

Post by Magic73 »

Nicholas wrote: 09-15-19 3:17 am The quickest update: we're home from the hospital; everyone is happy and healthy. :)
Great! Congrats to all of you :)
Nicholas
Posts: 12698

Post by Nicholas »

Wow, has it really been a year since the last update here? :shock: :oops:

Progress Update!

In any event, down stems are (finally) starting to shape up:

downstems.png
downstems.png (3.47 KiB) Viewed 3287 times

For 10.7, their appearance is going to be just about as naive as you can imagine by using the "above/below the middle staff line" rule. Once the beam revamp comes along (allowing beams between more than two notes!) in a little while, that scheme will become a bit more nuanced. Behind Bars has a lot to say about stems and I'm hoping to incorporate as much of that actionable advice as possible.
monkel
Posts: 194

Post by monkel »

Thanks for the update. Whenever I think this has become quiet for good, there's a sign of life. Keep it going, please! :)
kiwi
Synthesia Donor
Posts: 1179

Post by kiwi »

Hi,
I noticed the moving notes "maybe reffered at the pop notes" on the changelog are finally gone with the 10,7 release!
in the changelog it stated since 10,5 but i have popped notes on 10,5.
Also i have noticed Synthesia load instantly even with the titanic soundfont (266mb) but with virtual midi synth it took 10 secondes so congrats again Nicholas!
Feature request: Drum notation support for sheet music :)
Nicholas
Posts: 12698

Post by Nicholas »

kiwi wrote: 04-29-21 1:10 pmI noticed the moving notes "maybe reffered at the pop notes" on the changelog are finally gone with the 10,7 release!
What's a "popped note"? Do you mean when they would suddenly appear (again) while rewinding the song? That should have been fixed in 10.6. (And yes, it was a relief when they finally were! They bothered me a lot.) :lol:
kiwi wrote: 04-29-21 1:10 pmFeature request: Drum notation support for sheet music :)
I am making no promises on that one! Synthesia is for piano! ;)
User avatar
jimhenry
Posts: 1857

Post by jimhenry »

Nicholas wrote: 05-22-21 3:12 am
kiwi wrote: 04-29-21 1:10 pmFeature request: Drum notation support for sheet music :)
I am making no promises on that one! Synthesia is for piano! ;)
If you spend a few minutes looking at the things that are specific to drum notation, I think you will be able to promise that drum notation support for sheet music will not be added to Synthesia. ;)
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Nicholas
Posts: 12698

Post by Nicholas »

Progress Update!

I'm about a dozen MusicXML features in, but I just finished teaching Synthesia how to parse a really cool one, so I thought I'd share: repeats. I'm more excited because something that could have spiraled out of control under the hood (arbitrary, out-of-order numbered "endings") turned out very satisfying in the simplicity of my implementation.

Here's a screenshot from MuseScore:

repeats.png
repeats.png (7.34 KiB) Viewed 694 times

And (for now, while it's still parsing MusicXML as a species of MIDI file), this is what Synthesia had to say about that:

unrolled.png
unrolled.png (14.93 KiB) Viewed 694 times

Right inside MuseScore, you can go to Tools --> Unroll Repeats and get the identical picture. Woo! :D

Again, eventually Synthesia will keep the initial version with the more compact musical information. But for now I'll take being able to interpret it correctly so that it sounds right and the falling notes are correct. This was easily the hardest of my bullet points before the next preview where you guys will be able to get your hands on the new parser and try it out yourself.

(This first time around--and forever? :anxious: --I'm planning to omit segno/coda/fine/etc. While they share a lot in common with repeats, in terms of a programming analogy, that set of musical constructs are more like "goto" statements and less like structured loops. This might be one of those times where I say "if you want the correct behavior, go use MuseScore's 'Unroll Repeats' feature and resave it as a new file before opening it in Synthesia". I want to use that excuse as rarely as possible, but I'd rather put "D.S. al Coda" on the longer-term list and keep moving than get bogged down with it in this early stage.)
Nicholas
Posts: 12698

Post by Nicholas »

from Dorico SE 3.5.png
from Dorico SE 3.5.png (9.44 KiB) Viewed 537 times

Here is a screenshot from Dorico SE 3.5. That little upward jaunt in the pedal line is a "retake", which means you're supposed to quickly release the pedal and then press it again.

Interesting MusicXML-related anecdotes:
  • MuseScore 3 doesn't appear to have any way to express a retake. The closest equivalent is placing back-to-back pedal lines which would end up sounding the same but will appear rather densely packed.
  • MusicXML (like music in general) has two separate ways to encode pedal markings: with a line spanning the whole pedaled region or with "Ped." at the start and an asterisk at the end. You can manually draw either kind in MuseScore--and presumably save them correctly in their native file format--but when dealing with a MusicXML import (or export), you always get (or generate) the with-a-line version.
  • MusicXML can encode the sostenuto pedal separately (which Dorico shows as a stylized "Sost." instead of "Ped."), but neither app reads them back in correctly. Both apps show a generic "Ped." instead.
  • Worst of all, while Dorico will open MusicXML files containing pedal markings (mostly) correctly (besides what I've already mentioned), it does not seem to include the pedal in its MusicXML exports at all! And it's the only one out of the two that can do even half of the interesting things: retakes, sostenuto pedals, etc. It actually exports a more musically faithful MIDI file that does contain pedal events!
As you might imagine, all of this makes it more challenging to even generate files to begin testing newly added MusicXML parsing code in Synthesia. :anxious:

There's no punchline here. I just wanted to share some of the "fun" details. I guess I had expected all of the "real" music apps out there to handle everything very accurately. Oh well. Back to the grindstone... :lol:
User avatar
jimhenry
Posts: 1857

Post by jimhenry »

In case you aren't already aware of it, perhaps this "Unofficial MusicXML test suite" from the LilyPond developers will be useful: https://lilypond.org/doc/v2.12/input/re ... ated-files

This open source MusicXML parser might also be of interest: http://manufaktura-controls.com/en-US/Home/

I have attached some tests of various piano pedaling notations adapted from a MuseScore example. Pedal_lines_assorted [mscz].txt is the MuseScore file, which should be renamed Pedal_lines_assorted.mscz. So far I haven't found a program that produces the correct sheet music display from Pedal_lines_assorted.mxl, so I don't know if MuseScore created the correct MusicXML. It may not, as you already suspect Nicholas.
Attachments
Pedal_lines_assorted [mscz].txt
(29.63 KiB) Downloaded 1 time
Pedal_lines_assorted.mxl
(4.26 KiB) Downloaded 1 time
Pedal_lines_assorted.mid
(1.45 KiB) Downloaded 1 time
Pedal_lines_assorted.pdf
(58.75 KiB) Downloaded 3 times
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Nicholas
Posts: 12698

Post by Nicholas »

jimhenry wrote: 09-01-21 12:51 amSo far I haven't found a program that produces the correct sheet music display from Pedal_lines_assorted.mxl...
If you extract the zip (mxl), open the .musicxml file in a text editor, then search for "<pedal " you'll see all 32 of them say line="yes" and just alternate between the start/stop types (as opposed to retake, discontinue, line="no", etc.) so your assumption is correct: there is no way to distinguish between any of the pedal marking styles in the exported MusicXML.

I'll take a look at those other resources, thanks! I have a MusicXML test suite I downloaded from someplace that I thought was Lilypond, but when I checked recently it was like 100% non-applicable, strange, esoteric corner cases. Peeking at your link, there appears to be more useful stuff (if mixed in with a lot of non-piano stuff, too). Maybe I have an outdated version? Or maybe I got it from someplace else.
Nicholas
Posts: 12698

Post by Nicholas »

Ah ha, I was thinking of MuseScore's test suite.

I actually found a much older copy of LilyPond's test suite (circa 2012) buried in my Synthesia files--not where I usually keep MusicXML-related things, because that folder didn't exist back in 2012! :lol: (This also explains why my gut instinct told me I already had it. I did.) :)

Now both test suites are where they belong.
JimNYC
Posts: 18

Post by JimNYC »

Glad to hear that progress is being made, albeit not without the usual issues and workarounds. If you need any assistance with testing parsing to work through the test suite files, identify issues, etc., I'm sure there would be many here who could help crowdsource the effort.
Rumsey
Posts: 4

Post by Rumsey »

Hi,
I've got preview-10.7.5491 version.
Is the current dev version newer? I think it is but when I unzip the file and click the .exe file Symthesia just opens up the 10.7 version. Do I have to uninstall old version first? Is there any risk of losing data?
Simon
Nicholas
Posts: 12698

Post by Nicholas »

JimNYC wrote: 09-04-21 9:29 amGlad to hear that progress is being made, albeit not without the usual issues and workarounds. If you need any assistance with testing parsing to work through the test suite files, identify issues, etc., I'm sure there would be many here who could help crowdsource the effort.
The first of the MusicXML preview builds should be going out soon'ish and I plan to do exactly that. :)
Rumsey wrote: 09-04-21 11:02 amIs the current dev version newer? I think it is but when I unzip the file and click the .exe file Symthesia just opens up the 10.7 version. Do I have to uninstall old version first? Is there any risk of losing data?
There's a slightly newer version available (r5621) with these changes (along with an explanation for why it's still labeled 10.7).

No uninstall of previous versions necessary.

And dev preview versions store their data in a different place than the official release, so there is no danger of losing data. (See the last link in the pink box at the top of the page.)
Nicholas
Posts: 12698

Post by Nicholas »

Progress Update!

Initial MusicXML parsing is starting to wind down. Most recently: it can read five different kinds of articulation--staccatissimo, marcato, accent, etc.--and I just made multiple voices on one staff parse as separate parts.

Things still remaining (among any others I discover on the way): parsing tuplets, dynamics, making sure percussion tracks actually sound like percussion, and finally being able to unwrap zipped MXL files to get to the gooey MusicXML file in the center. After that it's preview time so you guys can start to run some real torture tests against the new stuff.

More anecdotes:
  • Crescendo/decrescendo don't have any explicit before/after dynamics specified in MusicXML. Maybe I'm just not clear on the rule. Does a crescendo step the current dynamic up one "step"? Say, from mf to f? Or from pp to p? Is it two steps? What does the dynamic increase to if a crescendo follows an fff? Do any of those answers change if it's a "long" (say, multi-measure or even multi-line) direction vs. a "short" one?
  • When exporting a MusicXML file containing a [de]crescendo from MuseScore as a MIDI file, it completely ignores them and all notes have the same velocity! Apparently they decided to punt on trying to come up with a good answer to any of those questions above. :lol:
  • For articulations like staccato, there is no such thing as the "MIDI compatible part of MusicXML": regardless of articulation, both of my editors seem to always specify the same "duration" for the note. You have to pay attention to the articulations manually and adjust the duration yourself while parsing.
  • Tenuto is a little tricky when all of the "normal" notes already extend their full time duration. I tried making all "normal" notes a little shorter (say, 95% their full duration, which appears to be what Dorico does), but then the falling notes look sloppy. 95% of a whole note shaves more off the end than 95% of a quarter note, so the ends of the blocks don't line up anymore. A better rule for "normal" notes might be "if it's longer than a 24th note, shave the last 32nd of it off", which would make things align better and be more sensible for whole notes... but for now I just left it alone: notes without articulation last 100% of their full duration. Which means tenuto effectively does nothing. For use primarily with a hammered (and not sustained) instrument like piano, I think I might be okay with that.
Post Reply