Skip to main content

Devices View

The Devices View is where you manage audio processing for your tracks. Load VST2 plugins, built-in effects, and virtual instruments, then arrange them in a signal processing chain to shape your sound. Devices View showing a plugin chain with multiple effects

Overview

Every track in Lumix has its own plugin chain, visible in the Devices View when that track is selected. The Devices View displays plugins as rectangular cards arranged horizontally, representing the signal flow from left to right.
The Devices View always shows the plugin chain for the currently selected track. Select a different track in the Arrangement View to see its plugins.

Adding Plugins

Plugins are added via drag-and-drop from the Sidebar:

Supported Plugin Types

VST2 Instruments

Virtual instruments (.dll files) for MIDI tracks

VST2 Effects

Audio effects (.dll files) for any track

Built-in Effects

Native Lumix audio processors

Drag-and-Drop Workflow

1

Select a track

Click on a track in the Arrangement View to select it and view its Devices
2

Find your plugin

Navigate to the plugin in the Sidebar:
  • Plug-Ins tab for VST2 files
  • Audio Effects tab for built-in effects
  • Instruments tab for VSTi instruments
3

Drag to Devices View

Click and hold on the plugin, then drag it into the Devices View area
4

Release to add

Release the mouse button to add the plugin to the track’s processing chain
If you try to add an incompatible plugin (like a VSTi to an audio track without MIDI), you’ll see an error dialog: “Can’t add plugin here” or “Can’t add vst here”.

Plugin Placement Rules

  • Instrument plugins always appear first (leftmost) in the chain
  • Effect plugins are added to the right in the order you drop them
  • Maximum visible plugins varies by track type:
    • Audio tracks: ~6 plugins
    • MIDI tracks: ~5 plugins (instrument + effects)

Plugin Cards

VST2 Plugin Cards

Each VST2 plugin is displayed as a card showing:
┌─────────────────────────┐
│ ● 🔧 Plugin Name       │  ← Menu bar (orange when selected)
├─────────────────────────┤
│ VST Type: Fx/Instrument │
│ Parameters: 24          │
│ In: 2    Out: 2         │
└─────────────────────────┘
Menu Bar Icons:
  • (toggle) - Enable/disable plugin (orange when active)
  • 🔧 (wrench) - Click to open the plugin’s GUI window
Information Display:
  • VST Type - “Fx” for effects, “Instrument” for VSTi
  • Parameters - Number of adjustable parameters
  • In/Out - Number of audio input/output channels

Built-in Plugin Cards

Built-in plugins render custom cards based on their implementation, typically showing:
  • Plugin name and category
  • Key parameters with interactive controls
  • Visual feedback (meters, graphs, etc.)

Selecting Plugins

Click on a plugin card to select it:
  • Single Selection - Click a plugin to select only that plugin
  • Multi-Selection - Ctrl + Click to add/remove plugins from selection
  • Deselect All - Click in empty space (without Ctrl)
Visual Feedback:
  • Selected plugins have a brighter menu bar color
  • Unselected: RGB(0.28, 0.28, 0.28)
  • Selected: Custom selection color from theme
Multi-selection allows you to duplicate or delete multiple plugins at once using keyboard shortcuts.

Plugin Operations

Keyboard Shortcuts

ShortcutActionNotes
DeleteDelete selected pluginsRemoves from chain permanently
Ctrl + DDuplicate selected pluginsCreates copies with same settings
Left ArrowMove plugin left in chainOnly works with single selection
Right ArrowMove plugin right in chainOnly works with single selection
Plugin reordering with arrow keys only works when exactly one plugin is selected. Multi-selection disables this feature.

Reordering Plugins

The order of plugins in the chain matters for sound processing. To reorder:
  1. Select a single plugin by clicking on it
  2. Press Left Arrow to move it earlier in the chain
  3. Press Right Arrow to move it later in the chain
Signal Flow Example:
[Instrument] → [EQ] → [Compressor] → [Reverb] → Output
Moving the reverb left would change the chain to:
[Instrument] → [EQ] → [Reverb] → [Compressor] → Output

Enabling/Disabling Plugins

Click the toggle button (●) on a plugin’s menu bar to bypass it:
  • Enabled - Plugin processes audio (orange indicator)
  • Disabled - Audio passes through unchanged (gray indicator)
Disabling plugins is useful for A/B comparisons and troubleshooting, without removing them from your chain.

Opening Plugin Windows

For VST2 plugins, click the wrench icon (🔧) to open the plugin’s native GUI:
  • Each plugin has its own window with custom controls
  • Window management respects preferences (see Preferences)
  • Multiple plugin windows can be open simultaneously (if enabled in preferences)

Plugin Chain Visualization

The Devices View uses a horizontal scrollable container to display the plugin chain:

Visual Layout

  • Background Color - Dark gray (RGB: 0.22, 0.22, 0.22)
  • Plugin Cards - Square cards sized to viewport height
  • Spacing - 10px between cards
  • Scrollbar - Custom styled at bottom of view

Empty State

When no plugins are loaded, helpful text appears:
  • Audio Tracks - “Drop Audio Effects Here”
  • MIDI Tracks - “Drop Instruments or Audio Effects Here”
This text is centered in the available space and disappears once plugins are added.

Custom Scrollbar

A custom white scrollbar (10px thick) appears at the bottom when the plugin chain exceeds the visible width:
  • Scrollbar length adjusts based on content overflow
  • Position indicator shows relative scroll position
  • Offset of ±100 pixels from edges

Middle Mouse Panning

When hovering over the Devices View:
  • Middle Mouse Button + Drag - Pan horizontally through the plugin chain
  • Cursor changes to resize-all (⤢) during panning
  • Smooth scrolling follows mouse movement
Panning is especially useful for long plugin chains that extend beyond the visible area.

Track Type Compatibility

Audio Tracks

Audio tracks can have:
  • No Instrument - Only audio effects
  • Effect Chain - Up to 6+ plugins in series

MIDI Tracks

MIDI tracks support:
  • One Instrument - VSTi at the start of the chain
  • Effect Chain - Audio effects after the instrument
  • Combined total of ~5 plugins visible

Instrument Handling

Instrument plugins have special behavior:
  • Only MIDI tracks can load VSTi plugins
  • Instrument always appears first in the chain
  • Delete key works on instruments (removes from PluginInstrument slot)
  • Only one instrument per track

Technical Implementation

Plugin Management

Plugins are managed through the track’s PluginChainSampleProvider:
// Adding a plugin
SelectedTrack.Engine.PluginChainSampleProvider.AddPlugin(plugin);

// Removing a plugin
SelectedTrack.Engine.PluginChainSampleProvider.RemovePlugin(plugin);

// Accessing the chain
var fxPlugins = track.Engine.PluginChainSampleProvider.FxPlugins;
var instrument = track.Engine.PluginChainSampleProvider.PluginInstrument;

Deletion Workflow

Plugins are marked for deletion with a flag, then removed in the next render cycle:
// 1. User presses Delete key
plugin.DeleteRequested = true;

// 2. Next frame, find marked plugins
var deletedPlugins = FxPlugins.FindAll(p => p.DeleteRequested);

// 3. Remove from chain
deletedPlugins.ForEach(del => RemovePlugin(del));
This deferred deletion prevents issues with modifying collections during iteration.

Drag-Drop Implementation

The drag-drop system uses ImGui payloads:
// Payload: "PLUGIN_DRAG"
if (Path.GetExtension(file) == ".dll")
{
    var vst = new VstPlugin(filePath);
    var processor = new VstAudioProcessor(vst);
    track.Engine.PluginChainSampleProvider.AddPlugin(processor);
}

Drop Prevention

A _hasDropped flag prevents duplicate plugin additions during a single drag operation:
  • Set to true when plugin is added
  • Reset to false when mouse drag ends
  • Prevents multiple additions if mouse hovers during release

Best Practices

Consider these common signal flow patterns:
  • Corrective before creative - EQ before reverb
  • Dynamics early - Compression near the start
  • Modulation before delays - Chorus before reverb
  • Limiting last - Brick wall limiter at the end
To optimize performance:
  • Disable unused plugins rather than deleting them
  • Limit the number of active plugins per track
  • Use built-in effects when possible (lower overhead)
  • Freeze/bounce tracks with heavy plugin chains
Keep your plugin chains maintainable:
  • Name plugins descriptively in their GUI
  • Group related effects (all EQs, all compression)
  • Use consistent chains across similar tracks
  • Document special settings in project notes

Sidebar

Browse and drag plugins from the file browser

Preferences

Configure plugin paths and window behavior

Built-in Effects

Documentation for native Lumix processors

VST2 Support

Working with external VST2 plugins

Build docs developers (and LLMs) love