This build attempts to resolve some audio issues (drop-outs, latency) reported by users. It also addresses several other issues found during testing, seen in user videos, and mentioned by users.
If you were previously experiencing audio issues, please let me know in the discussions area if this build has resolved them. If issues persist, any details you can provide about your experience would help me find/fix them more quickly.
Watch the DevUp video for this build:
https://youtu.be/TEJ4wLU3zok
Details:
- Loss of synchronization between "audio time" and "system time" seems to be the main culprit for the audio drop-outs (described here and here). This build continually refreshes the sync, instead of only doing it at startup. It was incorrect to assume the sync remains consistent during app usage across all machines and scenarios.
- I have disabled some of the more advanced audio processing to help improve latency. I plan to reintroduce this later with performance improvements. The disabled features are related to the oscillators and low-pass filters used by Soundfonts. Oscillators typically provide "vibrato" and "wavy" effects, and the low-pass filters typically provide a nicer "expression" or "intensity" of sounds.
- The default audio buffer size is now 256 (instead of 512) which provides lower-latency audio. If you hear occasional "clicky" sounds in the middle of instrument sounds, or sounds that have their starting audio clipped off, please let me know. There are settings we can adjust to improve this -- the default settings may not work well for your particular machine/scenario.
- The "Unity Settings" window is no longer present. This allows you to launch EXA directly from Steam VR.
- The settings previously controlled by the "Unity Settings" window are now in the "AppSettings.json" file. The "App Settings" section of the EXA User Guide describes where to find this file, how to edit it, and what the various values mean. The new settings allow you to adjust values related to audio latency.
- Certain code-level errors and events are now sent to a remote logger. This will help me quickly discover, diagnose, and fix issues, without the need for users to dig up log files.
- For Oculus Touch input, the positioning of the "cursor" (used with the menu interfaces) is now corrected. Like the Vive input, the cursor should match the position of the tool's glowing white sphere.
- Fixed bug causing the loop-recorder to fail in an (uncommon) scenario where: loop length rounds backwards (to the nearest beat) and there is a recorded note now positioned outside the loop length.
- Added initial integration with the Steamworks API.
- Fixed an issue causing the drawings (and the "grab" triggers in general) to occasionally flicker to the "off" state during a grab. This would lead to broken line segments during drawing or failed attempts at multi-selecting ringers.
