Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Conception pédagogique d'un compresseur pour pas cher du tout...

  • 1 595 réponses
  • 72 participants
  • 137 537 vues
  • 114 followers
Sujet de la discussion Conception pédagogique d'un compresseur pour pas cher du tout...
Bonsoir !!

Cela fait bien longtemps que je n'avais pas créé un nouveau sujet sur ce forum...

Peut être certains on suivi celui, déjà ancien, de la conception du prémpli Midnight MicPre... Il s'agissait de créer de zéro et en expliquant toutes les étapes de façon assez détaillée un préampli micro pour pas trop cher, et de qualité.
https://fr.audiofanzine.com/construction-de-micros-amplis-pr/forums/t.553253,conception-pedagogique-d-un-petit-preampli-micro-pour-pas-cher-du-tout-du-tout.html

Je réitère avec un nouveau projet, toujours dans la série "Midnight", c'est à dire de conception aisée à comprendre, et à construire, avec pour objectif de construire un compresseur audio. J'espère que vous serez aussi nombreux à participer et prendre part à cette grande discussion sur le développement de ce que je vous propose.

Je ne suis pas électronicien, je ne suis qu'un musicien. Mais un musicien passionné qui est curieux de comprendre ses outils... Alors si parfois il y a quelques manques, quelques erreurs (j'espère les éviter tout de même !)... Je serai le premier à apprendre de ceux qui apporteront aussi leur pierre à l'édifice.

**********************

Voici le projet...

Je propose de comprendre comment fonctionne un compresseur, en regardant par exemple le principe de quelques machines de référence, et d'appliquer cela à la conception d'un compresseur qui aurai pour cahier des charges (cela pourra varier fortement tout au long du projet, en fonction des recherches, des essais...) :
- un prix le plus petit possible
- une conception simple et efficace, compréhensible par un débutant en électronique.
- une qualité utilisable en situation Studio.
- Au moins une version Stéréo, ou alors pourquoi pas 4 ou 8 dans un seul rack ?
- Soit des réglages très basique (2 boutons façon LA2A...) soit un peu plus détaillé (façon 1176...).. à voir pour respecter le 1er critère..
- affichage de la compression en temps réel (c'est quand même plus facile de régler le compresseur avec un témoin, même si les oreilles sont seul juges !)


Je précise que je suis en train de développer une grosse console de mixage pour mon studio, et que j'envisage peut être de mettre un tel compresseur sur chaque tranche...
C'est par là :
https://fr.audiofanzine.com/construction-de-micros-amplis-pr/forums/t.578590,conception-du-delta-sigma-bluebird-mixer-mark-ii.html


Voilà, on commence tr!s bientôt ;);):bravo::bravo:

Site officiel et boutique en ligne du Studio Delta Sigma https://www.studiodeltasigma.com

Afficher le sujet de la discussion
661
:humm:hé hé, ça va bien aller avec le LA 610...
662
Pressé de pouvoir tourner ces gros boutons :-D
663
Offenbach, je sais pas si tu es familier du produit d'intercorrélation, c'est très simple à mettre en oeuvre et c'est parfait pour comparer des courbes de mesures. Un exemple vite fait où on voit que les courbes les plus ressemblantes ont leur produit le plus proche de 1.

mini_313058correl.png

En gros tu calcules en 2 étapes :
- la norme : || sig || = sqrt(sum(sig(k) * sig(N-k))) avec N valeurs de k, ici 300 je crois
- le produit : correl A/B = [ sum(sigA(k) * sigB(N-k)) ] / [ || sigA || * || sigB || ]

C'est la même fonction utilisée les deux fois, la norme c'est l'autocorrélation, le produit c'est l'intercorrélation.
Tu peux le faire faire à l'arduino automatiquement et lui faire choisir les couples qui ont un résultat le plus proche de 1. C'est presque magique :bravo:
664
Citation de theroms :
En gros tu calcules en 2 étapes :
- la norme : || sig || = sqrt(sum(sig(k) * sig(N-k))) avec N valeurs de k, ici 300 je crois
- le produit : correl A/B = [ sum(sigA(k) * sigB(N-k)) ] / [ || sigA || * || sigB || ]

C'est la même fonction utilisée les deux fois, la norme c'est l'autocorrélation, le produit c'est l'intercorrélation.
Tu peux le faire faire à l'arduino automatiquement et lui faire choisir les couples qui ont un résultat le plus proche de 1. C'est presque magique :bravo:


C'est magique ! merci pour les fonctions !!! :-)

Bernard

http://sonotrad.org --- http://diato.org --- "Collectionneur" de tables numériques Innovason et de micros DIY --- Fer à souder toujours chaud...

[ Dernière édition du message le 28/10/2016 à 20:00:28 ]

665
Citation de theroms :
Offenbach, je sais pas si tu es familier du produit d'intercorrélation, c'est très simple à mettre en oeuvre et c'est parfait pour comparer des courbes de mesures. Un exemple vite fait où on voit que les courbes les plus ressemblantes ont leur produit le plus proche de 1.

mini_313058correl.png

En gros tu calcules en 2 étapes :
- la norme : || sig || = sqrt(sum(sig(k) * sig(N-k))) avec N valeurs de k, ici 300 je crois
- le produit : correl A/B = [ sum(sigA(k) * sigB(N-k)) ] / [ || sigA || * || sigB || ]

C'est la même fonction utilisée les deux fois, la norme c'est l'autocorrélation, le produit c'est l'intercorrélation.
Tu peux le faire faire à l'arduino automatiquement et lui faire choisir les couples qui ont un résultat le plus proche de 1. C'est presque magique :bravo:



Mais c'est génial ton truc :8O::-D:-D:-D:-D Merci du tuyau :bravo::bravo:

J'ai acheté un petit écran OLED, un encodeur et un lecteur de carte SD pour réaliser une machine de test complètement autonome. Il me reste plus qu'à coder tout ça et au final le mettre dans un joli boitier qui enregistrera sur la SD toutes les valeurs de chaque optocoupleur, et grâce à ton idée pourra calculer le produit directement entre 2 courbes stockées sur la CARTE. Le tout affiché sur l'écran... Bon OK je me prend un peu la tête pour faire une super machine de test, mais au fond j'apprend aussi plein de chose qui me donnent des idées...

x
Hors sujet :
Ces petits écrans par exemple je le verrai bien sur chaque tranche de ma console... L'idée serai d'utiliser pourquoi pas des VCA aux endroits stratégiques pour pouvoir afficher, stocker, et retrouver les valeurs et ainsi automatiser un peu la console, pourquoi pas via du MIDI... bon là je suis HS... mais le potentiel de ce truc me rend fou ! et encore je me suis pas penché sur le rasberry !....

Site officiel et boutique en ligne du Studio Delta Sigma https://www.studiodeltasigma.com

666
x
Hors sujet :
Citation de offenbach :
Ces petits écrans par exemple je le verrai bien sur chaque tranche de ma console... L'idée serai d'utiliser pourquoi pas des VCA aux endroits stratégiques pour pouvoir afficher, stocker, et retrouver les valeurs et ainsi automatiser un peu la console, pourquoi pas via du MIDI... bon là je suis HS... mais le potentiel de ce truc me rend fou !


Ca y est, il a mordu ! :bravo:

Citation de offenbach :
et encore je me suis pas penché sur le rasberry !....

Même si vu de loin ca a l'air de se ressembler, Arduino & Co et Raspberry Pi ne sont pas du tout faits pour les mêmes choses.
Les cartes à microcontôleur comme Arduino sont bien adaptées pour piloter un truc, pas trop vite, en interaction étroite avec son environnement : lire un capteur (potard), le linéariser, faire un peu de calcul avec, et l'envoyer à un actionneur (moteur pas à pas, LED, DAC/PWM interne ...) et pourquoi pas à un autre système (liaison série, MIDI, DMX ...)

Une Raspi ou équivalent, c'est vraiment un ordinateur. Ca tourne sous Linux, il y a des interfaces (USB, réseau voire wifi, bluetooth), de quoi brancher un vrai écran (HDMI). Beaucoup plus de puissance de calcul, ca peut faire plein de choses "en même temps", mais il y a aussi beaucoup plus de distance avec le hardware : il faut des drivers pour accéder aux périphériques, il y a plus de couches logicielles qui apportent de la latence ... Bref une solution philosophiquement plus "informatique" qu'"électronique".

Dans une console, je verrais bien un microcontrôleur par tranche (pilotage de VCA pour compresseur/gate/automation, pilotage d'un vu-mètre/crête-mètre, cf. RNC) et une Raspi pour les gouverner tous (effets master, interface graphique, programmation de l'automation ...)
667
x
Hors sujet :
Oui Raspberry, c'est déjà trop un ordi sur lequel on a pas la main au niveau des détails. Arduino, c'est sympa pour des projets simples et les mettre en oeuvre rapidement mais ça devient vite limité dès que tu veux faire plusieurs trucs en même temps. Là il faut un mini système d'exploitation, généralement un "RTOS" real time operating system qui se permet de créer des taches et les faire tourner chacune leur tour pendant très peu de temps avec des priorités et des garanties sur les temps d'attente. Tout ça donne l'illusion que ça fonctionne en même temps et garantie des délais respectés pour les périphériques de communication. Le problème sur arduino, c'est qu'on ne trouve que des implémentations de OpenRTOS qui n'est pas si terrible que ça, ces implémentations (les librairies arduino créées par des amateurs) fonctionnent rarement et tout le reste du code qu'on trouve à droite à gauche n'est pas prévu pour fonctionner dans un tel environnement.
On ne trouve pas encore de plateforme dans l'esprit arduino/raspberry qui propose un RTOS. Par contre, tu peux regarder du côté des PIC32 de microchip. Ils ont une nouvelle librairie "Harmony" qui commence à bien fonctionner et ça devient de plus en plus simple de mettre en oeuvre de tels projets. Ensuite, tu n'as plus besoin que d'un seul µC pour piloter toutes tes tranches. La vraie difficulté consiste à trouver des manières de faire des VCA qui respectent la loi log pour controller l'attenuation des étages d'amplis ...
668
Citation de theroms :
Offenbach, je sais pas si tu es familier du produit d'intercorrélation, c'est très simple à mettre en oeuvre et c'est parfait pour comparer des courbes de mesures. Un exemple vite fait où on voit que les courbes les plus ressemblantes ont leur produit le plus proche de 1.

mini_313058correl.png

En gros tu calcules en 2 étapes :
- la norme : || sig || = sqrt(sum(sig(k) * sig(N-k))) avec N valeurs de k, ici 300 je crois
- le produit : correl A/B = [ sum(sigA(k) * sigB(N-k)) ] / [ || sigA || * || sigB || ]

C'est la même fonction utilisée les deux fois, la norme c'est l'autocorrélation, le produit c'est l'intercorrélation.
Tu peux le faire faire à l'arduino automatiquement et lui faire choisir les couples qui ont un résultat le plus proche de 1. C'est presque magique :bravo:


Si j'ai bien compris (je suis pas du tout en expert dans ce domaine... que je trouve fascinant !! mais je débute...) :

Pour comparer une courbe A et B, chacune représentée par un tableau de valeurs (300 par exemple), je procède ainsi :

1. Calcul de la norme de A et de B :

en gros je prend la racine carré de la somme :
A(1)*A(299) + A(2)*A(298) + A(3)*A(297) + .... + A(149)*A(151) + A(150)*A(150) + .... + A(299)*A(1)

idem pour B.

Ça me donne N(A) et N(B) norme de A et de B respectivement.

Ensuite le calcul me parait plus flou...
Est-ce bien ça ??...

2. Je calcule la somme
A(1)*B(299) + A(2)*B(298) + A(3)*B(297) + .... + A(149)*B(151) + A(150)*B(150) + .... + A(299)*B(1)
qu'on va appeler S.

et je divise S par (N(A)*N(B)).

Et j'obtiens le produit d'intercorrelation de mes 2 fonctions !!!

J'ai bon ??:8O::8O::-D:-D

Site officiel et boutique en ligne du Studio Delta Sigma https://www.studiodeltasigma.com

669
L'idée est de faire "glisser" l'un des deux signaux par rapport à l'autre, pour voir quand ils se ressemblent. Visuellement ca donne ca :
512px-Comparison_convolution_correlation.svg.png
(source : https://en.wikipedia.org/wiki/Cross-correlation)
670
Ouai je sens un peu la puissance de ce truc ! Mis je parle du calcul en lui même pour rédiger l'algorithme !!

Site officiel et boutique en ligne du Studio Delta Sigma https://www.studiodeltasigma.com