Reverberation

Reverberation - C - Programmation

Marsh Posté le 09-01-2007 à 13:14:03    

Bonjour à tous :) ,
 
Je voulais savoir comment il était possible de faire un effet reverb à partir d'un son en LANGAGE C!
Car le C++ nous as été proscrit pour ce projet autant dire beaucoup de choses!
 
Merci pour ceux qui pourront répondre à nos attentes.
 
cordialement shinohinata. :jap:

Reply

Marsh Posté le 09-01-2007 à 13:14:03   

Reply

Marsh Posté le 09-01-2007 à 13:16:46    

tout est possible, mais précise peut-être sous quelle forme est ton son d'origine et ce qui te pose problème dans ce traitement

Reply

Marsh Posté le 09-01-2007 à 17:20:45    

shinohinata a écrit :

Je voulais savoir comment il était possible de faire un effet reverb à partir d'un son en LANGAGE C!


Drôle de question. Le C n'est qu'un outil. Il fait ce qu'on lui dit de faire.
 
Concernant un projet qui n'a rien à voir, voici quelle était ma réponse :  
 
http://www.developpez.net/forums/s [...] ostcount=2


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 09-01-2007 à 19:18:55    

shinohinata a écrit :

Je voulais savoir comment il était possible de faire un effet reverb à partir d'un son en LANGAGE C!


Evidemment - Un son informatique n'est qu'une donnée numérique et un effet n'est qu'une fonction mathématique appliquée à la donnée. Il te suffit de traiter séquentiellement ton fichier son et d'appliquer la fonction à chaque valeur du fichier...
 

shinohinata a écrit :

Car le C++ nous as été proscrit pour ce projet autant dire beaucoup de choses!


Ben tu peux le faire en ce que tu veux, pourvu que tu puisses
- ouvrir un fichier
- lire/écrire un fichier
- fermer un fichier
 
Accessoirement si tu sais l'écrire en C++, ce n'est pas extrèmement difficile de le retranscrire en C...


Message édité par Sve@r le 09-01-2007 à 19:19:22

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 09-01-2007 à 21:01:47    

Euh je suis en 1ere année d'informatique et on a pour projet commun de monter une bibliothèque pouvant gérer des sons.
On doit pouvoir faire l'effet reverb à partir de n'importe quels format de sons sachant qu'en plus du reverb on doit pouvoir faire le delay et le chorus comme effet mais on ne voit du tout par ou commencer.
On ne voit pas comment gérer les sons pour les traiter dans un algo en C.
Voila merci pour votre aide future!
Cordialement, shinohinata

Reply

Marsh Posté le 09-01-2007 à 21:20:52    

shinohinata a écrit :

Euh je suis en 1ere année d'informatique et on a pour projet commun de monter une bibliothèque pouvant gérer des sons.
On doit pouvoir faire l'effet reverb à partir de n'importe quels format de sons sachant qu'en plus du reverb on doit pouvoir faire le delay et le chorus comme effet mais on ne voit du tout par ou commencer.
On ne voit pas comment gérer les sons pour les traiter dans un algo en C.


Tu apprends quoi dans cette école ? La couture ? Traitement du signal, ça te dit quelque chose ou tu dormais pendant le cours ? Je rappelle que l'informatique est un outil au service d'un métier. L'informaticien n'est pas censé connaitre tous les métiers, mais certains sont très techniques et ne s'inventent pas...

 

Un son non compressé (format wav, par exemple) est une séquence de valeurs représentant l'amplitude du signal.

 

Par exemple (je dis n'importe quoi) :

 

un cycle de patatoide :


T :  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24
A :  0   1   2   4   7   9 10   9   7   4    2   1    0  -1   -2  -4  -7  -9 -10  -9  -7  -4  -2  -1    0


C'est à peu près tout ce que je sais. Le traitement du signal n'est pas une branche de l'informatique. C'est un métier à part entière...

 

En tant que musicien et ex-sonorisateur, ma connaissance empirique du son définit "l'echo" comme une superposition du son original par un son identique en forme, mais réduit en amplitude et rétardé dans le temps...

 

On recalcule les valeurs en appliquant un affaiblissement (au pif, -6 db) et on regénère un nouveau fichier de laurs. Ensuite, on choisi un décalage (au blairomètre, 500 ms), on combine les deux signaux (somme) et on met le résultat dans un fichier qui va bien.Y'a pu qu'à écouter...

 

Evidemment, il faut connaitre le format des fichiers... wotsit est ton ami...

 



Message édité par Emmanuel Delahaye le 09-01-2007 à 21:24:15

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 10-01-2007 à 08:23:17    

Bonjour.
 
Pourquoi avoir réouvert un sujet ? On a déja commencé à en parler ensemble y'a deux mois :
 
http://forum.hardware.fr/hfr/Progr [...] 9127_1.htm
 
Avec déjà a l'époque, des éléments de réponse.
 
Cordialement
 

Reply

Marsh Posté le 10-01-2007 à 14:02:27    

shinohinata a écrit :

On ne voit pas comment gérer les sons pour les traiter dans un algo en C.


Voici le principe grosso modo:  

fopen(fichier_son, "r" )
fopen(fichier_son2, "w" )
while ((variable=lecture(fichier_son)) != fin de fichier)
{
      variable2=calculer_effet_echo(variable)
      ecrire(variable2, fichier_son2)
}
fclose(fichier_son)
fclose(fichier_son2)


...


Message édité par Sve@r le 10-01-2007 à 22:13:03

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 10-01-2007 à 17:42:18    

Conceptuellement c'est pas très dur. Dommage que y'ai pas d'Objet, car ça s'y pretterai bien en plus d'une ptit diagramme UML.
 
Le plus dur c'est de trouver les algo de Reverb/Delay/Chorus (SDK plug-in DSP Winamp2 et je pense qu'une partie de la solution est là).


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 10-01-2007 à 17:54:01    

C'est quoi la difference entre "echo" et "reverb"?

Reply

Marsh Posté le 10-01-2007 à 17:54:01   

Reply

Marsh Posté le 10-01-2007 à 17:56:53    

Echo c'est comme dans la montagne, reverb c'est comme dans un garage; en gros. :D
 
En réalité la reverb c'est de l'echo en 3D +/- si j'ai bien compris.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 10-01-2007 à 18:02:26    

MEI a écrit :

Echo c'est comme dans la montagne, reverb c'est comme dans un garage; en gros. :D

 

En réalité la reverb c'est de l'echo en 3D +/- si j'ai bien compris.


Je vois bien le son que ca donne, mais c'est niveau du calcul c'est quoi la difference? c'est juste le temps de delai ?

Message cité 1 fois
Message édité par Ace17 le 10-01-2007 à 18:02:41
Reply

Marsh Posté le 10-01-2007 à 18:11:47    

Ace17 a écrit :

Je vois bien le son que ca donne, mais c'est niveau du calcul c'est quoi la difference? c'est juste le temps de delai ?


C'est typiquement une question qui ne concerne l'informaticien, qui est, je le rappelle "au service d'un métier". Or ce métier, ici, c'est acousticien ou spécialiste du traitement du signal. Il faut donc demander à ces spécialistes de t'aider. Ce n'est pas sur un forum C que tu trouveras la réponse.

 

Une fois que tu auras compris la définition, tu pourras modéliser le comportement en algorithme ou en calcluls ou en une combinaison astucieuse des deux, en donc envisager un codage. Pas avant.


Message édité par Emmanuel Delahaye le 10-01-2007 à 18:12:23

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 10-01-2007 à 23:16:32    

pour moi l'echo est unique, alors que la reverb y'a une multitude "d'écho" avec une certaine réponse fréquencielle (suivant le dimentions de la pièce et de la nature des matériaux)
 
l'echo ça doit être du style:
destination=source(t)+coef*source(t-delai)
 
la reverb, du style:
destination=source(t)+coef*destination(t-delai)
 
j'ai déjà réussi a faire du larsen à cause de la reverb avec des outils audio :D


Message édité par bjone le 10-01-2007 à 23:20:06
Reply

Marsh Posté le 10-01-2007 à 23:36:17    

Citation :


Posté le 08-12-2006 à 15:46:39  
 
Déja il faut que tu recherches les différents algorithmes pour générer les effets.
 
Le chorus, c'est une réinjection du signal avec une phase variable.
Le délai, c'est une réinjection pondérée et retardée temporellement.
Pour la réverb, soit tu te casses la tete, soit tu utilises plusieurs délais savamment réglés.
 
Mais je préfère te prévenir, ça va vraiment pas etre une partie de plaisir...  

Reply

Marsh Posté le 10-01-2007 à 23:37:52    

tout à fait ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed