Changer le volume d'un WAV par logarithme

cs_carat Messages postés 13 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 21 septembre 2009 - 7 sept. 2009 à 14:53
cs_carat Messages postés 13 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 21 septembre 2009 - 21 sept. 2009 à 11:31
Salut à tous,

Je suis en train de développer un lecteur bas-niveau afin de pouvoir intégrer des effets sonores.

Je supporte actuellement les pcm, les wav et les mp3... et mon logiciel travaille directement sur les blocks RAW extraits de ces fichiers.

Ma question est la suivante: avez-vous un algorithme capable de changer le volume sonore avec en sortie un son de qualité... j'utilise actuellement la formule suivante:

si le volume est à 80%: je parcours le block RAW et byte par byte, j'applique la formule suivante: byte = byte * 100 / 80

Le calcul fonctionne et le son est ajusté, mais plus je diminue le son, plus il devient pourri (comme s'il était trop compressé en mp3, avec en prime une prise de soufle exagérée).

Donc voilà, auriez-vous un algo performant?

Merci.

Carat

4 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
7 sept. 2009 à 17:38
En gros les données correspondent au déplacement de la membrane (micro ou hp) donc c'est un entier compris entre -127 et 127;
SAUF QUE : il n'est pas stocké sous cette forme (byte signé) mais comme byte non signé avec un offset, autrement dit le vrai 0 n'est pas codé par 0 mais par 128.

donc il faudrait plutôt appliquer une formule du genre :

byte=(signed)((byte-128)*scale)+128
0
cs_carat Messages postés 13 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 21 septembre 2009
8 sept. 2009 à 09:27
Salut juju et merci pour ta réponse;

Ta solution règle mon problème de qualité sonore, c'est génial; par contre j'ai toujours ce souffle qui est inversément proportionnel au volume...

Plus le volume est faible, plus ça souffle... :( (et le souffle apparait dès que je mets le volume à 99.9%); une idée?

Carat
0
cs_carat Messages postés 13 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 21 septembre 2009
8 sept. 2009 à 11:07
Rectification, désolé, conclusions hatives...

J'extraits en fait des bytes signés


Carat
0
cs_carat Messages postés 13 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 21 septembre 2009
21 sept. 2009 à 11:31
Personne n'a la solution? une formule mathématique? qqch?

Carat
0
Rejoignez-nous