| Nrack | Root namespace for the Rack API |
| Napp | Rack's custom UI widgets that control the Rack state and engine |
| CAudioDriverChoice | |
| CAudioDeviceChoice | |
| CAudioSampleRateChoice | |
| CAudioBlockSizeChoice | |
| CAudioDeviceMenuChoice | |
| CAudioDisplay | Designed for Audio-8 and Audio-16 module |
| CAudioButton | A virtual audio port graphic that displays an audio menu when clicked |
| CPlugWidget | |
| CCableWidget | |
| CCircularShadow | |
| CKnob | Implements vertical dragging behavior for ParamWidgets |
| CLedDisplay | |
| CLedDisplaySeparator | |
| CLedDisplayChoice | |
| CLedDisplayTextField | |
| CLightWidget | |
| CMidiDriverChoice | |
| CMidiDeviceChoice | |
| CMidiChannelChoice | |
| CMidiDisplay | |
| CMidiButton | A virtual MIDI port graphic that displays an MIDI menu when clicked |
| CModuleLightWidget | A MultiLightWidget that points to a module's Light or a range of lights Will access firstLightId, firstLightId + 1, etc |
| CModuleWidget | Manages an engine::Module in the rack |
| CMultiLightWidget | Mixes a list of colors based on a list of brightness values |
| CParamWidget | Manages an engine::Param on a ModuleWidget |
| CPortWidget | Manages an engine::Port on a ModuleWidget |
| CRackScrollWidget | |
| CRackWidget | Container for ModuleWidget and CableWidget |
| CRailWidget | |
| CScene | |
| CSliderKnob | |
| CSvgButton | |
| CSvgKnob | A knob which rotates an SVG and caches it in a framebuffer |
| CPanelBorder | |
| CSvgPanel | |
| CThemedSvgPanel | |
| CSvgPort | |
| CThemedSvgPort | |
| CSvgScrew | If you don't add these to your ModuleWidget, they will fall out of the rack.. |
| CThemedSvgScrew | |
| CSvgSlider | Behaves like a knob but linearly moves an widget::SvgWidget between two points |
| CSvgSwitch | A ParamWidget with multiple frames corresponding to its value |
| CSwitch | A ParamWidget that represents an integer |
| Nplugin | Loads and manages Rack plugins |
| CModel | Type information for a module |
| CPlugin | |
| Nengine | High-performance classes handling modules and voltage signals between them |
| CCable | |
| CEngine | Manages Modules and Cables and steps them in time |
| CLight | |
| CLightInfo | |
| CModule | DSP processor instance for your module |
| CExpander | Represents a message-passing channel for an adjacent module |
| CBypassRoute | |
| CProcessArgs | |
| CAddEvent | |
| CRemoveEvent | |
| CBypassEvent | |
| CUnBypassEvent | |
| CPortChangeEvent | |
| CSampleRateChangeEvent | |
| CExpanderChangeEvent | |
| CResetEvent | |
| CRandomizeEvent | |
| CSaveEvent | |
| CSetMasterEvent | |
| CUnsetMasterEvent | |
| CParam | |
| CParamHandle | A weak handle to a Param |
| CParamQuantity | A Quantity that wraps an engine::Param |
| CSwitchQuantity | |
| CPort | |
| COutput | |
| CInput | |
| CPortInfo | |
| Naudio | Abstraction for all audio drivers in Rack |
| CDriver | Wraps an audio driver API containing any number of audio devices |
| CDevice | A single audio device of a driver API |
| CPort | A handle to a Device, typically owned by modules to have shared access to a single Device |
| Ncomponentlibrary | Library of Rack components: knobs, ports, lights, switches, buttons, etc |
| CTSvgLight | |
| CTGrayModuleLightWidget | |
| CTWhiteLight | |
| CTRedLight | |
| CTGreenLight | |
| CTBlueLight | |
| CTYellowLight | |
| CTGreenRedLight | Reads two adjacent lightIds, so lightId and lightId + 1 must be defined |
| CTRedGreenBlueLight | |
| CLargeLight | Based on the size of 5mm LEDs |
| CMediumLight | Based on the size of 3mm LEDs |
| CSmallLight | Based on the size of 2mm LEDs |
| CTinyLight | Based on the size of 1mm LEDs |
| CLargeSimpleLight | Based on the size of 5mm LEDs |
| CMediumSimpleLight | Based on the size of 3mm LEDs |
| CSmallSimpleLight | Based on the size of 2mm LEDs |
| CTinySimpleLight | Based on the size of 1mm LEDs |
| CRectangleLight | |
| CVCVBezelLight | A light for displaying on top of VCVBezel |
| CPB61303Light | A light to displayed over PB61303 |
| CRoundKnob | |
| CRoundBlackKnob | |
| CRoundSmallBlackKnob | |
| CRoundLargeBlackKnob | |
| CRoundBigBlackKnob | |
| CRoundHugeBlackKnob | |
| CRoundBlackSnapKnob | |
| CDavies1900hKnob | |
| CDavies1900hWhiteKnob | |
| CDavies1900hBlackKnob | |
| CDavies1900hRedKnob | |
| CDavies1900hLargeWhiteKnob | |
| CDavies1900hLargeBlackKnob | |
| CDavies1900hLargeRedKnob | |
| CRogan | |
| CRogan6PSWhite | |
| CRogan5PSGray | |
| CRogan3PSBlue | |
| CRogan3PSRed | |
| CRogan3PSGreen | |
| CRogan3PSWhite | |
| CRogan3PBlue | |
| CRogan3PRed | |
| CRogan3PGreen | |
| CRogan3PWhite | |
| CRogan2SGray | |
| CRogan2PSBlue | |
| CRogan2PSRed | |
| CRogan2PSGreen | |
| CRogan2PSWhite | |
| CRogan2PBlue | |
| CRogan2PRed | |
| CRogan2PGreen | |
| CRogan2PWhite | |
| CRogan1PSBlue | |
| CRogan1PSRed | |
| CRogan1PSGreen | |
| CRogan1PSWhite | |
| CRogan1PBlue | |
| CRogan1PRed | |
| CRogan1PGreen | |
| CRogan1PWhite | |
| CSynthTechAlco | |
| CTrimpot | |
| CBefacoBigKnob | |
| CBefacoTinyKnob | |
| CBefacoSlidePot | |
| CVCVSlider | |
| CLightSlider | An SvgSlider with an attached light |
| CVCVSliderLight | |
| CVCVLightSlider | |
| CLEDSliderGreen | Deprecated |
| CLEDSliderRed | |
| CLEDSliderYellow | |
| CLEDSliderBlue | |
| CLEDSliderWhite | |
| CPJ301MPort | |
| CDarkPJ301MPort | |
| CThemedPJ301MPort | |
| CPJ3410Port | |
| CCL1362Port | |
| CMomentarySwitch | |
| CNKK | |
| CCKSS | |
| CCKSSThree | |
| CCKSSThreeHorizontal | |
| CCKD6 | |
| CTL1105 | |
| CVCVButton | |
| CVCVLatch | |
| CLightButton | |
| CVCVLightLatch | |
| CBefacoSwitch | |
| CBefacoPush | |
| CVCVBezel | |
| CVCVBezelLatch | |
| CVCVLightBezel | |
| CVCVLightBezelLatch | |
| CPB61303 | |
| CScrewSilver | |
| CScrewBlack | |
| CThemedScrew | |
| CSegmentDisplay | |
| CAudioButton_ADAT | |
| CAudioButton_USB_B | |
| CMidiButton_MIDI_DIN | |
| Nhistory | Action history for UI undo/redo |
| CAction | An undo action with an inverse redo action |
| CInverseAction | |
| CComplexAction | Batches multiple actions into one |
| CModuleAction | An action operating on a module |
| CModuleAdd | |
| CModuleRemove | |
| CModuleMove | |
| CModuleBypass | |
| CModuleChange | |
| CParamChange | |
| CCableAdd | |
| CCableRemove | |
| CCableColorChange | |
| CState | |
| Nwindow | Handles OS windowing, OpenGL, and NanoVG |
| CSvg | Scalable Vector Graphics document |
| CFont | Text font loaded in a particular Window context |
| CImage | Bitmap/raster image loaded in a particular Window context |
| CWindow | OS window with OpenGL context |
| Npatch | Handles the Rack patch file state |
| CManager | Handles the Rack patch file state |
| Nwidget | Base UI widget types |
| CEventContext | A per-event state shared and writable by all widgets that recursively handle an event |
| CBaseEvent | Base class for all events |
| CEventState | |
| CFramebufferWidget | Caches its children's draw() result to a framebuffer image |
| COpaqueWidget | A Widget that stops propagation of all recursive PositionEvents (such as ButtonEvent) but gives a chance for children to consume first |
| COpenGlWidget | A FramebufferWidget that can be drawn on with OpenGL commands |
| CSvgWidget | Owns and draws a window::Svg |
| CTransformWidget | Transforms appearance only, not positions of events |
| CTransparentWidget | A Widget that does not respond to events and does not pass events to children |
| CWidget | A node in the 2D scene graph |
| CDrawArgs | |
| CPositionBaseEvent | An event prototype with a vector position |
| CHoverEvent | Occurs every frame when the mouse is hovering over a Widget |
| CButtonEvent | Occurs each mouse button press or release |
| CDoubleClickEvent | Occurs when the left mouse button is pressed a second time on the same Widget within a time duration |
| CKeyBaseEvent | An event prototype with a GLFW key |
| CHoverKeyEvent | Occurs when a key is pressed, released, or repeated while the mouse is hovering a Widget |
| CTextBaseEvent | An event prototype with a Unicode character |
| CHoverTextEvent | Occurs when a character is typed while the mouse is hovering a Widget |
| CHoverScrollEvent | Occurs when the mouse scroll wheel is moved while the mouse is hovering a Widget |
| CEnterEvent | Occurs when a Widget begins consuming the Hover event |
| CLeaveEvent | Occurs when a different Widget is entered |
| CSelectEvent | Occurs when a Widget begins consuming the Button press event for the left mouse button |
| CDeselectEvent | Occurs when a different Widget is selected |
| CSelectKeyEvent | Occurs when a key is pressed, released, or repeated while a Widget is selected |
| CSelectTextEvent | Occurs when text is typed while a Widget is selected |
| CDragBaseEvent | |
| CDragStartEvent | Occurs when a Widget begins being dragged |
| CDragEndEvent | Occurs when a Widget stops being dragged by releasing the mouse button |
| CDragMoveEvent | Occurs every frame on the dragged Widget |
| CDragHoverEvent | Occurs every frame when the mouse is hovering over a Widget while another Widget (possibly the same one) is being dragged |
| CDragEnterEvent | Occurs when the mouse enters a Widget while dragging |
| CDragLeaveEvent | Occurs when the mouse leaves a Widget while dragging |
| CDragDropEvent | Occurs when the mouse button is released over a Widget while dragging |
| CPathDropEvent | Occurs when a selection of files from the operating system is dropped onto a Widget |
| CActionEvent | Occurs after a certain action is triggered on a Widget |
| CChangeEvent | Occurs after the value of a Widget changes |
| CDirtyEvent | Occurs when the pixel buffer of this module must be refreshed |
| CRepositionEvent | Occurs after a Widget's position is set by Widget::setPosition() |
| CResizeEvent | Occurs after a Widget's size is set by Widget::setSize() |
| CAddEvent | Occurs after a Widget is added to a parent |
| CRemoveEvent | Occurs before a Widget is removed from its parent |
| CShowEvent | Occurs after a Widget is shown with Widget::show() |
| CHideEvent | Occurs after a Widget is hidden with Widget::hide() |
| CContextCreateEvent | Occurs after the Window (including OpenGL and NanoVG contexts) are created |
| CContextDestroyEvent | Occurs before the Window (including OpenGL and NanoVG contexts) are destroyed |
| CZoomWidget | Resizes the scale of appearance and PositionEvents of children |
| Nmidiloopback | |
| CContext | |
| Ndsp | Digital signal processing routines and classes |
| CFrame | Useful for storing arrays of samples in ring buffers and casting them to float* to be used by interleaved processors, like SampleRateConverter |
| CBooleanTrigger | Detects when a boolean changes from false to true |
| CTSchmittTrigger | Turns HIGH when value reaches a threshold (default 0.f), turns LOW when value reaches a threshold (default 1.f) |
| CTSchmittTrigger< float > | |
| CPulseGenerator | When triggered, holds a high value for a specified time before going low again |
| CTTimer | Accumulates a timer when process() is called |
| CClockDivider | Counts calls to process(), returning true every division calls |
| CRealFFT | Real-valued FFT context |
| CComplexFFT | Complex-valued FFT context |
| CTRCFilter | The simplest possible analog filter using an Euler solver |
| CTExponentialFilter | Applies exponential smoothing to a signal with the ODE \( \frac{dy}{dt} = x \lambda \) |
| CTPeakFilter | Like ExponentialFilter but jumps immediately to higher values |
| CTSlewLimiter | Limits the derivative of the output by a rise and fall speed, in units/s |
| CTExponentialSlewLimiter | Behaves like ExponentialFilter but with different lambas when the RHS of the ODE is positive or negative |
| CIIRFilter | Digital IIR filter processor |
| CTBiquadFilter | |
| CRealTimeConvolver | |
| CMidiGenerator | Converts gates and CV to MIDI messages |
| CMidiParser | Converts MIDI note and transport messages to gates, CV, and other states |
| CMinBlepGenerator | |
| CSampleRateConverter | Resamples by a fixed rational factor |
| CDecimator | Downsamples by an integer factor |
| CUpsampler | Upsamples by an integer factor |
| CRingBuffer | Lock-free queue with fixed size and no allocations |
| CDoubleRingBuffer | A cyclic buffer which maintains a valid linear array of size S by keeping a copy of the buffer in adjacent memory |
| CAppleRingBuffer | A cyclic buffer which maintains a valid linear array of size S by sliding along a larger block of size N |
| CVuMeter | Deprecated |
| CVuMeter2 | Models a VU meter with smoothing |
| Nlibrary | Synchronizes plugins with the VCV Library and handles VCV accounts with the vcvrack.com API |
| CUpdateInfo | |
| Nmath | Extends <cmath> with extra functions and types |
| CVec | 2-dimensional vector of floats, representing a point on the plane for graphics |
| CRect | 2-dimensional rectangle for graphics |
| Nmidi | Abstraction for all MIDI drivers in Rack |
| CMessage | |
| CDriver | Wraps a MIDI driver API containing any number of MIDI devices |
| CDevice | A single MIDI device of a driver API |
| CInputDevice | |
| COutputDevice | |
| CPort | A handle to a Device, typically owned by modules to have shared access to a single Device |
| CInput | |
| CInputQueue | An Input port that stores incoming MIDI messages and releases them when ready according to their frame timestamp |
| COutput | |
| Nui | Common graphical user interface widgets |
| CButton | A clickable button with text |
| CChoiceButton | Button with a dropdown icon on its right |
| CLabel | |
| CList | |
| CMenu | |
| CMenuEntry | |
| CMenuItem | |
| CColorDotMenuItem | |
| CMenuLabel | |
| CMenuOverlay | Deletes itself from parent when clicked |
| CMenuSeparator | |
| COptionButton | Behaves like a RadioButton and appears with a checkmark beside text |
| CProgressBar | |
| CRadioButton | Toggles a Quantity between 1.0 and 0.0 when clicked |
| CScrollbar | Parent must be a ScrollWidget |
| CScrollWidget | Handles a container with Scrollbar |
| CSequentialLayout | Positions children in a row/column based on their widths/heights |
| CSlider | |
| CTextField | |
| CPasswordField | |
| CTooltip | |
| CTooltipOverlay | |
| Nrandom | Random number generation |
| CXoroshiro128Plus | Xoroshiro128+ |
| Nsettings | Process-scope globals, most of which are persisted across launches |
| CModuleInfo | |
| CPluginWhitelist | The VCV JSON API returns the data structure {pluginSlug: [moduleSlugs] or true} where "true" represents that the user is subscribed to the plugin (all modules and future modules) |
| Nsimd | Abstraction of aligned types for SIMD computation |
| CVector | Generic class for vector types |
| CVector< float, 4 > | Wrapper for __m128 representing an aligned vector of 4 single-precision float values |
| CVector< int32_t, 4 > | |
| Nstring | Supplemental std::string functions |
| CCaseInsensitiveCompare | |
| CVersion | Structured version string, for comparison |
| CDeferWrapper | Defers running code until the scope is destructed |
| CException | An exception explicitly thrown by Rack or a Rack plugin |
| CContext | Rack instance state |
| CSharedMutex | Allows multiple "reader" threads to obtain a lock simultaneously, but only one "writer" thread |
| CSharedLock | |
| CQuantity | A controller for manipulating a float value (which subclasses must store somehow) with limits and labels |
| CWeakHandle | |
| CWeakBase | Base class for classes that allow WeakPtrs to be used |
| CWeakPtr | A weak pointer to a subclass of WeakBase |
| CPlugin | |
| CModel | Type information for a module |