# Polarity Checker

Une application Android destinée aux ingénieurs du son et techniciens pour vérifier rapidement la polarité (souvent appelée "phase") des haut-parleurs d'un système de sonorisation.

## Principe de fonctionnement

Dans un système audio, il est crucial que tous les haut-parleurs bougent dans le même sens lorsqu'ils reçoivent le même signal. Si une enceinte a ses câbles inversés (+ sur -, et - sur +), sa membrane va reculer au lieu d'avancer. Cela crée des annulations de phase acoustiques (surtout dans les basses fréquences), détruisant l'impact et la qualité du son.

**Polarity Checker** permet de détecter ce problème :
1. **Générateur (Émetteur) :** L'application génère une impulsion audio asymétrique très courte (basée sur une ondelette de Ricker). L'ondelette de Ricker est utilisée car elle est concentrée sur une bande de fréquence spécifique sans abîmer les haut-parleurs (contrairement à un bruit carré ou un clic numérique brut).
2. **Analyseur (Récepteur) :** Le microphone du téléphone enregistre l'onde sonore émise par le haut-parleur.
3. **Détection :** L'algorithme cherche le premier pic de l'onde sonore. Si le premier pic est une compression de l'air (positif), la polarité est correcte (**+**). Si c'est une raréfaction (négatif), la polarité est inversée (**-**).

## Comment l'utiliser

### 1. Régler le Seuil (Threshold)
C'est l'étape la plus importante !
- En bas de l'écran, vous verrez un **Vu-Mètre** (la barre lumineuse) qui réagit au bruit ambiant de la pièce.
- Le curseur (Slider) en dessous permet de régler le **Threshold** (Seuil).
- **Règle d'or :** Réglez le curseur pour qu'il soit *légèrement au-dessus* du bruit ambiant. Tant que l'impulsion n'a pas retenti, l'application ne doit rien détecter. Si le seuil est trop bas, les bruits de fond (voix, vent) vont déclencher l'analyse de manière chaotique.

### 2. Émettre le Signal
- Branchez votre téléphone à la console de mixage ou à l'enceinte (via Jack, Bluetooth, ou carte son).
- Choisissez la bande de fréquence à tester (ex: **80Hz** pour un subwoofer, **1k2Hz** pour un haut-parleur medium/aigu).
- Appuyez sur le bouton **Play**. Vous entendrez un "pop" régulier (environ 2 fois par seconde).

### 3. Lire le résultat
- Approchez le micro du téléphone de l'enceinte à tester.
- L'écran affichera un grand rond **VERT (+)** si tout va bien, ou un grand rond **ROUGE (-)** si l'enceinte est câblée à l'envers.
- Le bouton **Ø** (Invert) permet d'inverser volontairement le signal généré pour tester que l'application détecte bien l'inversion (utile pour vérifier votre chaîne de mesure).

## Compilation
Le projet est développé en Kotlin avec Jetpack Compose.
Ouvrez le dossier racine dans **Android Studio** et lancez l'application sur un appareil physique. Un émulateur Android n'est pas recommandé car l'émulation du microphone peut fausser l'analyse des signaux transitoires rapides.
