jdxi_editor.midi.data.parameter.digital.partial

This class defines digital synthesizer parameters for the Roland JD-Xi, mapping various synthesis parameters to their corresponding memory addresses and valid value ranges.

The parameters include: - Oscillator settings (waveform, pitch, detune, envelope, etc.) - Filter settings (cutoff, resonance, envelope, key follow, etc.) - Amplitude settings (level, velocity, envelope, pan, etc.) - LFO (Low-Frequency Oscillator) settings (waveform, rate, depth, sync, etc.) - Modulation LFO settings (waveform, rate, depth, sync, etc.) - Additional synthesis controls (aftertouch, wave gain, super saw detune, etc.) - PCM wave settings (wave number, gain, high-pass filter cutoff, etc.)

Each parameter is stored as address tuple containing:

(memory_address, min_value, max_value)

- OSC_WAVE

Defines the oscillator waveform preset_type.

- FILTER_CUTOFF

Controls the filter cutoff frequency.

- AMP_LEVEL

Sets the overall amplitude level.

- LFO_RATE

Adjusts the rate of the low-frequency oscillator.

- MOD_LFO_PITCH_DEPTH

Modulates pitch using the secondary LFO.

-
Type:

Other parameters follow address similar structure.

__init__(self, address

int, min_val: int, max_val: int): Initializes address DigitalParameter instance with an address and value range.

Usage Example:

filter_cutoff = DigitalParameter(0x0C, 0, 127) # Filter Cutoff Frequency print(filter_cutoff.address) # Output: 0x0C

This class helps structure and manage parameter mappings for JD-Xi SysEx processing.

Classes

DigitalPartialParam

Digital synth parameters with their addresses and value ranges

Module Contents

class jdxi_editor.midi.data.parameter.digital.partial.DigitalPartialParam(address: int, min_val: int, max_val: int, display_min: int | None = None, display_max: int | None = None, tooltip: str | None = None)[source]

Bases: picomidi.sysex.parameter.address.AddressParameter

Digital synth parameters with their addresses and value ranges

display_min = None[source]
display_max = None[source]
tooltip = None[source]
bipolar_parameters = ['OSC_PITCH', 'OSC_DETUNE', 'OSC_PITCH_ENV_DEPTH', 'FILTER_CUTOFF_KEYFOLLOW',...[source]
CONVERSION_OFFSETS[source]
get_display_value() Tuple[int, int][source]

Get the display range for the parameter

OSC_WAVE[source]
OSC_WAVE_VARIATION = (1, 0, 2, 0, 2, 'You can select variations of the currently selected WAVE')[source]
OSC_PITCH[source]
OSC_DETUNE[source]
OSC_PULSE_WIDTH_MOD_DEPTH[source]
OSC_PULSE_WIDTH[source]
OSC_PITCH_ENV_ATTACK_TIME[source]
OSC_PITCH_ENV_DECAY_TIME[source]
OSC_PITCH_ENV_DEPTH[source]
FILTER_MODE_SWITCH[source]
FILTER_SLOPE = (11, 0, 1, 0, 1, 'Selects the slope (steepness) of the filter. -12, -24 [dB]')[source]
FILTER_CUTOFF = (12, 0, 127, 0, 127, 'Specifies the cutoff frequency')[source]
FILTER_CUTOFF_KEYFOLLOW[source]
FILTER_ENV_VELOCITY_SENSITIVITY[source]
FILTER_RESONANCE = (15, 0, 127, 0, 127, 'Emphasizes the sound in the region of the filter cutoff frequency')[source]
FILTER_ENV_ATTACK_TIME[source]
FILTER_ENV_DECAY_TIME[source]
FILTER_ENV_SUSTAIN_LEVEL[source]
FILTER_ENV_RELEASE_TIME[source]
FILTER_ENV_DEPTH[source]
AMP_LEVEL = (21, 0, 127, 0, 127, 'Partial volume')[source]
AMP_VELOCITY[source]
AMP_ENV_ATTACK_TIME[source]
AMP_ENV_DECAY_TIME[source]
AMP_ENV_SUSTAIN_LEVEL[source]
AMP_ENV_RELEASE_TIME[source]
AMP_PAN[source]
AMP_LEVEL_KEYFOLLOW[source]
LFO_SHAPE[source]
LFO_RATE = (29, 0, 127, 0, 127, 'Specifies the LFO rate when LFO Tempo Sync Sw is OFF')[source]
LFO_TEMPO_SYNC_SWITCH = (30, 0, 1, 0, 1, 'If this is ON, the LFO rate can be specified as a note value relative to the tempo')[source]
LFO_TEMPO_SYNC_NOTE[source]
LFO_FADE_TIME = (32, 0, 127, 0, 127, 'Specifies the time from when the partial sounds until the LFO reaches its...[source]
LFO_KEY_TRIGGER = (33, 0, 1, 0, 1, 'If this is on, the LFO cycle will be restarted when you press a key')[source]
LFO_PITCH_DEPTH[source]
LFO_FILTER_DEPTH[source]
LFO_AMP_DEPTH[source]
LFO_PAN_DEPTH[source]
MOD_LFO_SHAPE[source]
MOD_LFO_RATE = (39, 0, 127, 0, 127, 'Specifies the LFO rate when ModLFO TempoSyncSw is OFF.')[source]
MOD_LFO_TEMPO_SYNC_SWITCH = (40, 0, 1, 0, 1, 'If this is ON, the LFO rate can be specified as a note value relative to the tempo')[source]
MOD_LFO_TEMPO_SYNC_NOTE = (41, 0, 19, 0, 19, 'Specifies the LFO rate when ModLFO TempoSyncSw is ON')[source]
OSC_PULSE_WIDTH_SHIFT[source]
MOD_LFO_PITCH_DEPTH[source]
MOD_LFO_FILTER_DEPTH[source]
MOD_LFO_AMP_DEPTH[source]
MOD_LFO_PAN[source]
MOD_LFO_RATE_CTRL[source]
CUTOFF_AFTERTOUCH[source]
LEVEL_AFTERTOUCH[source]
HPF_CUTOFF = (57, 0, 127, 0, 127, 'Specifies the cutoff frequency of an independent -6 dB high-pass filter')[source]
SUPER_SAW_DETUNE[source]
PCM_WAVE_GAIN = (52, 0, 3, 0, 3, 'Sets the gain for PCM waveforms; 0dB, -6dB, +6dB, +12dB')[source]
PCM_WAVE_NUMBER = (53, 0, 16384, 0, 16384, 'Selects the PCM waveform; 0-16383 * This is valid only if PCM is...[source]
property display_name: str[source]

Get display name for the parameter

get_switch_text(value: int) str[source]

Get display text for switch values

validate_value(value: int) int[source]

Validate and convert parameter value to MIDI range (0-127).

get_address_for_partial(partial_number: int) Tuple[int, int][source]

Get parameter area and address adjusted for partial number.

Parameters:

partial_number – int The partial number

Returns:

Tuple[int, int] The (group, address) tuple

static get_by_name(param_name: str) object | None[source]

Get the DigitalParameter by name.

Parameters:

param_name – str The parameter name

Returns:

Optional[AddressParameterDigitalPartial] The parameter

Return the parameter member by name, or None if not found

convert_value(value: int, reverse: bool = False) int[source]

Converts value in both directions based on CONVERSION_OFFSETS

Parameters:
  • value – int The value

  • reverse – bool The reverse flag

Returns:

int The converted value

convert_to_midi(slider_value: int) int[source]

Convert from display value to MIDI value

Parameters:

slider_value – int The display value

Returns:

int The MIDI value

convert_from_midi(midi_value: int) int[source]

Convert from MIDI value to display value

Parameters:

midi_value – int The MIDI value

Returns:

int The display value

get_envelope_param_type()[source]

Returns a envelope_param_type, if the parameter is part of an envelope, otherwise returns None.

Returns:

Optional[str] The envelope parameter type