Do It Yourself
 ↑  
Boutique
Visites

 242313 visiteurs

 9 visiteurs en ligne

oneCV 2 MIDIout

Ce module permet de convertir des signaux d'horloge et de contrôle en en provenance d'un synthétiseur monophonique sur une sortie au standard MIDI.

L'unité fonctionne dans une plage de 8 octaves et permet de transporter l'horloge analogique du synthétiseur sur la liaison MIDI vers des boites à rythme ou tout autre équipement logiciel ou matériel au standard MIDI.

Documents 

Schéma
La nomenclature
Le PCB
L'implantation
La face avant 1U (positif)
La face avant 1U (négatif)
Dernière mise à jour documentaire : 7 Mai 2016

Description Face avant

CHANNEL et Led 1,2,4,8 : Le potentiomètre permet sélectionner le canal midi sur lequel les données vont être envoyées. La valeur, qui correspond à la somme des LEDs allumées, peut être choisie entre 0 et 15 correspondant aux canaux MIDI 1 à 16.

CV-in : Entrée analogique. Entrée de la tension de contrôle (CV) au format 1 Volt par octave représentative de la note jouée. En cas de changement de la valeur du CV-in sans changement du signal GATE (cas des notes tenues ou liées), un couple de NOTE_OFF/NOTE_ON est envoyé sur le MIDI_OUT avec l'ancienne et la nouvelle valeur disponibles sur le CV-in.

GATE : Entrée tout ou rien. Sur un front haut (passage de 0 volt à +nV) un signal NOTE_ON est envoyé sur le MIDI_OUT. Sur un front bas (passage de +nV à 0 Volt) un signal  NOTE_OFF est envoyé sur le MIDI_OUT.

CLKx24 Entrée tout ou rien. Sur chaque front haut une commande Real-Time de type CLOCK est envoyé sur le MIDI_OUT. Le module est buté en fréquence au delà d'un BMP de 350 soit 140 Hertz (350x24/60). Lors de la première détection d'un front haut sur cette entrée, une commande Real-Time de type START est envoyé sur le MIDI_OUT.

Led Note  : Un flash de 3 millisecondes illumine la LED à chaque envoi d'une commande NOTE_ON ou NOTE_OFF.

Led CLK : Un flash de 3 millisecondes illumine la LED à chaque envoi d'un message Real-Time.

MIDI_OUT : Connecteur DIN 5 broches de raccordement à l'entrée MIDI_IN d'une Boite à rythme (BAR) ou tout autre équipement logiciel ou matériel au standard MIDI.

Schéma

Le module est articulé autour d'un micro-contrôleur ATmega328p avec bootloader Arduino.

Les entrées 'GATE-IN' et CLOCKx24 sont réalisées par des transistors en commutation. L'inversion de logique est laissée au logiciel. Ces deux entrées de déclenchements sont connectées sur les pattes 'interruption' de l'ATMega. Toutes les entrées sont reliées au +5V (pull-up) par un résistance interne à l'ATMega et activée par logiciel.

Le potentiomètre et les leds sont directement connectés au micro-contrôleur.

L'entrée CV-In est constitué par un étage de deux ampli-opérationnel (AOP) montés en inverseurs pour un gain de 1,6 (8V/5V). Le troisième AOP permet de bloquer les valeurs inférieures à zéro volt. Lors du réglage, le cavalier sera ouvert pour régler au plus juste l'équilibre de cet AOP. La Zener limite les tensions hautes à l'entrée du micro-contrôleur. Le condensateur de 10µF réalise un ultime filtrage.

Ce module est conçu pour être alimenté en +/-15 volts. Sans changement ou adaptation de composant, il est possible d'alimenter ce module avec une alimentation symétrique de +/-12 volts.

Logiciel et performances

Le principe de fonctionnement du logiciel est simple : Capter les interruptions du micro-contrôleur et convertir la tension en numéro de note MIDI.

La conversion de la tension CV-In décidée entre 0->8000mV en note MIDI est réalisé de la manière suivante : L'intervalle entre deux notes est un demi-ton soit 1/12 volt (83.33mV). Il suffit donc de diviser la tension lu par 83.3mV puis de l'arrondir à l'entier supérieur. Exemple : Tension lu=3240mV, 3240/83.3=38.89 -> arrondi = 39 = Note MIDI 39 Mib#3 (Eb#3).

Pour les messages Real-Time du MIDI_CLOCK, sans le bridage mis en place, j'ai pu monter jusqu'à envoyer toutes les 1 ms, un message real-time, soit un BMP de 2500 pour 1000 Hz. Au delà les analyseurs MIDI en ma possession commencent a avoir un comportement erratique. Un bridage est mis pour limiter l'utilisation du bus MIDI à environ 350BPM. Lorsque le bridage est actif, les LEDs du numéro de canal sont affichées en inverses et clignotantes, et le message midi clock n'est plus envoyé.

Capture d'écran du logiciel freeware MIDI-OX disponible sur http://www.midiox.com/
Module sans bridage. TIMESTAMP toutes les ms. Module avec bridage : ici 349BPM.

Pour les messages MIDI_ON et MIDI_OFF, en fonctionnement sur le gate, la limite du module se situerai vers les 2.6 kHz, soit une note toutes les 390 micros secondes ! et en fonctionnement avec des notes tenues, La limite est au delà d'une note toutes les 1 milli-secondes. De quoi faire des vrais cadences de notes.

Pour les signaux GATE et CLOCK, le module fonctionnera mieux avec des signaux carrés. Cependant tout type de signaux sont acceptables sans dégradation du BPM tant qu'ils passent par zéro volt.

Tous les messages.

Composants, Montage, câblage et installation

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

Deux straps, dont un sous le micro-contrôleur, sont à installer en début de montage. Il n'y a pas de difficulté particulière si vous prenez soit de souder correctement et sans court-circuit ce module doit fonctionner immédiatement.

Vous devez disposer obligatoirement d'un ATmega328p avec bootloader arduino avant de le charger avec le logiciel 

Une fois le module fini et vérifié, téléchargez le logiciel 'oneCV2MIDIout' 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. Le logiciel du "oneCV2MIDIout" appelle une bibliothèque MIDI. Celle-ci doit être installée dans le répertoire "arduino/library" sur votre disque dur de votre système informatique.

Cette bibliothèque (library) obligatoire est la "Arduino MIDI Library" accessible ici sur le site Arduino ou bien sur le site GitHub. Une copie est également disponible sur oZoe.fr.

Dès le chargement du logiciel, puis à chaque mise sous tension les quatre leds du sélecteur de canal, doivent s'illuminer successivement '1,2,4,8' deux fois rapidement.

Réglage

  • Connecter un voltmètre entre la masse et le 'point de mesure' indiqué sur le schéma et matérialisé par une broche (partie basse des photos ci-après).
Réglage du ZERO Réglage GAIN et UTILISATION

Réglage du Zéro :

  • Enlever le cavalier ou jumper,
  • Mettre Zéro volt sur l'entrée CV-IN, ou connectez l'entrée CV-IN à la masse,
  • Réglez l'ajustable de 50K "ZERO" jusqu'à obtenir 0.000 volt.
  • Remettre le cavalier ou 'jumper' en place.

Réglage du Gain :

  • Appliquer 8.000 Volts sur l'entrée CV-IN
  • Réglez l'ajustable de 20K "GAIN" jusqu'à obtenir 5.000 volt.

Déconnectez le voltmètre, veuillez à ce que le cavalier est en place : le module est près à fonctionner.

Astuces, Personnalisations, adaptation logiciel

Je rapporte ici des possibilités de personnalisation
  • Le logiciel est totalement ouvert. Vous pouvez y modifier / adapter ce que vous souhaitez.
  • Pour supprimer le bridage sur le CLKx24 : vous devez supprimer ou mettre en commentaire (//)  la ligne "if (millis()-Timer300BMP<=6){Erreur=1;}"
  • Si vous souhaitez augmenter la tessiture du module à 10 octaves par exemple, vous devrez adapter l'électronique pour obtenir le gain souhaité (10volts/5volts=> gain=2) en remplaçant la résistance de 150K1% par une 120K1% et en remplaçant à deux endroits dans le logiciel (dans 'Note=Arrondi(...8000)/....' ) la valeur 8000 par la valeur 10000. 
  • ...

Évolution

Version 1.0 :  Mai 2016   Version Initiale

Photos en vrac

Projet Réalisation


Date de création : 07/05/2016 @ 21:05
Catégorie : - Modules oZoe.fr
Page lue 2454 fois

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