This page covers:

  • Render-to-video features
  • How render-to-video works
  • How specific features work
  • Limitations

This page does not cover how to effectively utilise render-to-video, see this guide for that.

Key features

  • Render profiles
  • Support for any resolution, up to 16,384 x 16,384
  • Any framerate between 10 - 240 (integer-only)
  • Downsampling (4x or 16x) to increase quality
  • Audio file mixing
  • Basic fade-in / fade-out control
  • Intro / watermark / outro image overlays

How render-to-video works

Unreal Engine 4 cannot natively export videos at runtime, and so render-to-video in Keysight relies on a number of workarounds. The overall process (simplified a little) is this:

  • Time calculation is advanced by a fixed amount per frame, regardless of how long the frame took to render
  • The main camera is disabled, and a scene-capture camera with arbitrary resolution is used
  • Scene camera draws the full-size image to a UI material
  • The material is exported (at a smaller resolution, if using Pixels-per-pixel greater than 1) to a JPG image on disk
  • Once all frames are rendered to the disk, FFMPEG is triggered to combine those frames into a video
  • Intermediate frames are then deleted

Info

FFMPEG is triggered by a tool external to Keysight called Vidgen,➚ created by HeapUnderflow➚ specifically for Keysight. Vidgen is open source, but fun reading through the Rust!

Info

It is possible to access the raw frames generated by Keysight, which can be useful if you need multiple screenshots of different presets at the exact same point in MIDI playback (something only I have a need for, most likely). When a render is cancelled, the intermediate frames are not deleted until a new render is started. The folder icon under MIDI > Global settings, Select frame directory will take you directly to those frames.

Warning

Due to caching all intermediate frames, the disk space requirements can be quite high for video rendering! An alternate folder for frame caching can be specified under MIDI > Global settings if you have a drive with more space, but a particularly slow drive (HDD as opposed to SSD) may cause issues. A conservative estimate (i.e. higher than is likely) for the frame cache size is given under the Render to video button.

Particle rendering modes

MIDI > Quality, Fidelity section

For partially unknown reasons, if the material export to disk happens on the same frame as particle simulation, particle pathing becomes incredibly broken. As such, Keysight must at least alternate every frame between simulating particles and exporting an image to the disk. MIDI > Quality, Fidelity section's Particle rendering controls this. Choosing the right particle rendering mode can drastically speed up renders, or ensure perfect quality export:

  • OFF - Particles are completely disabled, and Keysight both simulates and exports one frame per frame
  • FAST - (Default) Keysight simulates one frame, and then exports on the next frame (giving a rate of 1:2 export-to-simulation)
  • SAFE - Keysight simulates one frame, waits two frames, and then exports on the fourth frame (giving a rate of 1:4 export-to-simulation)
  • CPU - Keysight simulates particles on the CPU rather than the GPU, and both simulates and exports one frame per frame

Warning

FAST mode is likely to still contain one "broken" frame every couple thousand frames, where all particles on-screen collapse to a single point per-system for a single frame before fixing themselves. SAFE mode exists to counteract this, but it does slow the render down. If rendering a final-quality video, SAFE mode is strongly recommended.

Info

OFF mode is automatically used if no particle systems are currently being simulated during the render (i.e. the preset has no particles).

Warning

CPU mode is best used if you have very low-particle count systems that do not last very long. Under the right circumstances, CPU mode can be faster than FAST and be as risk-free as using SAFE. Under the wrong circumstances (i.e. lots of particles) it can contain broken particles every frame and also be substantially slower even than SAFE.

Feature details

Render profiles

Most settings for render-to-video operations are contained within Profiles. This allows you to quickly switch between different quality settings for rapid testing, or rendering different aspect ratios for different platforms.

Profiles

Some settings (such as Post FX and Layout) will either inherit a global set shared across all profiles or use their own local set, similar to global vs. local Core > Visual layout settings.

Resolution

MIDI > Quality, Fidelity section

The maximum internal resolution Keysight support is 16,384 x 16,384 in 1 pixels-per-pixel mode, or 8192 x 8192 in 4 pixels-per-pixel, or 4096 x 4096 in 16 pixels-per-pixel. The given resolution is the final frame export size; internally, the given resolution is multiplied by the square root of the pixels-per-pixel setting under MIDI > Quality, Fidelity section.

Warning

If rendering at high resolution, Keysight has a strong chance of crashing if your graphics card does not have enough VRAM. It is strongly recommended to not exceed 3840x2160 (4k) resolution at 4 pixels-per-pixel, and even then, the quality increase is not worth the crash risk and extra rendering time. I've only seen max-resolution renders complete on RTX 4080-class-and-above GPUs.

Framerate

MIDI > Quality, Fidelity section

Keysight has one-click buttons to set 30 or 60 frames-per-second as the render framerate, but the Custom field below these buttons allows for any integer value between 10 - 240.

Info

Keysight does not support dropped-timecode formats such as 59.97 or 23.974. It is strongly recommended to stick to 60 when making digital content, since the majority of display devices are 60Hz.

Pixels-per-pixel (downsampling)

Downsampling is the process of taking a larger image and making it smaller. In computer graphics, this can often give a substantial increase in quality due to combating aliasing and ensuring fine details are present.

Downsampling

The Pixels-per-pixel options control downsampling. At 1, there is no downsampling.

Warning

Using 16 pixels-per-pixel is incredibly taxing and may cause Keysight to crash. Most of the quality increase is already achieved with just 4 in any case.

Audio files

MIDI > Global settings, Audio section

Keysight does not generate or play back any audio. However, as part of exporting frames to a video via FFMPEG, an audio file can be included in the video. Supported formats are: .MP3, .WAV, .FLAC. Including an audio file in combination with fading and splash images can be a great way to save time video editing if you only need a basic MIDI visualisation video.

Warning

While Audio offset does allow for shifting the audio file playing start time, if your audio file does not sync with the MIDI file, this is almost certainly due to the audio file being generated with a different MIDI tempo than the one present in the file. This comes up with extreme regularity, and the culprit is always the digital audio workstation program that exported the audio doing so with some kind of additional tempo automation that is not present in the MIDI file as given to Keysight.

Fade-in, fade-out, and padding

MIDI > Post FX

To aid in making video editing optional for simple videos, Keysight can add padding and fading to the beginning and end of renders. The timing operates as following:

  • Padding-in time
  • MIDI file playback starts
  • Render fades in using given fade-in time
  • Render begins fading out from [MIDI playback end + time delay (if top down) time] - [fade out time]
  • MIDI file playback ends
  • Time delay time is added if in top down mode
  • Padding-out time

Branding images

MIDI > Post FX

Keysight can also add three images on top of the render, again with a view to remove video editing if making very simple videos. Supported formats are .PNG and .JPG, but .PNG is strongly recommended due to alpha channel support.

  • Intro splash image - shown for a set time from the start of the render
  • Watermark image - shown throughout the render, offset from each end
  • Outro splash image - shown for a set time at the end of the render

Branding diagram

Warning

These images are stretched across the whole render. Make sure they are the correct aspect ratio! Additionally, make sure the images are the exact same resolution as your final render for the best visual results (resampling on branding images is not as high quality as proper bicubic).

Settings reference

Source quality

This relates to the JPEG compression level used when exporting frames from Keysight to the disk.

  • LOW - 80%
  • MEDIUM - 85%
  • HIGH - 90%
  • ULTRA - 95% (default)
  • OVERKILL - 100%

Output quality

This relates to the FFMPEG settings used when combining frames into a video.

LOW

  • 30 CRF
  • faster encoding preset
  • 128KB/s AAC audio target

MEDIUM

  • 20 CRF
  • faster encoding preset
  • 224KB/s AAC audio target

HIGH

  • 10 CRF
  • medium encoding preset
  • 512KB/s AAC audio target (often encodes using less bitrate, ~256KB/s output)

ULTRA

  • 5 CRF
  • `slower encoding preset
  • 512KB/s AAC audio target (often encodes using less bitrate, ~256KB/s output)

Limitations

Transparent video

Transparent video is not supported by Keysight. However, transparency can be added via a video editor with some tricks, see this guide for more information.

Video compositing

Another common question is "can I add footage of my hands to my Keysight render?", to which the answer is no. Any video compositing will need to be performed in a video editor.

Video length

While there are no limits on video length, be very cautious about rendering long videos as all frames need to be cached to the disk. A 30 minute MIDI file might produce 60GB of intermediate files!