begin process at 2012 05 28 15:57:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Changer le volume d'un WAV par logarithme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changer le volume d'un WAV par logarithme

lundi 7 septembre 2009 à 14:53:38 | Changer le volume d'un WAV par logarithme

carat


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

lundi 7 septembre 2009 à 17:38:59 | Re : Changer le volume d'un WAV par logarithme

juju12

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

mardi 8 septembre 2009 à 09:27:28 | Re : Changer le volume d'un WAV par logarithme

carat

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

mardi 8 septembre 2009 à 11:07:19 | Re : Changer le volume d'un WAV par logarithme

carat

Rectification, désolé, conclusions hatives...

J'extraits en fait des bytes signés


Carat

lundi 21 septembre 2009 à 11:31:36 | Re : Changer le volume d'un WAV par logarithme

carat


Personne n'a la solution? une formule mathématique? qqch?

Carat



Cette discussion est classée dans : changer, byte, wav, suivante, volume


Répondre à ce message

Sujets en rapport avec ce message

Nom de Volume [ par lysane ] Je voudrais pouvoir changer le nom de mon disque durj'ai trouvé du code pour récuperer le nom mais je ne trouvepas comment le changerje ne sais même p changer le volume des enceintes [ par PoLoCh ] bonjour a tous je cherce une fonction de l'api windows qui me permette de modifier le volume du sisteme. MerciVictor Oliveira utiliser RegFlushKey [ par gamemonde ] Bonjour je voulais savoir si RegFlushKey permettais de changer automatiquement la base de registre du systeme exemple changer la cle Window de HKCU/Co Valeur de subkey (const BYTE*) [ par deck_bsd ] Bonjour à tous,Voila , j'ai une fonction qui crée une nouvelle subKey. Elle se crée bien, l'ennui c'est que aparement je n'ai pas compris comment lui HOOK PROBLEME DLL [ par wxccxw ] hello, je vais une dll de hook et j'obtient sa :MON CODE :#include FARPROC fpRegQueryValueEx; // Buffer de l'adresse de la fonctionFARPROC fpRegOpenKe lire un fichier .wav sous matlab [ par arel ] salut a tous, j, aimerai lire une fichier wav et le retransmettre sur un microcontroler  a l´aide de l'algorithme de compression de huffman ecris sous Comment changer l'icone et le titre d'une fenetre en cours d'utilisation? En C++ [ par ndubien ] Bonjour,Je cherche à savoir comment changer l'icone et le titre d'une fenetre en cours d'utilisation?Je veux savoir comment le faire car j'ai envie qu Comment jouer un son (wav,mp3...) en c++ [ par ndubien ] Bonjour, Je cherche un moyen de jouer un son mp3, wav, wma ou ... afin d'ajouter des <font color Comment lire un fichier qui contient de l'hexadecimal [ par Steph115 ] Bonjour,j'ai un fichier .sol (ce sont des shared objects pour flash) qui est construit comme expliqué sur ce site : http://www.osflash.org/amf/envelop Changer couleur par un clique [Win32 sans MFC] [ par jojomillenium ] Bonjour, j'aimerai pouvoir changer la couleur de fond d'un static, ou meme d'un element picture (mon but et juste d avoir un carré rempli d'une couleu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,649 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales