from .base import BaseGenreProfile

# --- ROCK & METAL ---

class ModernRockProfile(BaseGenreProfile):
    name = "Modern Rock"
    description = "Punchy drums. Wall of guitars."
    target_lufs = -7.5
    slope_target = -3.2
    crest_target = 9.0
    width_high = 1.3
    vintage_mode = "Solid"
    saturation = 2.0
    mono_cutoff = 100

class MetalcoreProfile(BaseGenreProfile):
    name = "Metalcore"
    description = "Aggressive. Clicky kicks. Scooped mids."
    target_lufs = -6.5
    slope_target = -2.8
    crest_target = 7.5
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 2.5
    mono_cutoff = 120

class IndieRockProfile(BaseGenreProfile):
    name = "Indie Rock"
    description = "Raw, garage feel. Natural dynamics."
    target_lufs = -9.0
    slope_target = -3.5
    crest_target = 10.5
    width_high = 1.15
    vintage_mode = "Tape"
    saturation = 2.0
    mono_cutoff = 90

class ShoegazeProfile(BaseGenreProfile):
    name = "Shoegaze"
    description = "Washed out guitars. Buried vocals."
    target_lufs = -7.0
    slope_target = -3.5 # Darker due to reverb density
    crest_target = 8.0
    width_high = 1.6
    vintage_mode = "Tube"
    saturation = 3.0
    mono_cutoff = 130

class PopPunkProfile(BaseGenreProfile):
    name = "Pop Punk"
    description = "Bright, fast, compressed."
    target_lufs = -7.0
    slope_target = -2.8
    crest_target = 8.5
    width_high = 1.25
    vintage_mode = "Solid"
    saturation = 1.5
    mono_cutoff = 110

class PostPunkProfile(BaseGenreProfile):
    name = "Post-Punk"
    description = "Driving basslines. Cold atmosphere."
    target_lufs = -8.5
    slope_target = -3.4
    crest_target = 10.0
    width_high = 1.1
    vintage_mode = "Tape"
    saturation = 1.5
    mono_cutoff = 120

class GrungeProfile(BaseGenreProfile):
    name = "Grunge"
    description = "Dirty, muddy (intentional). Heavy."
    target_lufs = -8.0
    slope_target = -3.6
    crest_target = 9.5
    width_high = 1.1
    vintage_mode = "Tube"
    saturation = 2.5
    mono_cutoff = 100

class NuMetalProfile(BaseGenreProfile):
    name = "Nu-Metal"
    description = "Hip-hop groove meets downtuned guitars."
    target_lufs = -6.5
    slope_target = -3.0
    crest_target = 8.0
    width_high = 1.2
    vintage_mode = "Solid"
    saturation = 2.5
    mono_cutoff = 120
