Keysight is a real-time MIDI visualization platform powered by Unreal Engine, built for piano-focused streamers and content creators, and featuring unmatched customization!
[h1]New stuff![/h1]
Hey folks, finally finished with an expansion to 1.4! This update contains all the little quality-of-life things that I didn't have time to build for the 1.4 release. Without further ado, here we go!
[h2]Pulse templates[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/dee8787efad4597e2a4ebcb5729235b6d2b68d70.gif[/img]
[i]Using Pillar, Flare, Spikes and Basic Circle pulse templates[/i]
Similar to particle systems, pulses now come in templates! This massively streamlines the process of building out a preset from scratch. There are 15 engine-default pulse templates, including some that rely on new note-release-reactive animation modes! You may be able to tell from the way default presets have been updated, but I'm a big fan of the Pillar + Flare combo to instantly make presets more flashy. Speaking of which...
[h2]Default presets[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/5702e56a50e48683ab1e10876a74d634485b6c11.gif[/img]
[i]Comparison between 1.4.1 (left) Gemstone and 1.4.0 (right) Gemstone[/i]
The engine-default presets have been updated to look a little nicer, have one extra member "Lilac", and take advantage of the new pulse features. Additionally, Keysight will prompt you to re-import default presets when there is an update. There is also a button in the System menu to do this at any time you like!
Unless you have very specific Keysight implementation goals, I recommend always keeping up to date on default presets. However, please be aware that if you edit a default preset without changing its name, your work will be overwritten with a default preset re-import. This is not saved to files until you choose to, so don't panic if this happens! Simply quit without saving and re-open Keysight.
[h2]Performance[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/22a22409fb1aa850dac03e55766c319f2e53e275.png[/img]
[i]Framerate during GPU-bottleneck testing using 2560x1440 with 200% resolution scale, default Chopin midi[/i]
I feel like every update I talk about performance, but... it's better again! By a very substantial margin, in many situations. Another optimisation pass was performed on the simulation CPU thread and GPU rendering. It's hard to put solid numbers on uplift, since performance wildly varies based on hardware, preset and resolution, but:
[list]
[*] In GPU-bottlenecked situations: between [b]40-100% better framerate. [/b]Usual amount seems to be around 65%
[*] In CPU-bottlenecked situations: between [b]40-110% better framerate. [/b]Usual amount seems to be around 70%
[/list]In depth testing results between 1.4.1 / 1.4.0 / 1.3.1 can be viewed [url=https://egglyberts.live/1.4.1%20benchmarking.png]here![/url] If your hardware behaves similar to mine, you may see less of a benefit than advertised due to being draw-thread bound on the CPU... but this seems to happen at comically high framerates anyway. If running on less powerful hardware and struggling to maintain 60fps thanks to a GPU bottleneck (which is the most common performance constraint), the uplift should feel pretty substantial!
[h2]Preset testing[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/733868182e0946f2d6ead55110f141a559710992.gif[/img]
[i]Using the new Lilac preset with "Heavy" testing preset and a 2 second loop time[/i]
There is now a toggle on the right hand side of the menu to activate what I like to call "turbo note testing". This has been a feature in every Keysight version to date, but only via a hotkey which was not explicitly explained to new users. This mode will automatically spawn random notes with a random duration and velocity, in order to both stress-test and to easily see your preset in action!
Additionally, this mode is now fully configurable under the Graphics tab (since configuration is primarily useful for stress-testing). Turbo note testing is also deterministic from a seed too, providing the opportunity to have repeatable random notes on a timer for benchmarking!
[h2]Custom textures[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/e5db3edc6a8bb6af6eeb439fa6f8cfa844bb74ba.png[/img]
Custom texture loading is now much smoother and faster. "Refresh" buttons have been completely retired, and now Keysight will simply auto-detect if you have a different number of files in the texture folder than are actually loaded, and reload as necessary upon opening a texture dropdown menu.
Basic menu mode also features a new "Image" mode for the Backdrop, allowing for fast and easy addition of a custom image as the background. No more fiddling with texture mapping and the Advanced material domain in the advanced menu!
[h2]Event logging[/h2]
[img]{STEAM_CLAN_IMAGE}/38079779/1a717e42ba1658bee5a92d62c2504f1399faf9a1.png[/img]
The midi log found in the Midi tab has been overhauled and moved into its own sub-menu. The Log tab now splits incoming midi events from live input and midi files into: Note on/off; Sustain pedalling; Other control changes (like soft pedalling, or pitch bend); and System messages. This should help with troubleshooting weird midi files or inputs (which happens more than I anticipated), along with keeping a copy of any pop-up on-screen messages.
[h1]What's next?[/h1]
[h3]Render to video [/h3]
I've been promising this for a LONG time, but now I'm actually in a position to focus on it!
Some other major things on my to-do list:
- "Widgets", or position-able extra elements like static lights, note counter UI, lightning bar at the key border, display note names on notes, etc
- Native Twitch chat control
- Better midi mapping tools for DJs and the like
- Better websockets
- Better stats
So as you can tell, I'm starting to feel that the core visual effects are missing some bolt-on extras but are [i]broooadly[/i] "finished". We'll see though, maybe some inspiration will strike and this entire roadmap will get scrapped in favour of doing something cooler!
Anyway, Happy Keysighting <3
[url=https://egglyberts.live/keysight/changelogs/1-4-1.txt]Full changelog[/url]