Source code for jdxi_editor.ui.editors.effects.data
[docs]
def _build_coarse_tune() -> tuple:
"""Build 128 note names (C -1 … G 9) matching Perl @coarse_tune."""
notes = ("C ", "C#", "D ", "Eb", "E ", "F ", "F#", "G ", "G#", "A ", "Bb", "B ")
return tuple(notes[n] + str(o) for o in range(-1, 10) for n in range(12))[:128]
[docs]
class EffectsData:
"""Collection of ui lists for Effects"""
[docs]
flanger_notes = [
"1/96",
"1/64",
"1/48",
"1/32",
"1/24",
"3/64",
"1/16",
"1/12",
"3/32",
"1/8",
"1/6",
"3/16",
"1/4",
"1/3",
"3/8",
"1/2",
"2/3",
"3/4",
"1",
"4/3",
"3/2",
"2",
]
# Alias for Delay/Flanger/Slicer note dropdown (matches Perl @dly_notes)
# Reverb types (matches Perl @rev_type)
# HF Damp options for Delay/Reverb (matches Perl @hf_damp)
[docs]
hf_damp = [
"200Hz",
"250Hz",
"315Hz",
"400Hz",
"500Hz",
"630Hz",
"800Hz",
"1000Hz",
"1250Hz",
"1600Hz",
"2000Hz",
"2500Hz",
"3150Hz",
"4000Hz",
"5000Hz",
"6300Hz",
"8000Hz",
"BYPASS",
]
# Delay type (SINGLE / PAN)
# Delay Time/Note mode
# Note names for Side Note / coarse tune (C -1 … G 9, 128 entries; matches Perl @coarse_tune)
# Compression ratios
[docs]
compression_ratios = [
" 1:1",
" 2:1",
" 3:1",
" 4:1",
" 5:1",
" 6:1",
" 7:1",
" 8:1",
" 9:1",
" 10:1",
" 20:1",
" 30:1",
" 40:1",
" 50:1",
" 60:1",
" 70:1",
" 80:1",
" 90:1",
"100:1",
" inf:1",
]
# Compression attack times
[docs]
compression_attack_times = [
"0.05",
"0.06",
"0.07",
"0.08",
"0.09",
"0.10",
"0.20",
"0.30",
"0.40",
"0.50",
"0.60",
"0.70",
"0.80",
"0.90",
"1.0",
"2.0",
"3.0",
"4.0",
"5.0",
"6.0",
"7.0",
"8.0",
"9.0",
"10.0",
"15.0",
"20.0",
"25.0",
"30.0",
"35.0",
"40.0",
"45.0",
"50.0",
]
# Tooltips for effect controls (Phase 5 polish)
[docs]
effect_tooltips = {
"EFX1_TYPE": "Effect 1 type: Thru, Distortion, Fuzz, Compressor, or Bit Crusher",
"EFX1_LEVEL": "Effect 1 output level (0–127)",
"EFX2_TYPE": "Effect 2 type: Off, Flanger, Phaser, Ring Mod, or Slicer",
"EFX2_LEVEL": "Effect 2 output level (0–127)",
"DELAY_ON_OFF": "Enable or bypass delay",
"REVERB_ON_OFF": "Enable or bypass reverb",
"EFX1_PARAM_3_DISTORTION_TYPE": "Distortion character type (0–5)",
"EFX1_PARAM_3_FUZZ_TYPE": "Fuzz character type (0–5)",
"EFX2_PARAM_5_PHASER_CENTER_FREQ": "Phaser resonance (0–127)",
}
# Compression release times (matches Perl @comp_release)
[docs]
compression_release_times = [
"0.05",
"0.07",
"0.10",
"0.50",
"1",
"5",
"10",
"17",
"25",
"50",
"75",
"100",
"200",
"300",
"400",
"500",
"600",
"700",
"800",
"900",
"1000",
"1200",
"1500",
"2000",
]
[docs]
class VocalEffectsData:
"""Collection of labels and tooltips for Vocal Effects (Phase 1)."""
# Tooltips for vocal effect controls
[docs]
vocal_effect_tooltips = {
"VOCAL_EFFECT": "Vocal effect type: OFF, VOCODER, or AUTO-PITCH",
"VOCAL_EFFECT_NUMBER": "Vocal effect preset (1–21). Address unverified in JD-Xi guide.",
"VOCAL_EFFECT_PART": "Vocal effect part: Part 1 or Part 2",
"AUTO_NOTE_SWITCH": "Enable or bypass auto note correction",
"PROGRAM_LEVEL": "Program output level (0–127)",
"PROGRAM_TEMPO": "Program tempo (5.00–300.00 BPM)",
"LEVEL": "Vocal FX output level (0–127)",
"PAN": "Stereo pan (L64–63R, center 0)",
"DELAY_SEND_LEVEL": "Delay send level (0–127)",
"REVERB_SEND_LEVEL": "Reverb send level (0–127)",
"OUTPUT_ASSIGN": "Output routing: EFX1, EFX2, DLY, REV, or DIR",
"AUTO_PITCH_SWITCH": "Enable or bypass auto pitch",
"AUTO_PITCH_TYPE": "Auto pitch character: SOFT, HARD, ELECTRIC1, ELECTRIC2",
"AUTO_PITCH_SCALE": "Scale: CHROMATIC or Maj(Min)",
"AUTO_PITCH_KEY": "Key (C, Db, D, … Bm)",
"AUTO_PITCH_NOTE": "Root note (C, C#, D, … B)",
"AUTO_PITCH_GENDER": "Formant shift (-10 to +10)",
"AUTO_PITCH_OCTAVE": "Octave shift (-1 to +1)",
"AUTO_PITCH_BALANCE": "Balance [dry→wet] (D100:0W – D0:100W)",
"VOCODER_SWITCH": "Enable or bypass vocoder",
"VOCODER_ENVELOPE": "Vocoder envelope: SHARP, SOFT, or LONG",
"VOCODER_LEVEL": "Vocoder output level (0–127)",
"VOCODER_MIC_SENS": "Vocoder mic sensitivity (0–127)",
"VOCODER_SYNTH_LEVEL": "Vocoder synth level (0–127)",
"VOCODER_MIC_MIX": "Vocoder mic mix level (0–127)",
"VOCODER_MIC_HPF": "Vocoder mic HPF: BYPASS or 1000–16000 Hz",
}