10.9 preview r5825-r5875 - Better Free Play

Archived development update discussion from past versions
Archived development updates.
Locked
Nicholas
Posts: 13170

Post by Nicholas »

SYNTHESIA 10.9.5825
Download from the pink box above.

CHANGES SINCE r5766
  • Reminder: The PC version of Synthesia now requires 64-bit Windows.
  • Lots of new Free Play features! See each breakout, below.
  • The multi-track recorder on the Free Play screen now records all MIDI events (including your pedal!), instead of only notes.
  • The most recently used tempo on the Free Play screen is now remembered.
  • The Settings → Gameplay → Menu Bar setting now applies to the Free Play screen, too. With this and the new display settings dialog, you can hide everything and get a totally clean view of just the keyboard and notes.
  • users.xml has been migrated to the settings database. The list of users should no longer become lost/corrupted.
  • settings.xml has been migrated to the settings database. Unlocks and options on the Settings screen should no longer become lost/corrupted.
  • Promoted an old advanced setting to Settings → Gameplay → High Contrast Labels. This removes the outline, which can help on slower-updating TFT LCD screens that have more blurring.
  • There was actually a rather large rework under the hood of the way text size is detected and handled (for centering, etc.) across all our platforms. In the end, this only means things shifted a pixel or so here-and-there, but screenshots between say, the Android and Windows version will have text placed more consistently (excepting the different font used in each case). This was totally a perfectionist thing that had been bugging me for years.
  • Our first Synthesia LLC-specific SysEx message is now sent.
  • Quite a few other fixes on top of all this. See the full changelog for more details.
EDIT: It might take a few days to get the Android build onto Google Play. Google took away the ability for Android 11 and later to see MusicXML or SoundFont files without asking for a special permissions exception... and then they just denied my permissions exception request when I told them it was the only way for the app to work correctly. :? (The direct, side-loaded APK download above should still work just fine.)



Free Play Display Settings



You can hide everything now! This is also where you can choose the key signature that should be used for key/note labels, that should be saved in your exported recording, and for chord numbering (see below).

Multiple Instruments/Colors



Normally there is only a single color/instrument "swatch" shown at the left. Now, at the first sign of input from a second MIDI device or from the same device playing on a different MIDI channel (or any combination of the two), additional swatches will begin to appear. This works well if your keyboard has a "split point" feature. (And if it doesn't, something like that could be simulated with utilities like MIDI-OX.)

Note: During record, all but the first swatch are temporarily hidden. You can only record a single track at a time. All input on all channels from all devices is redirected to that first swatch's color/instrument until you stop the recording process.

Roman Numerals (Music Theory) and "Only my Notes" Labels



Some instructors had asked for a way to only show the note names on the keys that were actually being played. You can do that now. I'd also heard a few requests to add the Roman numerals for the chord. The Roman numerals change appropriately if you choose a minor key.

Style Volume

styleVolume.png
styleVolume.png (27.4 KiB) Viewed 125788 times

The style drop-down now has a volume slider to adjust how loud the back-beat is played. This also affects the metronome ticks during recording sessions, so you can turn that down (or off!) now, too.

Snap-To Icons



Now that I've got the tech to generate bits and pieces of sheet music outside of the main sheet music display (mainly for the key signature picker in the display settings popup), it's easy to sprinkle more of it around the interface. These new icons on the Save Song prompt aren't stored in the app as resources but are instead generated on the fly. :)




That's most of the 10.9 release. I've only got a couple more knick knacks and then this cycle's sheet music feature. I think I've settled on beams. That means the next preview should have variable-length stems, beams across more than two notes, and beams across notes with different durations (so, variable/partial beams). That should keep me busy for a little while. In the meantime, let me know if you run into any trouble with the new stuff.

EDIT: See the r5850 notes below for the new sheet music feature choice/rationale.
Korados
Posts: 64

Post by Korados »

Hey Nicholas,

long time no... write? And I'm here with bad news. The new preview crashes for me all the time. Whenever I try to play a Midi file or open Free Play, I get an error message that I have to merge my changes to the colors.xml. I only ever used the colors.xml one time when I suggested an orange-colored theme but that was years and years ago. I didn't even have it in the folders. I downloaded it just now and placed it in the AppData/SynthesiaDev folder, to no avail. The previous version r5766 works just fine. I tried copying the colors.xml to the AppData/Synthesia folder as well but of course that didn't work, too. I attached the error message and Crash Dump. I hope I can help you with that!
Attachments
Crash.dmp
(2.2 MiB) Downloaded 6223 times
Error message.png
Error message.png (10.41 KiB) Viewed 125701 times
Nicholas
Posts: 13170

Post by Nicholas »

Strange that the error message mentions colors.xml... a "text string" should be something in language.xml. Do you have a modified language.xml?

I'll get the error message fixed so it knows which file to warn you about.

(And yeah, long time no see! :D )
Nicholas
Posts: 13170

Post by Nicholas »

SYNTHESIA 10.9.5829
Download from the pink box above.

CHANGES SINCE r5825
  • Maybe fix an Android startup crash? (EDIT: Looks like it worked. :D )
  • Added "Proprietary 3" key light option for Vangoa lighted keyboards (based solely on the information provided in this forum post).
  • Increased the contrast of the text in the title screen's header and footer.
  • The error message shown for missing language text entries should no longer refer to the colors.xml file.
Korados
Posts: 64

Post by Korados »

Nicholas wrote: 08-14-22 7:09 pm Strange that the error message mentions colors.xml... a "text string" should be something in language.xml. Do you have a modified language.xml?

I'll get the error message fixed so it knows which file to warn you about.

(And yeah, long time no see! :D )
I just tried out r5289 but I still get an error message. In both AppData folders, there is no language.xml. And I'm sure I never modified anything. The only things I changed are some settings and key bindings but like I said before, on r5766, everything is just fine.
Attachments
Crash.dmp
(2.18 MiB) Downloaded 6110 times
Error message.png
Error message.png (10.91 KiB) Viewed 125646 times
Nicholas
Posts: 13170

Post by Nicholas »

SYNTHESIA 10.9.5838
Download from the pink box above.

CHANGES SINCE r5829
  • Choosing non-English languages should no longer crash. :?
  • The little keyboard drag block now stays out for one second so it's easier to grab on touchscreens.
  • Song recording was completely broken since r5825. :shock:
  • Replaced our (awful) Android text entry window with the built-in alert window.
  • Mentioned "Piano LED Plus" as being compatible with The ONE Smart Piano's lights.
  • I'm giving up on MusicXML/SoundFont files being visible in Android 11+ for now just so Google will let the app back onto the Play store. Arguing with them hasn't been very productive. Maybe I'll just maintain two releases: the Play store version without and the stand-alone, side-loadable APK version with it. *sigh*


Korados wrote: 08-16-22 11:16 amI just tried out r5829 but I still get an error message...
Sorry (again). I found it and fixed it this time.

Curiously, that crash dump was unrelated (crashing in a different place because the code had failed to tear Synthesia down cleanly after the first error ) and I fixed that one, too!
Nicholas
Posts: 13170

Post by Nicholas »

SYNTHESIA 10.9.5850
Download from the pink box above.

CHANGES SINCE r5838
  • Windows-only: Shortcuts can now use Alt as a modifier key (in addition to Ctrl and any MIDI Pedal).
  • Windows-only: The hard-coded "Alt-Enter" shortcut to toggle full-screen is now a customizable shortcut (near the bottom of the list) that is bound to F11 and/or Alt-Enter by default.
  • Windows-only: There is now a full-screen toggle button (like a video player) right on the menu bar on the song playback and Free Play screens. (Android/iPad are always full screen and macOS has its own machinery on the window frame to do this, so this brings the Windows version up to parity.)
  • Windows-only: The "System.LimitThreadAffinity" advanced setting is now disabled by default.
  • The scrolling marquee dot effect around the play mode buttons has been replaced by a glowing effect. (This was for a vaguely technical reason, otherwise I didn't mind the dots.)
  • The little "off screen" arrow indicators at the left/right side of the screen should now scroll smoothly (instead of on whole pixels) and are limited to being drawn no more frequently than once every 10 screen points (which are defined as "pixels × resolution scale"). The limit makes things more sane on songs with >10,000 notes.




Alright, that's the grab bag. Now it's just this cycle's sheet music feature and 10.9 will be going out the door.

While thinking about my attack vector for the sheet music beam improvements, I think I discovered a prerequisite: actually listening to the MusicXML file for which staff things belong to. So that'll be 10.9's notation feature instead: notes should appear on the staff indicated in the MusicXML file. (At this point I'm not expecting any behavior changes for MIDI files.) But this should set things up nicely for quite a few additional "pay attention to what's inside the MusicXML file" features (including beams) as things move forward.
Rumsey
Posts: 9

Post by Rumsey »

Hi Nicholas,
I've been having problems with jerky notes as they fall down the screen and rather than roll back to 10.7, which a forum user suggested doing, I installed 10.9 Dev which did the trick, much smoother. Only problem is now the 'points earned' section won't scroll.
Regards,
Simon
Nicholas
Posts: 13170

Post by Nicholas »

Nice catch. I think I was able to reproduce the problem. Just as a double-check:

1. Using the mouse wheel anywhere in the "Points Earned" pane does scroll the list.
2. Clicking above or below the rounded scroller control does jump a page at a time.
3. Dragging the rounded scroller control itself does not scroll the list.

Are you seeing all the same behavior? That last one is a bug. I haven't touched that code in ages, so I'll be curious to see how it broke. But it'll be fixed in the next preview. Sorry for the trouble in the meantime!
Nicholas
Posts: 13170

Post by Nicholas »

SYNTHESIA 10.9.5875
Download from the pink box above.

CHANGES SINCE r5850
  • Song list ordering corruption (when several blue groups are present and the list is more than a page long) should no longer occur.
  • System.IgnoreZeroValuedCc no longer applies to shortcuts that use an "axis".
  • Added offscreen markers for user input that occurs off the edges of the screen. (I actually ran into this while demonstrating Synthesia to my six year old. He had changed the octave while I had stepped away for a minute. When I returned I thought the keyboard had gotten disconnected somehow because there was zero feedback when input is off the screen. Now there's at least something.)
  • Synthesia no longer sends bad MIDI events when you click the preview button on a percussion (or "Various") track. This has been a silent bug that every synth out there has successfully ignored for over a decade but macOS 12's synth now crashes when sent bad MIDI.
  • When set to "My Keyboard" the active/visible range should follow octave changes automatically.
  • The scroll bar on the "Points Earned" tab should work again.
  • Connected a few more Android inputs (mostly for TV remotes) to the shortcut system.
  • Updated to Android billing library v5 (as required by Google).
Given the major sheet music course correction, I think this is it for 10.9. Assuming you guys don't find anything else, this will become the official release and Synthesia 11 will be closer than ever.
Electrode
Posts: 195

Post by Electrode »

I have an improvement to make regarding minor key note labels in Free Play. Technically we should be allowing both the natural 6th and the raised 6th, as well as the natural 7th and raised 7th to all be displayed in minor keys. Additionally, chord V should be major in a minor key, so this is another reason why the raised 7th should be there - I tried the minor keys out with C minor, and while G minor (chord v) displays, the proper chord V according to the key (which should be V, G major) does not display!

So, to reiterate, I think we should be including the labels for notes 1, 2, 3, 4, 5, 6, #6, 7 and #7 in minor keys. So, for C minor, the labels would be C, D, Eb, F, G, Ab, A, Bb, B. That way we can accommodate all the minor scales - natural, harmonic and melodic, all in one go.

Additionally, we could have an optional feature to display altered chords using notes of the key. So, for example, C minor would be i in C minor, but we could also have C major displayed as I, C dim displayed as i°, C aug displayed as I⁺... etc. This could allow students to make better connections between chords based on a single note, regardless of key - which could be helpful for jazz or other music that frequently borrows chords from outside the key that they're written in.
User avatar
jimhenry
Posts: 1907

Post by jimhenry »

For those, like me, whose music theory knowledge is not at the level of Electrode's, I found this on spinditty.com:

Chords v & V (Dominant Minor and Major)

The dominant chord's function is to lead back to the TONIC or home chord. Chord v, the dominant minor has a weak function but chord V (dominant major), which corresponds with the harmonic minor scale, has a much stronger function due to it containing a leading note to the key's tonic. That's the reason the harmonic minor scale was invented in the first place. The four-note dominant 7th chord has an even stronger function, due to containing a dissonance that returning to the tonic resolves in a musically satisfying way.

Note - The dominant can be considered as the opposite of the tonic. Whereas the tonic is stable restful and 'at home', the dominant is unstable, active and "far from home but poised to return". That's the dominant effect.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Electrode
Posts: 195

Post by Electrode »

To add to what Jim has posted (which is all correct), the strongest melodic pull is generated by the interval of a semitone. This is why the leading note needs to resolve to the tonic - it moves up by a semitone, the strongest movement. The dominant seventh is even stronger because it contains two notes that each resolve to notes in the tonic chord by a semitone. The seventh of the dominant seventh (in C major, this would be G7, so the seventh would be the F) resolves downward to the third of the next chord (the tonic chord), so the F resolves downward by one semitone to the E. The leading note is the third of the dominant seventh (the B in a G7 chord), which resolves upward to the C.

Hope this is useful to anyone who is looking at our posts and is feeling confused! This is most likely the wrong place for further discussion though, so if needed, I could start a thread in "General" or "Learning to Play Piano" where we dig into this stuff more, if anyone is interested!
docunagi
Posts: 13

Post by docunagi »

Hello,

Each time I update my version of Synthesia I lost all of the stats of the music I have loaded in the app.
How can I avoid the app to erase my stats when I update it ?

Thanks in advance
Nicholas
Posts: 13170

Post by Nicholas »

Is this when going between the official release and development previews? (If so, see the link in the pink box, above.)

Otherwise, upgrading between versions shouldn't usually have any data loss at all.

(To Electrode: I'm still going to reply to your posts soon.) :)
docunagi
Posts: 13

Post by docunagi »

I am upgrading with the last dev version each time. But each time it resets.
Nicholas
Posts: 13170

Post by Nicholas »

docunagi wrote: 12-08-22 9:52 am I am upgrading with the last dev version each time. But each time it resets.
Hmm, it sounds like Synthesia is having trouble writing its XML files to its data folder. (As a double-check: your unlock information isn't disappearing each time, is it? As of Synthesia 10.9, that is stored in a database using SQLite. We made that change to try and solve this sort of problem. It would be nice to hear that it's able to do something the older file storage isn't.)

Otherwise, we've never quite been able to track down why files can't be written sometimes. Every once in a while the data folder becomes hidden (usually after a Restore Point has been restored), which has messed with the app's ability to write files. Other times it's the folder permissions (to the Windows user's own folder!) that appear to disallow it... but in the presence of a SQLite database that can be written just fine, that last one seems unlikely.

Does a computer restart help at all? There may be some old process (Synthesia or otherwise) that is hanging onto the stats file.
Electrode wrote: 11-26-22 6:17 am I have an improvement to make regarding minor key note labels in Free Play.
Alright, I'm finally trying to catch up on all of this advice. I think I was able to follow most of what you were saying, but not all of it.
Electrode wrote: 11-26-22 6:17 amSo, for C minor, the labels would be C, D, Eb, F, G, Ab, A, Bb, B.
When I check the labels for C minor in the 10.9 preview, those appear to already be the labels it's using. It's still your same scheme from 2012. :D In this case, the C minor labels come from the "C" row in that image, which features all the same flats/sharps you just mentioned. (Did I misunderstand where you wanted something to change?)
Electrode wrote: 11-26-22 6:17 am... but we could also have C major displayed as I, C dim displayed as i°, C aug displayed as I⁺...
Hmm, this would upend my infrastructure for detecting the chord degrees a little bit. Is it a very common practice outside of jazz? When implementing this, I checked against something like a dozen different sources and never saw any mention of the Major degrees being used/shown while in a minor key.

As for "I⁺", I didn't know there was a Superscript Plus Sign Unicode character the same way there is a degree symbol (°). Neat. I wonder if that would work on all of our platforms? Synthesia's text rendering can do plain characters (like the one I just linked), but arbitrary text as a superscript would require some new tech under the hood.
revilo2
Posts: 138

Post by revilo2 »

Hello,

Is 10.9 available for android ?

Tanks
Nicholas
Posts: 13170

Post by Nicholas »

It takes Google a little longer to do reviews than Apple these days. It looks like they passed the beta release a couple days ago so I just put it on the track to be released as the official version. (Thanks for the reminder!)

In the meantime, the side-loadable APK on the download page is always available at the same time as the other platforms. It's the same file that gets submitted to Google Play, so there shouldn't be any differences.
Locked