Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Clonages d'ancètres, conceptions originales, circuit bending, le coin des grenouilles bricoleuses.

Modérateur : darcmorcel

Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

Bonjour à tous,

Un petit message pour vous présenter ce projet que j'ai lancé il y a un an : un synthé modulaire polyphonique DIY avec look and feel analogique vintage, mais une électronique numérique basée sur Pure Data tournant sur un RPi-4.

Image

L'idée est de s'approcher le plus possible d'un rendu analogique avec de l'émulation, et en particulier la gestion des spécificités des circuits analogiques comme les phénomènes non linéaires et les dérives thermiques. Et bien sûr, de présenter une ergonomie classique avec des vrais câbles de patch et des vrais potars.

Le panneau de commande de chaque module est vu comme un contrôleur en protocole OSC.

Pour l'instant, j'en suis à la première étape fonctionnelle :
  • 6 modules au format Eurorack (MIDI, LFO, WAVETABLE VCO, CHAMBERLIN SVF, ADSR/VCA, sortie audio)
  • Potars, switchs et jacks 3.5
  • Faces avant réalisées en impression 3D double-buse (PLA noir mat pour la plaque, PLA silver pour la sérigraphie)
  • Communication de chaque module avec le RPi-4 via un bus I2C
  • Remontée des positions des portars, switchs et des câbles de patch en protocole OSC
  • Pilotage des LEDs également en OSC
  • Moteur de son Pure Data avec une implémentation polyphonique 6 voies pour chaque module physique
J'attaque bientôt "l'analogisation" des algos en ajoutant du non linéaire et du drift.

Je me suis beaucoup inspiré de tout ce que j'ai pu lire sur anafrog et les sites des grenouilles :coucou:
Très utile pour bien comprendre les fondamentaux du modulaire analogique avant de me lancer : merci à tous pour vos publications !
Le fait de vouloir émuler avec des techniques numériques, me pousse à décortiquer les implémentations analogiques, et c'est réellement passionnant.

Si vous voulez en savoir plus, la génèse du projet est décrite ici : https://forum.electrolab.fr/viewtopic.php?f=16&t=1944

Voici quelques démos qui montrent les possibilités de la version actuelle :



Et ici une vidéo de la mise en route du premier module : un VCO wavetable avec morphing 2D sur des tables 8x8.
Ca peut paraître assez éloigné d'un VCO analogique, mais en chargeant avec des ondes sinus, triangle, saw, pulse, en s'en approche.
Je voulais un premier module assez universel pour débuter. Je vais probablement ajouter d'autres VCO beaucoup plus classiques par la suite.



Je me suis rapproché du projet https://hackaday.io/project/162812-poly ... ynthesizer, nous échangeons quelques briques technos, mais les objectifs des deux projet sont sensiblement différents (le projet Hackaday cible une implémentation low cost 100% Teensy ou équivalent, sans vouloir reproduire un look vintage).

Bon, je retourne sur le projet, a bientôt pour la suite !
Frédéric.
WXYZ
Messages : 2620
Inscription : 16 juil. 2012, 09:32

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par WXYZ »

Bien sympatique :sante: une affaire à suivre de près .
... .. .
Avatar de l’utilisateur
stiiiiiiive
Messages : 1632
Inscription : 02 sept. 2013, 15:22
Localisation : Ile de France
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par stiiiiiiive »

Chouette projet, bravo !!
Et bienvenue :)
Avatar de l’utilisateur
Frabas
Messages : 611
Inscription : 09 juin 2018, 20:32
Localisation : Montréal
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par Frabas »

C'est un bien beau projet que je suivrai avec attention!
On vous demande de répondre par "Oui" ou par "Non", alors évidemment, "ça dépend" ça dépasse....
Avatar de l’utilisateur
oryjen
Messages : 9763
Inscription : 15 nov. 2009, 22:16

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par oryjen »

Hello.
Ton panneau a de la gueule!
Un polyphonique aux allures de modulaire, ça m'inspire d'office.
comme les phénomènes non linéaires et les dérives thermiques
Que veux-tu dire exactement ici?
En conception analogique, tous ces petits "défauts" (qui sont plutôt d'ailleurs des "caractéristiques") existent de base, mais sont maîtrisés et normalement inaudibles.
Est-ce qu'une certaine idée de "l'analo" ne repose pas sur la circulation de vidéos et démos réalisées à l'aide d'instruments rincés, à moitié en panne ou totalement déréglés?
Un analo en bonne forme sonne propre et droit.
La différence de qualité, si elle existe, réside ailleurs... Pour moi je la définirais empiriquement comme une sorte de "qualité de présence", que je ne peux étayer par aucun argument scientifique, ne connaissant pas le domaine de manière suffisante...
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

oryjen a écrit : 19 août 2021, 15:35
comme les phénomènes non linéaires et les dérives thermiques
Que veux-tu dire exactement ici?.
Je pense aux filtres type ladder qui ont une réponse non linéaire, comme décrit dans cet article https://cpb-us-w2.wpmucdn.com/sites.gat ... /P_061.pdf
D'après ce que je comprends, c'est ce qui explique le timbre particulier de ces filtres.

Par ailleurs, l'infime différence de tuning entre plusieurs VCO génère des battements dans les synthé analogiques, en particulier en mode unison.
Le phénomène est expliqué ici https://youtu.be/bZY9CceX8Ws?t=496

Actuellement, je n'ai pas encore implémenté ce drift : quand j'active 6 voies avec la même note, c'est comme si je n'avais qu'une seule voie, car chaque oscillateur sort exactement le même signal. C'est le premier truc que je veux améliorer.
Par contre, j'ai déjà un potar pour detuner légèrement le sub-oscillateur de quelques fractions de Hz, et ça fait toute la différence.
Avatar de l’utilisateur
oryjen
Messages : 9763
Inscription : 15 nov. 2009, 22:16

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par oryjen »

Un synthé analogique sorti d'usine est censé avoir exactement ce comportement.
Un déphasage entre les VCOs, même léger, ne peut avoir que deux origines:
-Un désaccord volontaire de la part de l'utilisateur par l'intermédiaire d'une commande DETUNE, afin d'obtenir un "élargissement" du son.
-Un défaut de tuning dû au vieillissement des composants ou à une erreur de calibration.

Oui pour le design de certains filtres.
Par ailleurs, le NIVEAU d'ENTREE du signal audio dans le filtre avant filtrage est déterminant dans le caractère sonore en sortie.
Avatar de l’utilisateur
lulrik
Messages : 157
Inscription : 29 mai 2018, 18:59
Localisation : Ain - Ardèche

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par lulrik »

Chouette synthé ! amuse toi bien :biggrin:
lulrik - Polivoks - Mix modulaire eurorack Yusynth en construction
Avatar de l’utilisateur
pfeuh
Messages : 816
Inscription : 12 févr. 2019, 07:05
Localisation : Choucroute et bière
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par pfeuh »

Superbe! Pour la partie purement électronique, tu en es à quel coût, à la louche?
Les gros m'aiment bien car je suis gros, les cons m'aiment bien car je suis con, mais les gros cons ne m'aiment pas car ce sont des gros cons.
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

pfeuh a écrit : 20 août 2021, 09:06 Superbe! Pour la partie purement électronique, tu en es à quel coût, à la louche?
Ca revient en moyenne à environ 30€ par module (6 potars, 8 jacks, 2 LEDs).
Et environ 150€ pour le RPi-4 avec alim et interface audio.

Donc un peu moins de 350€ pour la conf en photo, sans les patch cables, case, busboard, et sans compter les heures de travail !
Avatar de l’utilisateur
BLT
Messages : 14343
Inscription : 12 nov. 2009, 18:20
Localisation : dans une valise
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par BLT »

Merci de ne pas citer le dernier message directement précédent, ça allonge inutilement les topics et les rend moins fluides à parcourir, il y a un bouton "répondre" là en bas à gauche.
L'équipe d'Anafrog, soit on l'aime, soit on ne l'aime pas. Dans les deux cas elle s'en fout.
"It's not wise to upset a Wookiee."
Avatar de l’utilisateur
pfeuh
Messages : 816
Inscription : 12 févr. 2019, 07:05
Localisation : Choucroute et bière
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par pfeuh »

OK, le prix est conséquent. Est-ce que chaque module est un bloc d'entrées sorties du Pi ou y a-t il un petit micro dédié à chaque module?
Les gros m'aiment bien car je suis gros, les cons m'aiment bien car je suis con, mais les gros cons ne m'aiment pas car ce sont des gros cons.
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

Il y a un MCU ATmega4809 par module.
Il gère les I/O et reporte les valeurs sur le bus I2C qui va vers le RPi.
Le bus I2C passe dans la busboard Eurorack.

Image
Image
Image
Avatar de l’utilisateur
pfeuh
Messages : 816
Inscription : 12 févr. 2019, 07:05
Localisation : Choucroute et bière
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par pfeuh »

Merci, je comprends mieux. Excellent concept, bien vu. Je suppose que tu as développé toi même la carte qui est présente dans chaque module. Je m'étais dit que ce genre de carte pouvait être faite sur une base d'Arduino, mais vu la piètre qualité de ses ADCs... Là, je pense aux cartes Uno et Nano. Les ADC des ATmega4809 sont bien?
Les gros m'aiment bien car je suis gros, les cons m'aiment bien car je suis con, mais les gros cons ne m'aiment pas car ce sont des gros cons.
Pistol
Messages : 171
Inscription : 21 déc. 2010, 22:56

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par Pistol »

Super projet! Quel est le trajet du signal audio et / ou de contrôle numérique: est-il véhiculé physiquement sur les connecteurs de patch?
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

@pfeuh : oui, c'est une carte CPU maison.
J'ai commencé avec un Arduino Nano, Ensuite, je suis passé sur ATmega4809 pour avoir plus de ports d'I/O, et profiter des 16 entrées ADC 10bits. Et ça coûte un peu moins cher (moins de 2€ le chip).
A priori, ces ADC sont suffisants pour digitaliser la position des potars.
J'avais pensé à des encodeurs rotatifs, mais c'est beaucoup plus coûteux, et ça mange plein d'I/O.

@Pistol : le signal audio ne passe pas du tout par les modules et les connecteurs, tout reste dans Pure Data.
D'ailleurs, quand le panneau n'est pas présent, ça continue à faire du son !
Chaque connecteur sortant diffuse en permanence un mot de 10 bits en série (ID du module sur 6 bits + ID connecteur sur 4 bits).
Chaque connecteur entrant reçoit ce signal quand un câble de patch est présent, ce qui lui permet de connaître avec quel connecteur source la connexion est faîte.
Bref, la partie hardware c'est "juste" l'équivalent d'un contrôleur MIDI, qui en plus permet de configurer en dynamique une matrice de connexion virtuelle entre les modules.
Actuellement, le rafraichissement des potars et des connexions se fait à 25 Hz. Je suis principalement limité par le bus I2C qui plafonne anormalement à 40 kbit/s. On devrait pouvoir monter à 100 ou 400 kbit/s, mais là ça ne marche pas, je suppose que ça vient des convertisseurs 3V3/5V que j'ai sur les signaux I2C. Sujet à travailler pour avoir moins de latence sur la prise en compte des potars.
Avatar de l’utilisateur
pfeuh
Messages : 816
Inscription : 12 févr. 2019, 07:05
Localisation : Choucroute et bière
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par pfeuh »

25Hz pour le rafraîchissement des données, ça me parait suffisant. Mais 40kHz pour la vitesse I2C , c'est vrai que c'est faible. Avis totalement personnel et subjectif, je trouve les cartes un peu surdimensionnées pour mettre dans du modulaire.

Une question me titille. Ayant assemblé un poly4 dans un EuroRack, le plus dur à mon sens a été de trouver des modules avec commande unique pour les 4 voix. par exemple un quadruple ADSR avec une seule commande Attack mais qui se répète 4 fois pour les 4 voix, idem pour les autres paramètres. A tel point que certains module n'existent pas, comme par exemple un LFO 4 voix à commande unique mais avec 4 gates. Tu proposes les 6 voix programmables individuellement (je dis ça car je vois 6 gros modules identiques, donc je suppose qu'il y en un par voix). Pour un sextuple synthé mono ça a du sens, mais pour un 6 voix, est-ce bien ce que tu voulais?
Les gros m'aiment bien car je suis gros, les cons m'aiment bien car je suis con, mais les gros cons ne m'aiment pas car ce sont des gros cons.
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

Oui, peut-être un peu surdimensionné : on pourrait tout gérer avec un seul MCU et des multiplexeurs pour booster le nb d'I/O.
Jouable aussi avec des registres à décalage et un daisy chain série entre modules.
Mais quand on fait la somme des circuits logiques nécessaires, finalement, le MCU par module ne coûte pas beaucoup plus cher, et c'est beaucoup plus souple.
Et je voulais aller jusqu'au bout d'un concept basé sur un busboard I2C, avec une adresse I2C par module.
Il existe des chips d'I/O I2C, mais ça ne permet pas de faire la même chose. Le polling 25 kHz je le tiens car j'ai optimisé les communications.
Par exemple, les valeurs des potars ne circulent sur le bus I2C que s'il y a une variation.
Et comme en principe on a que 2 mains pour tourner les boutons, le trafic I2C lié à la mise à jour des potars est faible.
En fait, avec mon implémentation actuelle, la vitesse de rafraichissement est quasiment indépendante du nombre du modules.
Ca ne serait pas le cas avec une logique plus simple.

Les 6 modules pour 6 voix, c'est un hasard, c'est complètement indépendant. Les modules sont par fonction.
Chaque module, ou plus exactement son instance dans Pure Data, gère 6 voix.
Le module physique lui-même ne gère pas des voix, mais des potars et des connexions.
Dans les câbles de patch, on a virtuellement 6 signaux CV en // qui circulent.
Le LFO est aussi un 6 voix indépendantes.
Actuellement, c'est effectivement l'équivalent de 6 synthés mono en //.
Mon choix de 6 voix est un compromis pour limiter la charge CPU sur RPi.
Mais on pourrait passer à 12 voix par simple config soft (c'est un paramètre).

Je ne suis pas encore au clair sur les modules qui devront avoir un mode mono.
Certainement oui, pour les effets type reverb.
Le LFO aussi si on veut par exemple piloter de la même façon les 6 VCF.
Et aussi parfois le VCF lui-même si on veut un filtre unique pour les 6 voix (ça fera une différence pour les effets de saturation).
Pistol
Messages : 171
Inscription : 21 déc. 2010, 22:56

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par Pistol »

Donc si je comprends bien le chemin du signal est défini par les branchements des câbles de patch qui « configurent » l’arrangement des modules Puredata et leurs interconnexions ? Dans ce cas, est-ce que l’insertion ou le retrait d’un module se fait rapidement? Est-ce qu’il y a des restrictions dans les branchements (par exemple un signal de contrôle branché dans une entrée audio)? Enfin, peut-on visualiser le patch global sur un moniteur et le sauvegarder puis le rappeler à volonté? Beaucoup de questions, mais aussi d’interêt!
Avatar de l’utilisateur
f1oat
Messages : 28
Inscription : 09 mars 2021, 13:10
Contact :

Re: Pd-Polymod2 : synthé modulaire polyphonique DIY à modélisation analogique

Message par f1oat »

Oui, c'est bien ça, les câbles sont là pour configurer en dynamique les liaisons entres modules dans Pure Data.
Je n'ai pas mesuré la latence pour la prise en compte des modifs dans les câbles, mais à la louche, je dirais 100ms.
Pour l'instant, la visu de debug que j'ai développée affiche les potars, les LEDs et les noms/numéros des connecteurs.
Je pense ajouter sur chaque connecteur l'ID de celui avec lequel il est connecté.
La sauvegarde des patchs est dans mon todo list.
Il n'y a pas de restriction dans les connexions, tous les signaux ont le même format (6 streams de floats dans chaque câble virtuel).
Le seul pb peut être lié aux niveaux. Pour l'instant, je suis sur du 0/10 pour les CV, et -1/+1 pour l'audio.
Sur les LFO, de mémoire j'ai du 0/10 et du -5/5 suivant la forme d'onde.
Mais ça va peut-être changer, je n'ai pas encore tout figé.
Répondre
cron