10.5 preview r4792, r4801 - New Synth!

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

Post by Nicholas »

SYNTHESIA 10.5.4792
Download from the pink box above.

Big Stuff
  • A new synth on Windows and Android! It's based on BASS (like VirtualMIDISynth and BASSMIDI). It's lower-latency, higher quality, includes a Reverb setting, and lets you change the SoundFont to whatever you like. Just put your SF2 files in any folder that Synthesia already scans for songs. Then it should show up on the Settings --> Music Devices --> Built-in MIDI Synthesizer screen. This fixes all the problems in one fell swoop.
  • The Windows MME and UWP MIDI APIs can now be used concurrently by Synthesia on Windows 10. That means the reliable, 25-year old synth will always be available in the device list, even when you search for and enable Bluetooth MIDI devices. By default the new, (buggy, crashy) UWP stuff is only available when you specifically enable it via the Midi.UseWinRTMidi advanced option. And even then, the only devices reported through the new API are Bluetooth devices. That's to avoid seeing duplicate entries being detected in both MME and UWP.
  • Benchmark mode. Change Settings --> Advanced --> Benchmark --> Allow. Then, on the song settings screen, you'll see a tiny stopwatch icon just next to the Continue button. Click that to run the song in a strange, fixed-timestep mode that measures the performance of the app. You'll be presented with a statistics screen after exiting the song. This is 95% an internal tool, but it will be helpful for diagnosing things on rare user hardware.
  • Completely revamped Android text handling (from on-screen and hardware keyboards). Hopefully this will solve all of those problems once and for all. Shortcuts now work with virtually every hardware keyboard key combination now instead of like... four keys. This is especially useful now that we officially support Chromebooks, which almost always have hardware keyboards.
Small Stuff
  • Incorrect accidentals are shown in the sheet music again.
  • The "Gameplay.PinMenuDrawerOpen" advanced setting has been promoted to an in-game option under Settings --> Gameplay. The hidden bar now acts much more like typical video players (e.g., YouTube) where any mouse activity at all (except down in the keyboard area) will reveal the bar for a couple seconds.
  • You can now prevent the large title bar from appearing at the beginning of a song with the "Gameplay.ShowTitle" advanced setting.
Fixes
  • The "All Songs (grouped by folder)" list now always alphabetizes the folders. This was usually the case before, but now it's always the case.
  • There should be a fairly sizable performance improvement across the board for Android devices.
Known issues
  • The sound set included in this preview isn't final. The final version will have higher quality pianos. (Just the new piano samples will be larger than the entire 120+ instrument sound set included in this preview!) :D
  • Android still can't bind shortcuts of the form "Ctrl + printable character" (like Ctrl+S). Plain printable characters are fine (both 'a' and 'A'). And "Ctrl + other stuff" (like Ctrl+Tab) are also fine. So, we went from 3% coverage of hardware keyboards to something like 90%.
This is basically 10.5 complete. I'm still waiting on the final version of the sound set from the Voice Crystal folks and tying up a couple loose ends, but we're back on track for Synthesia 11 now.
wacher
Posts: 30

Post by wacher »

Thank you for new update :)
Just for records: it is not working with Insider 18219 (I know, I know this is early insider.... this is not October update, but 2019's H1, but this is a sign of possible problems in future...)
After the first start Synthesia didn't see I/O devices. Settings page is frozen (or sometimes is not frozen) and throw me back to main screen. There is no dump file.
Last edited by wacher on 09-03-18 4:12 am, edited 1 time in total.
Nicholas
Posts: 13132

Post by Nicholas »

Hmm. My Insider machine, uh... stopped being able to receive updates a couple previews ago. I might have to wipe it and reinstall to see if I can reproduce what you're describing.
wacher
Posts: 30

Post by wacher »

I think the mentioned "frozen setting screen" is not true.
My Synthesia has been started in full screen mode and modal warning dialog don't bring itself to front. This seems to be frozen.
But... every devices are OFF, If I want configure them...
click "digital piano" -> Couldn't find control soundsetSection
click "Built in midi" -> Couldn't find control localCaution
and Synthesia close itself.

I use custom ui.xml and colors.xml, what should I change? (update: solved)
Sorry for false alarm...
silvrica
Posts: 40

Post by silvrica »

Can this new Built-in MIDI Synthesizer control the volume of different instruments like the MIDI MIXER of VirtualMIDISynth?
Sometimes, when I play the piano part of a song that has different instruments, I do not want to mute them, just reduce their volume.
Nicholas
Posts: 13132

Post by Nicholas »

The capability is there under the hood, but there'd need to be some custom UI added to Synthesia to expose the functionality. That would require a bit of special-purposes "only show this when the built-in synth is enabled as an output device" logic, which might get a little confusing for users that may have recently adjusted their settings.
Montago
Posts: 25

Post by Montago »

Hi..

I'm trying out the new features of using SF2's but have quite an issue with them.

I'm experiencing quite a significant lag: eg i press the key on the Midi keyboard and after about 200-500ms i hear the sound from the PC speakers.

Is this a:
- Windows 10 issue ?`
- Midi controller issue ?
- Soundcard issue ?
- SF2 synthesizer issue ?

My PC is a laptop, Lenovo Thinkpad 470 with a Realtek soundcard.
wacher
Posts: 30

Post by wacher »

I have a Xeon based desktop with Asus Xonar soundcard, I experienced the same.
Nicholas
Posts: 13132

Post by Nicholas »

Hmm, try this:
  1. Run the app.
  2. Make sure the "Built-in MIDI Synth" is enabled. (If you've ever run a dev preview before, it will default to the old MME Windows synth which is very high latency.)
  3. Have the app play at least one note. (Clicking "Test" on the music output screen is fine.)
  4. Close the app.
  5. Head over to the dev preview data folder (Windows Key+R → "shell:appdata\SynthesiaDev")
  6. Open the log.txt file.
There should be one or more lines containing the text "Increasing audio buffer to" followed by a number. What is the number from the last one of those lines in the file?
Montago
Posts: 25

Post by Montago »

Software synth running at 48000 Hz with a maximum buffer size of 320ms.
wacher
Posts: 30

Post by wacher »

midicomm_bass.cpp:385: Software synth running at 48000 Hz with a maximum buffer size of 320ms.
midicomm_bass.cpp:413: Increasing audio buffer to 24ms to prevent dropouts.
Nicholas
Posts: 13132

Post by Nicholas »

Montago wrote:Software synth running at 48000 Hz with a maximum buffer size of 320ms.
That is the wrong line. :lol:
wacher wrote:Increasing audio buffer to 24ms to prevent dropouts.
That sounds very fast to me! :D

(How does the synth compare with the Windows synth? Are you guys reporting that it's really much slower? Ideally it should be much faster, but even just getting an idea of whether it's on-par with the Microsoft synth would be helpful.)
Montago
Posts: 25

Post by Montago »

Nicholas wrote:That is the wrong line. :lol:
Well, it was the only one with a "buffer" mentioned ... i figured that the 320ms corresponded to what i'm experiencing of delay.
Nicholas
Posts: 13132

Post by Nicholas »

320ms is the maximum it will ever allow itself to go up to. It adjusts (starting from something like 10ms) up until it stops under-running. In all of my testing, I never saw that go above the same 24ms wacher just reported. And then, when you use a MIDI tester with accuracy down in the microseconds, you end up with about 70ms round-trip from MIDI input to speaker output (where the ~50ms or so difference is added by the operating system and audio hardware).
Montago
Posts: 25

Post by Montago »

Nicholas wrote: (How does the synth compare with the Windows synth? Are you guys reporting that it's really much slower? Ideally it should be much faster, but even just getting an idea of whether it's on-par with the Microsoft synth would be helpful.)
I would say that Windows Synth is much faster - almost playable.

The new SF2 sounds are significantly slower, to such a degree that its unplayable..

But since its not the MIDI connection, it must be Windows + PC Hardware that is to blame ?
Nicholas
Posts: 13132

Post by Nicholas »

That is very interesting! I'm trying to think of a way to hear it for myself. I wonder...

Could you enable both the Windows synth and the new built-in synth, and then record some audio (using "stereo mix" or whatever as the recording device) from the test output on the Settings screen? That should at least let us quantify how much longer it's taking. (Maybe the audio engine is using that whole 320ms for some reason. It'd be easy enough to test that just by bumping it up to a full second or something.)

I wonder which knobs are available to tweak. I know BASS just recently started using WASAPI for audio output (which is new as of Windows Vista and supposed to be much faster than MME; rivaling the speed of ASIO). Maybe your audio drivers don't like it for some reason. I can disable that flag (so it uses the older MME). Maybe that will improve things. Let me push a build with a few extra advanced options...
Nicholas
Posts: 13132

Post by Nicholas »

SYNTHESIA 10.5.4801 (Windows & Android only)
Download from the pink box above.

Changes
  • Added several advanced options for the new built-in synth for troubleshooting.
  • When the app is in the background (or the window is being resized/dragged), time is now frozen to prevent bursts of notes from accumulating.
  • The new synth will now pause while the Android app is in the background to prevent hung audio.
Alright, here are some experiments to try with the new advanced options (hold your Shift key while launching the app), to see if anything changes:
  1. Raise "Synth.BufferMargin" to some high number like 2000. This should have no effect. Let me know if it does!
  2. Turn "Synth.UseWasapi" off. That will switch BASS from sending audio through WASAPI back to the older DirectSound API. How does the latency compare between the two?
Thanks!
phoegh
Posts: 21

Post by phoegh »

Hi Nicholas,

I've downloaded r4801. The latency sounds and feels very minimal to me. I have 2 other minor issues though.

1. when opening the program it always open in a smaller window size and doesn't remember full screen when starting up.
2. It looks like r4801 doesn't create a systemwide folder for itself "SynthesiaDev" under the C:\ProgramData section
Nicholas
Posts: 13132

Post by Nicholas »

Those two sound like they might be related!

First, the data folder should be in shell:appdata\SynthesiaDev (which is usually somewhere like C:\Users\[you]\AppData\Roaming\SynthesiaDev ). The only reason for a folder in C:\ProgramData is if you've used the system-wide classroom installer.

Either way, if a data folder isn't being created for whatever reason, that would explain the window size being forgotten each launch.
phoegh
Posts: 21

Post by phoegh »

after installing the Classroom installer, C:\ProgramData\Synthesia folder appeared but not the C:\ProgramData\SynthesiaDev folder. I found the data folder "shell:appdata\SynthesiaDev" is it because I installed the Classroom installer last?
Locked