Do It Yourself
Boutique
Visites

 945813 visiteurs

 17 visiteurs en ligne

rss Cet article est disponible en format standard RSS pour publication sur votre site web :
https://www.ozoe.fr/data/fr-articles.xml

A D S R  Numérique

L’ADSR est un générateur d’enveloppe permettant de gérer l’amplitude d’un signal en fonction du temps.
Ce type de générateur d’enveloppe pilote généralement le volume d’une note (via le VCA), ou toute fonction pilotée en tension (VCF, etc.)

Cette version est articulé autour d'un PICAXE 14M2 permettant d'obtenir un module à bas cout. Son utilisation est à réserver au jeu clavier, ou aux séquences à vitesse modérée.

Documents 

Le schéma
La nomenclature
Le PCB
L'implantation
La face avant 1U (positif)
La face avant 1U (négatif)
La face avant 2U (positif)
La face avant 2U (négatif)
Le plan de câblage
Logiciel (adsr_soft.zip)
Dernière mise à jour documentaire : 18 Septembre 2014

Fonctionnalités

- Les potentiomètres Attack, Decay et Release permettent de régler le temps de chacun de ces paramètres pour évoluer entre sa valeur minimum et sa valeur maximum.

- Le potentiomètre Sustain permet de régler le niveau de tension auquel le système restera tant que le signal en entrée ‘Gate’ sera maintenu.
- L’appui sur le bouton poussoir « Gate » et/ou la mise sous une tension d’environ 1 volt de l’entrée « Gate » permettent de déclencher la génération d’enveloppe. Dans le mode « Gate_In » le Release est déclenché par le relâchement du bouton poussoir ou la remise à zéro de la tension de commande sur l’entrée « Gate ».
- Les sorties délivrent les tensions de  commande permettant de piloter d’autres modules. La tension est comprise entre 0 et 10 volts pour la sortie « Output +» et entre 10 et 0 volt pour la sortie « Output -»
- L’inverseur « LIN/LOG » permet de définir la manière dont la tension va évoluer en fonction du temps.
o En position LIN, la tension s’élèvera (A) ou baissera (D,R) de façon linéaire et en position « LOG » de façon pseudo-logarithmique.


- L’inverseur « TIME » permet de définir les plages maximales des potentiomètres A, D et R.

Le tableau ci-après donne les valeurs de durée minimales et maximales approximatives pour chaque phase A, D ou R ainsi que les valeurs de fréquences constatées sur le module en mode "LOOP".

LIN LOG
Min 7 ms 12 ms
LONG Max 88 s 63 s
Fréquence 5,5 Hz 3,7 Hz
Min 10 ms 10 ms
MIDDLE Max 5,6 s 5,6 s
Fréquence 43 Hz 30 Hz
Min 12 ms 12 ms
SHORT Max 220ms 220 ms
Fréquence 88Hz 60 Hz

- L’inverseur « MODE » permet de définir la trois mode de fonctionnement différents pour ce module :

  • Le mode « Gate_In » est le mode traditionnel de fonctionnement d’un ADSR : Lorsque le signal gate est détecté, le cycle Attack, Decay est mis en action et le signal de sortie reste sur le niveau réglé par le potentiomètre Sustain jusqu'à que le signal gate disparaisse. Lorsque le signal Gate disparait, à quelque instant que ce soit, le signal de sortie redescend avec les réglages du Release.
  • Le mode « Trig_In » est un mode ou dès que le signal gate est détecté, le signal de sortie monte jusqu’au niveau maximum (10V), puis redescend jusqu’au niveau du Sustain même si le signal gate à disparût. Si le signal gate n’a pas disparut, alors le signal de sortie reste au niveau du Sustain.
  • Le mode « Loop » est un enchainement des pentes Attack, Decay, Release sans fin. La rapidité de la boucle dépend des pentes réglées. (Cf. le tableau ci-dessus pour les fréquence obtenues)

- LED

  • La Led verte indique le bon fonctionnement du module à sa mise sous tension par trois allumages successifs. Cette led s'illumine également lorsque l'entrée "Gate"  passe à l’état  « 1 ».
  • La led rouge donne une image de la tension de la sortie «Output + ».

- OEC : (End Of Cycle) Depuis la version 2.1, cette fonction permet d'envoyer un trig out montant de +5V de 1,5 ms à chaque fin de cycle ADSR, c'est dire que le trig est envoyé chaque fois que le module revient à zéro volt en sortie après la phase sustain.

Visualisation

(En bleu : le signal Gate et en Jaune, le signal Output)

ADSR en GATE_IN et en LIN et LOG

 

Output "+" et Output "-"

 

ADSR en TRIG_IN et re-Trig

 

ADSR en LOOP et en LOOP avec présence de Trig / Gate en entrée

 

Schéma

Le module est articulé autour du microcontrôleur Picaxe 14M2 et alimenté par une tension entre +12 volts et +15 Volts.

Les entrées :
L’entrée gate est gérée par une AOP monté en comparateur. La tension de sortie de l’AOP est ramenée à une valeur voisine de 5V sur une entrée du PIC.
L’inverseur « Courbe » est traité comme une entrée tout ou rien par le Pic, les inverseurs trois positions sont gérés comme des pseudo potentiomètre délivrant 0V, 2,5V ou 5V.
Les potentiomètres permettent de délivrer une tension de commande proportionnelle entre 0 et 5 volts à l’entrée de chaque voie sur le microcontrôleur.
Option : Il est possible de remplacer ou de mettre en parallèle une entrée externe pour chaque commande. Dans ce cas, ajouter une diode zener de 5V 400mW entre la masse et chacune des broches 9, 10, 11 et 12 afin de protéger le Picaxe d’éventuelles surtension.

Les sorties
La sortie tension du module est créée par la broche 8 du microcontrôleur. Cette broche délivre un signal PWM (0 à 100%) proportionnel à la tension de sortie comprise en 0 et 10volts. Cette sortie est d’une résolution de 10 bits (1028 valeurs)
La transformation du signal pwm en tenstion est réalisé par un filtre passe bas à deux étages réalisé par les couples RC (R18,C6 et R17,C5). La sortie de ce filtre est envoyé sur un AOP monté en amplificateur non inverseur dont le gain est ajustable afin de régler la tension maximum (10 volts).
La sortie de tension inversée est confiée à un AOP monté en sommateur et permet de délivrer une tension comprise entre 10 et 0 volt.

Les sorties EOC et led sont directement reliées au Picaxe.

Logiciel

Après l'initialisation, le logiciel établi une boucle sans fin. A chaque passage dans la boucle, les inverseurs et potentiomètres sont analysés et une valeur proportionnelle à la tension de sortie voulue est envoyée sur une sortie PWM.

La tension de sortie est élaborée pas l'ajout ou la soustraction d'un incrément à la valeur précédemment calculée.

L'incrément, plus ou moins grand, est établi en fonction du choix du sélecteur 'Time' et des positions des potentiomètres. Pour créer la distorsion pseudo-logarithmique l'incrément est déterminé en fonction de la tension de sortie.

Composants, Montage, câblage et installation

Le PCB permet de recevoir trois type de connecteur d'alimentation : Format Yusynth, format Dotcomm et format MOTM. A vous de choisir.

Toutes les résistances peuvent être des 5%.

Aucune difficulté pour la réalisation de ce module. Se reporter aux plans de câblage et d'implantation.

Une fois le module fini et vérifié, téléchargez le logiciel 'ADSR.bas' dans la section téléchargement du site, puis installez le dans le module. Un résumé de ce qui est nécessaire est fait sur cette page.

Dès le chargement du logiciel, puis à chaque mise sous tension les deux leds doivent clignoter trois fois.

Réglage

  • Mettre les potentiomètres Attack, Decay et Release sur 0 (Maximum gauche)
  • Mettre le potentiomètre Sustain sur 10 (Maximum droite)
  • Inverseurs sur LIN, Gate_IN et MIDDLE.
  • Brancher un voltmètre sur la sortie "OUTPUT +"
  • Maintenez appuyé le bouton poussoir et ajuster la résistance ajustable jusqu'a afficher 10 volts sur le voltmètre.

Évolution

Version 2.0 : 27 Juillet 2013

Version 2.1 : 15 Septembre 2013

  • Evolution sans changement de PCB.
  • Optimisation du code pour la forme de la courbe LOG.
  • Activation de la sortie EOC.
  • Lors de l'initialisation, activation de test de la sortie Output

Version 2.2 : 18 Septembre 2014

  • EVOLUTION de logiciel sans changement du hardware.
  • Correction d'une erreur faisant boucler le module avec le Sustain à zéro.

Photos en vrac

Projet (1U et 2U)

Module terminé (Version 2U)

Vue arrière du module (PCB proto)


Date de création : 12/07/2013 @ 20:46
Dernière modification : 04/07/2015 @ 16:55
Catégorie : - Modules oZoe.fr-Archive
Page lue 17338 fois

oZoe.fr - ouverture le 10 décembre 2009 - (c) Jean Luc Lartigue 2009 - 2018