2025-10-04 21:27 UTC · Community Announcements · Egglyberts
Hello hello, this is the Egg back at you with the 10th "no more patches" patch for Keysight!Hint systemI've backported a system from Keysight 2 that I've been working on implementing: hints. Think "loading screen hints", except they're on a bar at the bottom of the menu. A wise man (Tantacrul, actually) once said "it doesn't matter if your software has a feature, it only matters if people can find it and use it" and that is one heck of a sticking point with Keysight 1. There are 240 hints cycling at the bottom of the screen just sort of mentioning all sorts of stuff and giving little, well, hi
2025-06-22 11:37 UTC · Community Announcements · Egglyberts
Greetings! Super tiny update here. In fact, it isn't an update at all, but just an enabling of a Steam feature that I should have turned on a long time ago:Your Keysight data is now automatically synchronised to the cloud, allowing you to keep your presets as you move between different computers!This will not sync some folders of your save data, notably:Graphics settingsExportsIntermediate dataAll custom image textures will be uploaded. If you have a huge number of large image files, cloud sync may take a while to complete the first time! You may need to open Keysight and then close it again t
2025-06-05 15:32 UTC · Community Announcements · Egglyberts
Greetings! For those keeping score, this is now the 9th patch beyond "I'm not working on Keysight 1 anymore" Sliders The main change here is that the way in which sliders (and graph Y-axis) snap to a value when dragging the handle. This is not quite using the exact Keysight 2 code, but the principle is the same: snapping increments are now based on the actual size of the slider in screen pixels and the current bounds of the slider. This makes sliders feel a lot more uniform, especially when using "unusual" slider bounds. The snapping target is 10 pixels, and then the "closest nice number" is c
2025-04-09 21:39 UTC · Community Announcements · Egglyberts
Greetings! So umm... this should absolutely be "Keysight 1.7.0" or at least 1.6.4, but I said that 1.6.3 was definitely the final update for Keysight. So here we are. "Version 1.6.3g", which is definitely just a hotfix patch and nothing to do with features people have requested for years! Ultrawide support and forced aspect ratio Keysight's menu now scales much better on non-16:9 displays, and has configurable text size and preset bar width! {STEAM_CLAN_IMAGE}/38079779/13a907d201f0c99a4aeca0eea96856b840b337a5.jpg Keysight's menu will now pin to the left side of the screen, and not exceed a 16:
2025-01-21 13:56 UTC · Community Announcements · Egglyberts
Greetings! More of a "lukewarm" fix here than a "hotfix", but as they say: better late than never. 8k resolution rendering is now actually functional (for better or worse). I made a very silly mistake that stopped resolutions larger than 4,096 from being allowed in the Y axis in the last patch! I still strongly recommend that nobody use >4k resolutions for producing content, it's just far too much overhead and liable to make Keysight crash on lower-spec systems, but I don't want to actually enforce such a restriction in code. Also fixed: Channel colour mode breaking on time-offset Pulses and P
2024-12-20 08:28 UTC · Community Announcements · Egglyberts
Happy Holidays! We're now at the 6th update beyond what I called "the final update" (in my defence, I didn't add any new features this time). To get into the spirit of things and celebrate the Steam Winter Sale, here's a neat Christmas-themed preset created by Wilwolferine! (Download⬇) Just a reminder, but the Discord is the place for finding and sharing creations like these. Go join it if you haven't already! The Wiki is also (finally) coming together, with just Scene element pages left to write. I'll be honest, I wildly underestimated how much time writing documentation was going to take! {S
2024-10-22 13:51 UTC · Community Announcements · Egglyberts
Hello! We are now at the 5th update past "the final update" and counting, but here we go... While making some of my own content, I ran into some annoyances with Keysight and decided to fix them. Without further ado, here is the changelog: --- SMALL ADDITIONS --- Added a preset search function (only took 4 years) Added function to auto-focus the selected preset when the selected preset is changed Added support for render resolutions above 4096x4096 pixels. I strongly recommend not doing this though, Keysight is liable to crash! Added blending mode support to Light Bar Wisp and Plasma objects, a
2024-06-27 17:33 UTC · Community Announcements · Egglyberts
Four years! Greetings! It's that time of year again: the Keysight anniversary. Oh, and I guess the Steam Summer Sale too, so Keysight is 30% off! I've also been working hard on something that turned out to be way bigger than anticipated: The Keysight Wiki Here it is! This site aims to replace the Steam guides with something a lot more cross-linked and searchable now that Keysight is in its "final state". {STEAM_CLAN_IMAGE}/38079779/d900ef88cf4abc42716edaf10ca6c85c9fe4e14c.png The Wiki aims to mitigate what I see as the core problem with Keysight 1: usability and user education. Keysight 1 can
2024-03-18 13:19 UTC · Community Announcements · Egglyberts
Hello! I got my hands on some new performance testing utilities and ended up making a couple changes, wanted to push it as a build so everyone benefits. 1.6.3a (Windows-only) contains the following changes: --- SMALL ADDITIONS --- Added a "Disable frame-smoothing optimisations" toggle to Graphics > Framerate. This applies "RHI.MaximumFrameLatency 0" and "RHI.SyncSlackMS 10" in the event that the new default behaviour of "RHI.MaximumFrameLatency 1" "RHI.SyncSlackMS 0" somehow causes issues for anyone. --- CHANGES --- Changed Pulses to switch to mask-capable mode only when Mask Mode is enabled,
2024-02-15 16:41 UTC · Community Announcements · Egglyberts
Greetings! In this update... - New default presets - Polished particle / pulse templates - Better organised light bars - New custom-commissions service on offer - Far too many words, GIFs and videos Have you ever ended up with a file called "thing_final_final_v4_new"? In unrelated news, I am pleased to announce the final version of Keysight (1.6.3) is now available! This update focuses on the default resources bundled with Keysight, incorporating new Keysight-usage techniques that bring visuals to the next level! All default presets / particles / pulses / light bars have been edited to a great
2023-12-08 12:18 UTC · Community Announcements · Egglyberts
Hello! It's, err, me again. Another hotfix, although this is more of a coldfix at this point! Activity and Notes-per-second colour mode are now functional once more and not stuck at 0.00 blending factor. Please note that as this is a Windows-only fix for a bug introduced way back in 1.6.0, MacOS still suffers from broken Activity/NPS modes and will remain that way. I am so sorry for letting this slip through at the time and now have no way of updating the MacOS branch :( Big thanks to Plain-Piano in the Discord for bringing this to my attention! In the process of fixing things, I did have to r
2023-11-11 13:30 UTC · Community Announcements · Egglyberts
Hey folks! Tiny hotfix here addressing an oversight with the Channel colour mode. No idea how, but particle systems were just not using the new mode at all. Apologies for that! While I'm posting here I'd like to mention that Keysight 2 devlogs are now a thing on Youtube! If you're curious about what Keysight 2 is going to look like and would like to keep up on development, get subscribed!
2023-09-05 10:31 UTC · Community Announcements · Egglyberts
Hello! Teeny tiny update (Windows-only) to add a necessary feature for a streamer to achieve a specific implementation. Only two changes: Pulses which are translucent and always fully opaque (that is, 1.00 opacity across opacity-by-velocity and opacity-by-lifetime-1/2) will now be masked in mask mode. While in this mode, they also slightly move downwards over time in order to properly perform transparency sorting. This allows masking of "note object replacement" pulses. Fixed midi transposing breaking test inputs Now, I better get back to Keysight 2 development!
2023-05-24 12:29 UTC · Community Announcements · Egglyberts
A notice to MacOS users Regretfully, 1.6.2 will not be available on MacOS. This is for the very lame reason that I told my external developer in charge of MacOS porting that 1.6.1 was definitely the final Keysight update. They have therefore torn down the necessary Unreal Engine setup required to create more builds. My deepest apologies! Very much my fault, but I'm not about to ask them to re-figure-out the outrageous hoops to jump through to get certain plugins working on Mac. Surprise! Hey so err, remember when I boldly announced "no more Keysight 1.X updates, I'm working on Keysight 2.X"? W
2023-03-06 15:25 UTC · Community Announcements · Egglyberts
Hello! I am very pleased to announce that 1.6.1 is done and live! This update originally started as a simple "let's just quickly add preset import/export", but exploded out into a number of high-priority bugfixes and some small tweaks to existing systems which massively expand the possibility space for what can be achieved with Keysight. Please note that 1.6.1 will be the final update for Keysight 1.X. However, this is not the end of the Keysight development journey! More information at the end of this announcement, but let us first talk about what's new... Preset import / export Sharing prese
Full appinfo as delivered by Steam PICS, changenumber 38297717. Also at /api/app/1325730/raw.
{
"appid": "1325730",
"common": {
"name": "Keysight",
"type": "Application",
"releasestate": "released",
"oslist": "windows,macos",
"osarch": "64",
"osextended": "macos64",
"logo": "b35df94924923b7c07dd3dd7d6e77037c5195816",
"logo_small": "b35df94924923b7c07dd3dd7d6e77037c5195816_thumb",
"icon": "608dd0364fb633fed9eda3294146308aa4429fad",
"clienticon": "c984ae2f644f16c1025d403a359418a5af562862",
"clienttga": "f8bf4eed0ea63ee3ebcc81c6734c981e649e4724",
"steam_deck_compatibility": {
"category": "1",
"steamos_compatibility": "1",
"steam_machine_compatibility": "1",
"test_timestamp": "1658534400",
"tested_build_id": "0",
"tests": {
"0": {
"display": "2",
"token": "#SteamDeckVerified_TestResult_SteamOSDoesNotSupport_Software"
}
},
"steam_machine_tests": {
"0": {
"display": "2",
"token": "#SteamMachine_TestResult_SteamOSDoesNotSupport_Software"
}
},
"steamos_tests": {
"0": {
"display": "2",
"token": "#SteamOS_TestResult_SteamOSDoesNotSupport_Software"
}
},
"configuration": {
"supported_input": "other",
"requires_manual_keyboard_invoke": "0",
"requires_non_controller_launcher_nav": "0",
"primary_player_is_controller_slot_0": "0",
"non_deck_display_glyphs": "0",
"small_text": "0",
"requires_internet_for_setup": "0",
"requires_internet_for_singleplayer": "0",
"recommended_runtime": "proton-stable",
"requires_h264": "0",
"requires_voice_files": "0",
"gamescope_frame_limiter_not_supported": "0",
"hdr_support": "0",
"requires_proton_soundfonts": "0"
}
},
"controller_support": "partial",
"small_capsule": {
"english": "capsule_231x87.jpg"
},
"header_image": {
"english": "header.jpg"
},
"library_assets": {
"library_capsule": "en",
"library_hero": "en",
"library_logo": "en",
"library_header": "en",
"logo_position": {
"pinned_position": "BottomLeft",
"width_pct": "100",
"height_pct": "100"
}
},
"library_assets_full": {
"library_capsule": {
"image": {
"english": "library_600x900.jpg"
},
"image2x": {
"english": "library_600x900_2x.jpg"
}
},
"library_hero": {
"image": {
"english": "library_hero.jpg"
},
"image2x": {
"english": "library_hero_2x.jpg"
}
},
"library_logo": {
"logo_position": {
"pinned_position": "BottomLeft",
"width_pct": "100",
"height_pct": "100"
},
"image": {
"english": "logo.png"
},
"image2x": {
"english": "logo_2x.png"
}
},
"library_header": {
"image": {
"english": "library_header.jpg"
}
}
},
"store_asset_mtime": "1754417004",
"associations": {
"0": {
"type": "developer",
"name": "Jack Sweet"
},
"1": {
"type": "publisher",
"name": "Jack Sweet"
}
},
"primary_genre": "53",
"genres": {
"0": "53",
"1": "58"
},
"category": {
"category_18": "1",
"category_23": "1"
},
"supported_languages": {
"english": {
"supported": "true"
}
},
"steam_release_date": "1593514847",
"community_hub_visible": "1",
"gameid": "1325730",
"exfgls": "6",
"store_tags": {
"0": "5411",
"1": "8253",
"2": "1752",
"3": "599",
"4": "9204",
"5": "1643",
"6": "4191",
"7": "1654",
"8": "784",
"9": "5125",
"10": "1714",
"11": "19",
"12": "84",
"13": "4166",
"14": "4182",
"15": "8013"
},
"review_score": "8",
"review_percentage": "96"
},
"extended": {
"developer": "Jack Sweet",
"publisher": "Jack Sweet"
},
"config": {
"installdir": "Keysight",
"launch": {
"0": {
"executable": "Keysight\\Binaries\\Win64\\Keysight-Win64-Shipping.exe",
"type": "default",
"config": {
"oslist": "windows"
}
},
"3": {
"executable": "Keysight-Mac-Shipping.app/Contents/MacOS/Keysight-Mac-Shipping",
"type": "default",
"config": {
"oslist": "macos"
}
},
"4": {
"executable": "Keysight.app/Contents/MacOS/Keysight",
"type": "default",
"config": {
"oslist": "macos",
"betakey": "legacy"
}
},
"5": {
"executable": "Keysight.app/Contents/MacOS/Keysight",
"type": "default",
"config": {
"oslist": "macos",
"betakey": "legacy2"
}
}
}
},
"depots": {
"228983": {
"config": {
"oslist": "windows"
},
"depotfromapp": "228980",
"sharedinstall": "1"
},
"228984": {
"config": {
"oslist": "windows"
},
"depotfromapp": "228980",
"sharedinstall": "1"
},
"228985": {
"config": {
"oslist": "windows"
},
"depotfromapp": "228980",
"sharedinstall": "1"
},
"228988": {
"config": {
"oslist": "windows"
},
"depotfromapp": "228980",
"sharedinstall": "1"
},
"228990": {
"config": {
"oslist": "windows"
},
"depotfromapp": "228980",
"sharedinstall": "1"
},
"1325731": {
"config": {
"oslist": "windows"
},
"manifests": {
"public": {
"gid": "8998213993541567840",
"size": "1287695680",
"download": "547833408"
},
"legacy": {
"gid": "1388857117090476157",
"size": "399840167",
"download": "224994576"
},
"legacy2": {
"gid": "7419248706789835580",
"size": "516207942",
"download": "237158992"
},
"legacy3": {
"gid": "441241025072065161",
"size": "678843810",
"download": "353853632"
},
"legacy4": {
"gid": "3323465169693041444",
"size": "724594387",
"download": "382165040"
},
"1.4.1": {
"gid": "5135901858889878247",
"size": "723065895",
"download": "382375792"
},
"1.5.0": {
"gid": "2025067562971343048",
"size": "841427330",
"download": "425468384"
},
"beta": {
"gid": "9052263295486248913",
"size": "1287738802",
"download": "547877328"
}
}
},
"1325732": {
"config": {
"oslist": "macos"
},
"manifests": {
"public": {
"gid": "1845123941492519635",
"size": "1114267151",
"download": "649131296"
},
"legacy": {
"gid": "8665880909297683846",
"size": "449012459",
"download": "192419680"
},
"legacy2": {
"gid": "3094020383015889424",
"size": "494368365",
"download": "238007312"
},
"legacy3": {
"gid": "4814481778802881252",
"size": "687631095",
"download": "381090128"
},
"legacy4": {
"gid": "2156275757415355716",
"size": "935689565",
"download": "375780192"
},
"1.4.1": {
"gid": "5960188721967065664",
"size": "810041580",
"download": "363363472"
},
"1.5.0": {
"gid": "5272763896085948966",
"size": "835045268",
"download": "452905232"
},
"beta": {
"gid": "1845123941492519635",
"size": "1114267151",
"download": "649131296"
}
}
},
"baselanguages": "english",
"branches": {
"public": {
"buildid": "20255297",
"timeupdated": "1759613195",
"timebuildupdated": "1759611839"
},
"legacy": {
"buildid": "5428377",
"description": "1.1.3b - pre-menu rework. Very old and bad.",
"timeupdated": "1607780981",
"timebuildupdated": "1597776557"
},
"legacy2": {
"buildid": "6140896",
"description": "1.2.2c - pre-particle rework",
"timeupdated": "1622113215",
"timebuildupdated": "1611682356"
},
"legacy3": {
"buildid": "7030239",
"description": "1.3.1 - pre-second menu rework",
"timeupdated": "1633419436",
"timebuildupdated": "1626293141"
},
"legacy4": {
"buildid": "7927657",
"description": "1.4.0 - final chance to up-convert data",
"timeupdated": "1640187107",
"timebuildupdated": "1640185111"
},
"1.4.1": {
"buildid": "8245110",
"description": "Last update prior to render-to-video update",
"timeupdated": "1652264247",
"timebuildupdated": "1645456872"
},
"1.5.0": {
"buildid": "9455948",
"description": "Last update prior to camera and state machine reworks",
"timeupdated": "1666128108",
"timebuildupdated": "1662409645"
},
"beta": {
"buildid": "21210148",
"description": "This will be the first place new features are published",
"timeupdated": "1765899131",
"timebuildupdated": "1765899023"
}
},
"privatebranches": "1"
},
"ufs": {
"quota": "10000000000",
"maxnumfiles": "10000",
"savefiles": {
"0": {
"root": "gameinstall",
"path": "Keysight/Saved/Light bars",
"pattern": "*",
"recursive": "1"
},
"1": {
"root": "gameinstall",
"path": "Keysight/Saved/Particles",
"pattern": "*",
"recursive": "1"
},
"2": {
"root": "gameinstall",
"path": "Keysight/Saved/Presets",
"pattern": "*",
"recursive": "1"
},
"3": {
"root": "gameinstall",
"path": "Keysight/Saved/Presets (backup)",
"pattern": "*",
"recursive": "1"
},
"4": {
"root": "gameinstall",
"path": "Keysight/Saved/Pulses",
"pattern": "*",
"recursive": "1"
},
"5": {
"root": "gameinstall",
"path": "Keysight/Saved/SaveGames",
"pattern": "*",
"recursive": "1"
},
"6": {
"root": "gameinstall",
"path": "Keysight/Saved/Textures",
"pattern": "*",
"recursive": "1"
},
"7": {
"root": "gameinstall",
"path": "Keysight/Saved/Textures (randomizer enabled)",
"pattern": "*",
"recursive": "1"
}
},
"rootoverrides": {
"0": {
"root": "gameinstall",
"os": "Windows",
"oscompare": "=",
"useinstead": "WinAppDataLocal",
"addpath": ""
},
"1": {
"root": "gameinstall",
"os": "MacOS",
"oscompare": "=",
"useinstead": "MacAppSupport",
"addpath": ""
}
}
}
}