Table des matières:

Arduino Soundlab : 3 étapes
Arduino Soundlab : 3 étapes

Vidéo: Arduino Soundlab : 3 étapes

Vidéo: Arduino Soundlab : 3 étapes
Vidéo: ARDUINO PROTEUS: How to add Arduino Library 2024, Octobre
Anonim
Image
Image
Construction
Construction

C'est incroyable ce qu'un large éventail de sons étonnants peut être généré avec la technique de synthèse FM, même en utilisant un simple Arduino. Dans un précédent instructable, cela a été illustré avec un synthétiseur qui avait 12 sons préprogrammés, mais un spectateur a suggéré qu'il serait beaucoup plus cool d'avoir un contrôle total des paramètres sonores avec des potentiomètres, et c'est ainsi !

Dans ce laboratoire sonore, les tonalités peuvent être contrôlées par 8 paramètres: 4 pour l'enveloppe ADSR du loudness et 4 pour la modulation de fréquence qui détermine la texture.

L'ajout des 8 potentiomètres ne s'est pas fait au détriment du nombre de touches: trois jeux de 8 touches sont lus quelques microsecondes l'un après l'autre, pour un total de 24 touches, correspondant à deux octaves pleines. En fait, deux broches Arduino ne sont pas utilisées et une extension à 40 touches serait possible.

Regardez la vidéo pour savoir comment faire des sons sauvages, voici un bref aperçu:

* A=attaque: temps pour qu'une tonalité atteigne son volume maximum (plage 8ms-2s)

* D=décroissance: temps nécessaire pour qu'une tonalité descende jusqu'à son niveau d'intensité constant (plage 8 ms-2 s)

* S=soutenir: niveau d'intensité constant (plage de 0 à 100 %)

* R=relâchement: temps pour qu'une tonalité s'éteigne (plage 8ms-2s)

* f_m: rapport de la fréquence de modulation à la fréquence porteuse (plage 0,06-16) les valeurs inférieures à 1 donnent des nuances, des valeurs plus élevées en nuances

* beta1: amplitude de la modulation FM au début de la note (plage 0,06-16) les petites valeurs entraînent des variations mineures de la texture sonore. des valeurs élevées donnent des sons fous

* beta2: amplitude de la modulation FM en fin de note (plage 0.06-16) Donner à beta2 une valeur différente de beta1 pour faire évoluer la texture sonore dans le temps.

* tau: vitesse à laquelle l'amplitude FM évolue de beta1 à beta 2 (plage 8ms-2s) Les petites valeurs donnent un coup court en début de note, les grandes valeurs une évolution longue et lente.

Étape 1: Construction

Construction
Construction
Construction
Construction
Construction
Construction

Clairement, c'est encore un prototype, j'espère qu'un jour moi ou quelqu'un d'autre construira ce gros et fort et beau avec de grandes touches et de vrais cadrans pour les potentiomètres dans un boîtier génial….

Composants nécessaires:

1 Arduino Nano (Il ne fonctionnera pas avec le Uno, qui n'a que 6 entrées analogiques)

24 boutons poussoirs

8 potentiomètres, dans la gamme 1kOhm - 100kOhm

1 potentiomètre de 10kOhm pour le contrôle du volume

1 condensateur - 10 microfarad électrolitique

1 prise casque 3,5 mm

1 puce d'amplificateur audio LM386

2 condensateur électrolitique 1000microfarad

1 condensateur céramique 1microfarad

1 micro-interrupteur

1 haut-parleur 8Ohm 2Watt

1 planche prototype 10x15cm

Assurez-vous de bien comprendre les schémas ci-joints. Les 24 boutons se connectent en 3 groupes de 8, à lire en D0-D7, et à activer en D8, D10 et D11. Les pots ont +5V et la masse sur les prises d'extrémité et les prises centrales sont alimentées aux entrées analogiques A0-A7. D9 a la sortie audio et est couplé en courant alternatif à un potentiomètre de 10 kOhm pour le contrôle du volume. Le son peut être écouté directement avec des écouteurs ou amplifié avec une puce d'amplificateur audio LM386.

Tout tient sur une carte prototype de 10x15 cm, mais les boutons sont trop proches pour bien jouer, il serait donc préférable de construire un clavier plus grand.

Le circuit peut être alimenté via la connexion USB sur l'Arduino Nano, ou avec une alimentation externe 5V. Un boîtier de piles 2xAA suivi d'un convertisseur élévateur est une solution d'alimentation parfaite.

Étape 2: Logiciel

Téléchargez le croquis ci-joint sur l'Arduino Nano et tout devrait fonctionner.

Le code est simple et facile à modifier, il n'y a pas de code machine et pas d'interruptions, mais il y a quelques interactions directes avec les registres, pour interagir avec la minuterie, pour accélérer la lecture des boutons et pour contrôler le comportement de l'ADC pour la lecture du potentiomètre

Étape 3: Améliorations futures

Les idées de la communauté sont toujours les bienvenues !

Je suis le plus gêné par les boutons: ils sont minuscules et cliquent fort lorsqu'on les pousse. Ce serait vraiment bien d'avoir des boutons plus gros et plus confortables à pousser. De plus, des boutons sensibles à la force ou à la vitesse permettraient de contrôler le volume des notes. Peut-être que les boutons-poussoirs à 3 voies ou les boutons tactiles pourraient fonctionner ?

D'autres bonnes choses seraient de stocker les paramètres sonores dans l'EEPROM, le stockage de courtes mélodies dans l'EEPROM permettrait également de faire de la musique beaucoup plus intéressante. Enfin, des sons plus complexes pourraient être générés, si quelqu'un sait comment générer des sons de percussion de manière efficace sur le plan informatique, ce serait génial…

Conseillé: