Étape 3: Faire des mélodies Arduino partir des enregistrements de musique
Comme l’a expliqué, enregistrements d’archives de morceaux célèbres ont été utilisés dans l’atelier comme base des mélodies carte. 16 enregistrements originaux ont été mp3s, et chacun d’eux a été utilisé pour créer une mélodie différente. Vous trouverez ci-dessous une liste de tous les enregistrements source. L’idée était de créer en utilisant les codes mp3s de Arduino simples que joueraient les mélodies et télécharger ces sur le ATtiny85s petit et abordable en utilisant Arduino comme un programmeur de l’ISP. Pour y parvenir, les mp3s sont tout d’abord converti à MIDI et finalement au code.
Vous vous demandez peut-être pourquoi aller bien que cela complique la procédure-pourquoi ne pas simplement faire l’Arduino code tout de suite ? Vous pouvez certainement le faire. Le code utilisé pour les cartes est même très simple et consiste principalement des commandes tone(). Une des raisons pourquoi les mélodies furent créés à partir de fichiers mp3 a été parce que l’atelier explora les possibilités créatives dans l’utilisation du contenu du patrimoine culturel d’Europeana et principalement les mp3s sont disponibles. Une autre raison de la procédure choisie, c’est que, tout en jouant avec les mp3s, j’ai découvert que les imperfections et le caractère imprévisible des conversions à MIDI et par la suite au code a entraîné des mélodies très agréable surprise. Si l’élément de surprise semblait être un avantage, plutôt que d’inconvénient. Voici la mélodie étapes de génération plus en détail dans le cas où vous êtes intéressé pour en savoir plus.
Conversion audio vers MIDI
La conversion audio vers MIDI a été effectuée à l’aide de Ableton Live (instructions sur leur site). Au lieu d’utiliser l’enregistrement entier mp3, qui est généralement très longue, une minute ou deux dès le début a été utilisé. J’ai essayé les deux « Convertir harmonie à nouvelle piste MIDI » et « Convertir mélodie de nouvelle piste MIDI » (sous clic droit) dans Ableton afin de voir qui a abouti à une mélodie plus drôle. Après cela, j’ai exporté le fichier MIDI. Vous pouvez trouver les fichiers MIDI ci-dessous.
Vous pouvez bien sûr également ignorer la conversion audio vers MIDI et utiliser tout de suite MIDI que votre fichier source si vous souhaitez jouer avec ce format. Il y a beaucoup d’ouvertement sous licence, fichiers MIDI là-bas, par exemple sur Wikimedia Commons.
De MIDI à Arduino code
Le MIDI à Arduino outil en ligne fournis par Dominic Canare (CC BY-SA) a été utilisé pour convertir les fichiers MIDI générés au code de l’Arduino. Cet outil prend toujours la piste MIDI 1 que celui qui est converti aux commandes de tonalité de la Arduino. Les autres pistes MIDI sont convertis en digitalWrite() et peuvent être utilisés pour par exemple clignoter une LED. Pour cette raison, ce que la mélodie que vous voulez jouer soit sur la piste 1. J’ai utilisé un programme open source appelé Aria Maestosa pour éditer les pistes MIDI alors que j’ai eu deux titres identiques, un numérotés 1 et les 2 autres ("Paramètres" > "Gestion des canaux" > "Manuel" pour modifier les numéros de pistes). Piste 1 a été joué notes et piste 2 prévues les commandes une LED clignotante.
Après que j’avais modifié les numéros de pistes, j’ai téléchargé le fichier MIDI sur l’outil de conversion en ligne et copié le code produit de mon sketch. Généralement, le code était trop grand pour le ATtiny, donc j’ai réduit il partir de la fin juste en dessous de 8 kilo-octets. L’outil de conversion a également créé un peu les lignes de commande inutiles, donc j’ai nettoyé la plupart du code supplémentaire avant de le télécharger sur le ATtiny (mais pas tous, si le code n’est pas un bon exemple de programmation). La mélodie était également emménagée dans la boucle du programme afin du pour maintenir jouant à plusieurs reprises. Vous trouverez ci-dessous tous les croquis des mélodies différentes 16 - comme vous pouvez le voir ils sont simples et se composent de juste des tas et des tas de commandes tone() et digitalWrite(). Vous pourrez sûrement différent du code, si vous êtes jusqu'à la programmation sonore - pour la carte de la mélodie, la chose la plus importante est qu’il joue une mélodie, ou un bruit quelconque.
Télécharger les mélodies sur le ATtiny en utilisant un Arduino
Tous les codes de mélodie Arduino a été transféré sur un microcontrôleur ATtiny85 à l’aide d’une carte Arduino Uno régulière comme un programmateur ISP. Voici instructions par Jeko sur comment programmer ATtiny85 (ou 45), à l’aide de l’IDE Arduino - n’oubliez pas de télécharger également l’exemple de « Arduino comme ISP » sur l’Arduino pour que cela marche. J’ai utilisé dans un premier temps une maquette pour la programmation, mais trouve que faire un bouclier dédié avec programmation socket est beaucoup plus maniable. Vous pouvez voir un self-made dans la photo.
Comme des commandes de synchronisation comme delay() ne fonctionnent pas carrément sur le ATtiny lors de la programmation il avec un Arduino, j’ai passé quelque temps à ajuster les paramètres de synchronisation (principalement les durées des retards) dans le code de l’Arduino pour trouver une vitesse convenable pour la mélodie. Comme un choix que j’ai choisi « ATtiny85 à 1MHz (oscillateur interne, BOD désactivé) » - cela a semblé fonctionner dans mon cas.
Une autre question que j’ai rencontré a été que j’ai eu une erreur lorsque vous essayez de télécharger de grandes esquisses sur le ATtiny, mais résolu le problème avec la solution proposée dans ce fil.
Liste des enregistrements source domaine Public :
- « Laulu ilman sanoja », composée par Toivo Kuula / The Bibliothèque nationale de Finlande
- « Don Quichotte part 3 », composée par Julet Massenet / Sound & Vision
- "Symphonie no.9 op.125 dans d kl.t : Molto vivace", composé par Ludwig van Beethoven / Sound & Vision
- « Allegro de clavecin concerto no.1 in d kl.t. (BWV.1052) », composé de Johan Sebastian Bach / Sound & Vision
- « La Traviata : Libiamo », composé par Giuseppe Verdi / Sound & Vision
- "Concerto pour piano n ° 3 op.37 dans kl.t c.: Allegro con brio", composé par Ludwig van Beethoven / Sound & Vision
- "Presto de la Symphonie n ° 22 en mi bémol majeur (Hob.Gr.I n ° 22)", composée par Joseph Haydn / Sound & Vision
- "Symphonie no.4 op.98 dans e kl.t.: Allegro energico e passionato », composé par Johannes Brahms / Sound & Vision
- "Etude no.7 en cis kl.t. de 12 Etudes op.25 », composé par Frédéric Chopin / Sound & Vision
- "Symphonie n ° 29 en un gr.t. KV.203 : Minuetto ", composé par Wolfgang Amadeus Mozart / Sound & Vision
- « Il paîtra son troupeau, extrait du Messie HWV.56 », composé par Georg Frederick Handel / Sound & Vision
- « Invention n ° 6 in E gr.t. », composée par Johann Sebastian Bach / Sound & Vision
- "Symphonie n ° 28 en un gr.t. (Hob.Gr.I n ° 28) », composé par Joseph Haydn / Sound & Vision
- "On.12 variations dans Bes gr.t. de 12 Etudes op.25 », composé par Frédéric Chopin / Sound & Vision
- « Variations sur Weinen Klagen Sorgen Zagen (S.180) », composé par Franz Liszt / Sound & Vision
- "Symphonie n ° 38 dans D gr.t. KV.504 : Finale (Presto) «, composé par Wolfgang Amadeus Mozart / Sound & Vision