Table des matières:

Synthétiseur Micro Midi : 5 étapes (avec photos)
Synthétiseur Micro Midi : 5 étapes (avec photos)

Vidéo: Synthétiseur Micro Midi : 5 étapes (avec photos)

Vidéo: Synthétiseur Micro Midi : 5 étapes (avec photos)
Vidéo: Comprendre les synthés en 15 minutes ⏰ #microbrute 2024, Novembre
Anonim
Synthétiseur Micro Midi
Synthétiseur Micro Midi
Synthétiseur Micro Midi
Synthétiseur Micro Midi
Synthétiseur Micro Midi
Synthétiseur Micro Midi

Cette instructable démontre l'utilisation de la puce VLSI VS1053b Audio et Midi DSP dans son mode Midi en temps réel. Dans ce mode, il agit comme un synthétiseur Midi GM (General Midi) polyphonique à 64 voix. Un micro autonome Arduino Uno contrôle un écran OLED, trois boutons (Function Select et Up ou Down, et transmet le flux de données Midi au DSP audio. La carte musicale choisie était la carte de dérivation du codec Adafruit VS1053, mais une carte de dérivation musicale Sparkfun a également été testé avec succès. Les bibliothèques Adafruit VS1053b ont été utilisées à la place de la bibliothèque SFEMP3 beaucoup plus grande (recommandée par Sparkfun même si elles ont également leur propre ensemble de bibliothèques), car j'ai trouvé le code Adafruit plus facile à comprendre.

La plupart du code utilisé pour contrôler le DSP audio/midi a été développé à l'aide d'un Arduino Uno connecté à la carte de dérivation audio/midi via une planche à pain. Une fois que les fonctions se sont avérées satisfaisantes, Uno a été utilisé comme programmeur pour un ATmega 328 autonome qui a ensuite été placé sur un petit Veroboard de taille 30x20 avec le CI opto-isolateur 6N139 requis sur la prise d'entrée Midi (un DIN à 5 broches). Un petit blindage OLED (64x48) était également connecté, trois boutons, une LED d'activité Midi et un connecteur cylindrique +5 volts pour l'alimentation et le connecteur de sortie audio stéréo ajouté. Les besoins en énergie sont très modestes - environ 20 mA à 5 volts.

Étape 1: Liste des pièces

ATmega328 Micro DIP 28 broches + prise DIP 28 broches Optoisolateur 6N138 ou 6N139 + prise DIP 4 brochesWemos 64x48 I2C OLED Display ou similaireAdafruit VS1053b Carte de dérivation Codec3 boutons-poussoirs miniaturesPrise midi DIN 5 broches Montage sur PCB de préférencePetite LED toute couleur. Prise d'alimentation de type baril pour l'alimentation 5vAudio stéréo prise pour connecter à un amplificateur ou un casqueRésistances: 7 x 10k, 2 x 470 ohm, 2 x 220 ohmCondensateurs: 0,1uF 50v plastique, 10uf 25v électrolytique, 2 x 27 pF céramique Petits morceaux de Veroboard (30 bandes par 20 colonnes, et 4 bandes par 16 colonnes), boîtier en plastique ABS d'environ 85x55x25mm, câblage et quelques vis écrous et rondelles.

Étape 2: Construction

Construction
Construction
Construction
Construction
Construction
Construction

Le couvercle du boîtier abrite l'écran OLED, les trois boutons montés sur un autre petit morceau de Veroboard et le connecteur d'alimentation du baril. La carte de circuit Vero principale a deux trous pour fixer la carte de dérivation Music au-dessus de l'ATmega328. Pour plus de détails sur les connexions, veuillez vous référer au schéma de la carte à bande Fritzing.

L'ATmega328 programmé (veuillez vous référer à la section suivante pour le code) est alors inséré dans sa prise suivi du 6N139 et tout est connecté.

La LED est utilisée comme indicateur d'activité Midi et a été montée sur la face avant du boîtier. Il est connecté à la sortie D2 de l'ATmega328 via une résistance de 470 ohms.

L'écran OLED utilise la sortie 3,3 volts de la carte Adafruit pour l'alimentation - il nécessite moins de 20 mA.

Essayez d'échanger les deux connexions Midi Din si vous n'entendez aucun son lors de la première utilisation du synthé.

Étape 3: Logiciel

Les détails du croquis qui devrait être téléchargé sur l'ATmega328 sont donnés dans MidA.ino. Sept fonctions sont disponibles:

Option P: Changer de programme - changez l'instrument GM Midi de 1 à 128 (j'ai utilisé 0 à 127) comme un son de piano ou de synthé. Option B: Changez la banque d'instruments entre mélodique (banque 0) et percussion (banque 1). Option V: Ajustez le volume de 1 à 10. Option C: Changez le canal Midi auquel le synthé répondra. Les choix sont Canal 0, canal 1, canal 9 (percussion), canaux 0 et 9, et canaux 1 et 9. Option R: Activer ou désactiver l'effet Reverb. Option S: Enregistrer les paramètres actuels dans la mémoire Eeprom (Up) ou Lisez-le (vers le bas) à partir de la mémoire Eeprom. C'est parce que les paramètres ne sont pas enregistrés lors de la mise hors tension. Option X: envoyer un message de désactivation de toutes les notes (Midi Reset).

Une huitième option n'est pas encore implémentée - cela contournera l'ATmega en tant que filtre Midi et connectera la sortie de l'optoisolateur directement à la broche Rx de la carte DSP.

Notez que le VS1053b démarre en mode Midi en temps réel en chargeant un patch compressé de 1039 octets pendant le démarrage - cela augmente également la taille du tampon Midi et filtre les octets de données Midi exclusifs au système. Les détails de ce correctif sont disponibles sur le site Web de VLSI.

Une version légèrement modifiée de la bibliothèque Adafruit Graphics avait été utilisée pour prendre en charge la résolution de 64x48 pixels de l'écran OLED - veuillez vous référer aux liens donnés à la fin pour M. Mccauser. Une liste des bibliothèques requises est donnée dans le sketch code.

Il est important de noter que lorsque l'esquisse est exécutée pour la première fois sur l'ATmega328, que ce soit sur un Uno ou autonome, le code chargera les préréglages de paramètres de l'ATmega328 Eeprom qui peuvent ne pas être valides. Dans ce cas, vous pouvez soit écrire tous les zéros dans l'Eeprom en utilisant l'option X avec le bouton bas, soit commenter la ligne dans la fonction de configuration d'annulation qui charge les valeurs de l'Eeprom lors de son premier démarrage, ajustez vos instruments, etc. aimer, puis enregistrez vos préréglages avec le bouton S option Up.

Le crédit est donné à toutes les personnes et entités mentionnées pour leur code et leurs bibliothèques.

Étape 4: Liens

VLSI:

Adafruit:

Github VS1053b:

Graphiques Github:

Oled:

Sparkfun:

Étape 5: Utilisation de la carte Sparkfun avec les bibliothèques Adafruit

Utilisation de la carte Sparkfun avec les bibliothèques Adafruit
Utilisation de la carte Sparkfun avec les bibliothèques Adafruit

Le tableau de l'image explique comment connecter les cartes musicales Adafruit ou Sparkfun pour utiliser une autre bibliothèque.

Conseillé: