from .base import BaseGenreProfile

# --- 6. TRANCE & PSYTRANCE ---

class PsytranceProfile(BaseGenreProfile):
    name = "Psytrance"
    description = "Full-on. Clinical balance. 145BPM."
    target_lufs = -7.5
    slope_target = -3.5
    crest_target = 10.0
    width_high = 1.4
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 150

class ProgressivePsyProfile(BaseGenreProfile):
    name = "Progressive Psy"
    description = "Deep, darker tone. Slower."
    target_lufs = -8.5
    slope_target = -3.8
    crest_target = 10.5
    width_high = 1.3
    vintage_mode = "Tube"
    saturation = 1.0
    mono_cutoff = 130

class UpliftingTranceProfile(BaseGenreProfile):
    name = "Uplifting Trance"
    description = "Euphoric. Airy high-end shimmer."
    target_lufs = -8.0
    slope_target = -2.8
    crest_target = 9.0
    width_high = 1.5
    vintage_mode = "Tape"
    saturation = 0.5
    mono_cutoff = 140

class TechTranceProfile(BaseGenreProfile):
    name = "Tech Trance"
    description = "Dry, punchy, percussive."
    target_lufs = -7.0
    slope_target = -3.2
    crest_target = 8.5
    width_high = 1.25
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 140

class GoaTranceProfile(BaseGenreProfile):
    name = "Goa Trance"
    description = "Organic, Eastern scales. Analog saturation."
    target_lufs = -9.0
    slope_target = -3.5
    crest_target = 10.0
    width_high = 1.3
    vintage_mode = "Tube"
    saturation = 2.5
    mono_cutoff = 130

class ForestPsyProfile(BaseGenreProfile):
    name = "Forest Psy"
    description = "Dark, organic, fast transients."
    target_lufs = -8.0
    slope_target = -3.6
    crest_target = 9.5
    width_high = 1.4
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 140

class DarkpsyProfile(BaseGenreProfile):
    name = "Darkpsy"
    description = "Extreme speed. Short release times."
    target_lufs = -7.0
    slope_target = -3.2
    crest_target = 8.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 2.0
    mono_cutoff = 160

class VocalTranceProfile(BaseGenreProfile):
    name = "Vocal Trance"
    description = "Pop vocal processing on Trance beats."
    target_lufs = -8.0
    slope_target = -3.0
    crest_target = 9.0
    width_high = 1.35
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 130

class ClassicTranceProfile(BaseGenreProfile):
    name = "Classic Trance"
    description = "90s style. High dynamic range."
    target_lufs = -9.5
    slope_target = -3.5
    crest_target = 11.0
    width_high = 1.3
    vintage_mode = "Tape"
    saturation = 0.5
    mono_cutoff = 120

class DreamTranceProfile(BaseGenreProfile):
    name = "Dream Trance"
    description = "Soft, piano focused. Atmospheric."
    target_lufs = -10.0
    slope_target = -3.8
    crest_target = 11.0
    width_high = 1.4
    vintage_mode = "Tube"
    saturation = 0.5
    mono_cutoff = 110
