Voici les anciens modules. Je laisse ici pour information, mais je déconseille leur construction, les nouveaux modules étant nettement plus puissants et plus faciles à construire.
MIDI2CV
Ce module est destiné à connecter un appareil MIDI (Synthétiseur, clavier maître, carte son ...) sur un synthétiseur analogique qui ne comporte pas d'entrée MIDI.
Les synthétiseurs analogiques utilisent des tensions électriques pour commander leurs différents paramètres. Les oscillateurs par exemple, génèrent des notes dont la hauteur est fonction d'un tension présente à leur entrée. Ce module MIDI CV/Gate, permet de transformer les données numériques MIDI en tensions électriques utilisables par un synthétiseur analogique. Il peut fonctionner avec tous les modèles qui acceptent une tension de 1 Volt/octave tels que les Dotcom (Synthesizers.com), les MOSLAB, ou les Yusynth pour lesquels il a été conçu, mais également les EMS ou encore les Moog, à condition pour ces deux derniers de modifier le signal de Gate.
Ce module fournit 4 sorties analogiques (CV) ainsi que 5 sorties de Gate/Trigger
Les Triggers et Gate peuvent servir à déclencher les générateurs d'enveloppes en fournissant une tension de +5V. Lorsque l'on enfonce une touche du clavier, le Trigger fournit une brève impulsion alors que le Gate maintient le +5V jusqu'au relâchement de la note.
Ce module possède 3 modes, un mode monophonique, un mode polyphonique sur 1 canal MIDI et un mode polyphonique sur 4 canaux MIDI.
Nouveau : version 2.3 (09/2010) (Cette version ne fonctionne qu'avec le firmware 2.3)
Cette nouvelle version apporte les améliorations suivantes :
- Le module peut désormais être alimenté avec une simple alimentation symétrique. Le +5 V n'est plus obligatoire.
- La sortie Trig/Gate délivre maintenant un signal de synchro MIDI 24. Indispensable pour synchroniser un séquenceur MIDI.
- Le module ne plante plus lorsque l'on change de mode alors que l'on est en train de jouer.
MODE POLYPHONIQUE
1 canal MIDI
Dans ce mode il est possible de jouer jusqu'à 4 notes simultanément. La première est envoyée sur la sortie CV1, la deuxième sur le sortie CV2 etc ...Chaque sortie CV possède sa propre sortie Gate. La 5ème sortie Trig/Gate fournit un signal de type Trigger à chaque fois qu'un note est jouée. Enfin, la valeur de la molette de Pitch Wheel est ajoutée à chacune des 4 voies.
4 canaux MIDI
Chaque sortie est pilotée indépendamment par son propre canal MIDI. Les numéros de canaux doivent se suivre (par ex 3,4,5,6). Ce mode est très utile lorsque le module est piloté par un séquenceur
MODE MONOPHONIQUE
Dans ce mode, seule la dernière note jouée est prise en compte. Sa valeur est envoyé simultanément sur les deux sorties CV1 et CV2, additionnée de la valeur de la molette de Pitch Wheel. La sortie CV3 fournit la tension de Vélocité et la sortie CV4 la tension de Modulation. Le signal de Gate est présent sur les 3 sorties Trig/Gate, Gate1/Gate et Gate2/Gate. Les deux dernières sorties Gate3/Trig et Gate4/Trig délivrent des signaux Trigger.
La tension des sorties CV est de précisément 1 Volt/octave. Le module peut gérer 128 notes, soit plus que les grands claviers de 88 touches. L’accord est parfaitement rigoureux sur toute l’étendue des notes, l’erreur ne pouvant jamais dépasser 1/32ème de demi ton.
L’accord est réalisé sur la gamme tempérée, mais en modifiant le firmware, il est possible d’utiliser d’autres gammes comme celle de Pythagore ou Zarlino, ou des gammes orientales telles que la Rast ou des gammes chinoises anciennes. Il est également possible de jouer des gammes micro tonales, jusqu’à un maximum de 202 notes par octave.
Il est aussi possible de panacher les gammes suivant les octaves et même de définir une fréquence particulière pour chaque note.
Le Schéma
Le schéma reprend simplement les datasheets des constructeurs. Comme il est de tradition, les données MIDI transitent par un optocoupleur et la conversion numérique/analogique est réalisée par des convertisseurs 12 bits MCP4822 de Microchip.
Version 2.3. Cliquez sur l'image pour ouvrir le fichier pdf.
Fonctionnement
Les signaux MIDI parviennent sur la broche de réception Rx (RB2) de l’UART du PIC 16F88 ou 16F87. Ces deux micro contrôleurs sont identiques, le 88 contenant en plus un convertisseur Analogique/Numérique qui n'est pas utilisé ici. Ce PIC communique avec les convertisseurs MCP4822 par un bus SPI, qui est la simplicité même puisqu’il ne comprend que 2 fils, un pour l’horloge (SCK = RA4) et un pour les données (SDI = RA2). Il faut toutefois un fil supplémentaire pour la sélection des circuits. La broche RA3 est utilisée pour sélectionner le DAC 1 et la broche RA1 pour le DAC 2. Ces convertisseurs 12 bits, contiennent une référence de tension, ainsi qu’un amplificateur de sortie ce qui leur permet d’attaquer directement les amplis op. Un petit condensateur de 0.1 µF placé sur les sorties Vout filtre les éventuels résidus de l’horloge SPI.
La tension de sortie maximale des convertisseurs est de 2,048 ou 4,096 V suivant la gain de l’ampli interne (Ce gain est réglé par logiciel). Il faut donc multiplier cette valeur par 2,604 à l'aide des amplis op CA3140 pour obtenir les 10 V nécessaire aux 10 octaves dont nous avons besoin. L’accord s’effectue par un trimmer vertical 25 tours qui permet un accord très précis, ainsi le La à 1760 Hz peut être facilement accordé au Hz près. Chaque circuit CA3140 possède son propre réglage d'offset. Ceci est très important surtout mode polyphonique, car les accords seront parfaitement justes quel que soit l'ordre dans lequel les notes ont été jouées.
Les signaux de Gate sont pris directement sur les broches du PIC avec des résistances de protection de 470 ohms. Une diode en série permet de réunir si besoin plusieurs de ces signaux en un seul directement à l'aide d'un câble en Y ou d'un module Multiple. Les LED sont alimentées par des transistors NPN de type BC547C ou équivalents.
Enfin, le connecteur 6 broches de l’alimentation est compatible avec les standards Yusynth et Dotcom.
Le PCB
Version Polyphonique (nouvelle version 2.3)
Il existe deux versions du PCB de ce module, l'une pour les modulaires type Dotcom/Yusynth avec un connecteur d'alimentation 6 broches et une au format Doepfer avec un connecteur double 2 x 8 ou 2x5. Ce module peut en effet être indifféremment alimenté en +/- 15 ou +/- 12 V
Cliquez ici pour télécharger la version Dotcom/Yusynth
Cliquez ici pour télécharger la version Doepfer
Le PCB peut être facilement réalisé au fer à
repasser (PnP Blue). Le texte doit être vu à l’endroit quand
on regarde le côté cuivre, par conséquent les dessins fournis
peuvent être directement imprimés sur le PnP Blue.
Lors de l’implantation, il ne faudra pas oublier les straps et bien
veiller à l'orientation des CI. Les CA3140 sont
à l'envers des autres circuits. Les valeurs de composants ne
sont pas critiques. Les résistances à 5 % type SFR conviennent.
Notez seulement que les valeurs des couples de résistances qui
fixent le gain des AOP (130 Kohms et 200 Kohms) ne doivent pas trop
s'écarter des valeurs indiquées sinon l'accordage risque de ne pas
être possible. Dans ce cas prenez plutôt une valeur plus faible pour
la 130 K et plus forte pour la 200 K.
Les réglages
Commencez par annuler les offsets des AOP à l'aide des ajustables B. Pour cela connectez un multimètre sur une sortie CV et tourner l'ajustable correspondant de manière à vous rapprocher le plus possible de 0 mV. On doit facilement arriver à mieux de 0,1 mV.
Ensuite il faut accorder les 4 sorties. Connectez d'abord les sorties CV sur les entrées d'un VCO allumé avant d'effectuer ces réglages. Vous devez obtenir exactement 1 Volt par Octave.
Implantation des composants
Suivez cette implantation si vous possédez une alimentation + 5 V
Suivez cette implantation si vous ne possédez pas d'alimentation + 5 V.
Suivez cette implantation si vous utilisez une alim type Doepfer
La capacité de 0,1 µF de découplage du PIC doit être soudée sur la face cuivrée du PCB. Pour cela, il sera peut-être plus facile d'utiliser un composant CMS.
Note importante : Ce module a été conçu pour fonctionner avec une tension symétrique de +/- 15 V comme sur les Dotcom ou Yusynth. Toutefois, il fonctionne parfaitement bien avec une alim de +/- 12V ou même +/- 9V (dans le cas la plage de sortie est réduite)
Face avant
Le Firmware
Tel qu'il a été conçu, le module MIDI CV/Gate offre une très grand nombre de possibilités. Il suffit de modifier le firmware pour faire évoluer ce module, ou ajouter de nouvelles fonctions.
Le but de ce programme est de récupérer les messages MIDI, puis de les analyser afin de ne conserver que les données utiles. Ces données sont ensuite envoyées aux convertisseurs numériques/analogiques qui les transforment en tensions électriques utilisables par les synthétiseurs.
Le protocole MIDI
Pour comprendre le fonctionnement de ce programme, il est nécessaire d'avoir quelques notions sur le protocole MIDI. Le Web regorge d’informations à ce sujet, aussi je voudrais juste ici donner le minimum nécessaire. Pour de plus amples informations sur le MIDI, vous pouvez consulter cet excellent site (en anglais).
Parmi tous les messages MIDI, les seuls qui nous intéressent, c'est à
dire ceux de Notes, de Vélocité, de Pitch Wheel et de Modulation
sont composés d’une salve de 3 octets. Le premier d'entre eux
détermine le type de message et les deux suivants contiennent les
données. Ainsi, lorsque l’on appuie sur une touche du clavier, un
message Note On est envoyé. Sous forme binaire, ce message s’écrit :
1001 cccc, 0nnn nnnn, 0vvv vvvv.
Ce sont les quatre premiers bits (1001 ou 9 en décimal) qui indiquent
qu’il s’agit d’un message Note On. Le demi-octet suivant cccc
fournit le numéro du canal MIDI. Ce nombre étant codé sur 4 bits, il
y a donc 16 possibilités, qui correspondent aux 16 canaux du
protocole. Les deux octets suivants sont des octets de données et
ils commencent toujours par un 0. Il n’y a donc que 7 bits utilisés
ce qui donne 128 valeurs possibles. Le deuxième octet 0nnn nnnn
contient le numéro de la note qui a été jouée, c'est à dire si c'est
un Do, un Ré un Mi ...et le dernier octet 0vvv vvvv indique
avec quelle vélocité la note a été jouée.
Lorsque la touche du clavier est ensuite relevée, c’est cette fois un
message Note Off qui est envoyé. Celui-ci possède la même structure
et s’écrit :
1000 cccc 0nnn nnnn 0vvv vvvv.
On voit que seul le premier demi-octet change, puisqu’il s’agit cette
fois de 1000 au lieu de 1001 (respectivement 8 et 9 en décimal). Ce
message Note Off de 4 bits est suivi comme précédemment du numéro de
canal MIDI, du numéro de la note et de la vélocité. Si par exemple
on joue un La sur le canal 1, la séquence d'octets (en hexadécimal
cette fois !) envoyés sera la suivante:
(Note On) 90 2D 64, (Note Off) 80 2D 00. Ici, la valeur
hexa 2D (45 en décimal) signifie que c’est la 45ème note qui a été
jouée.
Lorsque l’on tourne la molette de modulation, c’est le même type de
message qui est envoyé. Cette fois ci la salve d’octet commence par 1011
cccc ce qui indique qu’il s’agit d’un message de type Control
Change, suivi du numéro de canal MIDI. L’octet suivant désigne le
type de contrôle utilisé. Ce peut être le panoramique, le volume
etc... Dans notre cas, pour la modulation ce nombre est égal à 1. Le
dernier octet enfin contient la valeur envoyée par ce contrôle,
valeur codée sur 7 bits comme toujours.
La molette de Pitch suit les même règles, le premier demi octet
s'écrivant cette fois 1110. Le codage s'effectue sur 7 ou 14 bits.
Dans ce dernier cas le deuxième octet contient les 7 bits de poids
faible et le troisième les 7 bits de poids fort. Le firmware
n’utilise que le troisième octet. Un mouvement de la molette sur le
canal 6 donnera un message tel que E5 00 45 par exemple.
Après avoir vu ces quelques notions de base sur le MIDI, il faut savoir
que malheureusement, dans la vraie vie, cela ne se passe pas du tout
comme ça. En premier lieu, de très nombreux matériels MIDI
n’envoient pas de messages de fin de note. Ils envoient à la place
un message Note On dans lequel la vélocité est égale à 0. Pour
reprendre notre exemple du La cité plus haut, les octets qui seront
alors envoyés seront 90 2D 64, 90 2D 00. Le firmware doit
donc être capable de traiter les deux types de messages.
Ensuite et c’est plus vicieux, le premier octet qui détermine le type de
message n’est souvent envoyé qu’une seule fois. En effet, la
transmission MIDI à 31 250 bits/s est relativement lente et si l’on
envoie des données pour plusieurs appareils sur le même câble, il y
a un risque de saturation. Pour éviter cela et économiser la bande
passante, le premier octet n’est envoyé qu’une fois et c’est au
récepteur de remplacer lui-même l’octet manquant, c’est ce que l’on
appelle le Running Status. Si l’on joue les notes La, Si, Do, avec
une vélocité de 40h sur le canal 7 la suite d’octets en Running
Status sera :
96 2D 40, 2D 00, 2F 40, 2F 00, 30 40, 30 00. On voit
qu'il n'y a que 13 octets envoyés au lieu de 16. L'octet définissant
le type de message et le numéro ce canal MIDI (96h) n'a été envoyé
qu'une seule fois. Le programme doit donc être capable de déterminer
tout seul si l'émetteur utilise le Running Status ou non.
Le logiciel
Ce programme a été écrit en C pour le compilateur HI TECH PICC STD. Il faut savoir que le langage C des PIC est tout sauf portable. Si vous désirez utiliser d’autres compilateurs c’est possible, mais il faudra réécrire toutes les instructions qui se référent aux éléments physiques du PIC, y compris la ligne de configuration des fusibles.
Ce programme est une ébauche, écrite par un débutant. S'il est mis à la
disposition de tous c’est justement dans le but d'être amélioré.
Attention toutefois : je sais qu'il n’y a pas besoin d’avoir de
grandes connaissances en langage C pour rendre un programme
totalement illisible, aussi il est très important qu'il reste
accessible aux débutants.
A partir de là, il est possible d'ajouter de nouvelles fonctions. Je vais
m’y atteler, mais ce serait bien qu’il y ait le plus de monde
possible qui s’y mette. Par exemple, une fonction intéressante
serait de pouvoir modifier le programme par Sysex. Cela permettrait
à tous ceux qui n’ont pas de programmateur PIC de mettre à jour le
programme au fur et à mesure des nouveautés.
Il n’y a pas de limites ! Cela dit, pour des fonctions très différentes
de la simple gestion MIDI CV (je pense à un séquenceur en
particulier), il vaut mieux créer un nouveau module.
De très nombreux utilisateurs m'ont demandé comment faire pour utiliser une autre gamme avec ce module . Voilà la méthode :
Le DAC a une résolution de 12 bits, soit 4096 valeurs, mais les valeurs MIDI ne sont codées que sur 7 bits (0 – 128). C’est pour cela que l’on opère un shift (en fait une multiplication par 32) par la ligne Tx_DATA = Tx_DATA << 5;
Pour utiliser une gamme différente, il faut d’abord calculer la
tension électrique voulue pour chacune des notes. Cela permet alors
de calculer la valeur correspondante à envoyer au DAC sachant que
l’octave (12 x 32 = 384) est égale à 1000 mV (il y a en sortie du
DAC une amplification d’environ 2.6) .
Cela fait, il faut alors créer un tableau, qui à chaque valeur de
note MIDI va faire correspondre la valeur à envoyer au DAC. Ces
valeurs doivent être écrites en hexadécimal. En effet le processeur
travaillant en 8 bits il faut découper ces valeurs en 2 tableaux, un
de 8 bits et un de 4 bits.
Dans le programme on écrira donc :
const unsigned char MyScaleLo[128] = {lsb1, lsb2, …..} ;
const unsigned char MyScaleHi[128] = {msb1, msb2 …..} ;
Exemple :
On désire une tension de 1467 mV en sortie du module pour la valeur
1 en MIDI. Il faut donc envoyer au DAC la valeur :
1467 x 384 / 1000 soit 563 en décimal ou encore 0x233 en hexa. Le
tableau s’écrit alors :
const unsigned char MyScaleLo[128] = {0x33, …..} ;
const unsigned char MyScaleHi[128] = {0x02, …..} ;
Ensuite, on remplace la ligne :
Tx_DATA = Tx_DATA << 5;
Par :
Lo_VAL = MyScaleLo[Tx_DATA];
Hi_VAL= MyScaleHi[Tx_DATA];
Tx_DATA = Lo_VAL +(Hi_VAL<<8);
Par cette méthode il est possible de jouer n'importe quelle gamme
!
La nouvelle version 2.3 est disponible depuis septembre 2010. Elle ne peut être utilisée qu'avec le PCB 2.3. Elle permet d'éviter les plantages du module qui pouvaient arriver lorsque le Mode était changé pendant que des notes étaient jouées. La sortie Trig/Gate maintenant appelée MIDI Sync 24 est une sorti synchro de synchronisation qui répond aux signaux d'horloges MIDI (codes Clock F8 Start FA et Stop FC)
Cliquez
ici pour télécharger le fichier exécutable hex ACS_MIDI v2.31.hex
Cliquez ici pour télécharger le code source en C ACS_MIDI v2.31.c
Liste des composants
Composants : QuantitéActifs :
6N137 : 1
PIC 16F88 ou 16F87 (boîtier DIP 18 pin) : 1
MCP 4822 Microchip : 2
CA3140 : 4
1N4148 : 6
BC547C : 4
78L05 : 1 (seulement dans la version sans alimentation 5 V fournie)
LED Jaune : 4
LED Verte : 1
Resistances
10 : 3
220 : 5
470 : 6
1k : 5
4,7k : 8
10k : 2
33k : 4
130k : 4
200k :4
Ajustables 10 Kohms 25 tours : 4
Ajustables 22 Kohms 25 tours : 4
Condensateurs
0,1 µF : 12
22µF : 4
Divers
Self de choc type VK 200 : 1 (voir implatation)
Inverseur 3 positions on-off-on 1
Jacks femelles châssis 6.35 mm : 9
Connecteur DIN femelle 5 Broches châssis 180° : 1
MIDI2CV Lite
Pour tous ceux qui n'ont pas besoin de toutes les possibilités du module MIDI Polyphonique, il existe une version simplifiée, c'est la version Lite. Elle peut être intéressante pour midifier un synthétiseur par exemple.
Elle est monophonique et elle ne comprend plus que 2 sorties CV :
- Une sortie KBD (notes) plus Pitch Wheel +/- 1 ton. L'étendue est cette fois-ci limitée à 50 notes.
- Une sortie Modulation 0 +5V
Les 2 sorties indépendantes Trigger et Gate ont été conservées.
La sélection du canal MIDI étant aussi automatique, le module ne possède aucun réglage.
Le Schéma
Il s'agit comme le montre le schéma, d'une version très simplifiée du module. Les MCP4822 possèdent des amplificateurs intégrés ce qui permet de supprimer les amplis op. L'alimentation peut alors s'effectuer à l'aide d'une seule tension positive, soit directement en +5 V, soit avec une tension comprise entre 7 et 25 V si l'on place en plus un régulateur de type 78L05 (prévu sur le PCB).
Le PCB
Implantation des composants
Version LITE
6N137 : 1
PIC 16F88 ou 16F87 (boîtier DIP 18 pin) : 1
MCP 4822 Microchip : 1
1N4148 : 1
LED Jaune : 1
78L05 : 1 (si alimentation > 5 V)
Résistances :
10 ohms : 1 ou self VK200 (si alimentation +5V)
220 ohms : 3
470 ohms : 3
1K : 1
10K : 1
Condensateurs :
0,1 µF LCC : 4
22 µF : 1
Firmware
Télécharger le fichier exécutable acx_midi Lite v1.hex
Télécharger
le code source en C acx_midi Lite v1.c
P Sequencer
Ce module ne ressemble pas aux séquenceurs analogiques tels que le
célèbre Moog 960, ou aux autres systèmes équivalents créés depuis.
C'est un appareil différent, avec des possibilités différentes. Il a
surtout l'avantage d'être très économique et surtout facile à
construire.
Avec ce séquenceur
il n'est pas possible
Le séquenceur ACS
n'offre pas ces possibilités, mais
Ces différences
font qu
Les caractéristiques :
-
2
Pistes pouvant contenir jusqu’à 48 notes (A) ou 44 notes (B). Les
séquences peuvent s’étaler sur plus de 5 octaves.
-
Possibilité de créer soit des séquences mélodiques (notes justes),
soit des séquences à intervalles quelconques.
-
Possibilité de rendre « mélodique » une séquence qui ne l’était pas
grâce à un accordeur automatique.
-
Possibilité de transposer la séquence A, soit à partir de la
séquence B, soit manuellement par l’entrée de contrôle.
-
Possibilité de moduler l’amplitude de la séquence A (c'est à dire
l’étendue des intervalles) à l’aide d’un « VCA » soit par la
séquence B, soit manuellement par l’entrée de
contrôle.
-
Possibilité de jouer les notes de la séquence A dans l’ordre, ou
bien de manière aléatoire. Très utile pour créer des accompagnements
automatiques. Cette séquence pouvant ensuite être transposée, soit
par la séquence B soit manuellement
-
Possibilité de synchroniser le séquenceur soit sur une horloge
externe (Gate de clavier ou LFO), soit sur le LFO interne.
-
Possibilité de décaler les séquences, de faire jouer la séquences B
2, 4, ou 8 fois moins vite que la séquence A.
-
Possibilité d’utiliser le séquenceur comme Sample & Hold évolué.
- Ce séquenceur peut également être utilisé comme accordeur automatique derrière un clavier CV, un MIDI CV/Gate ou un autre séquenceur qui jouent faux, ou bien comme transposeur de tonalité.
Comment ça marche
Le principe de ce séquenceur est le suivant :
Sur chaque front d’une horloge qui peut être externe, ou interne (en fonction de la position du sélecteur d'horloge Int/Ext), le signal analogique présent sur l’entrée Input est mesuré, puis mis en mémoire. Cette méthode d’acquisition élimine les potentiomètres de réglage de note que l’on trouve habituellement. Un inverseur à 3 positions permet de choisir d’enregistrer sur la piste 1 (Rec1), la piste (Rec2), ou bien de rejouer les deux séquences (Play). Chaque piste dispose ensuite de sa propre sortie CV et de sa propre sortie Trigger.
Un deuxième inverseur permet de choisir les niveaux d’entrée. Ceux-ci peuvent être compris soit entre 0 et 5 Volts si on utilise la sortie CV d’un clavier, soit entre – 5 et +5 Volts si on enregistre la sortie d’un oscillateur, ou d’un générateur de bruit par exemple.
N’importe quelle tension comprise entre 0 et 5 V ou – 5 V et + 5 V peut donc être enregistrée. Il n’y a pas de risque en cas d’erreur, car les entrées sont protégées. Il est donc possible d’enregistrer des tensions correspondant à des notes qui seront rejouées ensuite, ou des tensions de commande qui pourront faire varier les paramètres d’un filtre, d’un VCA, ou de n’importe quel module.
Lorsque les tensions enregistrées ne correspondent pas à des notes justes, un interrupteur Quant (Quantize) permet de les recaler automatiquement à la note la plus proche.
Le premier potentiomètre FREQUENCY permet de régler la vitesse de l’horloge interne, le deuxième baptisé MODE permet de choisir parmi les 8 modes de fonctionnement du séquenceur.
Ces modes sont différents selon que l'on
enregistre la piste 1 (Rec1), la piste 2 (Rec2), ou que l'on rejoue
les deux pistes à la fois (Play).
Rec 1
Mode 1 : La piste 1 est enregistrée et rejouée
simultanément sur la sortie 1. La piste 2 n'est pas jouée.
Mode 2 : La piste 1 est enregistrée et rejouée
simultanément sur la sortie 1. La piste 2 est jouée.
Mode 3 : Les deux pistes 1 et 2 sont enregistrées
et rejouées simultanément sur leurs sorties respectives.
Mode 4 à 8 : Inutilisés
Rec 2
Mode 1 : La piste 2 est enregistrée, et rejouée
simultanément sur la sortie 2. La piste 1 est jouée.
Mode 2 : La piste 2 est enregistrée, et rejouée
simultanément sur la sortie 2. La sortie 1 joue la somme des deux
pistes.
Mode 3 : La piste 2 est enregistrée, et rejouée
simultanément sur la sortie 2. La sortie 1 joue le produit des
pistes 1 et 2.
Mode 4 : La piste 2 est enregistrée, et rejouée
simultanément sur la sortie 2. La sortie 1 joue les notes de la
piste 1 dans un ordre aléatoire
Mode 5 : La piste 2 est enregistrée, et rejouée
simultanément sur la sortie 2. La sortie 1 joue les notes de la
piste 1 dans un ordre aléatoire, additionnées aux notes de la piste
2.
Mode 6, 7, 8 : Inutilisés
Play
Mode 1 : Les deux pistes sont jouées sur leurs
sorties respectives
Mode 2 : La sortie 2 joue les notes de la piste 2.
La sortie 1 la somme des notes des 2 pistes.
Mode 3 : La sortie 2 joue les notes de la piste 2.
La sortie 1 le produit des notes des 2 pistes.
Mode 4 : La sortie 2 joue les notes de la piste 2.
La sortie 1 les notes de la piste 1 dans un ordre aléatoire.
Mode 5 : La sortie 2 joue les notes de la piste 2.
La sortie 1 les notes de la piste 1 dans un ordre aléatoire
additionnées aux notes de la piste 2
Mode 6 : Les deux pistes sont jouées sur leurs
sorties respectives. La piste 2 étant jouée 2 fois plus lentement
que la piste 1.
Mode 7 : Les deux pistes sont jouées sur leurs
sorties respectives. La piste 2 étant jouée 4 fois plus lentement
que la piste 1.
Mode 8 : Les deux pistes sont jouées sur leurs
sorties respectives. La piste 2 étant jouée 8 fois plus lentement
que la piste 1.
- L'addition des pistes correspond à une
addition des tensions électriques c'est à dire à une transposition.
Le produit correspond à une multiplication des tensions. Cela permet
d'obtenir des effets intéressants. Si la valeur de la piste 2 est de
0 (Do le plus grave), la piste 1 ne produira que des Do graves
également. Ensuite, si la valeur de la piste 2 augmente, les notes
de la piste 1 vont se détacher petit à petit, et la séquence va se
construire peu à peu. Si l'inter de quantization est sur ON, ce
seront toujours des notes justes qui seront créées.
ATTENTION : dans l'attente d'une version définitive du Firmware, ces modes sont susceptibles d'être modifiés. Dans les modes non utilisés, le séquenceur ne fonctionne pas. C'est normal.
Il existe également une autre version du firmware, modifié par Yves Usson. Dans cette version, le fonctionnement du module est le même, mais les modes de lecture sont un petit peu différents. Les sommes et les multiplications de pistes ont été remplacées par des lectures inverses et des lectures en canon. Voilà ce que dit Yves :
"J'ai redéfini les modes 2,3,4 et 5 pour qu'ils conviennent mieux à mon utilisation MODE 2 remplacé par lecture inversée de la piste 1, avec lecture de la piste 2 normale MODE 3 remplacé par lecture de la piste 1 en sens normal puis inversé (aller-retour), avec lecture de la piste 2 normale MODE 4 remplacé par lecture de la piste 1 en canon sur les voix 1 et 2 (décalage de quatre temps) (cela donne des choses magnifiques !) MODE 5 remplacé par l'ancien MODE 4 : le mode aléatoire est un MUST HAVE !"
Mode d'emploi
Enregistrement d’une séquence.
Connectez la sortie CV d’un clavier sur l’entrée Input du séquenceur et la sortie Gate du clavier sur l’entrée Gate. Placez le sélecteur d’horloge sur Externe et l’inverseur sur la position RecA. Connectez la sortie A sur un VCO et la sortie Trigger A sur l’entrée Gate d’un générateur d’enveloppe.
Enregistrez la séquence. La deuxième piste s’enregistre de la même manière en plaçant l’inverseur sur Rec2. Basculez ensuite sur la position Play.
Les séquences pourront alors être rejouées soit manuellement à l’aide du clavier, soit automatiquement en utilisant le LFO interne, ou un LFO externe connecté à l’entrée Gate.
Utilisation en Sample & Hold.
Connectez une tension quelconque sur l’entrée Input, un générateur de bruit par exemple. Sur l’entrée Gate, connectez le Gate du clavier, ou le LFO interne, ou un LFO externe. Placez l’inverseur en position Rec1, ou Rec2 pour obtenir la fonction de S & H sur les sorties correspondantes. Avec l’inter Quantize sur la position Off, la sortie jouera les valeurs échantillonnées, en position Quantize, ces valeurs seront recalées sur les notes justes les plus proches.
Note :
Les valeurs Rec_Notes1 et Rec_Notes2 ne sont pas remises à 0 lors
de l'initialisation du programme. Cela fait qu'à l'allumage du
module, ces variables contiennent des valeurs aléatoires et le
module joue n'importe quoi. Il faut donc enregistrer les deux pistes
pour donner des bonnes valeurs à ces variables. Ceci est voulu, car
cela permet lors d'un Reset, de conserver en mémoire les dernières
séquences jouées.
Exemples:
Voici un petit exemple de ce que permet le potentiomètre de Modes. Au début, l'on entend une séquence très simple telle qu'elle a été enregistrée sur la piste 1. Ensuite le bouton Mode est tourné progressivement de la position 1 à la 8. Pendant cette démo, aucun autre réglage n'est modifié, ni sur le séquenceur, ni sur le synthétiseur. Les changements que l'on entend se font uniquement grâce à ce bouton.
Il ne s'agit pas d'une œuvre d'art, mais juste d'une petite démo qui montre les possibilités des changements de mode. Cela permet de voir que l'on peut véritablement "jouer" du séquenceur.
Cette démo a été réalisée sur un Dotcom/Yusynth/ACS. Il n'y a qu'un seul oscillateur VCO utilisé et un petit peu de réverb pour faire joli.
Dans cette deuxième petite démo, le bouton de Mode n'est utilisé que sur les position 4, 5 et 6. Cette séquence sonne très "celtic" pourtant les notes de base sont tirées de la 9 ème de Beethoven !
Le Schéma
Le schéma est d'une grande simplicité puisque trois circuits intégrés et un transistor suffisent à faire fonctionner le module.
Les signaux à enregistrer pénètrent sur l'entrée Input et passent au travers de 2 amplis op dont le rôle est de limiter l'amplitude de tension entre 0 et 5 volts, ceci afin de protéger le micro contrôleur. Un inverseur permet de choisir la plage de tension. Si l'on utilise la sortie CV d'un clavier, on choisira la position 0-5 V. Dans ce cas la Zener de 9.1 V limitera la tension de sortie à un peu moins de 5 V et la diode 1N4148 bloquera les tensions négatives. La résistance de 1Mohms sert à décharger le condensateur interne du convertisseur Analogique/Numérique contenu dans le PIC 16F88. Si en revanche le signal est prélevé à la sortie d'un VCO par exemple dont la tension oscille entre -5 V et +5 V l'inverseur devra être placé en position -5 +5V. La tension qui sera alors appliquée au µC sera toujours comprise entre 0 et 5 V grâce aux deux Zener de 9.1 V et au pont diviseur créé par les deux résistances de 100 Kohms.
Ce convertisseur mesure également les tensions issues des potentiomètres FREQUENCY et MODE.
Le signal de Gate ensuite doit lui aussi être compris entre 0 et 5 V. Ici, une Zener de 4.7 V et un transistor NPN suffisent à le limiter
Les valeurs enregistrées dans le PIC sont ensuite transférées au convertisseur Numérique /Analogique MCP4822 par un bus SDI qui ne comprend que 3 fils, l'horloge, les données et la sélection du chip. Ce dernier circuit comprend une référence en tension et un ampli op en sortie, ce qui nous permet d'attaquer directement les 2 derniers amplis du TL 074 qui sont utilisés ici pour amplifier le signal. Le gain est réglable avec une grande précision grâce aux ajustables de 47 Kohms.
Les sorties Trigger de chacune des pistes sont prises directement sur les broches du PIC au travers d'une résistance de protection de 470 ohms.
Les interrupteurs enfin, placent les broches voulues à la masse. Le port B du PIC possède des résistances de rappel au +5 V que l'on peut mettre en place par logiciel. Le port A en revanche n'en possède pas d'où la présence de la résistance de 10 K sur l'inter INT/EXT.
Enfin, les broches RB6 et RB7 ne sont pas utilisées dans cette application. Elles sont réservées à la connexion du débugger ICD (In Circuit Debugging) pour la mise au point.
Enfin, le connecteur 6 broches de l’alimentation (+15 V, +5 V, GND, -15 V) est compatible avec les standards Yusynth et Dotcom.
La diode Zener de 4,7 V indiquée sur le schéma peut être remplacée par un diode 1N4148 comme indiqué sur le schéma d'implantation ou même être purement et simplement supprimée.
La face avant
Version standard Version Yves Usson
Cliquez sur l'image pour télécharger le fichier au format PDF.
Le montage du module ne présente aucune difficulté. Le PCB est un simple face, facilement réalisable au fer à repasser avec du PnP Blue.
Cliquez sur l'image pour télécharger le fichier au format PDF.
Cliquez ICI pour télécharger le fichier au format Abacom Sprint Layout.
Implantation des composants
Cliquez sur l'image pour télécharger le fichier au format PDF.
La mise en place des composants ne doit pas poser de problèmes. Il faudra simplement faire attention au sens du transistor et noter que sur l'inverseur 0-5V -5 +5V les fils sont croisés. Pour des raisons esthétiques, l'unique strap pourra être remplacé par une résistance de faible valeur (10 ohms par exemple). Enfin, tous les condensateurs non polarisés sont des LCC de 0.1 µF.
Liste des composants.
Actifs
PIC 16F88 =1
MCP 4822= 1
TL 074 = 1
BC547C = 1
1N4148 = 2
Zener 9.1V = 3
Zener 4.7V = 1 (facultatif)
Condensateurs
Chimique 22 µF = 2
Chimique 10 µF = 1
LCC 0.1 µF = 8
Résistances
10 ohms = 2
470 ohms = 6
10 K = 5
100 K = 4
130 K = 2
330 K = 1
1 Mohm = 2
Resistances ajustables 20 tours verticales 47K = 2
Divers
Potentiomètres linéaires 10 K = 2
Interrupteur = 1
Inverseurs simples 2 pos = 1
Inverseur simple 3 pos = 1
inverseur simple 3 pos dont une instable = 1
Jacks femelles chassis 6.35 = 6
Self de choc ferrite VK 200 = 1
Pour simplifier l'approvisionnement, sachez que :
- La self de choc peut être remplacée par une résistance de 10 ohms.
- La valeur de 10 Kohms des potentiomètres est celle recommandée par le constructeur, mais pratiquement n'importe quelle valeur peut convenir. Le prototype fonctionne sans problème avec des potentiomètres de 100 Kohms.
- Le transistor utilisé est un BC547C, parce que c'est ce que j'avais sous la main. Il est probable que le montage fonctionne tout aussi bien avec n'importe quel transistor NPN pour petits signaux.
Télécharger le firmware : ACX Sequencer v1.2.zip
Télécharger le firmware de Yves USSON : Yu P-Sequencer.zip
e-Sequencer
Ce nouveau séquenceur MIDI-Analogique possède 4 pistes de 16 notes. Les pistes sont indépendantes et peuvent jouer selon 8 modes différents (Avant, arrière, Ping Pong, aléatoire ...). Dans chaque séquence, il est possible de modifier les notes ainsi que leur vélocités. Les séquences ainsi que touts les paramétrages du séquenceur peuvent être enregistrés dans une des 128 banques mémoire.
Version Rack 19''
Version 5U Yusynth/Dotcom
Le but de ce séquenceur n’est pas d’enregistrer des morceaux complets, mais de travailler sur des courtes séquences de notes. De même qu’avec les synthés on travaille sur le son, avec le e-Sequencer on peut à partir d’un petit groupe de notes défini, construire de courtes structures mélodiques et rythmiques changeantes, sculpter en quelque sorte les séquences.
Cela peut être fait de manière manuelle, grâce aux possibilités de modifications des notes et de leur vélocités et aux possibilités de suppression/restauration des notes, mais également de manière automatique avec la fonction Random et toutes les possibilités de modification des paramètres par tension analogique externe. Le e-Sequencer propose en plus 8 modes de fonctionnement indépendants pour chaque piste (14 modes pour la piste 1) qui offrent également une grande palette de modifications.
Comme tous les séquenceurs hardware, le e-Séquenceur possède un cœur numérique, mais grâce à toutes les possibilités de contrôle par tension externe de tous ses paramètres, et son Convertisseur externe il s’intègre parfaitement dans un système purement analogique. La sortie des 4 pistes s’effectue en MIDI, mais il est possible d’ajouter à ce e-Sequencer un CV Converter analogique qui fournit 8 sorties CV (4 pistes de notes et 4 pistes de vélocité) et 4 sorties Gate.
Contrairement à beaucoup de séquenceurs, le e-Sequencer, permet d’enregistrer des séquences directement à partir d’un clavier (MIDI ou Analogique CV/Gate), ce qui est beaucoup plus pratique qu’avec des potentiomètres (on peut bien sûr enregistrer aussi directement à partir des encodeurs).
Comme le montrent le photos, ce séquenceur peut être construit, en rack 19'' (en 2 U comme ici par exemple), en module au format Dotcom/Yusynth, ou enfin en "Stand Alone" c'est à dire dans un boîtier indépendant. Il a été prévu 2 types de claviers de commande, l'un mécanique avec des boutons poussoirs à contact momentané, et l'autre avec des touches capacitives. Ce dernier type requiert un PIC programmé supplémentaire.
Description
(1) CV In
Entrée pour les tensions analogiques. Ne pas dépasser de tensions supérieures à 14 V ou inférieures à -14 V
(2) +/- 5V +5V
Switch permettant de sélectionner la plage de tension de l’entrée analogique. Choisir +/- 5V pour les tensions symétriques telles que celles provenant d’un LFO par exemple et + 5V pour les tensions provenant d’un générateur d’enveloppe ou d’un clavier CV/Gate.
(3) Ext Clock
Entrée de l’horloge externe. Cette dernière peu être un LFO ou n’importe quel appareil fournissant des impulsions positives.
(4) EXT/INT
Switch permettant de sélectionner l’horloge interne du séquenceur ou une horloge externe.
(5) MIDI IN
Entrée MIDI
(6) MIDI OUT
Sortie MIDI
(7) (8) LEDs de séquence 1-16
Ces LEDs ont des fonctions différentes selon le mode du séquenceur. En mode RECORD, elles indiquent le nombre de notes enregistrées. En mode PLAY elles indiquent quelle est la note qui est jouée (à condition qu’une seule piste soit sélectionnée). En mode EDIT, elles indiquent quelles sont les notes qui n’ont pas été supprimées. En mode SKIP elles indiquent quelles sont les notes qui n’on pas été sautées. En mode PARAM, elles indiquent si les diverses fonctions de piste (CV Modes, CV Supp, CV Skip, CV Transpose, ANALOG, SERIAL, MEMORY, DISPLAY) sont enclenchées ou non.
(8) Encodeurs 1-16
Ces encodeurs ont des fonctions différentes suivant le mode du séquenceur. Ces encodeurs peuvent être tournés pour modifier des valeurs, mais possèdent des switches que l’on peut enfoncer comme des boutons poussoirs. En mode EDIT, en rotation ils règlent la hauteur des notes respectives de la séquence et les switches permettent de supprimer ou restaurer les notes. En mode SKIP, en rotation ils règlent la vélocité des notes respectives de la séquence et les switch permettent de sauter ou restaurer les notes. En mode PARAM, ces encodeurs servent à modifier pour chaque piste les modes de jeu, la vitesse, les canaux MIDI, les modes de la piste SERIAL, les banques mémoire, et la largeur de GATE. Les switches mettent en marche ou non, les changements de mode, les suppressions, les transpositions par CV ainsi que le mode ANALOG, le mode SERIAL, la mise en route de la mémoire et enfin la visualisation de ces modifications par le mode DISPLAY
(9) CV LEVEL
Ce potentiomètre règle le niveau d’entrée de la tension de contrôle externe
(10) Afficheur
Suivant les modes sélectionnés, l’afficheur indique le nombre de BPM, la hauteur des notes, leur vélocité, la banque mémoire sélectionnée, ou encore la largeur de GATE.
(11) Encodeur BPM.
Cet encodeur règle le nombre de BPM du séquenceur ou la valeur des transpositions. Son switch permet de passer d’un incrément de 1 à un incrément de 10 (ou de 12 s’il s’agit de modifier les hauteurs de notes). En mode pas à pas, il est utilisé pour lire les séquences note à note.
(12) LED d’incrémentation
Cette diode indique la valeur de l’incrément de l’encodeur BPM. 1 lorsqu’elle est éteinte et 10 ou 12 lorsqu’elle est allumée
(13) Clavier
Le clavier comporte 15 touches.
T1, T2, T3, T4. Touches de sélection de piste
Ces touches permettent de mettre en marche ou non les pistes. Elles sont utilisées pour sélectionner les pistes à enregistrer ou les pistes à lire.
T1e, T2e, T3e, T4e. Touches d’édition de piste
Ces touches permettent de choisir les pistes que l’on désire modifier. La modification est en effet indépendante du jeu des pistes ce qui signifie que l’on peut modifier n’importe quelle piste indépendamment du fait qu’elle soit en marche ou non. En mode TRANSPOSE, il est possible de sélectionner 1, 2, 3 ou 4 pistes, car on peut vouloir transposer plusieurs pistes simultanément. En revanche dans les modes EDIT et SKIP on ne peut sélectionner qu’une seule piste car il n’est pas possible d’en modifier plusieurs en même temps. Les pistes qui ont été éditées sont mémorisées, si vous retournez en mode d’édition, la dernière piste modifiée est automatiquement sélectionnée. Dans les autres modes, ces touches sont éteintes.
Edit
L’appui sur cette touche permet de passer en mode d’édition des pistes. Sélectionnez ensuite la piste avec une des touches T1e à T4e et utilisez les encodeurs pour modifier les hauteurs de notes ou pour les supprimer/restaurer. Un appui sur l’encodeur supprime la note un deuxième appui la restaure. Une note supprimée n’est pas jouée, mais elle est remplacée par un silence équivalent, Lorsque les touches Edit et Pause sont allumées simultanément, le séquencer passe en mode pas à pas. Les hauteurs des notes peuvent être alors facilement modifiées une à une
Skip
Cette autre touche d’édition des pistes permet comme précédemment de modifier les vélocités des notes et de les sauter. Une note sautée n’est pas jouée, la séquence passe immédiatement à la note suivante. Si une note est à la fois supprimée et sautée, elle est considérée comme supprimée. Lorsque les touches Skip et Pause sont allumées simultanément, le séquenceur passe en mode pas à pas. Les vélocités des notes peuvent être alors facilement modifiées une à une.
Transpose
Cette troisième touche d’édition permet de transposer les pistes entières. Il est possible de sélectionner de 1 à 4 pistes simultanément avec les touches T1e… T4e. Après avoir sélectionné les pistes, tournez l’encodeur BPM dans un sens ou l’autre pour transposer les pistes par demi-tons. Si la diode d’incrément est allumée, la transposition s’effectue par octave. Chaque piste peut être transposée de +/- 60 demi-tons (si c’est possible)
Param
Cette touche permet de paramétrer le séquenceur. En mode Param, la fonction des encodeurs est la suivante :
1, 2, 3, 4.
Rotation : Sélection du mode de jeu de chaque piste.
Switch : mise en route ou non du contrôle automatique des modes par CV
1 pour la piste 1, 2 pour la piste 2, 3 pour la piste 3 et 4 pour la piste 4.
5, 6, 7, 8
Rotation : Sélection du diviseur de tempo de chaque piste . Valeurs possibles de 1 à 16.
Switch : Mise en route de la suppression ou du saut automatique des notes par CV.
5 pour la piste 1, 6 pour la piste 2, 7 pour la piste 3 et 8 pour la piste 4.
9, 10, 11, 12
Rotation : Sélection du canal MIDI de sortie des pistes. L’encodeur N° 9 sélectionne également la canal
d’entr����e qui est toujours égal à celui de sortie de la piste 1
Switch : Mise en route on non de la transposition automatique par CV
9 pour la piste 1, 10 pour la piste 2, 11 pour la piste 3 et 12 pour la piste 4.
13
Rotation : Sélection du nombre de MIDI Clock de la synchronisation MIDI. Les valeurs possibles sont 3, 4,
6, 8, 12, 18, 24 et 48.
Switch : Mise en route du mode ANALOG
14
Rotation : Sélection des modes de jeu de la piste SERIAL (somme des 4 pistes)
Switch : Mise en marche du mode SERIAL
15
Rotation : Sélection des banques mémoires. Les valeurs vont de 1 à 170.
Switch : Mise en route du mode de mémorisation. La diode d’incrémentation x10 se met à clignoter.
16
Rotation : Sélection de la largeur de GATE. Les valeurs vont de 1 à 32.
Switch : Mise en route du mode DISPLAY. Dans ce mode, les LED de séquence n’affichent plus les notes, mais montrent les paramétrages effectuées par les switches des encodeurs. Si par exemple la piste 2 est en CV Mode, la diode N° 2 sera allumée pour l’indiquer.
Record
Touche de mise en marche de l’enregistrement
Play
Touche de lecture des pistes. Un premier appui met la lecture en marche, une deuxième l’arrête et le séquenceur passe en mode Stop. Le redémarrage s’effectue au début de la séquence
Pause
Touche de mise en Pause du séquenceur. Après la Pause, le séquenceur repart à l’endroit où il s’était arrêté. Un appui sur la touche Pause en même temps que les modes Edit ou Skip permet de passer en mode pas à pas. Un appui sur Pause pendant le réglage des canaux MIDI permet de régler le canal MIDI d’entrée.
Schéma :
Implantation des composants
Faces avant
Ces magnifiques faces avant au format rack 19'' ont été dessinées par Oryjen.
Les faces avant au format PDF ainsi que toute la documentation concernant ce séquenceur peuvent être téléchargées ICI
La mise à jour du firmware version 10.1 est disponible ICI
QUANTIZER
Le monde analogique est un monde continu, le monde numérique est au contraire un monde quantique. Le quantizer transforme des valeurs continues de tension en valeurs discrètes. Il permet par exemple de jouer juste avec un séquenceur analogique à potentiomètre. Celui-ci possède d'autre fonctions comme celle de CV To MIDI ou encore de transposition. Il pourra donc servir aussi à "midifier" en sortie cette fois un synthétiseur analogique qui possède une sortie CV.
Ce module est composé de 2 quantizers indépendants. Le premier possède une simple entrée/sortie CV. Un switch permet la mise en ou hors service du quantizeur, un autre switch permet de sélectionner la plage d'entrée CV entre 0 +5V (clavier CV/Gate par exemple) ou -5V +5V (LFO..). La quantification s'effectue en continu, avec un temps de latence très faible (inaudible).
Le deuxième quantizeur permet de choisir entre l'horloge interne (quantization continue) et une horloge externe appliquée à l'entrée Gate. La quantization s'effectue alors sur les fronts montants de l'horloge. Cela permet au module de fonctionner en Sample & Hold sur la sortie CV Out et en CV To MIDI sur la sortie MIDI. Enfin, un potentiomètre permet de transposer les sorties CV et MIDI jusqu'à la valeur d'une octave (avec ou sans quantization).
Ce module fonctionne en Volts/Octave, mais un mode en Volts/Hertz est prévu sur le PCB, mais non implémenté dans le code.
Le schéma
LE PCB
Cliquez sur l'image pour télécharger le fichier pdf.
Implantation des composants
Le connecteur ICD2 sert à la programmation et au débuggage. Il est facultatif. Commencez par souder les 3 straps, en bleu sur ce schéma. Le module est prévu pour être alimenté en +/- 15 V, mais il fonctionnera parfaitement avec du +/- 12 V et même du +/- 9 V sans modification.
FACE AVANT
Nomenclature
Résistances
10 ohms x3
220 ohms x4
470 ohms x1
10k x24 (1% si possible)
Condensateurs
100 nF x4
10 µF x1
22 µF x2
Actifs
78L05 x1
BC 547 C x1 (ou n'importe quel équivalent NPN)
1N4148 x4
TL 074 x2
MCP 4822 x1
PIC 16F88 x1
Divers
Potentiomètre lin 10 k
Firmware
Télécharger le firmware version 1.0 ici
Télécharger le fichier hex version 1.0 ici
(Page mise à jour le 10 octobre 2010)
MASTER CLOCK
Une horloge maître est indispensable pour piloter des séquenceurs. L'avantage par rapport à un LFO, est que l'horloge est beaucoup plus stable, beaucoup plus précise et permet en plus d'afficher la fréquence en BPM (Beat per Minute ou battements par minute).
Cette horloge maître est très simple à construire et à utiliser. L'affichage de la fréquence s'effectue sur trois afficheurs 7 segments et le réglage par un encodeur. Celui-ci permet de faire varier cette fréquence de 1 à 999 battements par minute par pas de 0.5. Pour les valeurs fractionnaires, un point s'affiche en bas à droite du troisième afficheur. Pour faciliter les déplacements entre des valeurs très différentes, le pas peut être réglé sur la valeur 10. Il suffit pour cela d'appuyer sur l'encodeur. La diode x10 s'illumine alors pour indiquer que le pas a été augmenté. Un nouvel appui sur l'encodeur permet de retourner au pas de 0.5.
Ce module est contrôlable en tension de deux manières. Un inverseur permet de choisir entre le mode BPM dans lequel la fréquence varie en fonction de la tension présente sur l'entrée CV et le mode Swing dans lequel un battement sur 2 est décalé. Le niveau de tension peut être réglé par le bouton LEVEL et un inverseur permet de choisir entre les valeurs 0/+5V et -5V/+5V.
Enfin, cette horloge peut également servir de synchro MIDI. Lorsque l'on bascule l'inverseur sur la position MIDI, l'horloge interne est déconnectée et est remplacée par les MIDI Clocks. La fréquence c'est à dire le nombre de MIDI Clocks par noire peut être réglée par l'encodeur. Les valeurs vont de 2 (vitesse 12 fois plus rapide) à 48 (vitesse 2 fois plus lente) La valeur normalisée est de de 24 Clocks pour une impulsion de sortie.
Comme on peut le voir, le module possède une entrée CV, une entrée MIDI, une sortie Gate normale (OUT) et une sortie à fréquence quadruplée (OUT X4). Cette dernière permet de travailler plus facilement avec des diviseurs de fréquence. Cette fonction manque ici, aussi je conseille fortement de construire également le diviseur d'horloge Yusynth qui est le complément indispensable de cette horloge.
Le schéma
LE PCB
Ce module est constitué de 2 PCB, l'un pour l'affichage et l'autre pour pour le microcontrôleur. Le modèle utilisé ici est un PIC 18F4520. C'est un "gros" 40 pattes, mais il a l'avantage de simplifier grandement le dessin du circuit et d'éviter des composants additionnels pour l'affichage. J'ai réalisé le dessin de telle manière que ce PIC puisse être remplacé par pratiquement n'importe que autre modèle à 40 pattes de Microchip. En cas de changement, il faudra simplement veiller à modifier les commandes de CONFIG dans le fichier source du Firmware.
Le connecteur ICD situé au milieu du PCB sert à la programmation et au débuggage. Il est donc facultatif.
Cliquez sur l'image pour télécharger le fichier pdf.
Implantation des composants
Sur le PCB des afficheurs, ne pas oublier de souder en premier les 8 straps (représentés ici en bleu). Vérifier également que le PCB est bien raccordé à la masse (il doit l'être par les vis de fixation). Si tel n'est pas le cas, prévoir la connexion.
Ce module doit être alimenté par une alimentation symétrique de +/-9 V à +/- 15 V plus une alimentation 5 V, ou bien une alimentation symétrique seule. Dans ce cas, il suffit d'ajouter le régulateur 7805 comme indiqué sur le schéma.
Sur les 7 sorties OUT seulement 2 sont connectées, la 1 et la 3.
Les 2 PCB doivent être montés l'un sur l'autre comme le montre la photo. Pour améliorer l'affichage, ajoutez une petite plaque de plexiglas, ou de gélatine rouge sur les afficheurs.
Nomenclature
Résistances
10 ohms x2
220 ohms x8
330 ohms x2
470 ohms x1
1,5 k x3
10k x18 (1% si possible)
Condensateurs
22 pF x2
100 nF x6
10 µF x2
100 µF x1
Actifs
7805 (uniquement dans le cas d'une alimentation symétrique seule
(sans le +5V))
BC 547 C x3 (ou n'importe quel équivalent NPN)
LED verte x1
LED jaune x1 (encodeur)
1N4148 x3
TL 074 x1
6N137 x1
TDSR 5160 x3 (ou tout autre afficheurs 7 segment à cathode commune
rouge de 13 mm)
PIC 16F727 x1 (j'ai remplacé le 18F4520 par un 16F727 plus
économique)
Divers
Quartz 20 MHz x1
Encodeur Panasonic P12336-ND avec crantage (ref 10.5370-4 chez
Selectronic)
Potentiomètre lin 10 k
Firmware
Télécharger le firmware version 1.1 ici (attention, ne fonctionne qu'avec les PIC 16F727)
LFO
Cet oscillateur basse fréquence offre 12 formes d'ondes différentes, un réglage de la symétrie des ondes et aussi la fonction de "Tap Tempo" qui permet de donner la fréquence en tapant deux fois sur un petit inter. Il possède une entrée de synchronisation et sa fréquence peut être commandée par une tension externe.
Il y a longtemps que je voulais construire un LFO. C'est maintenant chose faite, avec ce module. Construit autour d'un PIC 16F88, il utilise directement les valeurs de l'accumulateur de phase pour les formes d'ondes linéaires et des tables d'ondes pour le sinus et les exponentielles. J'ai repris l'idée de faire varier la symétrie des signaux de l'excellent LFO d'Electric Druid. Sinon, le design de mon module est totalement original.
La fréquence peut être modifiée de 4 manières différentes:
- Par le potentiomètre RATE. L'étendue va de 35 mHz (28 secondes) à 4 Hz (inter en position X1) ou de 140 mHz à 32 Hz (inter en position X8)
- Par CV dans l'entrée CTRL. Le niveau de tension peut être contrôlé par le potentiomètre LEVEL.
- Par TAP Tempo. Lorsque l'inter est sur la position TAP, la fréquence peut être entrée par deux appuis successifs sur le poussoir du haut. Une diode permet de visualiser le sens des appuis. L'étendue en fréquence est alors beaucoup plus grande, la période pouvant largement dépasser une heure.
- Par une horloge externe. Lorsque l'inter est sur la position TAP, on peut brancher une horloge ou un LFO sur l'entrée SYNC et le LFO ACX se synchronise sur cette horloge et suit les variations de vitesse. Si l'inter est sur les positions X1 ou X8, cette entrée fonctionne alors comme une Hard Sync standard c'est à dire que l'onde est remise à 0 à chaque impulsion externe.
Ce LFO dispose de 12 formes d'ondes différentes : dent de scie descendante, dent de scie ascendante, triangle, Pulse, Sinus, Trapeziod, Trapezoid inverse, Log, Exp, Log/Exp, Random et Noise.
Le mode Random est l'équivalent d'un Sample & Hold sur du Noise.
Chaque forme d'onde peut être continument déformée par modification de sa symétrie. Le triangle devient une dent de scie, le Pulse voir sa largeur modifiée etc.... L'image plus haut montre les effets des changements de symétrie sur une sinusoïde, une dent de scie, une triangle et enfin une trapezoid. A gauche lorsque le bouton est tourné sur la gauche, au milieu lorsque le bouton est centré et à droite lorsque le bouton est tourné sur la droite. La symétrie est sans effet sur les modes random et noise.
Il y a 2 sorties, une sortie Pulse non modifiable en 0 +5V (notée par erreur SIN sur la photo) et la sortie générale en -5/+5V.
Enfin deux points de détails pour terminer, mais que j'ai trouvé tout de même importants :
La fréquence n'est pas modifiée du tout lorsque l'on déforme la symétrie de l'onde.
La diode qui donne une indication visuelle du tempo, n'est elle non plus pas affectée ni par la forme d'onde, ni par la modification de symétrie.
Le schéma
Comme pour la plupart des réalisations à base de PIC, le schéma est très simple et aucun réglage n'est à prévoir. Le module dont fonctionner du premier coup.
Sur ce schéma, le changement de forme d'ondes est donné par un potentiomètre. Il est avantageux de le remplacer par un commutateur rotatif 1 circuit 12 positions sur lequel on aura soudé des résistances de 1 K entre chaque plot.
Cliquez ici pour télécharger le schéma
Cliquez ici pour télécharger le dessin de la face avant (Dotcom/Yusynth)
Le PCB
La photo représente ici le LFO au format Dotcom/Yusynth, mais le PCB est suffisamment petit pour tenir sans problème dans une unité Eurorack. Il doit être alimenté par une tension symétrique comprise entre +/-9 et +/-15 V. Il faut simplement veiller à ajuster les valeur des 2 résistances R8 et R12 en fonction de la tension d'alimentation choisie comme indiqué sur le schéma.
Le PCB est prévu pour recevoir soit un connecteur d'alimentation 6 broches Dotcom/Yusynth, soit un connecteur d'alimentation 2 x 5 broches Eurorack.
Cliquez ici pour télécharger le dessin du PCB
Implantation des composants
Liste des composants
C1 = 22nF
C2 = 100nF
C3 = 10nF
C4 = 100nF
C5 = 100nF
D1 = 1N4148
D2 = 1N4148
D3 = LED
D4 = LED
IC = MCP4822
IC1 = PIC 16F88
IC3 = TL074
IC4 = TL072
Pot1 = 10k lin
Pot2 = 10k lin
Pot3 = 10k lin
Pot4 = 10k lin
R1 = 100k
R2 = 100k
R3 = 56k
R4 = 10k
R5 = 10k
R6 = 10k
R7 = 10k
R8 = 100k (+/-15V) 75k (+/-12V) 56k (+/-9V)
R9 = 10k
R10 = 10k
R11 = 1k
R12 = 30k (+/-15V) 24k (+/-12V) 18k (+/-9V)
R13 = 1k
R14 = 10k
R15 = 8k
R16 = 15k
R17 = 4.7k
R18 = 220R
R19 = 1k
R20 = 10k
R21 = 220R
R22 = 1k
R23 = 10k
R24 = 10k
R25 = 10k
R26 = 47k
R27 = 10k
R28 = 1M
SW1 = SPST
SW2 = SPDT
T1 = BC 547C (ou équivalent)
Le firmware (fichier .hex) est maintenant téléchargeable ICI