from .base import BaseGenreProfile

# --- 4. DRUM & BASS ---

class LiquidDnbProfile(BaseGenreProfile):
    name = "Liquid DnB"
    description = "Soulful, atmospheric, smooth."
    target_lufs = -8.5
    slope_target = -3.5
    crest_target = 9.5
    width_high = 1.3
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 130

class NeurofunkProfile(BaseGenreProfile):
    name = "Neurofunk"
    description = "Aggressive, distorted mid-bass tech."
    target_lufs = -6.0
    slope_target = -3.0
    crest_target = 7.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 3.0
    mono_cutoff = 150

class JumpUpProfile(BaseGenreProfile):
    name = "Jump Up"
    description = "Wobble bass. High energy."
    target_lufs = -6.5
    slope_target = -3.2
    crest_target = 7.5
    width_high = 1.15
    vintage_mode = "Tube"
    saturation = 2.5
    mono_cutoff = 140

class DancefloorDnbProfile(BaseGenreProfile):
    name = "Dancefloor DnB"
    description = "Mainstage DnB. Bright and loud."
    target_lufs = -6.0
    slope_target = -2.8
    crest_target = 7.0
    width_high = 1.35
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 130

class JungleProfile(BaseGenreProfile):
    name = "Jungle"
    description = "Breakbeat focus. Old school vibe."
    target_lufs = -8.0
    slope_target = -3.5
    crest_target = 9.0
    width_high = 1.2
    vintage_mode = "Tape"
    saturation = 2.0
    mono_cutoff = 120

class BreakcoreProfile(BaseGenreProfile):
    name = "Breakcore"
    description = "Chaotic, fast, distorted."
    target_lufs = -6.5
    slope_target = -2.5
    crest_target = 6.5
    width_high = 1.1
    vintage_mode = "Solid"
    saturation = 4.0
    mono_cutoff = 150

class HalftimeDnbProfile(BaseGenreProfile):
    name = "Halftime DnB"
    description = "Heavy bass, slow groove."
    target_lufs = -7.0
    slope_target = -3.2
    crest_target = 8.0
    width_high = 1.3
    vintage_mode = "Tube"
    saturation = 2.5
    mono_cutoff = 110

class AtmosphericJungleProfile(BaseGenreProfile):
    name = "Atmospheric Jungle"
    description = "Intelligent DnB. Deep and spacious."
    target_lufs = -9.5
    slope_target = -4.0
    crest_target = 10.5
    width_high = 1.5
    vintage_mode = "Tape"
    saturation = 1.0
    mono_cutoff = 110
