jdxi_editor.midi.data.parameter.digital.common

Module: AddressParameterDigitalCommon

This module defines the AddressParameterDigitalCommon class, which represents common parameters for Digital/SuperNATURAL synth tones. These parameters are shared across all partials and define various synthesizer settings, such as tone name, tone level, performance parameters, partial switches, and additional effects.

The class provides methods to:

  • Retrieve a human-readable display name for each parameter.

  • Identify if a parameter is a switch (binary or enum).

  • Get appropriate display text for switch values.

  • Validate and convert parameter values within their defined range.

  • Retrieve the partial number (1-3) for partial-specific parameters.

  • Get a parameter by its name.

Parameters include: - Tone name parameters (12 ASCII characters) - Tone level - Performance parameters (e.g., Portamento switch, Mono switch) - Partial switches (e.g., Partial 1 switch, Partial 2 switch) - Additional effect parameters (e.g., Ring Mod, Unison, Analog Feel)

Usage example:

# Initialize a parameter object param = AddressParameterDigitalCommon(address=0x00, min_val=0, max_val=127)

# Get the display name for the parameter print(param.display_name)

# Validate and convert a value for the parameter valid_value = param.validate_value(64)

# Get the switch text for a given value switch_text = param.get_switch_text(1)

Classes

DigitalCommonParam

Common parameters for Digital/SuperNATURAL synth tones.

Module Contents

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

Get display name for the parameter

property is_switch: bool[source]

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]