Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

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

  • 1 595 réponses
  • 72 participants
  • 145 883 vues
  • 113 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
651
652
653
Citation :
Une question annexe, mais intéressante dans cette utilisation : ça vieillit comment, une LDR ?
Ça ne bouge pas dans le temps, ça évolue, ça se dégrade pour finir à la poubelle ?


Les LDR des wah Morley des 70' ne posent que très peu de problèmes, idem sur mes George Dennis (94/96).
654

Je me disais avec son premier projet de console il a surement dû déjà y penser ;) :bravo:

Clip Ideal_Sound - 'Bleu orage' by Ideal Sound

655
Je viens de réaliser 5 optocoupleurs afin de les masser au banc de mesure !!

A suivre...
midnight-1576186.jpg

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

656
Comme on pouvait s'y attendre, sur 3 optocoupleurs testés il y a des disparités. A mon avis elles doivent être représentative des dérives que je pourrai observer dans la moyenne...

Il est va donc falloir tracer les courbes pour chaque optocoupleur afin de les appairer pour la stéréo, et aussi définir une zone au-delà de laquelle je considère que la dérive est trop importante, auquel cas je n'utilise pas cet optocoupleur.


Sur le graphe suivante, chaque couleur est un optocoupleur. 3 mesures sont effectuées pour chacun :
- caractéristique : mesure de la tension au borne de la LDR dans un pont diviseur avec une R = 10K et une tension d'entrée de 5V (valeur aprox. en mV). Je fais varier une tension de 0 à 5V pour alimenter la LED via une R=220R. 256 valeurs sont mesurées sur cette échelle.

- temps de réponse lors de l'allumage de la LED, et temps de réponse lors de l'extinction de la LED. Dans le premier cas, la LED reste éteinte 4 secondes puis s'allume d'un coup. On mesure alors tout les 1/10000 de seconde la valeur de la tension aux bornes de la LDR. 300 valeurs sont alors mesurées.
Dans le second cas, c'est identique, mais la LED reste allumée 2 secondes, puis s'éteint d'un coup. Et on démarre la mesure à ce moment là.

midnight-1576197.gif

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

657
C'est du boulot tout ca pour qui veut faire quelque chose de qualité, plus d'un aurait mit des octocoupleurs dans le kit sans prendre le temps de les mesurer
658

Des LED avec la face avant plates n'auraient-elle pas minimisée la dispersion du flux lumineux par rapport au classiques bombées?

http://www.kingbright.com/content/listitem/psearch/56

L'assemblage dans la gaine thermo permettrait de mieux aligner la LED avec la LDR, et d'avoir moins d'écarts dans les mesures, amha. noidea.gif

S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

659
Je ne suis pas certain que les écarts observés proviennent de l'agencement mécanique. Les composants LED ou LDR ont leur propre tolérance. En allant chercher une dizaine de LDR chez Saint-Quentin radio, j'ai essayé d'en savoir davantage sur leur provenance. Ils ont été totalement incapable de me dire quelle est LA marque ni même de me donner un numéro de référence. Ils m'ont expliqué que ça passait par un importateur et qu'ils n'étaient même pas sûr d'avoir toujours les mêmes à chaque fois qu'ils ont commandent.... honnêtement j'ai été un peu désagréablement surpris. Je fais quand même mes tests avec ces ldr afin de valider le process. Mais j'ai commandé quelques centaines d'unités de deux références bien précises dont je peux avoir les datasheet. Tous les composants du compresseur sont des qualités que ce soit les résistances les condensateur les potentiomètres... donc il est important pour les ldr d'avoir quelque chose de fiable !

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

[ Dernière édition du message le 28/10/2016 à 09:40:37 ]

660
Ce matin sont arrivés les gros boutons (OUT GAIN et REDUCTION GAIN) :

midnight-1576374.jpg

midnight-1576354.jpg

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

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

671
Tu as k échantillons et N décalages possibles.
Pour chaque valeur de N, il s'agit de balayer l'ensemble des k échantillons. Il y a donc deux boucles imbriquées, une sur N et à l'intérieur une sur k.
Le résultat de la corrélation est un vecteur de N éléments.
672
Oui, le calcul est bon :)

L'idée, c'est surtout que cette formule : sum(A(k) * B(N-k)) satisfait toutes les propriétés d'un produit scalaire entre A et B. On peut définir des produits scalaires avec des tas d'objets mathématiques autres que des vecteurs dans le domaine de la géométrie. Pour rappel en géométrie, le produit scalaire permet de calculer une projection. Si on projette sur un axe normé (càd dont la mesure de la norme = "distance" vaut 1) on obtient la coordonnée sur cet axe. Si deux objets mathématiques sont normés et que la projection vaut exactement 1, alors les deux objets normés sont égaux. Si la projection vaut exactement 0, ils sont orthogonaux (= perpendiculaires), par définition. Oui, orthogonaux, on peut fabriquer des repères orthogonaux et normés d'ailleurs (orthonormaux est le terme), c'est à dire, dans notre domaine, un ensemble de signaux dont la norme vaut 1 et le produit scalaire 2 à 2 vaut 0. Ensuite, n'importe quel signal est une combinaison linéaire de ces signaux. De la même manière qu'un point en 3D a 3 coordonnées sur X, Y et Z, on peut trouver les N coordonnées d'un signal (dimension N) dans un repère de signaux orthonormés. C'est fun non ?

Je pense (sans en être sûr) que c'est cet outil mathématique qui est à la base du fonctionnement de logiciels comme Melodyne. La difficulté vient du fait qu'un piano et une guitare sont pas forcément perpendiculaires au départ (sauf chez les Gipsy King peut-être ;))

edit : le calcul est presque bon en fait, c'est A1.B300 + A2.B299 + ... + A299.B2 + A300.B1. T'as 300 points, utilise les tous.

[ Dernière édition du message le 30/10/2016 à 12:28:05 ]

673
Citation de Jimbass :
Tu as k échantillons et N décalages possibles.
Pour chaque valeur de N, il s'agit de balayer l'ensemble des k échantillons. Il y a donc deux boucles imbriquées, une sur N et à l'intérieur une sur k.
Le résultat de la corrélation est un vecteur de N éléments.


Non, non. Il n'y a pas N résultats, juste 1 seul. Pour un couple de signaux, il n'y a que le résultat de la projection de l'un sur l'autre.
674
Euh, si, pour une corrélation on a bien autant de points que la taille de l'horizon.
Sauf que je me suis embrouillé, ce n'est pas de ca qu'on parle :oops:, là c'est le produit de corrélation.

Pff, mes cours de traitement signal sont loin, et c'était tellement décorrélé de la pratique ...
675
Oui je vois ce que tu veux dire, le coup d'avoir les N coordonnées ... Moi aussi c'est loin, je me rappelle juste de cette formule un peu magique ...