Comment l'auteur de TV-B-Gone a fait le synthétiseur de musique ArduTouch

Instrument de formation au traitement du signal numérique compatible Arduino




Un article de Mitch Altman, l'inventeur qui a inventé la télécommande universelle pour éteindre les téléviseurs TV-B-Gone, et l'organisateur de conférences de hackers

Enfant, j'étais attiré par la musique et j'ai été frappé par les sons du synthétiseur Moog de l'album de 1968 Switched-On Bach . J'avais besoin d'apprendre à faire de tels sons! C'est ainsi qu'a commencé la formation et la fabrication de synthétiseurs à vie, parallèlement à mon entrée dans l'industrie de la technologie , où j'ai fini par créer TV-B-Gone , un gadget qui vous permet d'éteindre presque tous les téléviseurs télécommandés. Depuis que j'ai gagné en popularité sur TV-B-Gone, j'ai créé de nombreux kits pour fabriquer des appareils d'extérieur amusants que je présente dans le monde entier lors de conférences DIY . Sur eux, les débutants apprennent à souder, à pénétrer dans le monde de l'électronique et des microcontrôleurs. En me souvenant de ma jeunesse, je voulais leur fournir un ensemble facile à assembler et à utiliser, mais en même temps c'est un synthétiseur musical à part entière.

C'est ainsi qu'est né ArduTouch, d'une valeur de 30 $. Ce projet comprend une carte, un clavier tactile, ATMega328P (le même processeur utilisé dans l'Arduino Uno) et un amplificateur audio avec un haut-parleur. Il possède également une bibliothèque de logiciels qui peut servir de point d'entrée dans le monde du traitement numérique du signal.

La plus grande difficulté dans le développement de la carte était le nombre limité de broches d'E / S sur ATMega328P. J'ai utilisé 12 broches pour le clavier pour réaliser l'ensemble de l' échelle musicale chromatique dans son ensemble. Le clavier est similaire au stylophone - l'un de mes synthétiseurs analogiques préférés de la fin des années 1960 - et utilise un capteur capacitif pour la reconnaissance. Deux broches supplémentaires sont utilisées pour la sortie audio stéréo, et les deux autres sont pour le transfert de données série (ArduTouch peut être programmé à l'aide d' outils de développement standard pour Arduino, bien qu'un câble FTDI soit nécessaire pour se connecter à un ordinateur). Les contacts restants étaient juste suffisants pour deux boutons et deux potentiomètres contrôlant le synthétiseur.

Pour qu'une personne puisse obtenir immédiatement des résultats audibles après le soudage, j'ai mis la puce et le haut-parleur de l'amplificateur LM386 sur la carte (l'amplificateur contourne lors de la connexion d'une prise audio). Les puces DAC sont chères, j'ai donc utilisé la modulation de largeur d'impulsion pour coder les canaux audio stéréo sortant de l'ATMega328P. Des filtres passe-bas pour chaque canal, composés d'une résistance et d'un condensateur, convertissent le PWM en audio.

Les ingénieurs en électronique expérimentés comprendront que le circuit ArduTouch est simple. La base du projet est une bibliothèque de logiciels de synthèse audio sophistiquée utilisée pour programmer ATMega328P.

Il est assez simple d'obtenir le microcontrôleur pour émettre les notes les plus simples. Il suffit de connecter l'enceinte aux contacts et d'alterner sous et hors tension, en envoyant une onde carrée à différentes fréquences (cette technologie a été utilisée par Alan Turing lui-même dans l'ordinateur Manchester Mark II ). Mais le résultat est un son net, loin de la riche palette du synthétiseur Moog.

Pour améliorer le son, je devais me tourner vers des synthétiseurs numériques. Ils sont engagés dans la création de représentations binaires d'ondes audio, leur distorsion et la conversion de ces nombres en signaux analogiques. Cela peut se faire de différentes manières, et je suis heureux de noter qu'ArduTouch prend en charge un grand nombre de techniques différentes, y compris l'utilisation de tables d'ondes (à l'aide d'échantillons stockés en mémoire) et la génération de sons (comptage audio à la volée).

Après avoir créé les représentations binaires de base du son, nous passons à l'étape critique de sa «distorsion». Si vous ne jouez pas avec le son, il s'avère généralement mince et stérile. Des sons sympas sont obtenus après manipulation dynamique. ArduTouch est capable d'appliquer une variété de fonctions et d'effets dynamiques numériques, y compris le trémolo, le vibrato, le portamento, ainsi que des filtres basse et haute fréquence.




ArduTouch utilise relativement peu de composants


Même les débutants peuvent le récupérer

Et bien que conceptuellement tout ce qui précède ne soit pas quelque chose de difficile à apprendre et à comprendre, la programmation elle-même est assez compliquée. La bibliothèque ArduTouch, créée par mes soins avec mon ami Bill Alessi, effectue tous les calculs de bas niveau - et il nous a fallu deux ans pour la créer.

La bibliothèque est conçue pour être flexible et permettre aux utilisateurs même inexpérimentés de créer de nouveaux synthétiseurs qui produisent des sons différents. Le synthétiseur Thick combinant quatre ondes en dents de scie est fourni avec le kit, et d'autres synthétiseurs peuvent être téléchargés séparément . Les utilisateurs expérimentés peuvent apprendre à créer des synthétiseurs à partir de zéro en invoquant des fonctions de haut niveau. J'espère que les gens qui aiment le projet créeront de nouveaux synthétiseurs et partageront leur code avec moi afin que je puisse le partager avec les autres.

Mais même lorsque vous utilisez le synthétiseur par défaut, le son est étonnamment bon pour un microcontrôleur de faible puissance (prenant en charge une fréquence d'échantillonnage de seulement 15 kHz) et un équipement peu coûteux. Vous pouvez écouter de nombreuses démos sur ma chaîne YouTube .

Pour développer le projet à l'avenir, je continuerai d'améliorer la bibliothèque ArduTouch pour Arduino et de disposer de synthétiseurs prêts à l'emploi supplémentaires. Je travaille également sur la création d'une version plus puissante d'ArduTouch, adaptée aux performances. Ce ne sera plus un kit, mais il restera toujours compatible avec Arduino. Il aura un microcontrôleur 32 bits avec de nombreuses broches d'E / S, un DAC, un tas de mémoire (qui vous permettra d'utiliser MIDI ), un petit écran LCD, plusieurs boutons et potentiomètres et des indicateurs LED - et, bien sûr, un son amélioré.

Source: https://habr.com/ru/post/fr433212/


All Articles