Table des matières:

Synthétiseur Arduino MIDI Chiptune : 7 étapes (avec photos)
Synthétiseur Arduino MIDI Chiptune : 7 étapes (avec photos)

Vidéo: Synthétiseur Arduino MIDI Chiptune : 7 étapes (avec photos)

Vidéo: Synthétiseur Arduino MIDI Chiptune : 7 étapes (avec photos)
Vidéo: Arduino Chiptune - "7 Years" Cover 2024, Juillet
Anonim
Synthétiseur Arduino MIDI Chiptune
Synthétiseur Arduino MIDI Chiptune

Revivez le plaisir de la musique des premiers jeux informatiques avec un authentique synthétiseur chiptune 8 bits, que vous pouvez contrôler via MIDI dans le confort de n'importe quel logiciel DAW moderne.

Ce circuit simple utilise un Arduino pour piloter une puce de générateur de sons programmable AY-3-8910 (ou l'un de ses nombreux clones) pour recréer ce son des années 1980. Contrairement aux nombreuses conceptions qui nécessitent un logiciel spécialisé pour éditer de la musique, cela ressemble à un périphérique MIDI USB standard. Le synthétiseur a un algorithme intelligent qui essaie de faire jouer les notes les plus pertinentes sur le plan musical; dans de nombreux cas, vous pouvez lancer directement des fichiers MIDI non édités et la mélodie sort immédiatement. Le coût total devrait être d'environ 20 £.

Étape 1: choses dont vous aurez besoin

Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin

La liste complète des pièces pour cela, comme vous le voyez sur les images, est la suivante:

  • Clone Sparkfun Pro Micro (option 5V, 16MHz). J'ai utilisé celui-ci sur Amazon.
  • Puce Yamaha YM2149F PSG. J'ai eu le mien sur eBay.
  • 2 condensateurs céramiques 100nF
  • 1 chacune des résistances 75R, 1K et 100K (une valeur nominale de 1/4 de watt convient).
  • Condensateur à disque céramique 4.7nF
  • Condensateur électrolytique 1uF (tension nominale > 5V).
  • Prise IC DIP 0.6" 40 broches
  • 2 en-têtes 12 voies 0,1" (celui-ci de CPC)
  • Planche de prototypage, 3" par 2" env. J'en ai acheté un lot en vrac, encore une fois sur Amazon.
  • Prise phono à montage sur PCB
  • Fil miniature à âme pleine (comme celui-ci).

Vous aurez également besoin d'un fer à souder, d'une soudure, d'un coupe-fil, d'une pince et d'une pince à dénuder.

Étape 2: Pièces alternatives

Pièces alternatives
Pièces alternatives
Pièces alternatives
Pièces alternatives
Pièces alternatives
Pièces alternatives

Puces alternatives de générateur de sons programmables

Le YM2149 que j'ai utilisé est un clone du CI d'origine General Instruments AY-3-8910. (Le premier prototype utilisait un AY-3-8910 que j'ai acheté sur eBay, mais il s'est avéré que le générateur de bruit blanc ne fonctionnait pas. Visage triste). Vous pouvez utiliser l'un ou l'autre pour ce projet sans aucun changement.

General Instruments a également fabriqué des variantes AY-3-8912 et AY-3-8913, qui étaient le même silicium à l'intérieur de boîtiers plus petits, sans quelques broches d'E/S supplémentaires. Ces broches ne sont pas nécessaires à des fins audio, et ce projet ne les utilise pas. Vous pouvez utiliser un AY-3-8912 ou -8913, suivez simplement les brochages indiqués ci-dessus.

Arduinos alternatifs

Le "Pro Micro" que j'ai utilisé est une copie de la carte Pro Micro de Sparkfun. Si vous n'êtes pas à l'aise avec le code Arduino, il est préférable de vous en tenir à cela; si vous êtes heureux d'adapter le design, vous aurez besoin des spécifications suivantes

  • Périphérique ATmega 16u4 ou 32u4 (nécessaire pour agir comme un périphérique USB MIDI; l'ATmega 168 ou 328 ne peut pas le faire).
  • Fonctionnement 5V (l'AY-3-8910 fonctionne à 5V) et vitesse d'horloge de 16MHz.
  • Au moins 13 lignes d'E/S numériques.

    La broche du port PB5 doit être connectée (elle est utilisée pour générer un signal d'horloge de 1 MHz). Sur le Pro Micro, elle est utilisée comme broche d'E/S D9

Les cartes Arduino Leonardo et Micro conviennent toutes les deux, même si je ne les ai pas essayées.

Autres composants

Les résistances et les condensateurs utilisés ici ne sont pas particulièrement spéciaux. Toutes les parties de (approximativement) la bonne valeur devraient fonctionner.

Étape 3: Disposition du circuit imprimé

Disposition du circuit imprimé
Disposition du circuit imprimé

Pour construire le circuit, il est préférable de commencer par positionner les prises, puis d'ajouter les résistances et les condensateurs. Nous couvrirons le câblage de ces éléments ensemble à l'étape suivante.

En utilisant l'image ci-dessus comme guide, positionnez la prise IC à 40 broches, retournez la carte et soudez d'abord deux broches d'angle opposées. Si la prise n'est pas à plat contre la carte, il est facile de la réparer en ressoudant l'une ou l'autre des broches. Quand c'est OK, soudez le reste.

Positionnez les deux prises 12 broches, puis insérez l'Arduino dans celles-ci pour les maintenir verticales et stables pendant le soudage. Encore une fois, souder deux broches à chaque extrémité en premier permettra un contrôle avant la soudure finale.

Pour la prise de sortie audio, j'ai utilisé une petite perceuse pour agrandir les trous du PCB, car les étiquettes de montage sont plutôt grandes.

Étape 4: Câblage

Câblage
Câblage
Câblage
Câblage

Une fois les principaux composants positionnés, ils peuvent être câblés à l'arrière de la carte, en suivant le circuit ci-dessus.

Les composants de sortie audio (R2, R3, C2, C3) et les condensateurs de découplage (C1, C4) peuvent être connectés avec un fil à âme pleine (ou des chutes de fils de composant). Les connexions de masse et d'alimentation de l'Arduino à la puce PSG (fils rouge et noir, sur la photo) peuvent maintenant être effectuées.

Les différentes sorties du Pro Micro sont câblées à l'AY-3-8910 comme suit (voir le guide de branchement pour l'affectation des broches):

Signal Arduino AY-3-8910 broche

DA0 D2 37 DA1 D3 36 DA2 D4 35 DA3 D5 34 DA4 D6 33 DA5 D7 32 DA6 D8 31 DA7 A0/D18 30 BC1 D10 29 BC2 MOSI/D16 28 BDIR MISO/D14 27 RESET# SCLK/D15 23 CLOCK D9 22 (via R1, 75 ohms)

Étape 5: Programmation à l'aide de l'IDE Arduino

Programmation à l'aide de l'IDE Arduino
Programmation à l'aide de l'IDE Arduino

Si vous êtes nouveau sur Arduino, je vous recommande fortement d'essayer l'un des nombreux tutoriels sur les bases. Le guide de connexion de Sparkfun donne tous les détails. Vous pouvez vérifier que la programmation de base fonctionne en suivant le tutoriel "Blinkies". Les Arduinos peuvent être un peu difficiles à persuader en mode « bootloader » (où vous pouvez charger de nouveaux croquis), donc un peu de pratique avec un exemple simple est utile.

Une fois que vous êtes satisfait, téléchargez le fichier chiptunes.ino joint à cette page, créez-le et téléchargez-le. (J'ai trouvé que l'utilisation du type de carte "Arduino/Genuino Micro" est correcte pour ce croquis, si vous souhaitez ignorer l'installation du support de la carte Sparkfun).

Notez également que si vous êtes sur un Mac, le paramètre "Port" devra être modifié une fois que vous aurez chargé le croquis pour la première fois. Avec un Arduino « vierge » (ou en utilisant le croquis Blinky), il apparaîtra comme quelque chose comme /dev/cu.usbmodemXXXX, comme indiqué dans l'image ci-dessus. Lorsque le périphérique USB MIDI est actif (comme utilisé par le sketch chiptunes.ino), ce sera /dev/cu.usbmodemMID1.

Étape 6: Tester et utiliser le synthé

Tester et utiliser le synthé
Tester et utiliser le synthé
Tester et utiliser le synthé
Tester et utiliser le synthé
Tester et utiliser le synthé
Tester et utiliser le synthé

Une fois l'Arduino programmé, votre station de travail devrait automatiquement le reconnaître comme un périphérique USB MIDI. Il apparaîtra avec le nom "Arduino Micro" - vous devriez pouvoir le voir dans le Gestionnaire de périphériques sous Windows, ou dans l'application "Informations système" sous Mac OS.

Sur un Mac, vous pouvez utiliser l'application Configuration audio et MIDI pour exécuter un test de base. Démarrez l'application, puis choisissez Fenêtre -> Afficher MIDI Studio. Cela fera apparaître la fenêtre MIDI Studio - toutes vos interfaces MIDI apparaîtront dans un arrangement légèrement aléatoire - qui, espérons-le, inclura le périphérique "Arduino Micro". Si vous cliquez sur l'icône « Test de configuration » dans la barre d'outils, puis sur la flèche vers le bas (voir l'image) sur le périphérique Arduino Micro, l'application enverra des notes MIDI au synthé. (Ceux-ci ne sont pas particulièrement mélodieux !) Le synthé devrait émettre des sons aléatoires à ce stade.

Vous pouvez ensuite ajouter « Arduino Micro » comme périphérique de sortie à la configuration MIDI de votre station de travail audio numérique et commencer à jouer !

  • Le synthé répond sur les canaux MIDI 1 à 4. Chaque canal a un son différent (enfin, une enveloppe de volume différente).
  • Les notes MIDI entre 24 et 96 (C1-C7) sont acceptées; les notes en dehors de cette plage sont ignorées.
  • Le canal MIDI 10 joue des sons de batterie. Notez les nombres entre 35 et 50 (voir

    www.midi.org/specifications-old/item/gm-level-1-sound-set) sont acceptés.

  • Il y a trois canaux vocaux sur l'AY-3-8910. Le micrologiciel du synthé essaie de jouer la note la plus récemment envoyée, tout en gardant les notes les plus hautes et les plus basses actuellement demandées. Les autres notes (généralement les notes moyennes d'un accord) sont coupées si nécessaire.

Et c'est à peu près tout. S'amuser!

Étape 7: Notes de bas de page

À propos du morceau de démonstration

Le morceau de démonstration - le célèbre air de la Reine de la nuit de Mozart - a été créé assez rapidement à partir d'un fichier MIDI que j'ai trouvé sur Internet (https://www.midiworld.com/mozart.htm). Quelqu'un d'autre a fait tout le travail dur !

J'utilise Presonus Studio One sur un Mac et le fichier MIDI a été importé sur quatre pistes distinctes. Une petite quantité d'édition a été nécessaire lorsque les notes d'accompagnement sont plus hautes que la mélodie principale, et pour supprimer certains des problèmes les plus répréhensibles entre les notes.

L'audio que vous entendez sur le clip provient directement du synthé, avec juste une touche d'égaliseur et de saturation pour lui donner une sensation de basse fidélité « machine d'arcade ».

Conseillé: