Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1288 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Mettre de l'echo dans un fichier .wav

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Mettre de l'echo dans un fichier .wav

n°72760
oroumov
BSG fan :D
Posté le 16-11-2001 à 13:06:42  profilanswer
 

Salut !
 
Voila, j'ai un projet a faire en C(Ansi C plus specialement), qui consiste a prendre un fichier .wav, et a y mettre un echo.
 
Quelqu'un saurait-il m'expliquer comment on peut sommer un echo sur un fichier existant, en gardant l'intégrité du son ?  
 
Par exemple :
Imaginons que l'echo doit commencer une seconde apres le debut du fichier.
Supposons que la premiere note du fichier est DO (un certain code dans le fichier), et qu'au bout d'une seconde, c'est un MI (un autre code) qui doit etre joué.
Alors a t+1seconde du debut du morceau, il doit me jouer "simultanement" un MI + un DO(affaibli a cause de l'echo mais ca c'est secondaire).
 
Ce que je ne comprends pas, c'est comment "sommer" ce DO et ce MI. Si j'additionnais tout betement leur valeur, il m'en sortirait une troisieme qui ne serait ni DO ni MI, mais un espece de micmac entre les deux.
 
Alors comment faire ?   :??:  
 
Si quelqu'un s'y connait dans ce domaine, je le remercie d'avance pour toutes ses explications.
 
Merci.
 
Nicolas.

mood
Publicité
Posté le 16-11-2001 à 13:06:42  profilanswer
 

n°72777
LeGreg
Posté le 16-11-2001 à 13:56:33  profilanswer
 

Ben un DO plus un MI  
ca s'appelle un accord DO-MI.
 
Mais toi tu t'en fiches
tu travailles juste sur des fichiers
d'onde, donc ca importe peu la note qu'il
est en train de jouer.
 
Donc pour faire un echo, tu ajoutes les ondes
en les decalant d'une seconde et en diminuant
leur intensite. Et ton oreille (ou ton cerveau)
va se debrouiller pour comprendre qu'il s'agit
d'un echo.
 
A+
LEGREG

n°72779
Carbon_14
Posté le 16-11-2001 à 14:15:08  profilanswer
 

Si on joue un DO faible et un MI fort, ça doit aller. Ce qu'il ne faut pas, c'est les "sommer" numériquement, juste les jouer en même temps, comme sur un (vrai) instrument.

n°72782
LeGreg
Posté le 16-11-2001 à 14:32:29  profilanswer
 

CARBON_14 a écrit a écrit :

Si on joue un DO faible et un MI fort, ça doit aller. Ce qu'il ne faut pas, c'est les "sommer" numériquement, juste les jouer en même temps, comme sur un (vrai) instrument.  




non ce qu'il n'a pas compris
c'est que son fichier wav ne contient pas des notes
mais des ondes (wave en anglais)
Donc pour ajouter des sons, on fait comme
ce qui se fait dans la nature, on ajoute
les valeurs d'onde.
 
Attention toutefois que si tu ajoutes des sons
de frequences proches, il y a des risques
d'interference..
 
LEGRE

n°72785
SoWhatIn22
Posté le 16-11-2001 à 14:39:07  profilanswer
 

CARBON_14 a écrit a écrit :

Si on joue un DO faible et un MI fort, ça doit aller. Ce qu'il ne faut pas, c'est les "sommer" numériquement, juste les jouer en même temps, comme sur un (vrai) instrument.  




 
je t'assure que si tu fais une somme parfaire (avec normalisation à suivre, évidemment), ca marche très bien. Ya aucune raison que ca ne marche pas...
 
 
oroumov:
un DO n'est pas une valeur mais une succession de valeur qui forment une sinusoïde (on oublie les harmoniques et tout le reste, on se place dans le cas idéail). Idem pour un MI. Donc sommer un DO et un MI revient à sommer dans le temps tous les échantillons, ce qui crée une nouvelle forme d'onde.
 
Donc pour de l'écho, tu décales tous les échantillons de ton écho ( mettons 1s d'écho, pour des fichiers audios à 16KHz, ca fait un décalage de 16000 échantillons) et ensuite tu ajoutes.
 
Eventuellement tu normalises tout ça, et c'est bon.

n°73276
oroumov
BSG fan :D
Posté le 18-11-2001 à 15:21:06  profilanswer
 

SoWhatIn22 a écrit a écrit :

 
 
Donc pour de l'écho, tu décales tous les échantillons de ton écho ( mettons 1s d'écho, pour des fichiers audios à 16KHz, ca fait un décalage de 16000 échantillons) et ensuite tu ajoutes.




 
Merci pour cette réponse, je vois mieux ce qui doit s'y passer.
 
Donc concretement, si j'ai bien compris, quand j'ouvre mon fichier wav en binaire et que je vois une succession de caracteres, je dois decaler ces caracteres du nombre voulu pour un certain echo multiplié par mettons 16000 (si le fichier audio est a 16Khz). Et donc si je somme directement deux caracteres entre eux, ca fonctionnera ?
 
C'est le cerveau qui se chargera lui meme de re-séparer les deux ? Rien de plus a faire par moi ?
 
Ca parait vachement simple vu comme ca, un peu trop meme peut etre...

n°73281
LeGreg
Posté le 18-11-2001 à 16:09:18  profilanswer
 

oroumov a écrit a écrit :

 
 
Ca parait vachement simple vu comme ca, un peu trop meme peut etre...  




 
peut-etre tout simplement te manque-t-il les bases
theoriques necessaires pour comprendre
ce qu'est une onde sonore et comment sont percues les frequences par le cerveau (et bizarrement meme si les bases sont simples ca peut etre beaucoup plus complique que ca n'en a l'air: cf psychoacoustique, et certains resultats utilises pour la compression MP3 ou encore la perception des sons 3D par l'oreille et le cerveau)
 
En gros dans un fichier wave on stocke des suites de chiffres qui representent une onde sonore, c'est a dire des variations de pression de l'air. Ces variations de pression font vibrer des cils dans ton oreille et ton cerveau interprete ces vibrations comme des sons de frequences differentes.  
 
Dis moi: que fais-tu comme etudes?
(est-ce que c'est un projet d'etude?)
 
A+
LEGREG

n°73465
oroumov
BSG fan :D
Posté le 19-11-2001 à 13:51:40  profilanswer
 

Encore merci pour les explications.
 
Oui c'est un projet "d'etudes".
 
Je suis dans une ecole d'informatique et je dois programmer ca en C (Enoncé : "mettre de l'echo dans un fichier wav", vachement explicite), mais on a absolument aucune notion de cours relative a l'acoustique en général ou tout ce qui pourrait y avoir trait, donc autant c'est peut etre facile a programmer, autant j'ignore comment ca fonctionne.
 
A+
Nicolas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Mettre de l'echo dans un fichier .wav

 

Sujets relatifs
Créer un mail .eml avec un fichier .txt[ASP] mettre juste un mot en commentaire
[Flash] Charger un fichier .html dans un movie d'un movie.C: Atteindre la fin d'un fichier et en recuperer une occurence
[java] image dans fichier *.jar ?Bon, ben finalement, je v me mettre au delphi 6
[javascript php html] comment forcer le telechargement d'un fichiercopier un fichier sous php
[Mysql]Fichier de logj'ai bien envie de mettre du son dans mes progs c++ moi :)
Plus de sujets relatifs à : [C] Mettre de l'echo dans un fichier .wav


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR