Overlay reduit d'un quart, et sa geometrie devient proportionnelle
Barre 440x52 -> 330x40. Les proportions internes (bouton stop, micro, marges, ecarts) etaient en dur dans le dessin : les laisser telles quelles aurait donne une grosse pastille dans une barre retrecie. Elles derivent desormais de la hauteur de la barre via core.bar_metrics, donc une seule valeur commande toute l'echelle — diviser bar_height par deux divise tout par deux (teste). Rendu verifie par capture d'ecran apres reduction. 50 tests passent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,19 +17,19 @@ CONFIG = {
|
||||
"sample_rate": 16000,
|
||||
"fps": 30,
|
||||
# --- overlay « barre de dictee » (bas de l'ecran) ---
|
||||
"bar_width": 440.0,
|
||||
"bar_height": 52.0,
|
||||
"bar_radius": 16.0,
|
||||
"bar_width": 330.0,
|
||||
"bar_height": 40.0,
|
||||
"bar_radius": 12.0,
|
||||
"bar_bg_rgba": (0.09, 0.09, 0.10, 0.95),
|
||||
"stop_button_rgb": (0.89, 0.31, 0.23), # rond rouge-orange
|
||||
"stop_glyph_rgb": (1.0, 1.0, 1.0), # carre arrondi blanc au centre
|
||||
"waveform_rgb": (0.95, 0.95, 0.97),
|
||||
"waveform_bars": 34, # nombre de barres de la forme d'onde
|
||||
"waveform_bars": 28, # nombre de barres de la forme d'onde
|
||||
"waveform_floor": 0.07, # plancher : dessine en petit point (traine pointillee)
|
||||
"mic_rgb": (0.78, 0.78, 0.82),
|
||||
"bubble_text_rgb": (1.0, 1.0, 1.0),
|
||||
"bubble_font_size": 13.0,
|
||||
"bubble_max_width": 300.0,
|
||||
"bubble_font_size": 12.0,
|
||||
"bubble_max_width": 240.0,
|
||||
"level_gain": 8.0, # amplification du niveau brut pour l'animation
|
||||
"level_attack": 0.6, # lissage à la montée (0–1, proche de 1 = très réactif)
|
||||
"level_release": 0.15, # lissage à la descente (plus petit = retombée douce)
|
||||
@@ -92,6 +92,26 @@ def build_initial_prompt(termes=None):
|
||||
return prefixe + ", ".join(retenus) + "."
|
||||
|
||||
|
||||
# Proportions internes de la barre, exprimees en fraction de sa HAUTEUR : reduire
|
||||
# `bar_height` reduit alors le bouton, le micro et les marges dans le meme
|
||||
# mouvement, au lieu de laisser une grosse pastille dans une barre retrecie.
|
||||
_PROPORTIONS = {
|
||||
"stop_diametre": 0.538,
|
||||
"mic_largeur": 0.173,
|
||||
"marge_laterale": 0.423,
|
||||
"mic_corps_hauteur": 0.250,
|
||||
"mic_arceau_rayon": 0.135,
|
||||
"ecart_interne": 0.346,
|
||||
}
|
||||
|
||||
|
||||
def bar_metrics(bar_height):
|
||||
"""Mesures de l'overlay pour une hauteur de barre donnee, en points."""
|
||||
if bar_height <= 0:
|
||||
raise ValueError("bar_height doit etre > 0")
|
||||
return {cle: bar_height * f for cle, f in _PROPORTIONS.items()}
|
||||
|
||||
|
||||
def validate_config(config):
|
||||
"""Valide la config ; lève ValueError si une valeur est aberrante."""
|
||||
if config["min_duration_s"] < 0:
|
||||
|
||||
Reference in New Issue
Block a user