Open source

À la une

DSPi : un Raspberry Pi Pico 2 devient un véritable processeur audio multicanal open source

Un Raspberry Pi Pico comme carte son, pourquoi pas. Un Pico 2 capable de gérer égalisation paramétrique, filtrage actif, correction temporelle, crossfeed casque, loudness, mixage matriciel et jusqu’à huit sorties numériques plus un canal subwoofer, là ça devient nettement plus intéressant. DSPi transforme les microcontrôleurs RP2040 et RP2350 en véritables processeurs audio programmables sous licence GPLv3, avec une interface USB standard et des outils de configuration pour ordinateur. Et contrairement à beaucoup de projets audio DIY, celui-ci commence sérieusement à ressembler à quelque chose que l’on pourrait réellement intégrer dans une installation Hi-Fi ou des enceintes actives.

11 min de lecture 0 commentaire
DSPi : un Raspberry Pi Pico 2 devient un véritable processeur audio multicanal open source

Le Raspberry Pi Pico avait visiblement encore du temps libre

Le Raspberry Pi Pico est un drôle de morceau de silicium. On l’a déjà vu piloter des écrans, remplacer des contrôleurs propriétaires, émuler de vieux périphériques, faire tourner de petits synthétiseurs et gérer suffisamment de GPIO pour transformer un bureau en nid de Dupont.

Avec DSPi, il se découvre désormais une carrière dans l’audio.

Le projet de Weeb Labs transforme un Pico équipé d’un RP2040 ou un Pico 2 équipé du plus récent RP2350 en processeur numérique de signal audio complet. Une fois le firmware installé, le microcontrôleur apparaît notamment comme une interface audio USB et peut appliquer toute une chaîne de traitement en temps réel avant d’envoyer le son vers différents périphériques numériques.

Le dépôt GitHub officiel de DSPi décrit un système capable d’assurer correction acoustique, filtres actifs, égalisation paramétrique, alignement temporel, compensation physiologique du volume, crossfeed pour casque, mixage matriciel et plusieurs autres traitements généralement associés à du matériel audio spécialisé.

Le projet existe depuis plusieurs mois, mais il vient de refaire surface cette semaine grâce à plusieurs publications techniques, notamment chez Adafruit et CNX Software , tandis que le firmware continue d’évoluer rapidement.

Autrement dit, ce n’est plus vraiment le petit projet qui fait clignoter une LED au rythme de la musique.

Un DSP complet dans un microcontrôleur à deux cœurs

Le principe d’un DSP audio est assez simple à expliquer : le signal entre, une série de calculs lui est appliquée en temps réel, puis le signal traité ressort.

Dans une enceinte active, cela peut servir à envoyer uniquement les basses fréquences vers le woofer et les hautes vers le tweeter. Dans une installation Hi-Fi, on peut corriger certains défauts acoustiques de la pièce. Dans un casque, on peut appliquer du crossfeed pour réduire cette sensation parfois artificielle d’avoir chaque canal collé à une oreille.

DSPi empile précisément ce genre de fonctions.

Chaque canal peut recevoir son propre gain, son égalisation, son délai et ses paramètres de routage. Le système propose notamment dix bandes d’égalisation paramétrique par canal, des filtres de crossover, l’inversion de phase, un mélange matriciel, une compensation du volume basée sur les courbes d’isosonie ISO 226 et un système de crossfeed inspiré de BS2B.

La différence entre le Pico original et le Pico 2 est toutefois assez importante.

Sur le RP2040, DSPi travaille principalement en arithmétique fixe Q28 et utilise même du code assembleur ARM optimisé à la main pour certaines opérations critiques. Le RP2350 bénéficie quant à lui d’une unité de calcul flottant matérielle, ce qui lui laisse beaucoup plus de marge pour les traitements audio.

Résultat : la configuration RP2040 peut gérer jusqu’à cinq canaux de sortie selon le mode utilisé, tandis que la version RP2350 monte jusqu’à neuf sorties logiques et peut appliquer ses égalisations sur onze canaux internes. La documentation technique de DSPi détaille cette répartition entre les deux cœurs du microcontrôleur.

Pas mal pour une puce qui tient sous l’ongle.

44,1, 48 et 96 kHz sans demander un PC de studio

Côté formats, DSPi accepte du PCM 16 ou 24 bits avec des fréquences d’échantillonnage de 44,1, 48 et 96 kHz via USB.

Le microcontrôleur fonctionne à 307,2 MHz. Sur RP2040, cela implique un overclocking avec une légère augmentation de tension ; sur RP2350, la fréquence est également fixée à cette valeur. Le choix n’est pas arbitraire : il permet notamment d’obtenir des diviseurs PIO propres pour les différentes fréquences audio supportées.

Le Pico devient alors une interface audio USB standard utilisable sous Windows, macOS, Linux et iOS, sans devoir installer un pilote audio exotique pour simplement lui envoyer du son.

Et derrière, DSPi peut distribuer ce flux vers plusieurs sorties S/PDIF ou I²S.

Sur le Pico 2, quatre slots stéréo sont disponibles, soit huit canaux numériques. Chaque slot peut être configuré indépendamment en S/PDIF ou I²S, ce qui permet par exemple de piloter plusieurs DAC différents ou de construire une enceinte active trois ou quatre voies.

Un neuvième canal peut également servir de sortie PDM destinée notamment à un subwoofer.

C’est typiquement le genre de fiche technique qui commence par « j’avais un Pico dans un tiroir » et finit avec un fer à souder, trois DAC et une paire d’enceintes complètement démontée à deux heures du matin.

Non, le Pico ne possède pas soudainement huit prises RCA

Une précision importante s’impose tout de même : DSPi n’est pas une carte audio analogique huit canaux prête à être vissée dans un boîtier.

Le Pico fournit principalement les signaux numériques.

Pour une sortie analogique classique, il faudra donc lui ajouter un ou plusieurs DAC I²S. Pour une sortie optique S/PDIF, la documentation prévoit par exemple l’utilisation d’un émetteur compatible. La documentation de câblage officielle précise même que les sorties I²S peuvent être directement raccordées à de nombreux DAC standard.

DSPi est donc davantage le cerveau d’un système audio que le système complet.

Et c’est justement ce qui le rend intéressant.

Un bidouilleur peut choisir ses propres convertisseurs numérique-analogique, amplificateurs et interfaces plutôt que d’être enfermé dans une carte propriétaire impossible à modifier.

Pour l’entrée, le système accepte évidemment l’USB et le S/PDIF, mais le Pico 2 peut également recevoir un flux I²S provenant d’un ADC externe. La documentation propose par exemple un montage avec un PCM1808 pour ajouter une entrée analogique stéréo.

Là encore, nous sommes davantage dans le territoire du DIY que dans celui du « je branche et Spotify apparaît ».

Une enceinte active faite maison devient soudain beaucoup moins absurde

C’est probablement dans la construction d’enceintes actives que DSPi devient le plus séduisant.

Prenons une enceinte trois voies classique : woofer, médium et tweeter.

Avec un filtrage traditionnel, il faut fabriquer un crossover passif à base de condensateurs, résistances et selfs dimensionnés précisément pour les haut-parleurs utilisés.

Avec une architecture active, le signal peut être séparé numériquement avant amplification.

DSPi peut ainsi envoyer les graves vers un DAC et un ampli, les médiums vers un second canal et les aigus vers un troisième, tout en appliquant indépendamment fréquence de coupure, égalisation, niveau, polarité et délai.

Sur un Pico 2, la matrice 2 × 9 permet de router les deux canaux d’entrée vers les différentes sorties. La documentation du mixeur matriciel donne d’ailleurs des exemples pour des systèmes stéréo actifs à deux, trois ou quatre voies.

La correction temporelle est particulièrement intéressante : si le tweeter et le woofer ne sont pas physiquement alignés, quelques millimètres ou centimètres d’écart peuvent être compensés numériquement plutôt que de devoir sortir immédiatement la scie circulaire.

Votre menuiserie vous remerciera.

Et tout se règle depuis une vraie interface graphique

Le firmware seul serait déjà intéressant, mais le projet dispose également d’applications de contrôle.

Sous Windows, la DSPi Console officielle propose une interface WinUI permettant de modifier en direct l’égalisation, les crossovers, le routage, l’alignement temporel, le crossfeed, la dynamique ou encore les paramètres matériels. Les modifications sont envoyées au Pico par USB sans qu’il soit nécessaire de recompiler ou reflasher le firmware à chaque changement.

Des outils existent également autour de macOS, Linux et même du contrôle depuis le navigateur.

Un configurateur WebUSB communautaire fonctionne par exemple entièrement côté navigateur et sait déjà gérer une bonne partie des fonctions récentes de DSPi.

Les réglages peuvent ensuite être enregistrés dans la mémoire flash du microcontrôleur.

Le firmware possède dix emplacements de presets, ce qui permet par exemple de conserver une configuration pour l’écoute musicale, une autre pour un casque, une troisième pour des mesures ou différents profils d’enceintes.

Et tout cela continue ensuite à fonctionner sans ordinateur connecté.

Le projet commence même à simuler des lampes

Parce qu’un égaliseur 10 bandes et huit sorties numériques n’étaient manifestement pas encore assez compliqués, la branche de développement continue d’empiler les fonctions.

La version 1.1.6-beta4 publiée le 28 septembre ajoute notamment un modèle de saturation simulant plusieurs familles de lampes ainsi qu’un limiteur brickwall individuel sur chaque sortie.

La beta précédente avait déjà intégré un analyseur de spectre FFT 1024 points, un générateur de sous-harmoniques et différentes fonctions destinées aux surfaces de contrôle physiques.

Le firmware sait en effet dialoguer avec boutons, potentiomètres, encodeurs, LED, télécommandes infrarouges et petits afficheurs.

Il devient donc possible de construire un appareil totalement autonome ressemblant davantage à un véritable processeur audio qu’à une carte de développement posée sur une breadboard.

Pour les plus courageux, évidemment.

Les autres peuvent continuer à prétendre que le tas de câbles fait partie du design industriel.

Une limite à connaître : les deux cœurs ne peuvent pas tout faire à la fois

Le Pico reste malgré tout un microcontrôleur.

Et même plutôt bien optimisé, il existe un moment où la physique rappelle qu’on ne dispose pas d’un Ryzen caché sous la carte.

DSPi partage notamment le second cœur entre certaines tâches.

Sur le RP2350, lorsqu’on utilise les huit sorties S/PDIF/I²S, le deuxième cœur participe au traitement des canaux supplémentaires. Si l’on active à la place la sortie PDM dédiée au subwoofer, ce cœur doit se consacrer au modulateur delta-sigma et les sorties numériques supérieures deviennent indisponibles.

La documentation officielle explique clairement cette limitation : le choix se fait donc entre une configuration multicanal étendue et certains usages spécifiques de la sortie PDM.

Ce n’est pas vraiment un défaut caché.

C’est plutôt le rappel assez impressionnant que toute cette chaîne de traitement tourne sur un composant qui n’avait pas exactement été commercialisé comme DSP Hi-Fi haut de gamme.

Attention également au mot « production-ready »

Le projet présente actuellement les implémentations RP2040 et RP2350 comme pleinement testées et utilisables, mais cela ne signifie pas qu’un montage DIY autour de DSPi possède automatiquement les mêmes garanties qu’un appareil audio commercial.

Le choix du DAC, l’alimentation, la conception du PCB, les niveaux électriques, les masses, le bruit et la qualité de l’étage analogique restent entre les mains du constructeur.

Le suivi des problèmes sur GitHub montre d’ailleurs que des cas particuliers subsistent autour de certaines cartes RP2350, de la synchronisation du volume sous Linux ou de configurations S/PDIF spécifiques.

La documentation rappelle également que les GPIO du RP2040 ne sont pas tolérants au 5 V.

En clair : ne branchez pas n’importe quoi sur n’importe quelle broche sous prétexte que « ça ressemble à de l’audio ».

Le petit nuage magique situé au-dessus du composant après inversion du 3,3 V et du 5 V n’améliore généralement pas la scène sonore.

L’open source est particulièrement logique dans l’audio

DSPi est publié sous GPLv3 et son code, ses scripts de compilation ainsi qu’une grande partie de sa documentation technique sont accessibles publiquement.

Dans ce domaine, ce choix est particulièrement intéressant.

De nombreux DSP audio commerciaux reposent sur des logiciels propriétaires qui peuvent disparaître longtemps avant le matériel. Un processeur parfaitement fonctionnel peut ainsi devenir extrêmement pénible à configurer dix ans plus tard parce que l’application Windows indispensable n’est plus distribuée ou refuse de tourner.

Avec DSPi, le firmware peut être recompilé, modifié et adapté.

Le protocole USB est documenté.

Les interfaces de contrôle peuvent être réimplémentées.

Et si quelqu’un veut ajouter une fonction totalement inutile permettant de modifier le crossover depuis Doom, rien ne l’en empêche techniquement.

C’est aussi l’intérêt d’utiliser une plateforme aussi répandue que les RP2040 et RP2350 : il existe énormément de cartes compatibles, une chaîne de développement bien connue et une communauté capable de remplacer assez facilement un composant ou d’adapter le projet à une carte maison.

Le Pico 2 trouve ici l’un de ses usages les plus convaincants

DSPi ne remplacera évidemment pas tous les processeurs audio du marché.

Un produit professionnel intégré offrira souvent de meilleurs convertisseurs, des entrées analogiques propres, un boîtier, des protections électriques et surtout le privilège extrêmement sous-estimé de fonctionner cinq minutes après son déballage.

DSPi demande davantage de travail.

Il faut choisir les convertisseurs, câbler les interfaces, comprendre un minimum le routage audio et accepter de voir un oscilloscope apparaître tôt ou tard dans le projet.

Mais c’est précisément pour cela qu’il est intéressant.

Il transforme un microcontrôleur généraliste en une véritable brique audio réutilisable, suffisamment performante pour fabriquer une enceinte active, un crossover numérique, une interface multicanal ou un petit processeur Hi-Fi totalement personnalisé.

Et le plus étonnant reste peut-être que le Raspberry Pi Pico, lancé comme une carte de développement destinée à apprendre l’électronique et l’embarqué, commence à se retrouver au centre de systèmes qu’on aurait autrefois confiés à des DSP spécialisés.

À force d’ajouter des fonctions, il va finir par demander qu’on l’appelle « monsieur le processeur audio ».

Et vu ce qu’il fait maintenant avec deux cœurs ARM et quelques millimètres carrés de silicium, on ne va probablement pas le contrarier.

Sources & références

Tags

Communauté

Commentaires

La discussion est ouverte

Aucun commentaire pour le moment. Soyez le premier à réagir.

Publication après modération