diff --git a/CHANGELOG.md b/CHANGELOG.md index 11829b4f..7c991db3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,28 +4,30 @@ In this document, Mod is Ctrl on Windows/Linux and Cmd on Mac. ### 2.0.0 (in development) - Redesign Module Browser with compact layout, adjustable zoom levels, sorting options, intelligent searching, and multiple tag selection. +- Redesign component graphics by [Pyer](https://www.pyer.be/). - Add port tooltips with name, voltage, and list of connected ports. - 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 module whitelist to Module Browser which synchronizes individual modules chosen in the VCV Library. - 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 "Primary module" context menu item to VCV Audio modules to select which audio device clocks the engine. - - Allow other modules such as VCV Recorder to be the primary module, to render audio faster than real-time. + - 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 `/presets//` to module context menu. +- Add quick access to user module patches from `/presets//` 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. -- Add ability to scroll the rack and other scroll containers using the left mouse button. This allows touch devices to scroll by dragging. +- 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. @@ -43,6 +45,12 @@ In this document, Mod is Ctrl on Windows/Linux and Cmd on Mac. - 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 adjusting rack brightness for "Lights Off" mode. +- Improve light rendering with a more physical blending algorithm. +- Move interaction settings from View menu to Edit menu. +- 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. - Core - Add Audio-2 module with stereo input/output, a level knob, and VU meters. @@ -68,9 +76,22 @@ In this document, Mod is Ctrl on Windows/Linux and Cmd on Mac. - Add `event::KeyBase::keyName`. Plugins should use this instead of `key` 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()` and `getUnixTime()`. + - Add `system::readFile()` and `writeFile()`. - Move all `string::` functions dealing with filesystem paths to `system::`. - Change type of `Module::id` and `Cable::id` from `int` to `int64_t`. - - Add `system::getTime()` and `getUnixTime()`. + - Move event classes to inside `widget::Widget` class. + - Deprecate `Window::loadSvg()`. Un-deprecate `Svg::load()`. + - `Font` and `Image` can no longer be stored across UI frames. Load them with `APP->window->loadFont()` and `loadImage()` each `draw()` method. + - Add `Widget::hasChild()`, `addChildBottom()`, `addChildBelow()`, `addChildAbove()`, and `drawChild()`. + - Add `Module::createPatchStorageDirectory()` and `getPatchStorageDirectory()`. + - Add `createMenuLabel()`, `createMenuItem()`, `createCheckMenuItem()`, `createBoolMenuItem()`, `createBoolPtrMenuItem()`, `createSubmenuItem()`, `createIndexSubmenuItem()`, and `createIndexPtrSubmenuItem()` to helpers. + - Add `Module::onReset()` and `onRandomize()`. 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()`, and `formatTimeISO()`. + - Add `random::Xoroshiro128Plus` which can be used like C++ `` classes. + - Add `Port::getVoltageRMS()`. ### 1.1.6 (2019-11-04) - Add ability for plugins to use LuaJIT on Mac.