VCV Rack changelog
In this document, Ctrl means Command (⌘) on Mac.
2.5.3 (2025-03-26)
- Fix failure to launch on Windows 7.
- Rack Pro
- Audio Unit: Fix crash when sending multiple MIDI CC messages to plugin simultaneously.
2.6.2 (2025-03-17)
- Fix incorrect audio driver being loaded from patches made in Rack ≤2.6.0.
- Fix Mac installer creating duplicate app bundle.
2.6.1 (2025-03-14)
- Add UI translations for:
- German
- Spanish
- French
- Italian
- Chinese (Simplified)
- Japanese
- Add Chinese, Japanese, and emoji fonts.
- Accept Unicode text in text fields.
- Add "View > UI scale" menu setting.
- Add note voltage constants to parameter expression evaluator such as
C4v
, A#5v
, Gb0v
, etc.
- Allow installing to user Applications and plugin folders on Mac.
- Remember last patch and selection folder after creating a new patch.
- Fix loading/saving patches on Mac x64.
- Fix non-ASCII audio device names displaying as blank on Windows.
- Fix key command mapping and names on non-QWERTY keyboard layouts.
- Use Mac-native arrow key commands for navigating text fields.
- Rack Pro
- Fix automation parameter values resetting to 0.0 upon initialization in VST3 in some DAWs.
- Allow VST3 plugin to receive 16 MIDI channels of MIDI CC, pitch bend, and channel aftertouch.
- Improve CLAP plugin loading speed.
- Core
- Fix DC filter accuracy of Right input when normalled to Left input in VCV Audio 2.
- Change default MIDI CC numbers of VCV MIDI CC to CV and VCV CV to MIDI CC modules to 1-16 instead of 0-15.
- API
- Add
Widget::KeyBaseEvent::isKeyCommand()
for checking key commands on all keyboard layouts.
- Add
settings::language
global variable.
- Add
string::UTF32toUTF8()
, UTF8toUTF32()
, and UTF8*()
functions.
- Update to zstd 1.5.6 and libarchive 3.7.7.
- Update RtAudio.
2.6.0 (2024-11-20)
- Add ability to grab all plugs stacked on a port with the "All cables" menu item.
- When dropping a plug on a port, always stack it on top of other plugs.
- Add "View > Zoom to fit modules" to menu bar with key command F4.
- Add "Zoom to fit" to module context menu with key command Ctrl+F4.
- Add "View > Mouse wheel" setting to make mouse wheel zoom instead of scroll.
- Add parameter value functions
vtobpm()
and bpmtov()
.
- On non-QWERTY keyboards, use QWERTY key positions for key commands instead of letters.
- Render 2-stop linear/radial gradients with any stop offsets and transformations in SVG.
- Rack Pro
- Fix VST3 plugin forcing DAW MIDI input to channel 1.
- Allow VST3 plugin to receive MIDI CC, pitch bend, and channel aftertouch.
- Core
- MIDI to CV: When sustain pedal is released in monophonic mode, turn off gate if no notes are held.
- API
- Don't combine SDK packages for Mac-x64 and Mac-arm64.
- Update to libcurl 8.10.0 and OpenSSL 3.3.2.
- Add
dsp::MidiParser
class.
2.5.2 (2024-05-09)
- Add configurable cable color labels.
- When duplicating module with cables, duplicate cables connected to module's outputs as well as inputs.
- Allow building multi-arch x64+arm64 "Universal" Mac binary.
- Optimize engine's cable stepping algorithm to be as CPU-efficient as non-stackable inputs.
- Limit log file size to 10 MB.
- API
- Define
ARCH_*
macros in arch.hpp
header (included in rack.hpp
) instead of in compiler flags.
2.5.1 (2024-04-16)
- Remember the last selected cable color from the port's "New cable" menu item. When "Auto-rotate cables" is enabled, the next color in the rotation is used.
- Fix crash when modules such as VCV MIDI-Map bind parameters.
- If loaded patch contains unavailable modules, don't close Rack after user chooses to open them in VCV Library. Instead, load patch without these modules so user can download them.
- Add error dialog if moving Rack's user folder to new location fails.
2.5.0 (2024-04-08)
- Allow stacking cables on input ports. Cable voltages are summed.
- Ask to view unavailable modules on the VCV Library when loading a patch.
- Add "View > Cable colors" menu to edit cable colors and disable auto-rotating colors.
- Add parameter value functions
gaintodb()
(gain factor to decibels), dbtogain()
, vtof()
(1V/octave voltage to frequency), and ftov()
.
- Move Rack user folder to:
- Mac:
~/Library/Application Support/Rack2
- Windows:
AppData/Local/Rack2
- Linux:
~/.local/share/Rack2
- Update Mac icon.
- If Microphone permission is blocked on Mac, show warning dialog on startup.
- Add
"verifyHttpsCerts"
setting to disable verifying HTTPS certificates.
- Rack Pro
- Fix MIDI note velocity scale in CLAP adapter.
- API
- Don't zero output port voltages when disconnecting cables.
- Fix
ExpanderChangeEvent
not being dispatched when removing an adjacent module.
2.4.1 (2023-08-24)
- Improve module browser search order.
- Fix Library menu plugin update items not being re-enabled when downloading is completed.
- Rack Pro
- Fix discarded MIDI input messages for all plugin adapters.
- API
- Add
LightButton
to component library.
- Use SSE4.1 intrinsics in
simd::trunc
, floor
, ceil
, round
, and fmod
to improve performance.
2.4.0 (2023-08-07)
- Add "View > Use dark panels if available" menu item.
- Show module ID in module's Info menu.
- Fix order of input MIDI messages having the same frame timestamp. This fixes VCV MIDI to CV from sometimes duplicating clock pulses when transport starts.
- Move plugins folder to
<Rack user folder>/plugins-<OS>-<CPU>
.
- Core
- Rack Pro
- Add CLAP FX and Generator plugin adapters in addition to existing Instrument plugin.
- Fix file dialogs from sometimes loading/saving the wrong Rack plugin instance when multiple instances are running.
- Fix crash when using Mac VST3 and AU plugins simultaneously in a DAW.
- Fix crash when removing one of multiple running plugin instances in Studio One.
- Fix CLAP plugin discarding output MIDI messages.
- API
- Add
ThemedSvgPanel
and ThemedSvgScrew
classes which automatically switch SVGs when dark panels are toggled.
- Add
"minRackVersion"
property to plugin manifest, which prevents Rack from downloading plugin if version is not compatible.
- Fix
ContextCreateEvent
and ContextDestroyEvent
not defining vg
NanoVG context.
2.3.0 (2023-03-08)
- Add "View > Themes" menu with new UI themes: light and high-contrast dark.
- Fix file permissions resulting in error when loading certain patches.
- Don't select modules on click when module positions are locked.
- Fix small memory leak when pasting modules or selections.
- Fix incorrect panel scale when moving window between screens with different scale.
- Rack Pro
- Don't force MIDI output message channel to 1 in VST3 adapter. Offer all 16 channels.
- Fix aftertouch and polyphonic pressure on all MIDI channels in VST3 and CLAP adapters.
- API
- Make
ParamQuantity::set/getValue()
set/get the Param's target value of the Engine's per-sample smoothing algorithm instead of the Param's immediate value. Add ParamQuantity::set/getImmediateValue()
. Deprecate ParamQuantity::set/getSmoothValue()
.
- Add
dsp::polyDirect()
, dsp::polyHorner()
, and dsp::polyEstrin()
.
- Rename
dsp::approxExp2_taylor5()
to dsp::exp2_taylor5()
and improve polynomial coefficients.
- Add
color::lerp()
.
- Add
BooleanTrigger::processEvent()
and SchmittTrigger::processEvent()
.
- Add
get()
helper function for std::vector
.
2.2.3 (2023-01-25)
- Place module selection nearest to mouse position when pasted and nearest to the center of the rack viewport when imported.
- Allow custom menu items to be appended to port's context menu.
- Fix ignored MIDI input messages while using small audio block sizes.
- Rack Pro
- Fix hang when dialog box opens on Windows, such as after syncing library plugins.
- Enable Loopback MIDI driver in all plugin adapters.
- Fix MIDI CC output of VST3 adapter.
- Fix Windows installer not overwriting existing VST3 plugin bundle on Windows.
- Store and recall window size of VST3.
- Fix MIDI clock input in CLAP adapter.
- Make CLAP adapter a Note Effect and Audio Effect as well as an Instrument.
- API
- Make unarchiver handle zero-byte files as a special case by deleting destination files instead of overwriting them. This allows plugin packages to remove old presets by including a zero-byte file with its filename.
- Add
ModuleWidget::getModule<TModule>()
convenience method.
2.2.2 (2022-12-27)
- Display Rack edition, version, OS, CPU, and plugin type in menu bar to help with troubleshooting.
- Add long-form command line options.
- Zero audio output of all channels in
audio::Device::processBuffer()
before writing, to avoid sending uninitialized values to audio device.
- Rack Pro
- Fix blank plugin window on certain Linux Nvidia graphics drivers.
- API
- Don't include SIMDE headers on x64, fixing symbol conflicts when plugins include x64 intrinsic headers.
- Don't export symbols from libarchive, zstd, rtaudio, and rtmidi to avoid conflicts with hosts that use these libraries. Rack plugins can no longer link to these libraries.
- Rename plugin binary to
plugin-arm64.dylib
on Mac ARM64 so multiple plugin architectures can coexist in the same Rack user folder.
2.2.1 (2022-12-07)
- Add
CROSS_COMPILE
environment variable to specify target triplet for building plugins for non-native architectures.
- Accept
aarch64
in target triplet as alias for ARM64.
- Rack Pro
- Re-enable rtaudio and rtmidi in plugin adapters, so hardware audio/MIDI devices can be used directly by Rack.
- Fix VST3 not receiving MIDI CC input from DAWs.
- Fix VST3 not sending MIDI output to some DAWs.
- Fix VST3 in Bitwig resetting parameters when adding/removing modules.
- Fix VST3 adapter not loading on Bitwig Linux and possibly other hosts, by providing VST3 as a folder bundle instead of a single file.
- Fix CLAP adapter not loading on Windows, by statically linking libgcc.
2.2.0 (2022-11-23)
- Add MIDI Loopback driver, allowing modules with MIDI ports to send MIDI messages to other modules.
- Improve fuzzy search in module browser.
- Allow building on ARM64 CPUs.
- Rename plugin packages to
SLUG-VERSION-OS-CPU.vcvplugin
.
- Rack Pro
- Add VST3, Audio Unit, and CLAP plugin adapters.
- Add framerate setting to plugins.
- API
- Add
system::sleep()
.
- Make
random::get()
, uniform()
, etc use global random state instead of thread-local.
2.1.2 (2022-07-04)
- Add old module moving behavior (nearest and force-moving), available by disabling "View > Auto-squeeze algorithm".
- Reorganized View menu.
- Add version comparator so Rack only updates plugins or itself if the remote version is "greater" than the local version, as defined by the
string::Version
documentation.
- Add file association to Mac, so double-clicking a
.vcv
patch file in Finder opens Rack and loads the patch.
- Fix expanders not updating (connecting or disconnecting to adjacent modules) when cloning or removing modules.
- Fix VCV Audio 2 VU meter light thresholds not matching label.
2.1.1 (2022-05-21)
- Allow changing cable colors with port menu.
- Fix placement bugs and improve behavior when moving or duplicating modules.
- Fix probabilistic crash when undoing a module paste action.
- Rack Pro
- Fix VST2 window size not being remembered on Mac.
- API
- Make
SvgButton
dispatch ActionEvent
only on left mouse down, instead of left/right mouse down and drag drop.
2.1.0 (2022-02-26)
- Change behavior of force-moving modules so that other modules return to original position while dragging.
- Update to RtMidi 5.0.0.
- Update to RtAudio 5.2.0.
- Update GLFW.
- Fix plug graphic sometimes being incorrectly rotated.
- Core
- Add "Pitch bend range" setting to MIDI to CV module.
- Fix MIDI to CV incorrectly setting pitch wheel and mod wheel outputs in MPE mode.
- Rack Pro
- Fix crash if generating hundreds of MIDI output messages per process block in VST2.
2.0.6 (2022-01-15)
- Add "Save a copy" to File menu.
- Remember CPU meter state across launches.
- Use audio device's suggested sample rate as initial sample rate.
- Add more logging of initialization/destruction of subsystems and module instantiation.
- Make MIDI input queue thread-safe, fixing probabilistic crash when processing MIDI input.
- Rack Pro
- Generate MIDI Start message in DAWs like Cubase that pre-roll transport.
- Generate MIDI Song Position Pointer messages when DAW is playing.
- Fix VST2 input/output channel labels being truncated in Ableton Live.
- Improve VST2 audio performance by avoiding unnecessary copying of buffers.
2.0.5 (2022-01-01)
- Swap order of parameter name and module name in MIDI-Map.
- Parse all note names from c0 to b9 and accidentals like c# and eb in parameter entry field.
- Tweak framebuffer render-skipping algorithm to always render at least 1 framebuffer after the frame deadline, to prevent framebuffers from never being rendered.
- Set audio device default sample rate to 44100, and block size to 256 except DirectSound to 1024.
- Fix file dialog truncating Unicode filenames on Mac.
2.0.4 (2021-12-18)
- Fix hang when initializing Audio module.
- Fix hidden window after closing while minimized and reopening.
- Move Import Selection menu item to File menu bar.
- Switch from GTK3 to
zenity
for opening dialogs on Linux.
- Implement prompt dialog on Windows.
- Make Windows installer add Rack to list of CFA allowed apps, allowing Rack to write to "My Documents" folder if Controlled Folder Access is enabled.
- Rack Pro
- Improve stability of DAW MIDI clock.
- Fix graphics glitch when duplicating module with Ctrl+D in Ableton Live.
- Re-enable patch load error dialog.
- SDK
- Compile with
-fno-omit-frame-pointer
.
2.0.3b (2021-12-09)
- Rack Pro
- Use separate template patch when running as a plugin.
2.0.3 (2021-12-09)
- Fix MIDI-Map not accepting MIDI CC.
- Fix order of Audio-16 outputs 13/14 and 15/16.
- Clear patch before removing autosave dir when loading patch. This fixes inability to load patches on Windows when modules hold file handles to patch storage.
- Fix crash when patch attempts to add a cable that connects to a valid Port but an inexistent PortWidget (e.g. if a module defines a Port but omits the PortWidget).
- Upgrade from ustar to pax tar patch format. Don't store actual uid/gid, just set to 0.
- Rack Pro
- Add external audio/MIDI drivers in plugin, except ASIO on Windows.
- Show machine ID in splash window for offline activation.
- Prevent "Reserved" plugin parameter from being changed when moving module parameters.
2.0.2 (2021-12-06)
- Turn off lights if module is bypassed.
- Fix Font and Image not loading UTF-8 filenames on Windows.
- Fix plugins not loading if their fallback alias exists.
- Fix crash when sometimes unsetting audio interface on Mac.
- Rack Pro
- Save/restore plugin window size in patch.
- Fix crash on scan in Renoise.
2.0.1 (2021-12-02)
- Fix network connection timeout.
- Flush log file when logging to avoid truncated logs.
2.0.0 (2021-11-30)
1.1.6 (2019-11-04)
- Add ability for plugins to use LuaJIT on Mac.
- Fix normal random number generator possibly returning -infinity.
- Core
- MIDI-Map: Don't move param until the first MIDI CC command is sent.
- API
- Remove support for namespaced
rack::APP
, rack::DEBUG
, etc macros. Use namespace-less APP
, DEBUG
, etc instead.
- Add
dsp::IIRFilter
.
1.1.5 (2019-09-29)
- Swap order of tags and brands in Module Browser.
- Add View > Frame rate menu bar item.
- Hide menu and scrollbars when fullscreen.
- Add key command (F3) for engine CPU meter.
- Add numpad key commands.
- Automatically unzip update on Mac.
- Stop worker threads when engine is paused to save CPU.
- Core
- Disable smoothing for MIDI CC buttons in MIDI-Map.
- Fix sustain pedal release bug when using polyphonic mode in MIDI-CV.
- API
- Add libsamplerate library.
1.1.4 (2019-08-22)
- Fix parameter smoothing of MIDI-Map.
- Sort modules within plugin in the Module Browser according to plugin rather than alphabetically.
- Fix bug where knobs sometimes jump while dragging.
- Reimplement CPU meter to measure thread runtime, not real time.
- Fix crashes when deleting/duplicating modules while dragging modules/cables in certain cases.
- API
- Add
dsp::BiquadFilter
.
- Add
dsp/approx.hpp
with approximate math functions.
- Add
simd::tan()
, atan()
, and atan2()
.
- Add
string::toBase64()
and fromBase64()
.
1.1.3 (2019-07-23)
- Include root certificate bundle for libcurl on all OS's.
- Revert to OpenSSL from Schannel on Windows.
- Bundle unsigned Fundamental package on Mac.
1.1.2 (2019-07-20)
- Add app notarization on Mac, which removes the "Apple cannot check for malicious software" message on launch.
- Write stack trace to log.txt and display dialog box when Rack crashes.
- Re-enable JACK MIDI driver on Linux.
- Fix scroll speed for mice and trackpads on Mac.
- Fix undo history bug when dragging patch file to the Rack window.
- Fix crash when pasting presets to an empty rack space with Ctrl+V.
- Fix module expanders being assigned incorrectly when loading presets.
- Add check for duplicate port IDs for modules.
1.1.1 (2019-07-01)
- Add auto-updating on Windows when Help > Update VCV Rack is clicked.
- Fix extension filters in open/save dialog box on Windows.
- Fix expanders not attaching when force-dragging modules.
1.1.0 (2019-06-27)
- Request microphone access on Mac to prevent Mac 10.14+ from blocking audio input.
- Clear filters in Module Browser when backspace is pressed while the search field is empty.
- Add Ctrl+0 key command to set zoom to 100%.
- Emulate middle-click with Ctrl+shift-click on Mac.
- Fix MIDI receiving in Bridge MIDI driver.
- Fix opening/saving UTF-8 filenames on Windows.
- Fix bug where cable ID's were not being set in .vcv patches.
- Plugin API
- Add
string::absolutePath()
.
- Use namespace for Core plugin to avoid name clashes.
1.0.0 (2019-06-19)
- Add polyphonic cables.
- Add multithreading to engine.
- Add undo/redo history.
- Add module expander support.
- Add parameter labels, units, and descriptions.
- Add parameter tooltips for quickly viewing parameter values.
- Add parameter context menu for entering numerical values, unmapping, etc.
- Change parameter initialization to double-click.
- Add ability to Ctrl+click on an input port to clone the existing cable.
- Add module "force" dragging when holding Ctrl.
- Add ability to disable modules with a context menu item and key command Ctrl+E.
- Add sample rates up to 768,000 Hz (16 x 48,000 Hz).
- Overhaul Module Browser with visual previews of modules.
- Add plugin info sub-menu to module context menu with links to manual, website, source code, etc.
- Add factory presets to module context menu if plugin supplies a folder of presets.
- Add default template patch.
- Add menu item to save the current patch as the template.
- Add "frameRateLimit" and "frameRateSync" for setting maximum screen refresh rate and to toggle vertical sync.
- Add "autosavePeriod" for setting the frequency of autosaves in seconds.
- Add textual menu bar, rearranged menu items, removed icons.
- Make CPU timer display microseconds and percentage instead of millisamples.
- Add engine real-time priority setting.
- Make rack infinite in all four directions.
- Add bus board graphic to rack.
- Add key command Ctrl+
-
and Ctrl+=
, or Ctrl+scroll, for zooming the rack.
- Fix draw order of cable plugs and wires.
- Make Gamepad MIDI driver generate MIDI CC instead of MIDI notes for buttons.
- Add Numpad keyboard MIDI device.
- Fix Unicode user directories on Windows.
- Add ability to change cable colors in
settings.json
.
- Add
-p X
flag for dumping a screenshot of each available module.
- Allow user to see changelogs of plugins before updating their plugin library.
- Allow user to update individual plugins.
- Core
- Add Audio-16 with 16/16 inputs/outputs.
- Add CV-MIDI, CV-CC, and CV-Gate for sending MIDI to external devices.
- Add MIDI-Map for mapping MIDI CC parameters directly to Rack parameters.
- Add polyphony to MIDI-CV.
- Add MPE mode to MIDI-CV.
- Add "Panic" button to all MIDI modules to reset performance state.
- Plugin API
- Add
helper.py
for creating and manipulating plugins with the command-line.
- Add
simd.hpp
for generically handling arithmetic and math functions for vectors of floats, accelerated with SSE.
- Add
dsp::VuMeter2
.
- Add
dsp::Timer
and dsp::Counter
.
- Overhaul event system with many new events.
- etc. See more at https://vcvrack.com/manual/Migrate1.html.
- Licenses
- Relicense Rack to GPLv3 with the VCV Rack Non-Commercial Plugin License Exception and a commercial licensing option.
- Collect all license statements into new LICENSE.md file.
- License Core panel graphics under CC BY-NC-ND 4.0.
0.6.2 (2018-07-13)
0.6.1 (2018-06-17)
- Add gamepad MIDI driver.
- Add computer keyboard MIDI driver.
- Add JACK support on Linux.
- Add velocity mode to MIDI-Trig.
- Add MIDI multiplexing so multiple MIDI modules can use the same MIDI device on Windows.
- Make Module Browser layout more compact.
- Add power meter.
- Add icons to toolbar.
- VCV Bridge 0.6.1
- Replace VST effect plugin with VST instrument plugin with audio inputs.
- Add MIDI support.
- Add DAW transport and clock.
0.6.0 (2018-03-29)
- Release VCV Bridge for interfacing Rack with your DAW.
- VST/AU effect plugins (Mac and 32/64-bit Windows) for using Rack as a send/return on a DAW track.
- Enables future VSTi/AU instrument plugins with MIDI and DAW clock transport to be added in a later Rack 0.6.* update.
- Updated Plugin Manager to handle open-source plugins.
- Potentially all plugins can be added with help from the VCV Community.
- New Module Browser for adding modules to the rack.
- Launch by right-clicking on the rack or pressing .
- Add "favorite" modules by clicking on the star button.
- Navigate modules with arrow keys or mouse.
- Redesign Core modules.
- Access to audio channels beyond the first 8 inputs/outputs.
- Improve AUDIO stability.
- Add retrigger output to MIDI-1.
- Merged MIDI clock module with MIDI-1.
- Fix MIDI-4 sustain pedal in polyphonic modes.
- Improve sample rate conversion performance, is disabled entirely when not needed.
- Patch cable colors are saved to patch files.
- Add highlighting for active patch cables when hovering mouse over port.
- Add shadows to knobs and ports.
- Add File > "Disconnect cables".
- Release Rack SDK for compiling plugins without compiling Rack.
0.5.1 (2017-12-19)
- Add Plugin Manager support.
- Fix metadata panel in the Add Module window.
0.5.0 (2017-11-21)
- Add zoom scaling from 25% to 200%.
- Automatically scroll when dragging cables to the edge of the screen.
- Add Quad MIDI-to-CV Interface, CC-to-CV, Clock-to-CV, and Trigger-to-CV MIDI interfaces.
- Improve support for ASIO, WASAPI, DirectSound, Core Audio, and ALSA audio drivers.
- New module browser with search and tags.
- Enhanced LED emulation in graphics engine.
- File > New attempts to load "template.vcv" in the "Documents/Rack" folder if it exists.
0.4.0 (2017-10-13)
- Cables can now stack on output ports.
- Add sub-menus for each plugin, includes optional plugin metadata like URLs.
- Add MIDI CC-to-CV Interface, updated MIDI-to-CV Interface.
- Add new scrolling methods: middle-click-and-drag, shift-scroll, and arrow keys.
- Add engine pausing in sample rate menu.
- Add resizable blank to Core.
- Add LEDs on plugs.
- Support for AMD Phenom II processors.
- Use self-contained Mac app bundle, no need for a Rack folder.
0.3.2 (2017-09-25)
- Add key commands.
- Fix "invisible knobs/ports" rendering bug for ~2010 Macs.
- Add "allowCursorLock" to settings.json (set to "false" for touch screen support).
- Fix 100% CPU issue when no audio device is selected.
- Add vector scaling panels.
0.3.1 (2017-09-13)
- Fix Windows open dialog current working directory graphics problem.
- Ctrl+C/Ctrl+V to copy/paste from text and password fields.
- Automatically remember settings and login token between launches.
- Remove .zip after downloading and extracting plugin.
- Ctrl+click to right click on Mac.
- Fix menu "flicker" when menu cannot fit in window.
- tweaks to Fundamental and Audible Instruments plugins.
0.3.0 (2017-09-10)
- Knobcon public Beta release.