jdxi_editor.midi.data.parameter.analog.address

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 log.message(filter_cutoff.address) # Output: 0x0C

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

Classes

AnalogParam

Analog synth parameters with area, address, and value range.

Module Contents

class jdxi_editor.midi.data.parameter.analog.address.AnalogParam(address: int, min_val: int, max_val: int, display_min: int | None = None, display_max: int | None = None, tooltip: str | None = None, display_name: str | None = None, options: list | None = None, values: list | None = None, vertical: bool = True)[source]

Bases: picomidi.sysex.parameter.address.AddressParameter

Analog synth parameters with area, address, and value range.

TONE_NAME_1[source]
TONE_NAME_2[source]
TONE_NAME_3[source]
TONE_NAME_4[source]
TONE_NAME_5[source]
TONE_NAME_6[source]
TONE_NAME_7[source]
TONE_NAME_8[source]
TONE_NAME_9[source]
TONE_NAME_10[source]
TONE_NAME_11[source]
TONE_NAME_12[source]
LFO_SHAPE[source]
LFO_RATE[source]
LFO_FADE_TIME[source]
LFO_TEMPO_SYNC_SWITCH[source]
LFO_TEMPO_SYNC_NOTE[source]
LFO_PITCH_DEPTH[source]
LFO_FILTER_DEPTH[source]
LFO_AMP_DEPTH[source]
LFO_KEY_TRIGGER[source]
OSC_WAVEFORM[source]
OSC_PITCH_COARSE[source]
OSC_PITCH_FINE[source]
OSC_PULSE_WIDTH[source]
OSC_PULSE_WIDTH_MOD_DEPTH[source]
OSC_PITCH_ENV_VELOCITY_SENSITIVITY[source]
OSC_PITCH_ENV_ATTACK_TIME[source]
OSC_PITCH_ENV_DECAY_TIME[source]
OSC_PITCH_ENV_DEPTH[source]
SUB_OSCILLATOR_TYPE[source]
FILTER_MODE_SWITCH[source]
FILTER_CUTOFF[source]
FILTER_CUTOFF_KEYFOLLOW[source]
FILTER_RESONANCE[source]
FILTER_ENV_VELOCITY_SENSITIVITY[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[source]
AMP_LEVEL_KEYFOLLOW[source]
AMP_LEVEL_VELOCITY_SENSITIVITY[source]
AMP_ENV_ATTACK_TIME[source]
AMP_ENV_DECAY_TIME[source]
AMP_ENV_SUSTAIN_LEVEL[source]
AMP_ENV_RELEASE_TIME[source]
PORTAMENTO_SWITCH[source]
PORTAMENTO_TIME[source]
LEGATO_SWITCH[source]
OCTAVE_SHIFT[source]
PITCH_BEND_UP[source]
PITCH_BEND_DOWN[source]
LFO_PITCH_MODULATION_CONTROL[source]
LFO_FILTER_MODULATION_CONTROL[source]
LFO_AMP_MODULATION_CONTROL[source]
LFO_RATE_MODULATION_CONTROL[source]
display_min[source]
display_max[source]
tooltip[source]
_display_name = None[source]
options = None[source]
values = None[source]
vertical = True[source]
switches = ['FILTER_SWITCH', 'PORTAMENTO_SWITCH', 'LEGATO_SWITCH', 'LFO_TEMPO_SYNC_SWITCH'][source]
bipolar_parameters = ['LFO_PITCH_DEPTH', 'LFO_FILTER_DEPTH', 'LFO_AMP_DEPTH', 'FILTER_ENV_VELOCITY_SENSITIVITY',...[source]
get_bipolar_parameters()[source]
validate_value(value: int) int[source]

Validate that the parameter value is within the allowed range.

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

Get the AnalogParameter by name.

Parameters:

param_name – str The parameter name

Returns:

Optional[object] The parameter

static get_name_by_address(address: int) str | None[source]

Return the parameter name for address given address.

Parameters:

address – int The address

Returns:

Optional[str] The parameter name

property display_name: str[source]

Get digital name for the parameter (from ParameterSpec or fallback).

static get_address(param_name: str) int | None[source]

Get the address of address parameter by name.

Parameters:

param_name – str The parameter name

Returns:

Optional[int] The address

static get_range(param_name: str) Tuple[int, int][source]

Get the value range (min, max) of address parameter by name.

Parameters:

param_name – str The parameter name

Returns:

Tuple[int, int] The value range

static get_display_range(param_name: str) Tuple[int, int][source]

Get the digital value range (min, max) of address parameter by name.

Parameters:

param_name – str The parameter name

Returns:

Tuple[int, int] The digital value range

get_display_value() Tuple[int, int][source]

Get the digital value range (min, max) for the parameter

Returns:

Tuple[int, int] The digital value range

convert_to_midi(display_value: int) int[source]

Convert from digital value to MIDI value

Parameters:

display_value – int The digital value

Returns:

int The MIDI value

convert_from_midi(midi_value: int) int[source]

Convert from MIDI value to digital value

Parameters:

midi_value – int The MIDI value

Returns:

int The digital value

static get_display_value_by_name(param_name: str, value: int) int[source]

Get the digital value for address parameter by name and value.

Parameters:
  • param_name – str The parameter name

  • value – int The value

Returns:

int The digital value

static get_midi_range(param_name: str) Tuple[int, int][source]

Get the MIDI value range (min, max) of address parameter by name.

Parameters:

param_name – str The parameter name

Returns:

Tuple[int, int] The MIDI value range

static get_midi_value(param_name: str, value: int) int | None[source]

Get the MIDI value for address parameter by name and value.

Parameters:
  • param_name – str The parameter name

  • value – int The value

Returns:

Optional[int] The MIDI value

get_address_for_partial(partial_number: int = 0) 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 parameter area and address

get_envelope_param_type()[source]

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