Bonjour
Je fait de la domotique et je pilote des produits audio.
Le son est logarithme mais le contrôle des produits est linéaire.
Je m'explique:
0% en contrôle donne -100db en audio (pas de son)
20% en contrôle donne -80db en audio (pas beaucoup plus)
80% en contrôle donne -20db en audio (on commence à entendre)
90% en contrôle donne -10db en audio (on entend très bien)
100% en contrôle donne 0db en audio (on entend normalement trop fort réglage maximum)
En final le réglage à une plage d'environ 20db donc 20% en contrôle
Je doit convertir une droite en courbe type logarithme.
Pour l'instant j'effectue cette tache par une suite de 7 lignes droites dont le coefficient directeur change.
VOLIN compris entre 0 et 65535 (100%) pour une sortie logarithme entre 0 et 65535
if (VOLIN<10000) {VOLLOG=VOLIN*2;} multiplication par 2 jusque 10000
if ((VOLIN<=20000)&&(VOLIN>10000) ) {VOLLOG=(VOLIN-10000)*3/2+20000;} multiplication par 1.5 entre 10000 et 20000
if ((VOLIN<=30000)&&(VOLIN>20000) ) {VOLLOG=(VOLIN-20000)*12/10+35000;} multiplication par 1.2 entre 20000 et 30000
if ((VOLIN<=40000)&&(VOLIN>30000) ) {VOLLOG=(VOLIN-30000)*1+47000;} multiplication par 1 entre 30000 et 40000
if ((VOLIN<=50000)&&(VOLIN>40000) ) {VOLLOG=(VOLIN-40000)*1/2+57000;} multiplication par 0.5 entre 40000 et 50000
if ((VOLIN<=58000)&&(VOLIN>50000) ) {VOLLOG=(VOLIN-50000)*1/4+62000;} multiplication par 0.25 entre 50000 et 62000 courbe négative
if ((VOLIN>58000)) {VOLLOG=(VOLIN-58000)*203/999+64000;}
}
Je recherche une fonction mathématique pour remplacer mon calcul .
Il est évidant qu'une fonction ne donnera pas les mêmes valeurs je recherche plus la forme de la courbe.
Merci
Pascal
-----