OpenVoxTuner - Additional Feature Proposals¶
Date: 2026-07-07 Status: Proposals for user validation
Overview¶
This document presents additional feature proposals for the OpenVoxTuner plugin, extending beyond the visualizer improvements. Each proposal includes a use case, estimated complexity, and user experience impact assessment.
1. ARA2 Waveform Overlay in Visualizer¶
Description: When running inside a DAW that supports ARA2 (Cubase, Studio One, REAPER), overlay the DAW's waveform/clip data behind the pitch curves in the visualizer. This provides visual context for the pitch correction relative to the audio waveform.
Use Case: The singer sees exactly which part of the waveform corresponds to each pitch deviation, making it easier to understand when and where correction is applied.
Complexity: High (requires ARA2 content reader integration, waveform rendering pipeline, and DAW-specific testing).
UX Impact: High - transforms the visualizer from an abstract pitch display into a contextual audio editing tool.
Feasibility: Requires cooperation with the ARA2 host. Some DAWs provide waveform data through ARA2 extensions, others don't. Fallback to pitch-only display for unsupported hosts.
Status: Implemented. The waveform is captured as a mono downmix of the
input audio directly inside processBlock() (all modes, not only ARA), cached
in OpenVoxTunerAudioProcessor (araWaveformBuffer / copyAraWaveform()),
and forwarded to the visualizer by the editor. It is toggled from the
hamburger menu ("Show Waveform"), not from ARA content-reader extraction
(which is not yet used).
2. Per-Voice Harmony Tuning Controls¶
Description: Add individual tuning controls (cents offset, scale snap, gain) for each harmony voice independently. Currently all voices share global tuning parameters.
Use Case: The user wants the low octave harmony to be slightly flat for warmth, while the high harmony is tightly tuned for clarity.
Complexity: Medium (UI expansion for per-voice parameter panels, DSP modifications for independent tuning paths).
UX Impact: Medium - provides fine-grained control for advanced users while keeping the simple interface for beginners.
3. Formant Shift Visualization¶
Description: Display the formant frequencies as an overlay on the pitch curves. Show the formant shift applied by the formant knob as a separate curve or as a delta indicator.
Use Case: The user can visually confirm that formant preservation is working and see how the formant shift affects the vocal character.
Complexity: Medium (formant frequency extraction from DSP, additional curve rendering).
UX Impact: Medium - helps users understand the formant parameter's effect without relying solely on auditory feedback.
4. Preset Morphing / Crossfade¶
Description: Allow morphing between two presets by interpolating all parameters. Add a "morph slider" that smoothly transitions between the current settings and a target preset.
Status: Implemented. See the PresetMorpher class
(Source/dsp/PresetMorpher.h) and the technical strategy documented in
docs/preset-morphing-technical-strategy.md.
Use Case: The user has two vocal presets (one for verses, one for choruses) and wants to smoothly transition between them during a song.
Complexity: High (parameter interpolation engine, UI for morph control, DAW automation support).
UX Impact: High - unique feature that differentiates OpenVoxTuner from competitors.
5. Undo/Redo for Curve Editor¶
Description: Implement a full undo/redo stack for the pitch curve editor. Support multi-level undo with visual history display.
Use Case: The user makes a mistake while drawing pitch curves and wants to step back through previous states.
Complexity: Medium (command pattern implementation, history stack management, UI for undo/redo buttons).
UX Impact: High - essential for any graphical editing workflow. Currently the only way to recover from mistakes is "Clear All".
Status: Implemented. PitchCurveEditor holds a juce::UndoManager;
undo/redo is bound to Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z (or Ctrl/Cmd+Y).
6. A/B Comparison¶
Description: Add an A/B toggle that allows the user to save two complete parameter states and instantly switch between them for comparison.
Use Case: The user wants to compare two different correction settings to decide which sounds better for a particular vocal track.
Complexity: Low (parameter snapshot/restore mechanism, two-state toggle UI).
UX Impact: High - extremely common workflow in audio production. Simple to implement with high value.
7. Tuning Statistics Dashboard¶
Description: Display real-time statistics about the current performance: average cents deviation, percentage of notes in tune (within threshold), pitch stability index, and historical trend.
Use Case: The singer gets immediate feedback on their pitch accuracy over time, helping them improve their performance.
Complexity: Medium (statistical computation, dashboard UI component).
UX Impact: Medium - educational value for singers, useful for vocal training.
8. MIDI Learn for All Parameters¶
Description: Enable MIDI CC mapping for all plugin parameters. The user assigns a MIDI controller knob/slider to any parameter via the hamburger menu ("MIDI Learn" submenu), not via right-click context menu.
Status: Implemented. Accessed from the hamburger menu "MIDI Learn" submenu
(PluginEditor.cpp), which arms a parameter for the next incoming MIDI CC.
Use Case: The user controls the correction amount, speed, and formant in real-time using a MIDI keyboard or control surface during live performance.
Complexity: Low (JUCE provides MIDI learn infrastructure; mostly UI for mapping interface).
UX Impact: High - essential for live performance use cases.
9. Keyboard Shortcuts Help Overlay¶
Description: Add a help overlay (triggered by "?" key or menu item) that shows all available keyboard shortcuts and mouse interactions in a visual diagram.
Status: IMPLEMENTED - Press "?" or use hamburger menu "Keyboard Shortcuts (?)" to display the overlay.
Use Case: New users can quickly discover all available interactions without reading documentation.
Complexity: Low (static overlay component, triggered by key press).
UX Impact: Medium - improves discoverability and reduces learning curve.
10. CPU Usage Meter¶
Description: Display the real-time CPU usage of the plugin as a small indicator in the header strip. Show both instant and average CPU load.
Use Case: The user monitors plugin performance to ensure it doesn't exceed the DAW's real-time processing budget.
Complexity: Low (JUCE provides getCpuUsage() on AudioProcessor).
UX Impact: Medium - important for power users running multiple plugin instances.
Status: Implemented. OpenVoxTunerAudioProcessor::getCpuUsage() (smoothed
ratio of processBlock time to available block time) is shown in the editor's
header bar (currentCpuUsage, refreshed every timerCallback()).
Priority Ranking¶
| # | Feature | Complexity | UX Impact | Recommended Priority |
|---|---|---|---|---|
| 6 | A/B Comparison | Low | High | Immediate |
| 8 | MIDI Learn | Low | High | Immediate |
| 5 | Undo/Redo Curve Editor | Medium | High | High |
| 9 | Keyboard Shortcuts Overlay | Low | Medium | Implemented |
| 10 | CPU Usage Meter | Low | Medium | High |
| 1 | ARA2 Waveform Overlay | High | High | Medium |
| 2 | Per-Voice Harmony Tuning | Medium | Medium | Medium |
| 3 | Formant Shift Visualization | Medium | Medium | Medium |
| 7 | Tuning Statistics | Medium | Medium | Medium |
| 4 | Preset Morphing | High | High | Low (future) |