In this document, Ctrl means Cmd on Mac.
- 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()
andbpmtov()
. - 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 libcurl to 8.10.0 and OpenSSL to 3.3.2.
- Add
dsp::MidiParser
class.
- 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 inarch.hpp
header (included inrack.hpp
) instead of in compiler flags.
- Define
- 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.
- 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), andftov()
. - Move Rack user folder to:
- Mac:
~/Library/Application Support/Rack2
- Windows:
AppData/Local/Rack2
- Linux:
~/.local/share/Rack2
- Mac:
- 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.
- 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
, andfmod
to improve performance.
- Add
- 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
- Add dark panels.
- 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
andThemedSvgScrew
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
andContextDestroyEvent
not definingvg
NanoVG context.
- Add
- 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. AddParamQuantity::set/getImmediateValue()
. DeprecateParamQuantity::set/getSmoothValue()
. - Add
dsp::polyDirect()
,dsp::polyHorner()
, anddsp::polyEstrin()
. - Rename
dsp::approxExp2_taylor5()
todsp::exp2_taylor5()
and improve polynomial coefficients. - Add
color::lerp()
. - Add
BooleanTrigger::processEvent()
andSchmittTrigger::processEvent()
. - Add
get()
helper function forstd::vector
.
- Make
- 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.
- 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.
- 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.
- 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.
- Add
- 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.
- 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
dispatchActionEvent
only on left mouse down, instead of left/right mouse down and drag drop.
- Make
- 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.
- 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.
- 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.
- 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
.
- Compile with
- Rack Pro
- Use separate template patch when running as a plugin.
- 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.
- 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.
- Fix network connection timeout.
- Flush log file when logging to avoid truncated logs.
-
Redesign Module Browser with compact layout, adjustable zoom levels, sorting options, intelligent searching, and multiple tag selection.
-
Redesign component graphics and Core panels by Pyer.
-
Add port tooltips with name, voltage, and list of connected ports.
-
Add port context menu with ability to create cables with a particular color, drag any cable from the stack, or delete the top cable.
-
Evaluate mathematical expressions (such as
1+2*3
) in parameter context menu fields. -
Add multiple module selection by highlighting a rectangle or Shift-clicking on a module panel.
-
Add importing/exporting module selections to new
.vcvs
file format. -
Add module whitelist to Module Browser which synchronizes individual modules chosen in the VCV Library.
-
Add favorite modules filter to Module Browser.
-
Restructure engine to no longer use an "engine thread".
- Improve engine performance and latency by no longer requiring thread synchronization between the engine thread and audio thread. The engine now runs directly on the audio thread.
- Add support for multiple simultaneous audio devices.
- Add "Master module" context menu item to VCV Audio modules to select which audio device clocks the engine.
- Allow other modules to be the primary module, such as VCV Recorder for rendering audio faster than real-time.
- Remove "Real-time priority" menu item, since the thread priority is now managed elsewhere (RtAudio, etc).
- Remove engine pausing as it no longer makes sense with the new engine architecture.
-
Replace module disabling with bypassing, which directly routes certain inputs to outputs if specified by the plugin.
-
Duplicate cables patched to inputs when a module is duplicated.
-
Add module tags to module context menu.
-
Add module manual URL (if plugin developer supplies it) to module context menu item.
-
Add quick access to user module patches from
<Rack user dir>/presets/<plugin slug>/<module slug>
to module context menu. Supports subdirectories. -
Add infinity and NaN protection to cables, so they won't propagate non-finite values from badly behaving modules.
-
Add basic headless support with the
-h
flag. -
Add multiple parameter dragging modes: scaled linear, absolute rotary, and relative rotary.
-
Add "knobLinearSensitivity" property to settings.
-
Add timestamps to MIDI messages.
-
Allow sending and receiving SysEx messages through MIDI drivers.
-
Allow scrolling with Alt+click and drag.
-
Add "File > Open recent" menu item for opening recent patches.
-
Add "Preset > Save template" to module context menu which saves the default module preset to load when a new instance is added to the rack.
-
Break Rack executable into libRack shared library and lightweight standalone Rack executable.
-
Add support for 1/2x and 1/4x low-fidelity sample rates to engine and "Engine > Sample rates" menu.
-
Add Escape key command for existing fullscreen, in case F11 doesn't work.
-
Copy cable color when cloning cables with Ctrl+click.
-
Fix key commands on AZERTY, Dvorak, and all other keyboard layouts.
-
Add Mouse device to Computer keyboard/mouse MIDI driver.
-
Make scrollbar mouse interaction similar to modern OS behavior.
-
Re-render framebuffers when subpixel offset changes, fixing bug that makes ports and knobs appear slightly offset at certain zoom levels.
-
Use new
.vcv
patch format, an archive (POSIX tar compressed with Zstandard) of apatch.json
file, module patch assets, and potentially other future files. -
Use randomly-generated 53-bit IDs to identify modules and cables in the patch.
-
Use a fuzzy search algorithm for searching modules in the Module Browser.
-
Add tips window which appears when Rack launches or when choosing "Help > Tips".
-
Check for Library updates every few seconds to avoid needing to restart Rack to check for updates.
-
When clicking on a module in the Module Browser and immediately releasing, place the module in the last cursor position in the rack, rather than the current cursor position.
-
When clicking and dragging a module from the Module Browser, fix the mouse handle offset to the center of the module.
-
Allow darkening rack brightness.
-
Draw spotlight near cursor when rack brightness is lowered.
-
Improve light rendering with a more physical blending algorithm.
-
Add engine CPU meter and framerate meter to menu bar.
-
Allow zooming rack with extra mouse buttons 4 and 5.
-
Add
"pixelRatio"
to settings for forcing the UI pixel scale. -
If Ctrl+clicking on any menu item, the menu stays open (except for some menu items like "Delete Module").
-
Add Ctrl+F1 key command when cursor is hovering a module to open its user manual.
-
Redesign CPU meter with percentage history graph.
-
Add PulseAudio driver on Linux.
-
Distribute .pkg installer on Mac.
-
Check for VCV Library updates when Library menu is opened, rather than at time intervals.
-
Core
- Add Audio-2 module with stereo input/output, a level knob, and VU meters.
- Add DC blocker setting to Audio modules. On Audio-2, enable it by default.
- Add MPE mode to MIDI-CC and MIDI-Gate.
- Add mode to MIDI-CC to process 14-bit MIDI CC via MSB/LSB.
- Use MIDI timestamps in MIDI-CV, MIDI-CC, MIDI-Gate, and MIDI-Map to improve overall timing and drastically reduce clock jitter.
- Add red clip lights to VCV Audio-8/16 when signal reaches beyond ±10V.
- Reset notes in MIDI-CV and MIDI-Gate if an "all notes off" MIDI message is received.
- Allow disabling smoothing for MIDI-CV (pitch and mod wheel), MIDI-CC, and MIDI-Map.
- Add several module presets for many Core modules.
-
API
- Add setters/getters for nearly every instance variable in Rack's API. Use these for higher likelihood of stability.
- Compile Rack and plugins with
-march=nehalem
, enabling (and requiring) up to SSE4.2 and POPCNT instruction sets. - Add
Module::configInput()
andModule::configOutput()
for adding names to ports. - Replace
ParamWidget::paramQuantity
withParamWidget::getParamQuantity()
. - Add
.modules[].manualUrl
to plugin manifest schema. - Add
appendAudioMenu()
andappendMidiMenu()
so plugin developers can develop custom audio/MIDI interfaces without adding anAudioWidget/MidiWidget
to their panel. - Make
Module::toJson()
andfromJson()
virtual. - Add
Module::paramsToJson()
andparamsFromJson()
virtual methods. - Add
SwitchQuantity
and a helper methodModule::configSwitch()
for displaying named values in the parameter context menu. Also addModule::configButton()
recommended for momentary switches with no value labels. - Overhaul Engine threading model to allow as many Engine methods to be called simultaneously as possible, while ensuring that Module events are mutually exclusive to module processing.
- Add
Engine::getNumModules()
andEngine::getModuleIds()
. - Add
event::KeyBase::keyName
. Plugins should use this instead ofkey
for alphanumeric keys in order to support all keyboard layouts. - Improve thread safety of
dsp::RingBuffer
. - Add several convenient filesystem routines to
system::
. - Add
system::getTime()
andgetUnixTime()
. - Add
system::readFile()
andwriteFile()
. - Move all
string::
functions dealing with filesystem paths tosystem::
. - Change type of
Module::id
andCable::id
fromint
toint64_t
. - Move event classes to inside
widget::Widget
class. - Deprecate
Window::loadSvg()
. Un-deprecateSvg::load()
. Font
andImage
can no longer be stored across UI frames. Load them withAPP->window->loadFont()
andloadImage()
eachdraw()
method.- Add
Widget::hasChild()
,addChildBottom()
,addChildBelow()
,addChildAbove()
, anddrawChild()
. - Add
Module::createPatchStorageDirectory()
andgetPatchStorageDirectory()
. - Add
createMenuLabel()
,createMenuItem()
,createCheckMenuItem()
,createBoolMenuItem()
,createBoolPtrMenuItem()
,createSubmenuItem()
,createIndexSubmenuItem()
, andcreateIndexPtrSubmenuItem()
to helpers. - Add
Module::onReset()
andonRandomize()
. Overrides default param resetting and randomization behavior if overridden, unless super methods are called. - Add
Module::SaveEvent
. - Add operator overloads for
Vec
. - Add
string::join()
,split()
,formatTime()
, andformatTimeISO()
. - Add
random::Xoroshiro128Plus
which can be used like C++<random>
classes. - Add
Port::getVoltageRMS()
. - Add
Widget::drawLayer()
for handling multiple draw passes. - Add on/off threshold values to
dsp::SchmittTrigger
. - Add
dsp::convert()
template functions for converting audio between normalized floats and integers. - Add
bool app::SvgSwitch::latch
setting for latching button switches. - Dispatch
Module::SampleRateChange
event whenModule
is added to engine.
- 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-lessAPP
,DEBUG
, etc instead. - Add
dsp::IIRFilter
.
- Remove support for namespaced
- 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.
- 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()
, andatan2()
. - Add
string::toBase64()
andfromBase64()
.
- Add
- Include root certificate bundle for libcurl on all OS's.
- Revert to OpenSSL from Schannel on Windows.
- Bundle unsigned Fundamental package on Mac.
- 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.
- 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.
- 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.
- Add
- 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
anddsp::Counter
. - Overhaul event system with many new events.
- etc. See more at https://vcvrack.com/manual/Migrate1.html.
- Add
- 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.
- Add module presets.
- Add command line arguments for setting Rack directories.
- Improve UI/engine communication stability.
- VCV Bridge 0.6.2
- Add VST FX plugin.
- 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.
- 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.
- Add Plugin Manager support.
- Fix metadata panel in the Add Module window.
- 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.
- 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.
- 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.
- 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.
- Knobcon public Beta release.