Page 3 of 11
Posted: 01-16-17 2:09 am
by Nicholas
It's not quite as bad as it looks, but you are correct: there is a lot of work to go!

Almost all of the weird stuff going on in these pictures is a result of transitioning the existing code from a completely ad hoc system of measurement (with units loosely based on the size of Synthesia's notation texture) and staffs that were always a fixed distance apart to a much more principled system of measurement (with units in "staff spaces", which are used by musical fonts, engraving experts, and all of the literature) and staffs that have a variable baseline. Now that the dust from that transition is starting to settle, it's just a matter of reconnecting all the bits, replacing the old, made-up magic numbers in the code with the recommended values from the font we're using and making sure everything looks the way it used to.

That will be the first Synthesia 11 dev preview. It's not an especially exciting one, but it'll be nice to get it in your hands because it's got a number of other fixes and improvements. I don't like to wait too long between previews.

Posted: 01-17-17 6:54 pm
by draco2023a
Cool. I can't wait to try it out....Thanks for all your hard work!

Posted: 01-21-17 11:30 pm
by Nicholas
Progress Update!

Hopefully to make things feel a little less dire, you can see that things are starting to get back to how they used to look. :D (Just a couple beams that go one pixel too far.)
almostBack.png (8.62 KiB) Viewed 14635 times
Although... "repairing" things until they look like the old, awful notation just makes me more eager to start fixing the real problems. After seeing hundreds of examples of "do this; not this" in Behind Bars, looking at Synthesia's current notation makes my brain itch.

Posted: 01-22-17 5:05 pm
by jimhenry
If you are able to do even a half-decent job of creating proper notation from MIDI files, you might want to consider spinning that part off as a separate application. Thinking about what it is going to take to do that makes my head hurt. :shock:

Posted: 02-20-17 5:08 am
by Nicholas
Progress Update!

There. I probably agonized a little too long over having absolute pixel-accurate connection points between note heads, stems, and beams for any arbitrary font size... but now it looks nice.

I recently finished Thoreau's Civil Disobedience and one of my favorite quotes was "what is once well done is done forever". This feels like one of those things. Now that I've drilled this far into the minutiae, I won't have to again. :lol: (All of the new sheet code is plain C++ and 100% platform and graphics SDK/hardware independent. No matter which platforms we add/support/drop/whatever in the future, this will continue to work.)
beamsAndStems.png (14.78 KiB) Viewed 14446 times
And with that, the sheet music is back where it used to be (only sharper and rendered using a very different set of technology). There are some loose ends to wrap up: doing the sheet rendering on a background thread, adding Standard note labels, and fixing the usual new crop of Android bugs. But I daresay we may actually be approaching the first real Synthesia 11 dev preview. :D

Posted: 02-20-17 9:20 am
by sage789
Great news! Congrats! Looking forward to it!

Posted: 02-20-17 12:07 pm
by jimhenry
Looks beautiful! This is going to take Synthesia to the next level.

Posted: 02-21-17 8:49 am
by advalencia
is looking gorgeous, I can't wait.

Posted: 02-26-17 4:00 pm
by Nicholas
Progress Update!
Nicholas wrote:But I daresay we may actually be approaching the first real Synthesia 11 dev preview. :D
If never fails. :lol: I should know better than to give predictions. Hence my usual policy of only mentioning release dates a day or two ahead of time.

The new stuff seemed reasonably efficient on my tiny super-computer of a development PC. Trying it on some tablets... I learned that was not the case. On the worst Android device I could find, a sheet music page-turn freezes the app for about a quarter second every time (followed by an out-of-memory crash a few pages later). :D After some investigation, there was a funny conclusion: the new drawing code is actually quite fast, even surprisingly so. It's some infrastructural stuff that is causing the hiccups: uploading that large of a texture to the GPU all at once, etc.

Anyway, far from this being a setback, it means I get to work on an interesting optimization problem! This is one of my favorite areas that I usually have woefully few opportunities to exercise. I've already squeezed about 5x(!) the performance out of the GPU upload procedure. The already-fast sheet drawing code is also 2.5x faster now, too. :D And, so this doesn't just sound like a feature-less detour -- making things "fast enough to not feel broken" probably isn't especially exciting for users -- already the big gains have required adding some new tech (arbitrary shaders!) that will become phenomenally useful in the short and long term. I've wanted an excuse to add them for years and this was a great one.

In any event, this road is a little longer yet. It doesn't stop until the worst platform can change sheet pages (zoomed as large as possible) without dropping a single frame. I've still got half a dozen tricks up my sleeve and I can't wait to try them.

So, the first real preview is still close. Just not quite as close, hehe.

Posted: 03-07-17 10:06 am
by monkel
That render example looks very crisp and nice and now that I have a windows tablet with a USB midi 1x1 E-MU attached, I'm looking forward to using Synthesia without my trusted iPad and getting some flexibility on the customization side.

Now if only the stem orientation was correct (for my definition of correct - C/D pointing downwards) you'd have me sold completely already. :)

Posted: 03-08-17 2:37 am
by Nicholas
Yeah, every day that I work on this the stem directions drive me a little more crazy. They'll be fixed in just a couple previews. :D

Posted: 03-09-17 3:53 am
by revilo2
In my opinion, stem directions is a detail.

For the next preview, what is very important and really can change the use of Synthesia is finger notation shown on sheet bar...

Posted: 03-09-17 4:14 am
by monkel
While finger notation is important to learn a new piece I personally find that I don't need or read it once I've established "sufficient muscle memory". The stem direction on the other hand is an important hint for sight reading to me and only becomes less important once I really have the piece nearly memorized.

But I guess there's enough Synthesia users who don't care at all, because they never use the sheet view anyway ... :)

Posted: 03-09-17 12:05 pm
by jimhenry
Wrong stem direction is like bad grammar or mispellings. If you know what it should be, having it rong are disfusing. You don't need distractions when you are trying to read music, or any other form of writing.

Posted: 03-12-17 11:41 am
by langdon
I've been keeping an eye on this thread for some time as I'm really excited for v11. There aren't any preview releases yet, right? I'd love to try it... I run Synthesia on my tiny super-computer laptop, so performance isn't a concern. ;)

In the mean time, I'll continue building my small library of mid+xml files.

Posted: 03-16-17 6:33 am
by Nicholas
langdon wrote:There aren't any preview releases yet, right?
Correct. The first preview (the "Off-screen Sheet Music Compositing" preview from the first page of this topic) is getting close.

... Although, business taxes just waylaid me for a couple days. But we're back on track now. :D

Posted: 03-24-17 6:27 am
by kiwi
Since you're workin hard in the notation stuff i would suggest a cursor for to adjust the brightness of the sheet.

so the background 'll go to white from grey and to finish on black and notes on white (inverted contrast if you prefer).

Really usefull for the night reading sessions...

I asked the same things in the beta of guitar pro 7 but i ask since the version 6...

Posted: 03-24-17 8:31 am
by Nicholas
kiwi wrote:i would suggest a cursor to adjust the brightness of the sheet.
I like this. The sheet area is already getting new controls (while paused) and brightness makes a lot of sense.

Sometimes I read using the Kindle PC app and I've got that brightness cranked way down precisely to control the kind of eye strain you're talking about. So I'm no stranger to why it's a good idea. This is a super easy one (both decision and implementation), so I just added it to the task list.

Posted: 03-27-17 10:31 am
by kiwi
Thank you Nicholas!

All notation software lack of this feature and this is not so hard to implement. Instead they prefer to propose many skins but a simple cursor is so much simple!

Any os well need a cursor with contrast colour and brightness like any TV from the old ages are we in 2017? :=)

(Don't forget to ad the inverted colours, white notes on black paper, i don't like it but many users use dark screens...)

It 'll be in the next dev version?

A program who have this ability is JR media center you can try the demo and test yourself they have 3 cursors one for the hue intersting because it replace colours by others.


Posted: 04-17-17 1:02 am
by Nicholas
Progress Update!

Sheet music is faster. I was able to squeeze 26x more speed on average (95x faster on the worst tablet!) out of the slow operations, so now everything runs without a single frame skip anywhere. That was a lot of fun! I like optimization!

I've already gone through most of the handful of wrap-up tasks (new label modes, Android bug fixes, etc.) and this preview is nearly ready. Think days, not weeks. The very last thing is actually kind of a big feature for the Windows version of Synthesia. Microsoft recently released a brand new MIDI API in the Windows 10 Anniversary Update. That's the first Windows MIDI update in like 20 years. One of the headline features for the update is Bluetooth MIDI support. The reason I was interested in adding parallel support for the new API along with the old, was in the hopes of finally quelling all of the bizarre MIDI device behavior people seem to be running into on Windows 10. Presumably the new API will be the better-supported one moving forward.

So, I just spent a few days mucking around in Synthesia's Windows MIDI code, rewiring things so Synthesia can seamlessly switch between the old and new stuff. A technical detail requires the new Windows 10 MIDI stuff to live in its own DLL file. So, begrudgingly, Synthesia is no longer a single file affair if you want the new stuff. The good news is that if the DLL is missing, Synthesia will happily fall back to the old stuff silently, without skipping a beat.

Anyway, the reason for this post was to report an unexpected finding: Bluetooth support isn't the only new feature. Using the old stuff, the same abysmal GS Synth latency is still present. Switching to the new stuff, the GS Synth is much faster! To my ear, the updated/upcoming Windows 10 GS synth's output latency is as fast as a keyboard's synth!

I know most forum-goers are power users that have already solved their Windows synth woes using one of the other available methods, so this won't impact as many of you as the general Synthesia for Windows using population, but man was it bad before. It's nice to finally have good news about something Windows 10 MIDI related.

In any event, some more testing (I haven't paired a Bluetooth device yet), a little wrap-up (Windows 10 returns incredibly helpful names like "Port 3" for MIDI devices, so Synthesia will need to dredge up some USB device/manufacturer details), the last loose ends (automating the digital signature and inclusion of the new DLL in the various Windows distributions), and it'll finally be time for the long-awaited first Synthesia 11 development preview!