Keysight Changelog

What's new in Keysight 1.6.2a

Oct 18, 2023
  • 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

New in Keysight 1.6.2 (May 31, 2023)

  • OVERHAULS:
  • Added an expansion to particles under the "Wind" tab: point-based force! This allows particles to globally be attracted/repulsed by a single point in space and is enormously customisable. "Black hole" has been a popular request, and these new options allow it to happen. But they also allow for all sorts of weird behaviour; I look forward to seeing what people create with it!
  • Removed the limit on colour slots! Previously, Keysight always assumed you had a maximum of 12 colours. The new maximum is 88 (I'll give you three guesses why). Having a lot of slots is unwieldy, but 88 slots in Series mode allows specific notes to have a specific colour (which has long been requested). When using 12 slots or fewer, Keysight will still store the unused colours. Beyond 12 slots, lowering the number of slots WILL remove the colour data, so be cautious! However, adding more slots beyond 12 will make those slots appear with the last-used colour
  • Added a new colour mode as well! "Channel" should be very straightforward: it simply uses the channel to pick a static colour. This channel can come from either midi channels or midi tracks (to use tracks, ensure "use midi track as channel" is enabled in System > Interface > Midi and rendering)
  • Added a new particle render mode to "Quality" settings inside render profiles. The "CPU" render mode will simulate particles on the CPU rather than the GPU, which removes the need to stall the render process while particles simulate cleanly. In testing, CPU performs about the same as FAST, but performs more than 2x faster than SAFE, while retaining the benefits of guaranteed-perfect particles from SAFE. Beware though: do not use CPU on very high-count particle systems (all native templates are fine, but 100k-per-second custom particles will NOT work in CPU mode and may crash Keysight)
  • SMALL ADDITIONS:
  • Added warning to particle Shape tab to warn about non-square resolution images to bring parity to Pulse menu equivalent
  • Added "release-notes" and "panic-button" action option to websocket triggerable actions
  • Added stencil preview to Pulse menu, including showing sprite sheet animations (uses 0.5 velocity, if dynamic framerate is enabled)
  • Added "display message" event to send current preset information to the inbound websocket on first connection (this is basically just something for my own stream, don't worry about it)
  • Added option to disable mirroring of particle systems, allowing them to travel in a specific direction horizontally
  • Added warning to flip-vertically option in particles' Location tab to hint that you probably want to use time-offsets and auto-release to make this effect work nicely
  • CHANGES:
  • Changed render-to-video particle-based "frame gearing" (slowing down of render to ensure particles are correctly rendered) to always take effect specificially on macOS. This is intended to help people running on Apple Silicon where having no particles can cause some code to execute improperly during render-to-video operations; most notably causing jiggling notes
  • Changed particle shape preview to be twice as large
  • Changed wording on high midi event density warning on midi file import
  • Changed render to video output filename formatting to clamp midi file name to 16 characters, removed seconds time from name, and added YYYY-MM-DD after name + render profile
  • Changed full template editor mode in Advanced Particles to be saved to the system settings, so Keysight remembers the status and doesn't need to be re-toggled every time
  • Changed layout of particle ambient wind activity sliders
  • Changed name of "Key position" colour mode to "Gradient", and "Notes per second" to "Notes /sec."
  • Changed "Random" colour mode warning to be red and centered
  • Changed colour slot labels to be more useful in "Gradient" (previously key position) mode. Slots now show the key that the slot will be most visible on (note that the "real" position of a colour slot if using >2 slots for a gradient can be "in between" keys, and therefore the slot label is only approximate)
  • Changed testing note state channel to use channel 0 rather than, for some reason, channel 10
  • Optimised Pulses to use an easier-to-render material if not using world-masking or sprites
  • Optimised Pulse sprite frame calculation to be more efficient and robust
  • Removed warning for when midi file is on different drive to save data, as this has never actually caused an issue (it seems)
  • BUG FIXES:
  • Fixed critical crash relating to attempting to use a Pulse stencil with a height greater than its width
  • Fixed Fire default preset keypress material not having the intended reflection properties (now looks a lot nicer!)
  • Fixed around 50% of particle templates mysteriously having ambient wind enabled. I have no idea how this turned itself on for just *some* of the particle templates, but it's disabled again now
  • Fixed macOS distribution containing an included backup of a preset which is not supported on macOS
  • Fixed pulses and particles showing a line of pixels at the border if the opposite border had pixels adjacent to it (clamped sampling to avoid resample artifacts at edges)
  • Fixed particle rotation rate randomness applying per-frame to all particles, resulting in jittery notes without any functional rotation rate randomness
  • Fixed particle rotational alignment occasionally doing silly things like spinning the image 360 degrees when velocity direction changed by 180 degrees
  • Fixed regression where midi hotkey action menu simply did not respond when clicking "add"
  • Fixed overlay Z-height not updating when moving slider (required a full preset update). Now responds to live input
  • Fixed splash/watermark/outro images in render-to-video branding not updating to new selection on render until another setting is edited
  • Fixed .kspreset exporting to be much more robust in the face of rogue "." characters in the export path

New in Keysight 1.6.1 Beta (Feb 17, 2023)

  • Midi channel to preset mapping can now fully ignore channels if desired, and is pre-set-up to assist new users in getting to grips with this feature
  • All objects that can be illuminated now have full lighting channel control
  • Improved keypresses to give users with multiple scene lights options to work around the limitation that only one scene light can illuminate a semi-transparent keypress indicator
  • Fixed camera X-roll values applying incorrectly if local roll was not 90. This may alter manual camera angles which use X-roll and non-standard local-roll at the same time
  • Fixed particles rotating to face camera in manual camera mode
  • Fixed soft pedal bloom/exposure modification rendering during render-to-video

New in Keysight 1.6 (Dec 27, 2022)

  • Reflections! Materials in the Advanced mode can now "reflect" a given image, allowing for tons of cool new visual effects
  • Video rendering profiles that allow quickly switching between settings, along with support for any resolution and aspect ratio
  • Piano and frame 3D model rebuild, with new keypress "coverage" modes to vastly improve the fine details in scene appearance
  • A new, simpler method for setting up a scene layout: "auto cam" mode
  • Support for 16 channels of simulation, allowing multi-track visualisation even when those tracks use the same notes
  • Particle ambient wind and height adjustment
  • Scene lights for lighting-channel-driven ambient lighting

New in Keysight 1.3.1 (Aug 4, 2021)

  • Enhancements:
  • Documentation improvements for 40.2 (#17303)
  • Add Metabase Cloud link to admin settings for hosted instances (#17134)
  • Fix dashboard card hovering buttons drag behaviour (#17130)
  • Popover footer is displaced when using filter with a search input (#16830)
  • Padding needed for button on map setti OVERHAULS ---
  • Custom textures can now have their presence in the randomizer controlled! This means if you import custom textures for a specific preset, those textures (by default) will not appear in the randomizer pool. There are now two folders in the Saved directory that contain textures: the standard /Textures and the new /Textures (randomizer enabled). Placing textures in either will cause them to appear in the menus, but only textures in the randomizer enabled directory will be pulled from in the randomizer. The "open folder" button for textures will point to the non-randomizer-enabled texture path (/Textures)
  • Changed the Cycling colour mode! Now uses a beats-per-minute measurement for speed rather than an arbitrary value (one beat = one colour slot). Presets will be auto-converted to the new speed values, but you may want to double check any cycling colour presets are behaving as intended
  • SMALL ADDITIONS:
  • Added particle shape preview to Basic menu mode particles sub-menu
  • Added "panic button" to Midi menu, also accessible immediately using the backspace key. This button will remove all current effects and reset all simulation values to their defaults, intended as a backup in case you do something silly like use a 100.0 height area with 0.1 note speed and, several minutes in, decide you don't want to wait another 10 minutes for the note to disappear
  • CHANGES:
  • Changed pulses to always multiply the output colour by the pulse stencil colour. This means if you import a custom texture with, say, rainbow stripes and use a white pulse colour, your pulse will be rainbow striped without needing to also specify the texture as an emissive texture overriding the colour
  • Changed particles to also always multiply by stencil colour in the same way, and deprecated this option in the menu
  • Changed all text entry fields (except console command field) to consistently apply text entry on focus-move, not just on enter-key. Clicking off text fields will now not give a 50-50 whether that specific field needed an enter-key-press to apply the change!
  • Slightly altered particle randomization ranges
  • BUG FIXES:
  • Fixed non-vsync framerate locking not applying correctly on launch, and being disabled when toggling mask mode
  • Fixed notes getting "stuck" when rapidly switching between bottom up and top down mode in the setup wizard
  • Fixed setup wizard midi device selection not updating the selected midi device in the Midi menu, potentially double-binding a midi device and causing issues
  • Fixed pedal preset switching. As in, it was completely broken, and now it is not broken. Sorry!
  • Fixed edge case where notes could occupy the same space, and the piano simulation believed the note was not pressed if the engine received a note off + note on event in the same frame. Particle systems may still overlap
  • Prospective fix for control change events not broadcasting correctly in top-down note mode. Sostenuto/sustain pedals should no longer be "stuck down" sometimes
  • Prospective fix for colour slots slipping out of sync while using Cycling colour modes (found some bugs as part of overhauling this and fixed them, but there may still be issues)ngs page (#16612)
  • LDAP/Email settings gets cleared if validation fails (#16226)
  • Modify instead of replace default EB nginx config (#5623)
  • Bug fixes:
  • Snippet folder permissions are always applied to root (#17268)
  • Cannot start development in VS Code because of missing Node.js (#17233)
  • Search widget on question builder hangs tab, API field search limit not respected (#17228)
  • Only 50 groups are displayed (#17200)
  • People search dropdown goes outside of the screen (#17186)
  • Only 50 users shown in email autocomplete and "Other user's personal collection" (#17164)
  • Dashboard - Adding ‘Click Behavior’ to an image field converts image to URL (#17161)
  • Cannot upgrade to v0.40.x on AWS Elastic Beanstalk due to AWS Inspector not being available in certain regions (#17143)
  • Elastic Beanstalk nginx config is not updated on latest EB docker images (#17115)
  • Cannot deactivate users after the first 50 users (#17113)
  • Tabs in the Audit section look broken (#17102)
  • Duplication of the displayed table (#17060)
  • Allow selecting text in Textbox cards, while dashboard is in edit-mode (#17039)
  • Metabase on old AWS Elastic Beanstalk (Amazon Linux w/ old Docker) upgrade to 0.40 failed (#17012)
  • Public Sharing footer is double-size because action buttons are stacked (#16798)
  • Error when setting column type to Number in data model settings (#16781)
  • Site URL can sometimes be incorrectly defined during startup (#16754)
  • Serialization: Visualization column settings lost (#16150)
  • Waterfall visualization does not work with ordinal X-axis (#15550)
  • Clicking "Cancel" on collection archive modal should let you stay in that same collection (#15289)
  • Snowflake Connector Requires Deprecated Region Id (#10142)

New in Keysight 1.3.0 Preview 4 (May 14, 2021)

  • Updated to engine version 4.26.1
  • Fixed flycam failing to update camera angle variables while in global core mode
  • Fixed flycam toggling not updating cursor visibility correctly under all circumstances
  • Fixed user-defined custom angle not saving / applying at all
  • Fixed websocket triggers being case sensitive
  • Fixed reloading textures clearing selected option in particle menus for particle shape
  • Fixed tiny spinning grey pixels in very top right of the screen. Look err, don't worry about it, ok?
  • Fixed bloom effects not being visible in mask mode
  • Changed mask mode to force FXAA if T-AA is selected, as T-AA causes horrific artifacting with new mask mode postprocess domain settings to fix bloom issue
  • Changed randomizer to force impact lights to use light falloff exponent of 6.0, just in case this has been changed from default in a preset being randomized from (this value works well across the board)
  • Added randomization for impact light candle flicker variables, not just the toggle
  • Added shape option to pulse settings to reflect mask option in pulse material settings (to more easily control pulse shape without digging into material settings)

New in Keysight 1.3.0 Preview 2 (Feb 25, 2021)

  • Fixed camera Z location input defaulting to 1.0 if clicking on the text entry field and then clicking off
  • Fixed "disable websocket actions" websocket action from sending response message "unrecognized command" despite being recognized and executed
  • Fixed keypress indicators fading out badly when animating horizontal/vertical fades. Axis-based fades are now performed as an alpha mask rather than a model scale
  • Fixed mask mode not applying correctly on Keysight launch
  • Optimised material picker sliders to not excessively call updates while snapping is enabled
  • Optimised mask mode. Mask mode now has near-zero performance impact! Also supports resolution scale, allowing anti-aliased edges on angled objects if you have the GPU overhead to handle a >100% resolution scale
  • Changed how global core settings work in the data-handling sense. Core settings will need to be rebuilt by the user, but no functionality has changed
  • Changed some default settings, notably key length to showcase new piano model a little more (sue me.)
  • Changed wording on some setup wizard warnings
  • Changed setup wizard to not save newly created save references until wizard is completed, avoiding edge case where user closes Keysight (or Keysight crashes) mid-setup and does not automatically see the wizard again after re-launching
  • Added warning when using mask mode with T-AA, as this can cause strange visual behaviour at the boundary between image portions

New in Keysight 1.3.0 Preview 1 (Feb 20, 2021)

  • Fixed ambient brightness text having broken mouse-over text
  • Fixed "cull horizontal" text not being bound to specified menu style text colour
  • Fixed "refresh midi files" causing duplicate midi devices to appear in midi device menu in Midi tab
  • Optimised randomize function to only update necessary scene components, potentially resulting in less chance of frame stutter on extremely fast loop-randomizing
  • Optimised colour picker sliders to only call their update function when needed if snapping is enabled, should make some menu elements more responsive
  • Changed piano simulation in the upper register. At Ab6 and above, note activity is calculated using sustain lifetime even if not sustained
  • Changed sorting method for particle materials. Should be more reliable, layering-wise, when using many types of large particle at once
  • Changed randomizer chance generation ***all old seeds now give different results, sorry!*** Disabling or editing randomizer branch options will no longer impact other branches
  • Changed dynamic shadow casting settings. Shadow resolutions are now much higher and smoother by default!
  • Changed midi print text to show the internal control ID used (normalized such that A0 = 0) rather than the pure midi control ID
  • Changed piano model! Black keys are more accurately positioned, shape and gaps between keys are true to real pianos, frame shape has been updated (accurate to Roland FP-30 style, for the most part)
  • Added piano key randomization support for Advanced material type
  • Added damper visualization! Disabled by default, found under Scene > Visibilities
  • Added realistic key animations! Complete with bounce on fast note-off events
  • Added sostenuto pedal simulation to note activity simulations!
  • Added piano felt colour option
  • Added lighting channel response options to frame
  • Added midi event log to Midi menu to assist in debugging any strange midi behaviour, or dial in piano simulation variables
  • Added option to Graphics for controlling shadow quality (maps to r.Shadow.MaxResolution 256 / 512 / 1024 / 2048 / 4096 / 8192, not recommended to use 8192, 1024 was the previous default)
  • Added option to Graphics for post-process image sharpening
  • Removed midi device selector in System tab

New in Keysight 1.2.0 Beta (Nov 1, 2020)

  • Sleeker and more intuitive menu
  • Infinite preset slots
  • Reworked Ring objects, these are now modular "pulses" and are highly configurable
  • Seed-based randomization
  • An undo-redo system
  • An experimental "masking" mode for achieving perfect semi-transparency without use of a chroma-key