Le true bypass simple:

Un thru bypass de base est confié à un interrupteur au pied (footswitch) fonctionnant en on/off et muni d'au minimum 2 circuits et cablé comme suit :

Ce montage est très largement documenté sur internet pour modifier des pédales existantes. La version dessinée ici a le bon gout de mettre l'entrée de l'effet à la masse lorsque le Bypass est On, ce qui évite de laisser son entrée en l'air, et de capter des bruits indésirables.

True bypass à relais :

Le cablage est similaire à un true bypass à interrupteur, sauf que la commutation est confiée à un relais, donc la commande peut être effectuée par un circuit électronique qui peut être commandé par un fooswitch momentané, ou n'importe quel autre signal logique de commande (ex : midi). Ici le relais a 3 circuits, ce qui permet de surcroit d'alimenter une led on/off de l'effet. On retrouve à nouveau la mise à la masse de l'entrée de l'effet lorsque le Bypass est actif.

True bypass intelligent

Alors tout a été dit sur le true bypass avec les 2 schémas ci dessus? Et bien non... Car on peut souhaiter rendez ce bypass 'intelligent'. Par exemple avoir un dispositif qui fonctionne comme suit avec un footswitch momentané :

- Pression brève sur le switch: on change l'état du true bypass, le faisant passer de on à off et réciproquement.

- Pression longue sur le switch: on change momentanément l'état du true bypass (ex: on >off) et ce tant que le switch est appuyé. Si on relache le switch, cela revient à son état initial.

- Pilotage d'une led à 4 états (couleurs) :

  • True bypass off
  • True bypass on
  • True bypass momentanément on (appui long)
  • True bypass momentanément off (appui long)
  • D'un point de vue logiciel, le double clic reste disponible pour un autre usage!

Là cela devient intéressant, car on peut imaginer une distorsion ou un boost équipé de ce dispositif. La pédale est éteinte, et en appuyant et restant appuyé on l'allume tant qu'on reste appuyé pour avoir un peu plus de gain / saturation pour faire un solo par exemple.... et on relache quand on a fini!

Réalisation

Cela aurait pu être réalisé avec des circuits logiques, mais j'ai ici préféré utiliser un petit microprocesseur. En effet, il est facile d'intervenir dessus pour changer les temps de détection d'appui long, temps de commutation, juste en changeant le code et en reflashant. Pratique. Ici, j'ai choisi d'utiliser un attiny85. Ce microprocesseur compatible arduino (avec quelques limitations) a très peu de mémoire (8Ko de flash Eprom pour le code, 512 octets d'E2Prom et 512 octets de RAM), mais cela sera largement suffisant pour gérer notre switch. Une petite carte sympa va nous faciliter la vie: la Digispark AtTiny85 :

Nous aurons besoin sur la digispark :

  • D'une entrée pour connecter notre interrupteur momentané au pied (P2)
  • D'une sortie pour piloter le relais et éventuellement une led m/a (P1)
  • Optionnellement d'une sortie SPI pour piloter une led RGB neopixel, ce qui nous permettra de choisir la couleur en fonction de l'état (parmis les 4 états cité ci dessus). Nous utiliserons P0
  • A noter qu'il ne vaut mieux pas utiliser P3 et P4 qui sonbt pris par l'usb, ce qui nous permettra de mettre à jour la carte facilement.
  • P5 reste disponible pour un usage ultérieur.

Il nous faudra également un relais 5V, 2RT (ou autrement dit 2 contacts repos travail). Chaque circuit du relais founit un point commun (C), sur sortie vers un contact normalement fermé (NC) lorsque le relais n'est pas actionné, et son pendant normalement ouvert (NO) lorsque le relais n'est pas actionné.

En voici le schéma de principe et le placement sur une platine d'essai:

schema

Fritzing

A noter que le cablage des 2 contacts du relais n'est pas représenté à des fins de simplification. Ils devront être cablés comme déjà décrit en haut.

Code

Il va y avoir de petites manipulations pour compiler et installer le code; En effet, en plus de l'environnement Arduino, il va falloir installer les drivers (https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip) et un addon pour l'environnement arduino pour suopporter l'ATTiny85. Pour ce faire il faut aller dans le menu "Fichier / Préférences / URL de gestionnaire de cartes supplémenaires" de l'environnement arduino et ajouter la source "https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json" .

La bibliothèque "Onebutton" est requise pour ce projet. Pour l'installer, aller dans "Croquis / Importer une bibliothèque / gérer les bibliothèques" et utiliser le moteur de recherche pour isntaller "onebutton". Malheureusement cette bibliothèque utilise de toutes nouvelles directives qui ne sont pas supportées par le compilateur intégré à l'environnement pour ATTiny85. Cela se corrige simplement en éditant le fichier %homepath%\Documents\Arduino\libraries\OneButton\src\OneButton.h et en mettant // devant les lignes 57, 64 et 71 (celles qui commencent par deprecated...):

 /**
 * set # millisec after safe click is assumed.
 */
 //  [deprecated("Use setDebounceMs() in...]
 void setDebounceTicks(const unsigned int ms) { setDebounceMs(ms); }; // deprecated
 void setDebounceMs(const unsigned int ms);
 /**
  * set # millisec after single click is assumed.
  */
//  [deprecated("Use setClickMs() inste...]
 void setClickTicks(const unsigned int ms) { setClickMs(ms); }; // deprecated
 void setClickMs(const unsigned int ms);
 /**
  * set # millisec after press is assumed.
  */
 //  [deprecated("Use setPressMs() inste...]
 void setPressTicks(const unsigned int ms) { setPressMs(ms); }; // deprecated
 void setPressMs(const unsigned int ms);

Une fois ceci fait, aller dans "Outils / Cartes / Gestionnaire de cartes", et installer le paquet nommé "Digistump AVR Boards".

Choisir ensuite comme type de carte "Digispark Default 16.5Mhz". L'environnement de programmation est prêt.

Le code se trouve ICI: TrueBypass.ino