from .base import BaseGenreProfile

# --- POP & HYPERPOP ---

class ModernPopProfile(BaseGenreProfile):
    name = "Modern Pop"
    description = "Radio ready. Bright, polished, loud."
    target_lufs = -7.5
    slope_target = -3.0
    crest_target = 9.0
    width_high = 1.3
    vintage_mode = "Solid"
    saturation = 0.5
    mono_cutoff = 100

class HyperpopProfile(BaseGenreProfile):
    name = "Hyperpop"
    description = "Glitchy, distorted, exaggerated highs."
    target_lufs = -6.0
    slope_target = -2.5
    crest_target = 6.0
    width_high = 1.5
    vintage_mode = "Solid"
    saturation = 3.5
    mono_cutoff = 130

class KPopProfile(BaseGenreProfile):
    name = "K-Pop"
    description = "Pristine production. Dynamic shifts."
    target_lufs = -7.0
    slope_target = -2.8
    crest_target = 8.5
    width_high = 1.35
    vintage_mode = "Solid"
    saturation = 1.0
    mono_cutoff = 110

class IndiePopProfile(BaseGenreProfile):
    name = "Indie Pop"
    description = "Warm, slightly lo-fi. Vocal focused."
    target_lufs = -9.0
    slope_target = -3.5
    crest_target = 10.5
    width_high = 1.2
    vintage_mode = "Tape"
    saturation = 1.5
    mono_cutoff = 90

class LatinPopProfile(BaseGenreProfile):
    name = "Latin Pop"
    description = "Punchy percussion. Bright vocals."
    target_lufs = -7.5
    slope_target = -3.0
    crest_target = 9.0
    width_high = 1.25
    vintage_mode = "Solid"
    saturation = 1.0
    mono_cutoff = 100

class DigicoreProfile(BaseGenreProfile):
    name = "Digicore"
    description = "Digital artifacts. Internet underground."
    target_lufs = -6.5
    slope_target = -2.8
    crest_target = 7.0
    width_high = 1.4
    vintage_mode = "Bitcrush" # Simulating with Tube/Solid blend in engine
    saturation = 3.0
    mono_cutoff = 120
