Source code for jdxi_editor.midi.data.programs.analog

"""
Analog presets
"""

from typing import Any

[docs] ANALOG_PRESET_LIST = [ { "id": "001", "name": "Toxic Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 1.0, "category": "Bass", }, { "id": "002", "name": "Sub Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 6.0, "category": "Bass", }, { "id": "007", "name": "Pulse Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 7.0, "category": "Bass", }, { "id": "008", "name": "ResoSaw Bs 1", "msb": 94.0, "lsb": 64.0, "pc": 8.0, "category": "Bass", }, { "id": "009", "name": "ResoSaw Bs 2", "msb": 94.0, "lsb": 64.0, "pc": 9.0, "category": "Bass", }, { "id": "011", "name": "Psy Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 11.0, "category": "Bass", }, { "id": "012", "name": "Dist TB Bs 1", "msb": 94.0, "lsb": 64.0, "pc": 17.0, "category": "Bass", }, { "id": "018", "name": "Slo worn 1", "msb": 94.0, "lsb": 64.0, "pc": 18.0, "category": "Bass", }, { "id": "022", "name": "DnB Wobbler1", "msb": 94.0, "lsb": 64.0, "pc": 22.0, "category": "Bass", }, { "id": "023", "name": "O Beat Wob1", "msb": 94.0, "lsb": 64.0, "pc": 23.0, "category": "Bass", }, { "id": "024", "name": "Chilled Wob", "msb": 94.0, "lsb": 64.0, "pc": 24.0, "category": "Bass", }, { "id": "028", "name": "Pumper Bass1", "msb": 94.0, "lsb": 64.0, "pc": 28.0, "category": "Bass", }, { "id": "029", "name": "ClickerBass1", "msb": 94.0, "lsb": 64.0, "pc": 29.0, "category": "Bass", }, { "id": "030", "name": "Psy Bass 2", "msb": 94.0, "lsb": 64.0, "pc": 30.0, "category": "Bass", }, { "id": "031", "name": "HooverSuprt1", "msb": 94.0, "lsb": 64.0, "pc": 31.0, "category": "Bass", }, { "id": "032", "name": "Celoclip 1", "msb": 94.0, "lsb": 64.0, "pc": 32.0, "category": "Lead", }, { "id": "033", "name": "Tri Fall Bs1", "msb": 94.0, "lsb": 64.0, "pc": 33.0, "category": "Lead", }, { "id": "034", "name": "808 Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 34.0, "category": "Bass", }, { "id": "035", "name": "House Bass 1", "msb": 94.0, "lsb": 64.0, "pc": 35.0, "category": "Bass", }, { "id": "036", "name": "Psy Bass 3", "msb": 94.0, "lsb": 64.0, "pc": 36.0, "category": "Bass", }, { "id": "037", "name": "Reel 1", "msb": 94.0, "lsb": 64.0, "pc": 37.0, "category": "Lead", }, { "id": "038", "name": "PortaSaw Ld1", "msb": 94.0, "lsb": 64.0, "pc": 38.0, "category": "Lead", }, { "id": "039", "name": "Porta Lead 1", "msb": 94.0, "lsb": 64.0, "pc": 39.0, "category": "Lead", }, { "id": "040", "name": "Analog Tp 1", "msb": 94.0, "lsb": 64.0, "pc": 40.0, "category": "Lead", }, { "id": "041", "name": "Tri Lead 1", "msb": 94.0, "lsb": 64.0, "pc": 41.0, "category": "Lead", }, { "id": "042", "name": "Sine Lead 1", "msb": 94.0, "lsb": 64.0, "pc": 42.0, "category": "Lead", }, { "id": "043", "name": "Saw Buzz 1", "msb": 94.0, "lsb": 64.0, "pc": 43.0, "category": "Lead", }, { "id": "044", "name": "Buzz Saw Ld1", "msb": 94.0, "lsb": 64.0, "pc": 44.0, "category": "Lead", }, { "id": "045", "name": "Laser Lead 1", "msb": 94.0, "lsb": 64.0, "pc": 45.0, "category": "Lead", }, { "id": "046", "name": "Saw & Per 1", "msb": 94.0, "lsb": 64.0, "pc": 46.0, "category": "Lead", }, { "id": "047", "name": "Insect 1", "msb": 94.0, "lsb": 64.0, "pc": 47.0, "category": "FX", }, { "id": "048", "name": "Sqr SEQ 1", "msb": 94.0, "lsb": 64.0, "pc": 48.0, "category": "FX", }, { "id": "049", "name": "ZipPhase 1", "msb": 94.0, "lsb": 64.0, "pc": 49.0, "category": "FX", }, { "id": "050", "name": "Stinger 1", "msb": 94.0, "lsb": 64.0, "pc": 50.0, "category": "FX", }, { "id": "051", "name": "3 Oh 3", "msb": 94.0, "lsb": 64.0, "pc": 51.0, "category": "FX", }, { "id": "052", "name": "Sus Zap 1", "msb": 94.0, "lsb": 64.0, "pc": 52.0, "category": "FX", }, { "id": "053", "name": "Bowouch 1", "msb": 94.0, "lsb": 64.0, "pc": 53.0, "category": "FX", }, { "id": "054", "name": "Resocut 1", "msb": 94.0, "lsb": 64.0, "pc": 54.0, "category": "FX", }, { "id": "055", "name": "LFO FX", "msb": 94.0, "lsb": 64.0, "pc": 55.0, "category": "FX", }, { "id": "056", "name": "Fall Synth 1", "msb": 94.0, "lsb": 64.0, "pc": 56.0, "category": "Synth", }, { "id": "057", "name": "Twister 1", "msb": 94.0, "lsb": 64.0, "pc": 57.0, "category": "FX", }, { "id": "058", "name": "Analog Kick1", "msb": 94.0, "lsb": 64.0, "pc": 58.0, "category": "Percussion/Drums", }, { "id": "059", "name": "Zippers 1", "msb": 94.0, "lsb": 64.0, "pc": 59.0, "category": "Percussion/Drums", }, { "id": "060", "name": "Zipper FX", "msb": 94.0, "lsb": 64.0, "pc": 60.0, "category": "FX", }, { "id": "061", "name": "Zippers 3", "msb": 94.0, "lsb": 64.0, "pc": 61.0, "category": "Percussion/Drums", }, { "id": "062", "name": "Siren Hell 1", "msb": 94.0, "lsb": 64.0, "pc": 62.0, "category": "FX", }, { "id": "063", "name": "SirenFX/Mod1", "msb": 94.0, "lsb": 64.0, "pc": 63.0, "category": "FX", }, { "id": "064", "name": "Init Tone", "msb": 94.0, "lsb": 64.0, "pc": 64.0, "category": "Init", }, ]
[docs] def get_preset_by_program_number(program_number: int) -> dict[str, Any] | None: """ get_preset_by_program_number :param program_number: int Program number :return: Program details or None if not found """ return next( (preset for preset in ANALOG_PRESET_LIST if preset["pc"] == program_number), None, )
[docs] def get_preset_parameters(program_number: int) -> tuple[float, float, float]: """ get_preset_parameters :param program_number: int :return: tuple of (msb, lsb, pc) :raises: ValueError if preset not found """ preset = get_preset_by_program_number(program_number) if preset is None: raise ValueError(f"Preset with program number {program_number} not found") return preset["msb"], preset["lsb"], preset["pc"]