jdxi_editor.midi.data.parameter.digital

Submodules

Classes

DigitalCommonParam

Common parameters for Digital/SuperNATURAL synth tones.

DigitalModifyParam

Modify parameters for Digital/SuperNATURAL synth tones.

DigitalPartialParam

Digital synth parameters with their addresses and value ranges

Package Contents

class jdxi_editor.midi.data.parameter.digital.DigitalCommonParam(address: int, min_val: int, max_val: int, tooltip: str = '')[source]

Bases: picomidi.sysex.parameter.address.AddressParameter

Common parameters for Digital/SuperNATURAL synth tones. These parameters are shared across all partials.

address
min_val
max_val
tooltip = ''
TONE_NAME_1 = (0, 32, 127)
TONE_NAME_2 = (1, 32, 127)
TONE_NAME_3 = (2, 32, 127)
TONE_NAME_4 = (3, 32, 127)
TONE_NAME_5 = (4, 32, 127)
TONE_NAME_6 = (5, 32, 127)
TONE_NAME_7 = (6, 32, 127)
TONE_NAME_8 = (7, 32, 127)
TONE_NAME_9 = (8, 32, 127)
TONE_NAME_10 = (9, 32, 127)
TONE_NAME_11 = (10, 32, 127)
TONE_NAME_12 = (11, 32, 127)
TONE_LEVEL = (12, 0, 127, 'Adjusts the overall volume of the tone')
PORTAMENTO_SWITCH = (18, 0, 1, 'Specifies whether the portamento effect will be applied (ON) or not applied (OFF)')
PORTAMENTO_TIME
MONO_SWITCH = (20, 0, 1, 'Specifies whether notes will sound polyphonically (POLY) or monophonically (MONO)')
OCTAVE_SHIFT = (21, 61, 67, 'Specifies the octave of the tone')
PITCH_BEND_UP
PITCH_BEND_DOWN
PARTIAL1_SWITCH = (25, 0, 1, 'Partial 1 turn on (OFF, ON)')
PARTIAL1_SELECT = (26, 0, 1, 'Partial 1 select and edit (OFF, ON)')
PARTIAL2_SWITCH = (27, 0, 1, 'Partial 2 turn on (OFF, ON)')
PARTIAL2_SELECT = (28, 0, 1, 'Partial 2 select and edit (OFF, ON)')
PARTIAL3_SWITCH = (29, 0, 1, 'Partial 1 turn on (OFF, ON)')
PARTIAL3_SELECT = (30, 0, 1, 'Partial 3 select and edit (OFF, ON)')
RING_SWITCH
UNISON_SWITCH
PORTAMENTO_MODE
LEGATO_SWITCH
ANALOG_FEEL
WAVE_SHAPE
TONE_CATEGORY = (54, 0, 127, 'Selects the tone’s category.')
UNISON_SIZE
property display_name: str

Get display name for the parameter

property is_switch: bool

Returns True if parameter is address binary/enum switch

get_switch_text(value: int) str[source]

Get display text for switch values

validate_value(value: int) int[source]

Validate and convert parameter value

get_partial_number() int | None[source]

Returns the partial number (1-3) if this is address partial parameter, None otherwise

static get_by_name(param_name)[source]

Get the Parameter by name.

get_address_for_partial(partial_number: int = 0)[source]
class jdxi_editor.midi.data.parameter.digital.DigitalModifyParam(address: int, min_val: int, max_val: int, tooltip: str = '')[source]

Bases: picomidi.sysex.parameter.address.AddressParameter

Modify parameters for Digital/SuperNATURAL synth tones. These parameters are shared across all partials.

address
min_val
max_val
tooltip = ''
ATTACK_TIME_INTERVAL_SENS
RELEASE_TIME_INTERVAL_SENS
PORTAMENTO_TIME_INTERVAL_SENS
ENVELOPE_LOOP_MODE
ENVELOPE_LOOP_SYNC_NOTE
CHROMATIC_PORTAMENTO
get_switch_text(value: int) str[source]

Get display text for switch values

static get_by_name(param_name)[source]

Get the Parameter by name.

validate_value(value: int) int[source]

Validate and convert parameter value

get_address_for_partial(partial_number: int = 0)[source]
class jdxi_editor.midi.data.parameter.digital.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
display_max = None
tooltip = None
bipolar_parameters = ['OSC_PITCH', 'OSC_DETUNE', 'OSC_PITCH_ENV_DEPTH', 'FILTER_CUTOFF_KEYFOLLOW',...
CONVERSION_OFFSETS
get_display_value() Tuple[int, int][source]

Get the display range for the parameter

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

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