English Version
French Version
MIDIbox SID "Control Surface Step B"
Date de Création: 2003
La Control Surface "Step B" pour la MIDIbox SID permet de
contrôler 3 modules SID supplémentaires depuis
l'unité de contrôle. Chaque module SID requiert un module
CORE dédié, mais cette solution présente quelques
avantages comparée au cablage MIDI en parallèle :
- tous les paramètres sont accéssibles sans avoir besoin de passer par un ordinateur
- tous les modules SIDs esclaves peuvent partager le même BankStick avec le SID maître (jusqu'à 8 BankSticks)
- les
changements de paramètres peuvent être routés en
temps réel simultanément sur plusieurs SIDs - une
fonction essentielle pour créer des effets stéréo
ou de gros sons mono.
- des mode de jeu
supplémentaires Super-Poly, Super-Arpeggiator, Split,
Layer, Unisono deviennent possibles et seront implémentés
dans les prochaines mises à jours.
Réalisation
Avant de parler de la partie matérielle, voici
quelques informations sur le principe du SID Step B: les messages vers
les modules SIDs esclaves transitent par l'interface MIDI classique du
module CORE. Chaque module esclave requiert une Device ID
différente dans la chaîne MIDI afin que le module
maître puissent communiquer indépendamment avec chaque SID
. La Device ID est indépendante du canal MIDI auquel le
SID a été assigné, pour permettre une plus grande
souplesse dans la configuration. Par exemple, si le même canal
est sélectionné pour tous les SIDs, différents
sons - joué depuis le même clavier - peuvent être
répartis dans l'image stéréo. Si chaque SID
utilise son propre canal, des timbres plus complexes peuvent
réalisés (Note: l'implémentation PIC18F de la
MIDIbox SID permet de répartir les voix sur plusieurs zones du
clavier (split), ainsi jusqu'à 12 voix peuvent être
superposées ou jouées indépendamment).
Comme mentionné plus haut, le maître
partage le Patch stocké dans le BankStick avec les modules
esclaves. Cela permet de réduire le coût et d'utiliser un
même setup pour plusieur SIDs sans avoir à copier les Patchs
d'un BanckStick vers l'autre. Aucun BanckStick ne doit être installé sur les modules esclaves.
Les évènements MIDI entrants comme les
Notes ou les CC sont renvoyés par le MIDI merger
intégré vers les modules esclaves lorsque le mode "Link"
est actif. Seuls des transferts uni-directionnels sont
possibles, ce qui signifie que le maître ne peut recevoir de
données des esclaves, et du coup ne connaît jamais
l'état exact des ces derniers. Cette limitation ne pose aucun
problème tant que les modules esclaves se comportent de la
manière déterminée, ce qui est heureusement le cas
dans ce simple système. Une connection bi-directionnelle
(Point-to-Point, bus, orientée "paquet", ou chaîne
circulaire) demanderait une partie matérielle
supplémentaire et un protocole sophistiqué qui ne soit
pas orienté "cible". Cette liaison uni-directionnelle ne
présente que trois désavantages: le maître ne peut
savoir si un module esclave est connecté ou non (c'est donc
à l'utilisateur de le notifier) et - un problème
plutôt relatif à la partie logicielle - lorsque le
maître reçoit des messages CCs et SysEx destinés
aux esclaves, il se contente de les renvoyer vers ces derniers sans en
analyser le contenu. Cela peut induire des commandes
incohérentes si l'utilisateur modifie un paramètre
simultanément avec la Surface de Contrôle et depuis un
ordinateur ou un autre contrôleur MIDI. Ce problème ne
concerne pas les messages destinés au module maître. Trouver
une solution à ce problème demanderait trop d'efforts et
de complications, mais ce n'est finalement pas si gênant! La
troisième limitation concernent votre config MIDI : vu que
le MIDI
merger du module CORE renvoie chaque évènement MIDI
entrant sur le MIDI Out pour les esclaves, votre ordinateur aussi
recevra ces données (boucle). Vous devez donc vous assurer que
votre séquenceur ne renvoie pas de nouveau ces
évènements (fonction MIDI thru). Notez que ce
problème n'apparait pas lorsque le mode "LINK" est
désactivé.
Hardware
Il est possible d'utiliser l'interface stepB sans aucun
module SID esclave, ou bien avec un, deux ou trois SID esclaves...
Trois étant le nombre maximal de SID esclaves possible.
Le module CORE maître doit être
monté avec un PIC18F452, le firmware approprié est
disponible à la page MIOS download . Les modules CORE esclaves peuvent eux être équipés aussi bien d'un PIC18F452 que d'un
PIC16F877 - donc, s'il vous reste quelques vieux PIC16F, voici une bonne occasion de les recycler!
L'interfacage MIDI des modules maître et esclaves se fait via le port J11 des modules CORE.
Avec cette connection digitale directe, il n'est plus nécessaire
d'utiliser un optocoupleur côté esclave (-> Seul le port MIDI In du module CORE maître requiert un optocoupleur).
Ce diagramme montre les inter-connections MIDI nécessaires.
Une alimentation unique peut être partagée
par tous les modules. Le système entier
(4 modules COREs et 4 modules SIDs) draîne aux alentours de 600
mA. Notez que le 7805 du module CORE maître peut devenir
trés chaud lorsqu'un LCD rétro-éclairé est
utilisé. Ceci peut poser problème si un module SID est
équipé d'un SID- 6581, car ce chip requiert du 12V pour
travailler et du coup au moins 15V en entrée avant le 7812) - le
7805 va dissiper la différence de 10V en chaleur. Le moyen le
plus simple de contourner le problème est d'utiliser un 7809,
connecté aprés le pont-rectifieur du module CORE. Dans la
mesure où les 78xx nécessite d'être
alimentés en DC, il est recommandé de connecter ce
régulateur de tension entre C9 (le condensateur 2200uF
derrière le pont-rectifieur) du module SID ET C5 du module CORE,
comme expliqué ici.
La meilleure solution consiste à
récupérer l'alimentation d'origine du C64, car celle-ci
délivre et du 5V DC pour le CORE et du 9V pour le module SID -
Vous trouverez le schéma ici.
Vous pouvez également réaliser un PCB
unique pour tout le circuit. Référez-vous aux questions
de Nebula dans cet article du forum.
Les sorties audio des SIDs peuvent au choix être
cascadées (Audio Out SID1->Audio In SID2->Audio Out
SID2->...) ou connectées en parallèle
via des résistances de 10k , afin d'obtenir deux canaux mixant
les quatres signaux des quatres SIDs . Notez qu'aucune de ces deux
solutions n'est la meilleure. Un mixer actif, réalisé
à base d'amplis Op (AOPs) serait l'idéal, mais
demanderait une tension de polarisation (+/- 9V ou plus). La
meilleure solution, la plus flexible, consiste à utiliser 4
canaux distincts sur une table de mix ou une carte son, un pour chaque
SID, car ceci vous laisse la possibilité de jouer avec les
panoramiques et de router indépendamment les 4 sorties dans des
effets séparés.
La configuration multi-SID requiert au minimum la surface de contrôle minimum décrite ici.
7 boutons supplémentaires et quelques LEDs sont
nécessaires pour une parfaite interaction avec les SIDs, un
exemple de configuration est disponible ici: 2x20_enc_multi.pdf.
Notez que l'assignation des pins DIN et DOUT peuvent être
modifiée dans l'application MIOS (voir fichier d'en-tête
"main.asm") - Si vous souhaiter économiser un module DOUTX1, il
est possible d'utiliser les pins libres du port J5 (sur le CORE) pour
piloter les LEDs, voir ce schéma. Dans ce cas le paramètre SR ID doit être changé de 1 vers 0 dans le fichier "cs_menu_io_tables.inc".
Préparation des modules COREs PIC18F cores
Step by step:
- Nous partons du principe qu'à
ce stade le bootstrap loader est chargé dans le PIC18F, et que
le module maître à l'ID MIOS: 0x00, et les esclaves l'ID
MIOS: 0x01, 0x02 et 0x03 - si vous avez oublié de définir
l'ID correcte ID, utilisez l'application "change_id", disponible sur la
page MIOS download, pour modifier
l'en-tête ID. Dans ce cas vous devez vous assurer qu'un seul
module esclave est connecté directement à votre PC, dans
le cas contraire, tous les CORE chargés avec cette application
se retrouverait avec la même ID!
- Uploader le MIOS V1.7 ou supérieur dans le module maître en suivant les instructions de la page MIOS bootstrap.Utilisez toujours la dernière version disponible du MIOS!
- Uploader l'application SID dans le module maître. Vous trouverez dans l'archive SID différents fichiers
.syx, utilisez soit le fichier "setup_6581_with_cs.syx" ou
"setup_8580_with_cs.syx", en fonction du type de chip SID installé dans vos modules.
- Testez
le maître avant d'aller plus loin! Vous pouvez vouys servir du
clavier virtuel de MIDI-Ox pour jouer quelques notes.
Notez que le canal MIDI #1 est sélectionné par
défaut, mais si un BankStick est connecté, le canal peut
être différent en fonction du dernier Setup
sauvegardé. Le canal MIDI est affiché sur l'écran
LCD, vérifiez donc!
- Appuyez
maintenant sur la touche LINK pour ouvrir la connection vers les
modules esclaves. si vous ne disposez pas (encore) de ce boutons,
envoyez F0 00 00 7E 40 00 0D 01 00 58 28 00 01 00 00 00 00 00 00 F7 au module maître - cette commande SysEx active le MIDI merger intégré.
- Préparez
le MIOS pour votre premier module esclave avec l'ID MIOS 0x01 - vous
devez recompiler le fichier mios_v1_x.hex file (remplacez v1_x par la
version actuelle, le fichier est situé dans le répertoire
hex/ de l'archive MIOS) avec "perl hex2syx.pl mios_v1_x.hex -os_upload
-device_id 0x01"
- Uploadez le fichier généré mios_v1_x.syx .
- Uploader
l'application SID dans le module esclave. L'archive SID contient des
fichiers .syx préparés pour chaque ID esclave.
- Recommencez l'opération pour les autres modules esclaves (ID 0x02 et 0x03)
- Testez les modules esclaves. Notez que le canal MIDI #1 est sélectionné par défaut, mais si un
BankStick est connecté, le canal peut être différent en fonction du
dernier Setup sauvegardé.
Préparation des modules esclaves PIC16FSi des modules
esclaves équipés de PIC16F sont connectés, vous
devez changer leur ID matérielle manuellement. Le premier
esclaves requiert l'ID 1, le second esclave l'ID 2, le troisième
l'ID 3. Cette opération peut être faite avec MIDI-Ox,
connectez simplement un seul core à votre PC et envoyez les commandes SysEx suivantes : F0 00 00 7E 46 [old device-number] 0D 03 00 [new device-number] F7.
Slave 1: F0 00 00 7E 46 00 0D 03 00 01 F7
Slave 2: F0 00 00 7E 46 00 0D 03 00 02 F7
Slave 3: F0 00 00 7E 46 00 0D 03 00 03 F7
Prise en Main
Référez-vous à l' Introduction sur l'unité de contrôle pour savoir comment naviguer dans les menus. Le tableau suivant liste les fonctions des boutons et LEDs supplémentaires.
SID1-4 |
Utilisez ces touches pour sélectionner le(s) SID(s). Ils
se comportent en bouton "radio" lorsqu'un seul est pressé, ce
qui vous permet de passer rapidement d'un SID à l'autre. Il est
également possible de sélectionner plusieurs SIDs
simultanément en maintenant enfoncé l'un des bouton SID
pendant que vous sélectionnez les suivants - dans ce cas les
changements affecteront tous les SIDs sélectionnés.
Here a video |
Link |
Ce
boutons active le MIDI merger, et de fait établi la connection
vers les modules esclaves. Notez que cette fonction est
désactivée au démarrage. Vous pouvez
inversé ce comportement en mettant sur 1 l'entrée < #define CS_MENU_DEFAULT_LINK dans le fichier main.asm du firmware. |
CC |
Cette
fonction active le mode CC. Lorsque ce mode est actif, les changements
effectués manuellement via l'unité de contrôle
seront transmis comme évènements CC vers le port MIDI
Out. Si vous avez connecté ce port au MIDI In de votre
ordinateur, vous pouvez enregistrez vos mouvements et variations (par
exemple les mouvements de filtre ou les slides du portamento) |
Edit |
Lorsque
le mode EDIT est actif, tous les changements de paramètres
effectués seront automatiquement sauvegardé dans le patch
actuellement sélectionné avant de basculer vers un autre
patch. La LED clignote lentement afin de vous informez que des
modifications ont été faites (et qu'il a donc quelque
chose à sauvegarder). |
Cela ne vous suffit toujours pas?!
...alors, allons un peu plus loin, par ici...
Last update: 2015-09-24
Copyright © 1998-2015, Thorsten Klose. All rights reserved.
|