# Fallback Matrix

## Objectif

Cette matrice definit le comportement officiel minimal attendu pour garder l'analyseur stable sur navigateur desktop, mobile et Android WebView/Capacitor.

## Matrice

| Situation | Comportement attendu | Resultat visible |
| --- | --- | --- |
| Navigateur desktop moderne | Tenter `AudioWorklet + WASM` si disponible, sinon `AnalyserNode + JS` | UI complete, analyse live, message runtime coherent |
| Navigateur mobile | Preferer le pipeline le plus stable a l'execution; retomber sur `AnalyserNode + JS` si le worklet n'est pas fiable | UI fluide, precision degradee mais fonctionnelle |
| Android WebView / Capacitor | `AnalyserNode + JS` doit rester garanti; `AudioWorklet` n'est qu'optionnel | Aucun blocage au lancement, demarrage micro possible |
| Refus de permission micro | Ne pas crasher; afficher un statut explicite et conserver l'interface | Etat d'attente clair, controls toujours accessibles |
| Echec WASM | Conserver le pipeline JS pur | Analyse maintenue avec message/runtime ajuste |
| Echec AudioWorklet | Basculer automatiquement sur `AnalyserNode + JS` | Pas de page blanche ni de freeze audio |
| Fichier i18n manquant | Fallback sur l'anglais integre | Texte lisible, pas de cle brute visible |
| Asset manquant | Continuer sans l'asset optionnel si possible | Application exploitable, sans crash |

## Notes produit

- Le shell livre doit rester autonome.
- Le fallback doit privilegier la continuite de mesure avant la sophistication.
- Android/WebView est la cible la plus restrictive: aucune fonctionnalite critique ne doit dependre exclusivement de `AudioWorklet`.
# Matrice de fallback

## Runtimes cibles

| Contexte | Runtime prioritaire | Fallback obligatoire | Resultat attendu |
| --- | --- | --- | --- |
| Desktop moderne | `AudioWorklet + WASM` | `AnalyserNode + JS/WASM` | Analyse temps reel complete |
| Mobile navigateur | `AnalyserNode + WASM` | `AnalyserNode + JS` | Analyse stable avec FFT reduite si besoin |
| Android WebView / Capacitor | `AnalyserNode + WASM` | `AnalyserNode + JS` | Pas de dependance dure a `AudioWorklet` |
| Permission micro refusee | Source fichier audio | UI passive + message clair | Pas de crash |
| WASM indisponible | JS analytique | N/A | Metriques degradees mais app fonctionnelle |
| AudioWorklet indisponible | `AnalyserNode + WASM/JS` | N/A | App fonctionnelle |
| i18n manquante | `en.json` | Chaines internes | UI lisible |
| Asset manquant | Placeholder visuel / lien texte | N/A | Build non bloquant |

## Regles produit

- `FORMATION` reste la variante de validation principale.
- Android doit toujours pouvoir fonctionner sans `AudioWorklet`.
- Les builds ne doivent pas casser si le bridge WASM n'est pas genere.
- Toute degradation doit laisser l'UI exploitable et honnete sur le niveau de confiance.
