Source code for jdxi_editor.midi.data.address.address_map

"""
5. Parameter Address Map
========================

Example usage:
>>> from picomidi.core.parameter.factory import AddressFactory
>>> system_common = AddressFactory.from_str("01 00 00 00")

>>> print(PARAMETER_ADDRESS_MAP[ParameterAreas.SYSTEM][ByteGroupKind.ADDRESS_4][system_common])
AddressStartMSB.SETUP: 0x02

**Transmission of “#” marked address is divided to some packets. For
example, ABH in hexadecimal notation will be divided to 0AH and
0BH, and is sent/received in this order.
**“<*>” marked address

For reference:
JD-Xi (ModelID = 00H 00H 00H 0EH)
+------------------------------------------------------------------------------+
| Start       |                                                                |
| Address     |               Description                                      |
|-------------+----------------------------------------------------------------|
| 01 00 00 00 | Setup                                                          |
|-------------+----------------------------------------------------------------|
| 02 00 00 00 | System                                                         |
|-------------+----------------------------------------------------------------|
| 18 00 00 00 | Temporary Program                                              |
| 19 00 00 00 | Temporary Tone (Digital Synth Part 1)                          |
| 19 20 00 00 | Temporary Tone (Digital Synth Part 2)                          |
| 19 40 00 00 | Temporary Tone (Analog Synth Part)                             |
| 19 60 00 00 | Temporary Tone (Drums Part)                                    |
+------------------------------------------------------------------------------+
**System
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Offset      |                                                                |
|-------------+----------------------------------------------------------------|
|    00 00 00 | System Common                                                  |
|    00 03 00 | System Controller                                              |
+------------------------------------------------------------------------------+
**Temporary Tone
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Address     | Description                                                    |
|-------------+----------------------------------------------------------------|
|    01 00 00 | Temporary SuperNATURAL Synth Tone                              |
|    02 00 00 | Temporary Analog Synth Tone                                    |
|    10 00 00 | Temporary Drum Kit                                             |
+------------------------------------------------------------------------------+
**Program
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Address     | Description                                                    |
|-------------+----------------------------------------------------------------|
|    00 00 00 | Program Common                                                 |
|    00 01 00 | Program Vocal Effect                                           |
|    00 02 00 | Program Effect 1                                               |
|    00 04 00 | Program Effect 2                                               |
|    00 06 00 | Program Delay                                                  |
|    00 08 00 | Program Reverb                                                 |
|    00 20 00 | Program Part (Digital Synth Part 1)                            |
|    00 21 00 | Program Part (Digital Synth Part 2)                            |
|    00 22 00 | Program Part (Analog Synth Part)                               |
|    00 23 00 | Program Part (Drums Part)                                      |
|    00 30 00 | Program Zone (Digital Synth Part 1)                            |
|    00 31 00 | Program Zone (Digital Synth Part 2)                            |
|    00 32 00 | Program Zone (Analog Synth Part)                               |
|    00 33 00 | Program Zone (Drums Part)                                      |
|    00 40 00 | Program Controller                                             |
+------------------------------------------------------------------------------+
**SuperNATURAL Synth Tone
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Address     | Description                                                    |
|-------------+----------------------------------------------------------------|
|    00 00 00 | SuperNATURAL Synth Tone Common                                 |
|    00 20 00 | SuperNATURAL Synth Tone Partial (1)                            |
|    00 21 00 | SuperNATURAL Synth Tone Partial (2)                            |
|    00 22 00 | SuperNATURAL Synth Tone Partial (3)                            |
|    00 50 00 | SuperNATURAL Synth Tone Modify                                 |
+------------------------------------------------------------------------------+
**Analog Synth Tone
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Address     | Description                                                    |
|-------------+----------------------------------------------------------------|
|    00 00 00 | Analog Synth Tone                                              |
+------------------------------------------------------------------------------+
**Drum Kit
+------------------------------------------------------------------------------+
| Offset      |                                                                |
| Address     | Description                                                    |
|-------------+----------------------------------------------------------------|
|    00 00 00 | Drum Kit Common                                                |
|    00 2E 00 | Drum Kit Partial (Key # 36)                                    |
|    00 30 00 | Drum Kit Partial (Key # 37)                                    |
|        :    |                                                                |
|    00 76 00 | Drum Kit Partial (Key # 72)                                    |
+------------------------------------------------------------------------------+
"""

from picomidi.core.parameter.factory import AddressFactory
from picomidi.core.parameter.kind import ByteGroupKind

from jdxi_editor.midi.data.address.address import (
    AddressOffsetDrumKitLMB,
    AddressOffsetProgramLMB,
    AddressOffsetSuperNATURALLMB,
    AddressOffsetSystemLMB,
    AddressOffsetTemporaryToneUMB,
    AddressStartMSB,
)
from jdxi_editor.midi.data.parameter.address.name import (
    ParameterAddressName as AddressName,
)
from jdxi_editor.midi.data.parameter.address.table import (
    PARAMETER_ADDRESS_TABLE as ADDRESSES,
)
from jdxi_editor.midi.data.parameter.address.table import (
    parameter_address_table,
)
from jdxi_editor.midi.data.parameter.areas.name import ParameterAreas
from jdxi_editor.midi.data.parameter.offset.name import (
    ParameterOffsetName as OffsetName,
)
from jdxi_editor.midi.data.parameter.offset.table import (
    PARAMETER_OFFSET_TABLE as OFFSETS,
)
from jdxi_editor.midi.data.parameter.offset.table import (
    parameter_offset_table,
)

[docs] parameter_address_map = {}
[docs] parameter_offset_map = {}
for param, address in parameter_address_table: print(f"{param}: {address}") parameter_address_map[param] = AddressFactory.from_str(address) print(f"{param}: {parameter_address_map[param]}") for param, offset in parameter_offset_table: print(f"{param}: {offset}") parameter_offset_map[param] = AddressFactory.from_str(offset) print(f"{param}: {parameter_offset_map[param]}")
[docs] PARAMETER_ADDRESS_MAP = { ParameterAreas.SYSTEM: { ByteGroupKind.ADDRESS_4: { ADDRESSES[AddressName.SETUP]: AddressStartMSB.SETUP, # "Setup", ADDRESSES[AddressName.SYSTEM]: AddressStartMSB.SYSTEM, # "System" }, ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.SYSTEM_COMMON ]: AddressOffsetSystemLMB.COMMON, # "System Common", OFFSETS[ OffsetName.SYSTEM_CONTROLLER ]: AddressOffsetSystemLMB.CONTROLLER, # "System Controller" }, }, ParameterAreas.TEMPORARY_TONE: { ByteGroupKind.ADDRESS_4: { ADDRESSES[ AddressName.TEMPORARY_PROGRAM ]: AddressStartMSB.TEMPORARY_PROGRAM, # Temporary Program ADDRESSES[ AddressName.TEMPORARY_TONE_DIGITAL1 ]: AddressOffsetTemporaryToneUMB.DIGITAL_SYNTH_1, # "Temporary Tone (Digital Synth Part 1)", ADDRESSES[ AddressName.TEMPORARY_TONE_DIGITAL2 ]: AddressOffsetTemporaryToneUMB.DIGITAL_SYNTH_2, # "Temporary Tone (Digital Synth Part 2)", ADDRESSES[ AddressName.TEMPORARY_TONE_ANALOG ]: AddressOffsetTemporaryToneUMB.ANALOG_SYNTH, # "Temporary Tone (Analog Synth Part)", ADDRESSES[ AddressName.TEMPORARY_DRUM_KIT ]: AddressOffsetTemporaryToneUMB.DRUM_KIT, # "Temporary Tone (Drums Part)" }, ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.TEMPORARY_SUPERNATURAL_SYNTH_TONE ]: AddressOffsetTemporaryToneUMB.DIGITAL_SYNTH_1, # "Temporary SuperNATURAL Synth Tone", OFFSETS[ OffsetName.TEMPORARY_ANALOG_SYNTH_TONE ]: AddressOffsetTemporaryToneUMB.ANALOG_SYNTH, # "Temporary Analog Synth Tone", OFFSETS[ OffsetName.TEMPORARY_DRUM_KIT ]: AddressOffsetTemporaryToneUMB.DRUM_KIT, # "Temporary Drum Kit" }, }, ParameterAreas.PROGRAM: { ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.PROGRAM_COMMON ]: AddressOffsetProgramLMB.COMMON, # "Program Common", OFFSETS[ OffsetName.PROGRAM_VOCAL_EFFECT ]: AddressOffsetProgramLMB.VOCAL_EFFECT, # "Program Vocal Effect", OFFSETS[ OffsetName.PROGRAM_EFFECT_1 ]: AddressOffsetProgramLMB.EFFECT_1, # "Program Effect 1", OFFSETS[ OffsetName.PROGRAM_EFFECT_2 ]: AddressOffsetProgramLMB.EFFECT_2, # "Program Effect 2", OFFSETS[ OffsetName.PROGRAM_DELAY ]: AddressOffsetProgramLMB.DELAY, # "Program Delay", OFFSETS[ OffsetName.PROGRAM_REVERB ]: AddressOffsetProgramLMB.REVERB, # "Program Reverb", OFFSETS[ OffsetName.PROGRAM_PART_DIGITAL1 ]: AddressOffsetProgramLMB.PART_DIGITAL_SYNTH_1, # "Program Part (Digital Synth Part 1)", OFFSETS[ OffsetName.PROGRAM_PART_DIGITAL2 ]: AddressOffsetProgramLMB.PART_DIGITAL_SYNTH_2, # "Program Part (Digital Synth Part 2)", OFFSETS[ OffsetName.PROGRAM_PART_ANALOG ]: AddressOffsetProgramLMB.PART_ANALOG, # "Program Part (Analog Synth Part)", OFFSETS[ OffsetName.PROGRAM_PART_DRUMS ]: AddressOffsetProgramLMB.PART_DRUM, # "Program Part (Drums Part)", OFFSETS[ OffsetName.PROGRAM_ZONE_DIGITAL1 ]: AddressOffsetProgramLMB.ZONE_DIGITAL_SYNTH_1, # "Program Zone (Digital Synth Part 1)", OFFSETS[ OffsetName.PROGRAM_ZONE_DIGITAL2 ]: AddressOffsetProgramLMB.ZONE_DIGITAL_SYNTH_2, # "Program Zone (Digital Synth Part 2)", OFFSETS[ OffsetName.PROGRAM_ZONE_ANALOG ]: AddressOffsetProgramLMB.ZONE_ANALOG, # "Program Zone (Analog Synth Part)", OFFSETS[ OffsetName.PROGRAM_ZONE_DRUMS ]: AddressOffsetProgramLMB.ZONE_DRUM, # "Program Zone (Drums Part)", OFFSETS[OffsetName.PROGRAM_CONTROLLER]: AddressOffsetProgramLMB.CONTROLLER, } }, ParameterAreas.SUPERNATURAL_SYNTH_TONE: { ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.SUPERNATURAL_SYNTH_TONE_COMMON ]: AddressOffsetSuperNATURALLMB.COMMON, # "SuperNATURAL Synth Tone Common", OFFSETS[ OffsetName.SUPERNATURAL_SYNTH_TONE_PARTIAL1 ]: AddressOffsetSuperNATURALLMB.PARTIAL_1, # "SuperNATURAL Synth Tone Partial (1)", OFFSETS[ OffsetName.SUPERNATURAL_SYNTH_TONE_PARTIAL2 ]: AddressOffsetSuperNATURALLMB.PARTIAL_2, # "SuperNATURAL Synth Tone Partial (2)", OFFSETS[ OffsetName.SUPERNATURAL_SYNTH_TONE_PARTIAL3 ]: AddressOffsetSuperNATURALLMB.PARTIAL_3, # "SuperNATURAL Synth Tone Partial (3)", OFFSETS[ OffsetName.SUPERNATURAL_SYNTH_TONE_MODIFY ]: AddressOffsetSuperNATURALLMB.MODIFY, # "SuperNATURAL Synth Tone Modify" } }, ParameterAreas.ANALOG_SYNTH_TONE: { ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.ANALOG_SYNTH_TONE ]: AddressOffsetProgramLMB.COMMON # "Analog Synth Tone" } }, ParameterAreas.DRUM_KIT: { ByteGroupKind.OFFSET_3: { OFFSETS[ OffsetName.DRUM_KIT_COMMON ]: AddressOffsetDrumKitLMB.COMMON, # "Drum Kit Common", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL1 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_1, # "Drum Kit Partial (Key # 36)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL2 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_2, # "Drum Kit Partial (Key # 37)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL3 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_3, # "Drum Kit Partial (Key # 38)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL4 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_4, # "Drum Kit Partial (Key # 39)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL5 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_5, # "Drum Kit Partial (Key # 40)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL6 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_6, # "Drum Kit Partial (Key # 41)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL7 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_7, # "Drum Kit Partial (Key # 42)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL8 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_8, # "Drum Kit Partial (Key # 43)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL9 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_9, # "Drum Kit Partial (Key # 44)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL10 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_10, # "Drum Kit Partial (Key # 45)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL11 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_11, # "Drum Kit Partial (Key # 46)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL12 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_12, # "Drum Kit Partial (Key # 47)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL13 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_13, # "Drum Kit Partial (Key # 48)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL14 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_14, # "Drum Kit Partial (Key # 49)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL15 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_15, # "Drum Kit Partial (Key # 50)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL16 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_16, # "Drum Kit Partial (Key # 51)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL17 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_17, # "Drum Kit Partial (Key # 52)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL18 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_18, # "Drum Kit Partial (Key # 53)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL19 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_19, # "Drum Kit Partial (Key # 54)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL20 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_20, # "Drum Kit Partial (Key # 55)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL21 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_21, # "Drum Kit Partial (Key # 56)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL22 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_22, # "Drum Kit Partial (Key # 57)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL23 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_23, # "Drum Kit Partial (Key # 58)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL24 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_24, # "Drum Kit Partial (Key # 59)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL25 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_25, # "Drum Kit Partial (Key # 60)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL26 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_26, # "Drum Kit Partial (Key # 61)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL27 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_27, # "Drum Kit Partial (Key # 62)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL28 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_28, # "Drum Kit Partial (Key # 63)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL29 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_29, # "Drum Kit Partial (Key # 64)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL30 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_30, # "Drum Kit Partial (Key # 65)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL31 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_31, # "Drum Kit Partial (Key # 66)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL32 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_32, # "Drum Kit Partial (Key # 67)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL33 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_33, # "Drum Kit Partial (Key # 68)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL34 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_34, # "Drum Kit Partial (Key # 69)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL35 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_35, # "Drum Kit Partial (Key # 70)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL36 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_36, # "Drum Kit Partial (Key # 71)", OFFSETS[ OffsetName.DRUM_KIT_PARTIAL37 ]: AddressOffsetDrumKitLMB.DRUM_KIT_PART_37, # "Drum Kit Partial (Key # 72)" } }, }