envelope

ADSR Widget for Roland JD-Xi

This widget provides address visual interface for editing ADSR (Attack, Decay, Sustain, Release) envelope parameters. It includes: - Interactive sliders for each ADSR parameter - Visual envelope plot - Real-time parameter updates - MIDI parameter integration via SynthParameter objects

The widget supports both analog and digital synth parameters and provides visual feedback through an animated envelope curve.

Submodules

Attributes

app

Classes

WMTEnvelopeWidget

Pitch Envelope Class

Module Contents

class envelope.WMTEnvelopeWidget(fade_lower_param: picomidi.sysex.parameter.address.AddressParameter, range_lower_param: picomidi.sysex.parameter.address.AddressParameter, depth_param: picomidi.sysex.parameter.address.AddressParameter, range_upper_param: picomidi.sysex.parameter.address.AddressParameter, fade_upper_param: picomidi.sysex.parameter.address.AddressParameter, midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper | None = None, create_parameter_slider: Callable = None, controls: dict[picomidi.sysex.parameter.address.AddressParameter, PySide6.QtWidgets.QWidget] = None, address: jdxi_editor.midi.data.address.address.RolandSysExAddress | None = None, parent: PySide6.QtWidgets.QWidget | None = None)[source]

Bases: jdxi_editor.ui.widgets.envelope.base.EnvelopeWidgetBase

Pitch Envelope Class

envelope_changed[source]
address = None[source]
midi_helper = None[source]
level_param[source]
_create_parameter_slider = None[source]
envelope[source]
fade_lower_control[source]
range_lower_control[source]
depth_control[source]
range_upper_control[source]
fade_upper_control[source]
_control_widgets[source]
layout[source]
envelope_spinbox_map[source]
plot[source]
set_values(envelope: dict)[source]

Update envelope values and trigger address redraw

Parameters:

envelope – dict

Returns:

None

on_control_changed(change: dict) None[source]

Control Change callback

Parameters:

change – dict envelope

Returns:

None

Emits:

dict pitch envelope parameters

update_envelope_from_spinboxes()[source]

Update envelope values from spinboxes :emits: dict pitch envelope parameters

update_spinboxes_from_envelope()[source]

Update spinboxes from envelope values :emits: dict pitch envelope parameters

update_envelope_from_slider(slider: PySide6.QtWidgets.QSlider) None[source]

Update envelope with value from a single slider

Parameters:

slider – QSlider

Returns:

update_envelope_from_controls() None[source]

Update envelope values from slider controls

update_controls_from_envelope_old() None[source]

Update slider controls from envelope values.

update_controls_from_envelope() None[source]

Update slider controls from envelope values.

envelope.app[source]