» Instruments de musique »Synthétiseur à quatre voix sur Arduino Uno

Synthétiseur à quatre voix sur Arduino Uno



L'auteur d'Instructables sous le surnom de rgco a proposé un synthétiseur à quatre voix de 1,5 octave sur Arduino Uno. À titre de comparaison, les synthétiseurs pour enfants répandus qui ne diffèrent les uns des autres que par leur conception et fabriqués par la même puce sont à trois voix. Certes, ils peuvent automatiquement accompagner la musique avec du rythme, mémoriser des mélodies à une voix et imiter les voix des animaux. Mais alors fait maison sonne mieux. Pourquoi?



Tout dépend des paramètres. Fréquence d'échantillonnage 31 kHz, 9 bits, 4 voix, synthèse FM avec un balayage variable dans le temps, enveloppe ADSR, 12 instruments virtuels, 18 touches qui s'étendent sur 1,5 octave.

Le maître compose le circuit du synthétiseur à Fritzing:



Dans celui-ci, il simule l'emplacement des composants sur une planche à pain de type maquette et les connexions entre eux:



Et recueille le schéma dans la vraie vie:



Simplement «verser et utiliser» est la chose la plus simple que vous puissiez faire avec le design. 18 touches (de AVANT la quatrième octave à FA cinquième) - pour jouer, le dix-neuvième commute les instruments virtuels en anneau: piano, xylophone, guitare, cymbales, cloches, funky, vibrato, métal, violon, basse, trompette, accordéon. La nature du son est affectée par la durée des frappes, mais pas l'effort, contrairement aux synthétiseurs professionnels. Mais le développeur souhaite que vous essayiez également de programmer vos outils virtuels. Chacun d'eux est donné par dix paramètres. L'assistant vous indique de quel paramètre il dépend.

ldness - volume

Si ce paramètre est inférieur à 64, la surcharge et les distorsions associées sont exclues. Mais si vous programmez un tel instrument virtuel qui ne sonne pas au volume maximum pendant longtemps, la valeur de ce paramètre peut dépasser 64, car les quatre voix sonnent simultanément rarement.

pitch0 - décalage de hauteur

La plage correspond à ce qui précède, si vous définissez ce paramètre sur 12. Diminuez les mouvements vers le bas, augmentez - vers le haut. Zéro correspond à un décalage vers le bas d'une octave exactement, 24 - exactement une octave vers le haut.

ADSR_a - taux de balayage du volume de zéro au maximum

Le plus petit, le plus lent.Par exemple, 8192 correspond à 4 ms, 256 à 128 ms.

ADSR_d - vitesse pour diminuer le volume du maximum à celui spécifié par le paramètre ADSR_s.

Le principe est le même.

ADSR_s - la valeur à laquelle le volume diminue lorsque la touche est enfoncée pendant longtemps

Par exemple, 256 - le volume reste maximum tout le temps tant que la touche est maintenue. 192 - le volume chute à 80% et le reste tant que la touche est maintenue enfoncée. 0 - le volume diminue à zéro, même si la touche est maintenue enfoncée.

ADSR_r - vitesse pour diminuer le volume à zéro après avoir relâché la touche

Le principe est le même que pour les paramètres ADSR_a et ADSR_d.

FM_inc - rapport fréquence de modulation / tonalité

Avec une valeur de 256, ce ratio se révèle être de 1: 1, avec 512 - 2: 1, avec 128 - 1: 2, le reste est par analogie. Si ce paramètre est réglé sur un multiple de 64, le son sera anharmonique.

FM_a1 - la plage de modulation de fréquence au début d'une note

256 correspond à une large gamme d'harmoniques. Avec une diminution, le ton est plus propre, avec une augmentation des harmoniques, il devient plus.

FM_a2 - modulation de fréquence de balayage à la fin d'une note

Le principe est le même. Pour la plupart des instruments réels, les harmoniques se désintègrent plus rapidement que le son fondamental. Si vous faites le contraire, vous obtenez des sons inhabituels.

FM_dec - vitesse de transition de la plage de modulation de fréquence de celle définie par FM_a1 à celle définie par FM_a2

Le principe est le même que pour les paramètres ADSR_a, ADSR_d et ADSR_r.

Une fréquence PWM de 31 250 Hz est obtenue en divisant la fréquence d'horloge (16 MHz) par 512. Le programme est conçu de manière à ce que les événements soient liés au temps sans interruption. Au lieu de cela, un bit de dépassement de temporisation est impliqué. Pour que le programme réussisse à faire tout ce qui lui est demandé, seuls des entiers de 8 et 16 bits sont utilisés. L'onde sinusoïdale est présentée sous la forme d'un tableau de nombres à 8 bits. Les opérations auxiliaires - lecture des états clés, changement d'instruments virtuels, sélection de voix, calcul des paramètres des notes qui changent dans le temps - sont réparties entre 15 procédures, qui prennent 0,48 ms pour terminer. À ce stade, certaines opérations sont effectuées avec une précision de 32 bits, ce qui est nécessaire pour multiplier deux nombres binaires de 16 bits.

Une simple onde sinusoïdale semble terne car il n'y a pas d'harmoniques dans son spectre. La synthèse FM vous permet de les recevoir et de changer leur spectre au fil du temps, en simulant le son d'instruments réels. Plusieurs fréquences donnent un son anharmonique qui se produit, par exemple, dans les cloches. L'appareil imite bien le changement de spectre inhérent aux instruments réels au fil du temps, lorsque certaines harmoniques se désintègrent plus rapidement que d'autres.
10
9.3
8.4

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer
1 commentaire
kiril_vihrov7892
Un projet intéressant.
Récemment, j'ai vu le projet "Synthesizer on Arduino" comme clés, presque tout le clavier du PC est utilisé
Des détails de tous les Arduino, un haut-parleur et un ordinateur.
L'application PC fait tout le travail, elle contrôle Arduino via le port com
répété, tout fonctionne bien. Le look peut aider

Nous vous conseillons de lire:

Donnez-le au smartphone ...