On n'a jamais assez de mixers !
6-channel mixer
Avant la description, le fonctionnement général est à voir ici :
{youtube}3pXlXnoABRk{/youtube}
Description
On n'a jamais assez de mixers ! Le schéma est très simple. La résistance R25 est un potentiomètre monté en façade pour le volume général, chaque voie est elle-même montée sur un potentiomètre 100k (R27). Résultat La façade est réalisée en aluminium d'épaisseur 1,6 mm... Voilà le module terminé, pour un peu moins de 11 €. Et ça fonctionne très bien depuis plus d'un an déjà, sans aucun problème ! |
We never have enough mixers ! The schematics is very simple. R25 is replaced by a 100k pot monted on the panel: it's the output's volume. Each channel goes through a 100k potentiometer (R27). Result The panel is made of aluminium (1.5 mm thick)... Here is the finished module, for a little less than 11 €. And it works very well for over a year now, without any problem! |
Wiring diagram :
- Clics : 8860
Le boitier - The case
Je vois grand : ce sera un 18U * 197HP, soit 1182HP. Ce n'est pas une valeur courante (2x84 = 168HP l'est beaucoup plus) car je choisis de prendre des rails de 1 mètre, beaucoup moins chers que les rails vendus chez les spécialistes des synthés. |
I see big: it will be an 18U * 197HP, or 1182HP. This is not a standard value (2x84 = 168HP is much more standard) because I choose to buy 1000 mm rails, much cheaper than the rails sold in the synth shops. |
Au commencement... In the beginning...
...sont les mesures et un tas de planches de contreplaqué de 10 mm, pour un boitier de taille 102 cm x 82,4 cm * 17 cm de profondeur... plus quelques rails de 1 mètre.
|
...there's only a bunch of plywood (10 mm i.e. 0.4"). The case will be 40.2" x 32.5" x 6.7"... With these boards, there's also a dozen of rails.
|
Bon, allons-y, en commençant par l'arrivée électrique, alimentant 6 PSU pour 110 €. Je trace, je découpe et et je vérifie. Prise + interrupteur + fusible = je n'ai rien oublié. Je ne sais pas encore quelle décoration sera appliquée, mais tous les traits de tracés et les saletés de découpe vont disparaitre à la fin ! |
Well, let's go, starting with the power supply, feeding 6 PSU for 110 €. I trace, I cut and I check. Plug + switch + fuse = I have not forgotten anything. I don't know which decoration will be choosen, but all the pencil lines and the dirt of cutting will disappear at the end! |
Assemblage - The assembly
A partir de la structure rectangulaire, je commence la première rangée de rails. La hauteur est déterminée de manière à laisser environ 5 mm entre les façades des modules et le bord du boitier. La largeur est déterminée par... les modules ! Ensuite, les autres rangées sont construites de la même façon, jusqu'à la sixième rangée : 6 * 3U = 18U, le compte est bon ! Ensuite premières couches de peinture. |
After gluing the wood in a rectangular shape, I start the assembly of the first row of rails. I leave about 5 mm between the panels of the modules and the edge of the case. The width is determined by ... the modules! The other rows are built in the same way, up to the sixth row: 6 * 3U = 18U, the total is good! Then first paint. PS : the glasses are not part of the case... |
Et voilà !
Il reste énormément à faire : les finitions du bois, la peinture, les bus d'alimentations... A ce propos, ils sont dessinés avec DipTrace, puis gravés chez PCBWay.com pour 45$ les 15 | There is still a lot of work: wood finishes, painting, the power supplies with busboards... These busboards are made with DipTrace, 45$ for 15 at PCBway.com |
Les busboards - The busboards
Pas de problème particulier, sauf qu'il y a 14 x 12 x 16 soudures, soit au total 2688 juste pour les connecteurs eurorack...Plus les leds et les condos... |
No problem, except that there are 14 x 12 x 16 weldings, a total of 2688 just for the eurorack connectors ... You have to add LEDs and capacities ... |
Les rails - The rails
J'achète les rails directement chez le fournisseur de Doepfer : Gie-Tec en Allemagne. La personne qui prend ma commande (danke Simone) est très efficace et je récupère 12 rails de 1 mètre avec bordure (type 1) pour 153,51 € port compris, soit 12,80 € le rail de 1 mètre ! Ils sont livrés rapidement, sans les écrous ni les vis d'extrémités. Celles-ci sont récupérées dans mon surplus, et pour les écrous M3, le prends sur eBay : 7,54 € les 500 écrous carrés M3 livraison incluse. En fait, il y en a 516 (tolérances !), ce qui correspond exactement à 12 * 43 écrous. Bon, cela fait un certain temps passé à enfiler les écrous un par un dans les rails, mais je ne suis pas mécontent du résultat ! |
I take my rails directly to the supplier of Doepfer: Gie-Tec in Germany. The person who takes my order (danke Simone) is very efficient and I receive 12 rails of 1 meter for € 153.51 including shipping, i.e. € 12.80 the rail of 1 meter! They are delivered quickly without the nuts or end screws. These are recovered in my surplus, and for the M3 nuts, I bought them on eBay: 7.54 € for 500 M3 square nuts. In fact, there were 516 nuts in the bag, wich is exactly 43 nuts per rail for 12 rails. Well, it took me a long time to put the nuts one by one in the rails, but I'm not unhappy with the result! |
Preque fini ! - Almost finished !
Quelques retouches de peintures et c'est bon. A few paintings and it's finished.
Et voilà !
Le bilan
Bois / wood | 51,33 € |
Bus board : Pcbway.com | 43,52 € |
Composants | 5,18 € |
PSU | 105,53 € |
Ecrous / nuts | 7,63 € |
Rails | 153,51 € |
Divers | 20 € |
TOTAL | 386,70 € |
- Clics : 843
2019-12
Un visiteur du soir qui a l'air d'apprécier le son...
2019-10
2019-04
Mon nouveau boitier est terminé Il me fait gagner beaucoup de place ! Je revends mes boitiers Doepfer avec un petit pincement, ce sont eux qui m'ont lancés ...
2018-12
Ré-organisation et ajout de l'Atom d'Antumbra J'ai de plus en plus également de modules DIY : octoCV, dual-4-switch, arpegiator...
2018-10
Nouvelle installation, distings, varigate 4+, Ladik burst, Qu-bit Wave...
2018-08
Nouvelle installation (avec Marbles !) dans une armoire dédiée. Quel confort !
2018-04
MI Plaits turbine... Je viens d'apprendre l'arrivée de Marbles
2018-03
Mes premiers modules sont fonctionnels. Je me limite aux fonctions de bases (mixage, multiple, certains filtres) pour le moment, le temps d'apprendre et de "maitriser" tout ça . J'ajoute une tuerie : MI Plaits ! Je suis obligé de prendre une deuxième case...
2018-01
Voici où j'en suis... Pas de démo pour le moment, j'y travaille ;-)
2017-08
Cela fait des années que j'y pensais, et je viens de franchir le pas, avec une base A-100 BS2 de chez Doepfer achetée d'occasion sur eBay (9U, 3 * 84 HP) :
Je n'ai pas gardé cette configuration telle quelle bien longtemps ! Mon idée est de créer mes propres modules en me remettant au fer à souder que je n'avais pas touché depuis plus de 30 ans. En fait depuis que je me suis mis à écouter Tangerine Dream et compagnie ;-)
- Clics : 388
Avant la description, le fonctionnement général est à voir ici :
{youtube}wbgVoboskgY{/youtube}
Le circuitA base d'atmega328 comme d'habitude, facile à programmer. 2 * 2 * 4 sorties pilotées par deux DG509 (analog switch 1:4) ayant une entrée/sortie en commun. Des potentiomètres permettent de choisir le nombre de voies (0 à 4, 0 signifiant qu'aucune sortie n'est active) et le mode (up, down, pendulum, random). Il y a deux entrées clock indépendantes et deux entrées reset. Un mode 1*8 permet d'avoir un switch bidirectionnel 1 commun <-> 8 sorties, avec les mêmes modes de fonctionnement, le potentiomètre de la voie 1 permettant alors de choisir entre 0 et 8 sorties.RésultatLe PCB : Double face assez simple. Les composants passifs sont tous de récup ce qui donne un cout de revient très faible. Consommation environ 35 mA sur +12V, 5 mA sur -12V, ça fonctionne très bien ! |
The circuitAtmega328 based as usual, for it's very easy to program. 2 * 2 * 4 outputs controlled by two DG509s (analog switch 1: 4) having an input / output in common. Potentiometers let you choose the number of channels (0 to 4) and the mode (up, down, pendulum, random). There are two independent clock inputs and two reset inputs. A 1 * 8 mode allows you to have a common bidirectional switch 1 <-> 8 outputs, with the same modes of operation. The left pot allows you to choose from 0 to 8 active outputs. ResultThe PCB: 2 simple layers.The passive components are all second hands. This gives a very low cost. Consumption about 35 mA on + 12V, 5 mA on -12V, it works very well! |
BOM
Code
Le code est divisé en trois sections :
- main :
/* DualQuadSwitch 2018-2020 LC ------------------------------------------------------- D0: port D bit 0 D1: port D bit 1 D2: port D bit 2 CLK 0 sur interruptions D3: port D bit 3 CLK 1 D4: port D bit 4 RST 0 D5: port D bit 5 RST 1 D6: port D bit 6 D7: port D bit 7 MODE GENERAL (2*4 / 1*8) D8: port B bit 0 A0-0 1er DG509 adressé avec 2 bits D9: port B bit 1 A0-1 D10: port B bit 2 A1-0 2ème D11: port B bit 3 A1-1 D12: port B bit 4 EN0 EN = 1 pour compter, 0 pour OFF D13: port B bit 5 EN1 A0: port C bit 0 A1: port C bit 1 A2: port C bit 2 MODE 0 (up, down, etc.) A3: port C bit 3 nbrePas 0 (0 à 4 ou 0 à 8 suivant le mode général) A4: port C bit 4 MODE 1 A5: port C bit 5 nbrePas 1 */ // pin en entrées #define pinINTERRUPT0 2 #define pinINTERRUPT1 3 #define pinRESET0 4 #define pinRESET1 5 #define pinGENERAL 7 // de D9 à D13 : gestion des 2 DG509 // pins des potards #define potSTEP0 2 #define potMODE0 3 #define potSTEP1 4 #define potMODE1 5 // modes de fonctionnement #define modeUP 0 #define modeDOWN 1 #define modePEND 2 #define modeRND 3 struct { unsigned long lastInterrupt; byte mode, aMode; byte nbrePas, aNbrePas, nbrePas8, aNbrePas8; int compteur, compteurPendulum; boolean reset, on; volatile boolean clockInInterrupt; } voie[2]; // variables pour la lecture régulière des potards et des interrupteurs unsigned long dateLecture; byte compteurPotard; boolean mode8, aMode8; void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(pinRESET0, INPUT_PULLUP); pinMode(pinRESET1, INPUT_PULLUP); pinMode(pinGENERAL, INPUT_PULLUP); for (int i = 0; i < 2; i++) { voie[i].clockInInterrupt = false; voie[i].compteur = 0; voie[i].compteurPendulum = 0; voie[i].reset = false; } initLecturePanel(); majVoie(); initInterrupt(); } void loop() { lecturePanel(); if (mode8) { majReset(0); if (voie[0].clockInInterrupt == true) { voie[0].clockInInterrupt = false; majSortie8(); } } else { for (int i = 0; i < 2; i++) { majReset(i); if (voie[i].clockInInterrupt == true) { voie[i].clockInInterrupt = false; majSortie(i); } } } }
- entrées/sorties :
/* gestion des pin */ // si reset sur une voie : on remet le compteur à 0 (1ere position) void majReset(int laVoie) { if (voie[laVoie].reset == true) { voie[laVoie].compteur = 0; majVoie(); } } void majSortie(int laVoie) { int ns; if (voie[laVoie].on) { if (voie[laVoie].nbrePas == 1) { voie[laVoie].compteur = 0; } else { switch (voie[laVoie].mode) { case modeUP: voie[laVoie].compteur++; if (voie[laVoie].compteur >= voie[laVoie].nbrePas) { voie[laVoie].compteur = 0; } break; case modeDOWN: voie[laVoie].compteur--; if (voie[laVoie].compteur < 0) { voie[laVoie].compteur = voie[laVoie].nbrePas - 1; } break; case modePEND: ns = 2 * (voie[laVoie].nbrePas - 1); voie[laVoie].compteurPendulum = (voie[laVoie].compteurPendulum + 1) % ns; if (voie[laVoie].compteurPendulum < voie[laVoie].nbrePas) { voie[laVoie].compteur = voie[laVoie].compteurPendulum; } else { voie[laVoie].compteur = ns - voie[laVoie].compteurPendulum; } break; case modeRND: voie[laVoie].compteur = random(voie[laVoie].nbrePas); break; } } } majVoie(); } void majSortie8() { int ns; if (voie[0].on) { if (voie[0].nbrePas == 1) { voie[0].compteur = 1; } else { switch (voie[0].mode) { case modeUP: voie[0].compteur = (voie[0].compteur + 1) % voie[0].nbrePas; break; case modeDOWN: voie[0].compteur--; if (voie[0].compteur < 0) { voie[0].compteur = voie[0].nbrePas - 1; } break; case modePEND: ns = 2 * (voie[0].nbrePas - 1); voie[0].compteurPendulum = (voie[0].compteurPendulum + 1) % ns; if (voie[0].compteurPendulum < voie[0].nbrePas) { voie[0].compteur = voie[0].compteurPendulum; } else { voie[0].compteur = ns - voie[0].compteurPendulum; } break; case modeRND: voie[0].compteur = random(voie[0].nbrePas); break; } } majVoie(); } } void majVoie() { // on n'a qu'une voie de 8 inter if (mode8) { if (voie[0].on) { if (voie[0].compteur < 4) { // premier DG509 ON et deuxième OFF PORTB = (PORTB & B11011100) | B00010000 | voie[0].compteur; } else { // premier DG509 OFF et deuxième ON PORTB = (PORTB & B11100011) | B00100000 | ((voie[0].compteur - 4) << 2); } } else { // les deux voies OFF PORTB = PORTB & B11001111; } } else { // mode 2 * 4 voies indépendantes if (voie[0].on) { // 1er DG509, EN = PORT B bit n°4 et l'adresse sur bits 0 et 1 // il faut mettre à 0 les 2 bits avant de les lever PORTB = (PORTB & B11111100) | B00010000 | voie[0].compteur; } else { // 1er DG509, EN = PORT B bit n°4 PORTB = PORTB & B11101111; } if (voie[1].on) { // 2eme DG509, EN = PORT B bit n°5 et l'adresse sur bits 2 et 3 PORTB = (PORTB & B11110011) | B00100000 | (voie[1].compteur << 2); } else { // 2eme DG509, EN = PORT B bit n°5 PORTB = PORTB & B11011111; } } } void lecturePanel() { unsigned long tempo = millis(); voie[0].reset = (digitalRead(pinRESET0) == LOW); // c'est un pullup... voie[1].reset = (digitalRead(pinRESET1) == LOW); if (tempo - dateLecture > 50) { dateLecture = tempo; compteurPotard ++; if (compteurPotard > 4) { compteurPotard = 0; } switch (compteurPotard) { case 0: // le mode de la voie 0 voie[0].mode = analogRead(potMODE0) >> 8; if (voie[0].mode != voie[0].aMode) { voie[0].aMode = voie[0].mode; majVoie(); } break; case 1: // le mode de la voie 1 voie[1].mode = analogRead(potMODE1) >> 8; if (voie[1].mode != voie[1].aMode) { voie[1].aMode = voie[1].mode; majVoie(); } break; case 2: // le nbre de pas de la voie 0 if (mode8) { voie[0].nbrePas = analogRead(potSTEP0) / 114; voie[1].on = false; } else { voie[0].nbrePas = analogRead(potSTEP0) / 205; } voie[0].on = voie[0].nbrePas > 0 ? true : false; if (voie[0].nbrePas != voie[0].aNbrePas) { voie[0].aNbrePas = voie[0].nbrePas; if (voie[0].compteur >= voie[0].nbrePas) { voie[0].compteur = voie[0].nbrePas - 1; } majVoie(); } break; case 3: // le nbre de pas de la voie 1 if (mode8) { voie[1].on = false; } else { voie[1].nbrePas = analogRead(potSTEP1) / 205; voie[1].on = voie[1].nbrePas > 0 ? true : false; if (voie[1].nbrePas != voie[1].aNbrePas) { voie[1].aNbrePas = voie[1].nbrePas; if (voie[1].compteur >= voie[1].nbrePas) { voie[1].compteur = voie[1].nbrePas - 1; } majVoie(); } } break; case 4: // le pot de sélection entre "1x8" et "2x4" mode8 = (digitalRead(pinGENERAL) == LOW); if (mode8 != aMode8) { aMode8 = mode8; majVoie(); } break; } } } void initLecturePanel() { compteurPotard = 0; voie[0].mode = analogRead(potMODE0) >> 8; voie[1].mode = analogRead(potMODE1) >> 8; mode8 = (digitalRead(pinGENERAL) == HIGH); if (mode8) { voie[0].nbrePas = analogRead(potSTEP0) / 114; voie[0].on = voie[0].nbrePas > 0 ? true : false; voie[1].nbrePas = analogRead(potSTEP1) / 205; voie[1].on = false; } else { voie[0].nbrePas = analogRead(potSTEP0) / 205; voie[0].on = voie[0].nbrePas > 0 ? true : false; voie[1].nbrePas = analogRead(potSTEP1) / 205; voie[1].on = voie[1].nbrePas > 0 ? true : false; } }
- interruptions :
void initInterrupt() { // broches UNO pinMode(pinINTERRUPT0, INPUT_PULLUP); pinMode(pinINTERRUPT1, INPUT_PULLUP); attachInterrupt(0, clockIn0, FALLING); // attention : gate inverseuse attachInterrupt(1, clockIn1, FALLING); } // front montant sur la broche D2 = CLOCK IN 0 void clockIn0() { unsigned long tempo = millis(); // antirebonds basic si appui sur le BP plutôt que jack if (tempo - voie[0].lastInterrupt > 10) { voie[0].lastInterrupt = tempo; voie[0].clockInInterrupt = true; } } // front montant sur la broche D3 = CLOCK IN 1 void clockIn1() { if (!mode8) { unsigned long tempo = millis(); if (tempo - voie[1].lastInterrupt > 10) { voie[1].lastInterrupt = tempo; voie[1].clockInInterrupt = true; } } }
- Clics : 9384
Modèle | Largeur | Conso | Coût de revient |
YouTube |
6 hp |
+12V : 25 mA -12V : 2 mA |
12,44 € | TTGTT | |
10 hp | 14,49 € | Quad Delay | ||
20 hp |
+12V : 35 mA -12V : 5 mA |
21,44 € | Dual quad switch | |
10 hp | 13,62 € | Quad logic | ||
12 hp |
+12V : 22 mA -12V : 12 mA |
12,76 € | ||
10 hp |
+12V : 2 mA -12V : 2 mA |
10,37 € | ||
10 hp |
+12V : -12V : |
13,49 € | Quad Crossfader | |
10 hp |
+12V : 1 mA -12V : 1 mA |
10,89 € | Mixer | |
18U * 197 hp =1182 hp |
386 € |
- Clics : 2567
Plus d'articles...
Page 1 sur 3