jdxi_editor.ui.editors.drum.partial.tvf
This module defines the DrumTVFSection class, which provides a PySide6-based user interface for editing drum TVF parameters in the Roland JD-Xi synthesizer. It extends the QWidget base class and integrates MIDI communication for real-time parameter adjustments and preset management.
Key Features:
Provides a graphical editor for modifying drum TVF parameters, including filter type, cutoff frequency, cutoff velocity curve, env depth, env velocity curve type, env velocity sens, env time1 velocity sens, env time4 velocity sens, env time1, env time2, env time3, env time4, env level0, env level1, env level2, env level3, and env level4.
Includes a visual envelope plot showing the 5-level, 4-time-segment TVF envelope curve.
Dependencies:
PySide6 (for UI components and event handling)
MIDIHelper (for handling MIDI communication)
PresetHandler (for managing synth presets)
Various custom enums and helper classes (AnalogParameter, AnalogCommonParameter, etc.)
Usage:
The DrumTVFSection class can be instantiated as part of a larger PySide6 application. It requires a MIDIHelper instance for proper communication with the synthesizer.
Example:
midi_helper = MidiIOHelper() editor = DrumTVFSection(midi_helper) editor.show()
Classes
Plot widget for drum TVF envelope visualization. |
|
Drum TVF Section for the JDXI Editor |
Functions
|
Convert MIDI value (0-127) to cutoff frequency level (0.0 to 127.0). |
|
Convert MIDI value (0-127) to normalized time (0.0 to max_time seconds). |
Module Contents
- jdxi_editor.ui.editors.drum.partial.tvf.midi_to_cutoff_level(midi_value: int) float[source]
Convert MIDI value (0-127) to cutoff frequency level (0.0 to 127.0).
- jdxi_editor.ui.editors.drum.partial.tvf.midi_to_time_normalized(midi_value: int, max_time: float = 10.0) float[source]
Convert MIDI value (0-127) to normalized time (0.0 to max_time seconds).
- class jdxi_editor.ui.editors.drum.partial.tvf.DrumTVFEnvPlot(width: int = JDXiStyle.ADSR_PLOT_WIDTH, height: int = JDXiStyle.ADSR_PLOT_HEIGHT, envelope: dict = None, parent: PySide6.QtWidgets.QWidget = None)[source]
Bases:
PySide6.QtWidgets.QWidgetPlot widget for drum TVF envelope visualization.
- class jdxi_editor.ui.editors.drum.partial.tvf.DrumTVFSection(controls: dict[jdxi_editor.midi.data.parameter.drum.partial.DrumPartialParam, PySide6.QtWidgets.QWidget], create_parameter_combo_box: Callable, create_parameter_slider: Callable, midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper)[source]
Bases:
PySide6.QtWidgets.QWidgetDrum TVF Section for the JDXI Editor
- _update_envelope(key: str, value: int, param: jdxi_editor.midi.data.parameter.drum.partial.DrumPartialParam = None) None[source]
Update envelope value and refresh plot
- Parameters:
key – str Envelope parameter key
value – int Display value from slider
param – AddressParameterDrumPartial Parameter object for conversion