Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

ampli simul mode de calcul

  • 15 réponses
  • 4 participants
  • 948 vues
  • 4 followers
Sujet de la discussion ampli simul mode de calcul
bonjour à tous
peut être ne suis je pas sur le bon forum , veuillez m'en excuser et me rediriger

je m’intéresse à la manière de comment sont programmés les effets dans les ampli à simulations
c'est peut être pas clair ....
j'aimerais savoir , par quelles astuces mathématiques ,est il possible de créer un signal "overdrivé" à partir d'un signal audio digital .
et bien sur les autres effets également ... delay , reverb,enfin tout quoi .

bien sur , ne me dites pas utilises tel programme ou tel autre...
c'est le principe du traitement qui m’intéresse
si quelqu'un a des infos ou des liens ... merci d'avance
2
Salut,


Ce ne sont pas des astuces mais des années d'études qu'il faut. Tu en es où toi ?
3
Un peu de lecture pour commencer:
http://www.dspguru.com
4
De solides connaissances en électronique (analogique) ne seraient pas un luxe, non plus.

[ Dernière édition du message le 09/01/2014 à 11:35:45 ]

5
Citation de EraTom :
De solides connaissances en électronique (analogique) ne seraient pas un luxe, non plus.

+1000 C'est la base quand il s'agit de simuler ce type d'électronique puisqu'il faut en comprendre toutes les subtilités.
Dérive thermique, vieillissement des composants... Ca peut emmener très loin.
6
Salut,

en effet c'est un sujet qui peut mener très loin.

L'étape 0, c'est de coder un algorithme de clipping "bete et méchant" et de le tester avec sa guitare pour voir (spectralement) et entendre ce que cela donne.

Pour faire cela rapidement je te suggère :
- le langage jesusonic, directement intégré à Reaper. C'est un langage interprété, très proche du C, et dédié à l'audio temps reel. Ecrire un algorithme de clipping, c'est 2 lignes de code.
- Puredata, qui est un langage lui aussi dédié à l'audio mais avec de la "programmation visuelle" (comme LabView si cela te parle). Il y a déjà plein de brique de base.

L'étape 1 est de s'interesser au waveshapping qui est une version améliorée du clippling. Voici un lien vers un plug vst dont l'interface graphique est bien faite. Le code source est disponible grace à sa version jesusonic intégré avec Reaper.

Les étapes suivantes sont moins claires car il faut maintenant s'interesser à comment fonctionne un ampli et donc faire de l'electronique, puis de la modélisation. Tu peux trouver plein de ressource sur internet. Une, prise quasi au hasard :ici.


D'un point de vue code, on peut aussi mentionner ce projet open source de simulation d'ampli. Il y a plein de chose à apprendre en regardant le code (dont la licence permet d'ailleurs de le réutiliser comme on veut).

https://sourceforge.net/projects/scorchcrafter/

Bon courage, et je te conseille d'y aller progressivement.

[ Dernière édition du message le 09/01/2014 à 13:22:14 ]

7
Mouais... Mais pour un tel sujet, avant de mettre le nez dans du code (le "comment") il vaut mieux comprendre d'où sortent les algo utilisés (le "pourquoi").

D'abord comprendre l'électronique d'un ampli, ensuite être capable de mettre en équations son comportement dynamique.
Puis viennent les mathématiques du traitement du signal, processus stochastiques / déterministes, signaux continus / discrets.
Pour envisager une simulation proche de la réalité avec "l'intégration" des équations différentielles du montage, de bonnes connaissances en algorithmes numériques sont nécessaires.

Et, enfin, on peut passer au choix de la cible techno et à l'implémentation des algo.
8
Je suis d'accord avec ce que tu dis.

Si on veut arriver à une simulation qui s'approche d'ampli réel, il faut faire ce que tu as écrit. Il n'y a pas d'alternative.

Mais, ce que tu proposes demande beaucoup beaucoup de travail. C'est super intéressant à étudier, mais finalement peu de personne auront le temps et la motivation pour arriver à bout.

Au vu de la question de rmodec, il me semble qu'il part d'assez loin.

Dans le post precedent, je propose de partir de la base et de la notion de saturation/distortion.
De mon point de vue, il y a deux avantages. On comprend les concepts de bases (traitement non linéaire -> apparition d'harmoniques), et surtout on a des résultats tout de suite, ce qui pour la motivation d'aller plus loin est souvent crucial.

Evidemment, avec un waveshapper, on aura pas le son marshall ou autre... mais c'est un début.
9
Je trouve qu'il n'y a pas grand intérêt à simuler en numérique aucun harware. Toute les tentatives testées jusqu'à présent étaient loin de l'original. Je doute qu'un débutant puisse faire mieux.
Pour avoir passé un certain temps sur le sujet, générer des distorsions "musicales" sur un signal ne se limite pas à appliquer une courbe de transfert à un signal. C'est un domaine abyssal auquel on peut consacrer de nombreuses années.
Bon courage rmodec :bravo:

[ Dernière édition du message le 09/01/2014 à 19:56:46 ]

10
"Ce n’est pas le but qui compte, c’est le chemin."
11
Ouais mais le mot "simul" a été lâché...

Si le but est de faire une disto qui sonne musicale, en première approche il "suffit" de faire un truc qui n'ajoute que des harmoniques paires, et que ces harmoniques aillent plutôt décroissantes.

Pour se faire un "waveshapper" polynomial qui ne contient que des puissances paires permet déjà de s'amuser un peu, avec des coefficients qui vont décroissants avec les degrés des monômes.
12
je vous remercie tous pour vos réactions et vos liens
pour répondre à vos doutes sur le bien fondé de ....
je suis électronicien de formation et programmeur par le boulot , je ne suis donc pas entièrement novice.
j'ai déjà fabriqué plusieurs amplis transistors et tubes donc de ce cotés la ça va pas trop mal .
je ne cherche surement pas à réinventer la poudre , il existe des fabricants plein d’ingénieurs qui ont déjà travaillé pas mal la dessus , avec plus ou moins de succès.

mon but n'est pas de faire, mais simplement d'essayer de comprendre comment on s'y prend pour ... juste pour le plaisir .
et éventuellement de me programmer ,dans un pic, une disto ou une reverb juste pour voir ( c'est ce qui semble le plus simple à réaliser )encore pour le plaisir .
En été je fabrique des guitares , et en hiver les amplis et effets... ;-)

encore merci à vous



13
je vous remercie tous pour vos réactions et vos liens
pour répondre à vos doutes sur le bien fondé de ....
je suis électronicien de formation et programmeur par le boulot , je ne suis donc pas entièrement novice.
j'ai déjà fabriqué plusieurs amplis transistors et tubes donc de ce cotés la ça va pas trop mal .
je ne cherche surement pas à réinventer la poudre , il existe des fabricants plein d’ingénieurs qui ont déjà travaillé pas mal la dessus , avec plus ou moins de succès.

mon but n'est pas de faire, mais simplement d'essayer de comprendre comment on s'y prend pour ... juste pour le plaisir .
et éventuellement de me programmer ,dans un pic, une disto ou une reverb juste pour voir ( c'est ce qui semble le plus simple à réaliser )encore pour le plaisir .
En été je fabrique des guitares , et en hiver les amplis et effets... ;-)

encore merci à vous


14
Ok, alors on va pouvoir rentrer dans le vif sur sujet :)


Aujourd'hui on trouve des publi où l'on tente de simuler des ampli "au plus proche de la physique".
Par exemple, ceci : http://hal.archives-ouvertes.fr/docs/00/54/28/73/PDF/000358.pdf

Je pense que ça te donnera un bon point de départ.

Ici l'idée est de simuler des étages de lampes (mais l'idée est applicable aux montages à transistors) ; les courants / tensions intermédiaires sont rassemblées dans un "vecteur d'état" et un système d'équations différentielles non-linéaires est établi (les non-linéarités sont celles de la lampe ; sinon pas de disto).

Ce qui est intéressant est que les effets parasites souvent négligés sont pris en compte, notamment les capa de quelques pico farads entre grille / plaque / etc.

Établir les équa diff est un peu laborieux mais un électronicien s'en sort... la grosse difficulté est d'arriver à intégrer ces équations : par nature les équations sont "raides" et un schéma numérique simple risque de diverger.

Si ça te parle, il vaut mieux utiliser un schéma numérique implicite dont la convergence est assurée (contrairement à un schéma explicite).
https://fr.wikipedia.org/wiki/Stabilit%C3%A9_d%27un_sch%C3%A9ma_num%C3%A9rique
https://fr.wikipedia.org/wiki/M%C3%A9thode_des_diff%C3%A9rences_finies

J'avais réussi à obtenir un truc pas trop mal en utilisant un schéma implicite que je résolvais itération par itération avec un algo de Gauss-Newton pour simuler un pré-ampli de deux triodes.
De ce côté là, je t'invite à consulter "la bible" des algo numérique : http://www.nr.com/
Tu trouveras des algo clef en main qui font références.

Le disque dur sur lequel j'avais tout ça a grillé :((( et je n'ai plus vraiment le temps de m'y remettre. J'avais tout fait sur Matlab pour tester le principe ; je n'ai pas essayé de passer à une implémentation temps réel mais ça semblait accessible (en terme de complexité calculatoire).


Je n'avais pas ré-inventé la poudre :
- J'avais pris un schéma assez simple de montage à double triodes.
- J'avais récupéré un modèle SPICE de lampe (celui de Norman L. Koren http://www.normankoren.com/Audio/Tubemodspice_article.html) ; j'avais juste choisi de faire une modélisation plus fine de la partie diode.
- J'étais arrivé à un schéma numérique implicite en partant comme la publi que je t'ai mis en lien.
- J'avais initialement récupéré un algo des numerical recipes, puis j'avais changé le gauss-newton pour un algo plus robuste (qui mélange recherche linéaire et gauss-newton)... Je ne me souviens plus du nom des auteurs :??: ça va peut-être me revenir plus tard.

Pour les équa diff je m'étais assez pris la tête pour essayer de faire quelque chose "d'évolutif" en intégrant des effets parasites de composants ; notamment les condo en prenant en compte un courant de fuite (ajouter une résistance parallèle) qui pourrait faire bouger les points de polarisation, prendre en compte les effets inductifs des boitiers des capa électrochimique, etc.
Je n'ai pas eu le temps de m'y aventurer pour regarder de plus près ce qui pouvait être pertinent ou non de prendre en compte (au niveau du rendu sonore).
M'enfin, plutôt que de bidouiller des "filtres passe-bande" pour faire "sonner vrai" comme dans certaines simu que l'on trouve sur le marché, je voulais voir si des modèles plus réalistes pouvaient faire ce boulot.

J'avais aussi l'idée de linéariser "très localement" les équa diff et injecter les bruits thermiques de façon assez robuste (i.e. sans mettre par terre la convergence du schéma numérique). En clair, traiter la partie "déterministe" du signal avec le modèle non-linéaire, linéariser autour du point de fonctionnement trouvé puis traiter les bruits comme de bruits additifs.


Sinon, un truc hybride qui pourrait t’intéresser : http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1111&context=eesp


Si tu pouvais nous tenir au courant de ce que tu arrives à obtenir ça serait sympa ; ça m'intéresse vraiment.

[ Dernière édition du message le 12/01/2014 à 23:23:34 ]

15
Merci pour toutes ces informations, cela donne vraiment envie de se lancer !
16
merci pour ces liens
c'est déjà plus un niveau découverte :???:
il va falloir que je me remue les neurones du fond...