Paso 3: Hacer melodías de Arduino de las grabaciones de música
Como se explicó, se utilizaron grabaciones archivales de pedazos famosos de música en el taller como base de las melodías de la tarjeta. Las 16 grabaciones originales fueron mp3s, y cada uno de ellos fue usado para crear una melodía diferente. Usted puede encontrar a continuación una lista de las todas las grabaciones de la fuente. La idea era crear utilizando los códigos de la Arduino sencillos de mp3s que tocan las melodías y subir estos en el ATtiny85s pequeño y asequible mediante Arduino como programador ISP. Para lograr esto, los mp3s se convirtieron primero en MIDI y en última instancia al código.
Te preguntarás ¿por qué ir aunque este había complicado procedimiento - ¿por qué no hacer el código de Arduino enseguida? Seguramente usted puede hacer esto. El código utilizado para las tarjetas es muy simple y consiste en principalmente comandos tone(). Una de las razones por qué las melodías fueron creadas desde archivos mp3 era porque el taller explora las posibilidades creativas en el uso de contenidos de patrimonio cultural de Europeana, y principalmente mp3s estaban disponibles. Otra razón para el procedimiento elegido fue que, jugando con los mp3s, descubrí que las imperfecciones y carácter imprevisible de las conversiones MIDI y posteriormente código dio lugar a melodías sorpresa bastante agradable. Por lo tanto el elemento de sorpresa parecía como una ventaja más que desventaja. A continuación se muestran la melodía pasos de generación más detalladamente en caso de estar interesado en saber más.
Conversión de audio a MIDI
La conversión de audio a MIDI se realizó utilizando Ableton Live (instrucciones en su página web). En lugar de utilizar la grabación de todo mp3, que generalmente era muy largo, se utilizó un minuto o así desde el principio. He intentado "Convertir de armonía a la nueva pista MIDI" y "Convertir de melodía a nueva pista MIDI" (debajo del botón derecho) en Ableton para ver que dio lugar a una melodía más divertida. Después de esto había exportado el archivo MIDI. Usted puede encontrar los archivos de MIDI a continuación.
Usted podría por supuesto también omitir la conversión de audio a MIDI y usar de inmediato MIDI como archivo de código fuente en caso de que desee jugar con este formato. Hay un montón de abiertamente con licencia archivos MIDI, por ejemplo en Wikimedia Commons.
Del MIDI a código de Arduino
El MIDI a Arduino en línea herramienta proporcionada por Dominic Canare (CC BY-SA) fue utilizado para convertir los archivos MIDI generados en el código de Arduino. Esta herramienta toma siempre pista MIDI 1 como el que se convierte a las órdenes de la tono de Arduino. Las otras pistas MIDI se convierten en digitalWrite() y pueden utilizarse por ejemplo parpadear un LED. Debido a esto, asegúrese que la melodía que desea jugar en la pista 1. He utilizado un programa de código abierto llamado Aria Maestosa para editar las pistas MIDI que tenía dos pistas idénticas, un número 1 y los otros 2 ("Ajustes" > "Administración del canal" > "Manual" para editar los números de pista). Pista 1 fue interpretado como notas y pista 2 proporcionaron los comandos para un LED que parpadea.
Después de había editado los números de pista, había cargado el archivo MIDI en la herramienta de conversión online y copian el código producido en mi dibujo. Generalmente el código era demasiado grande para el ATtiny, así que reduje de final apenas por debajo de 8 kilobytes. La herramienta de conversión también creó bastantes líneas de comandos innecesarias, por lo que limpiar la mayor parte del código adicional antes de subir sobre el ATtiny (pero no todos, por lo que el código no es un buen ejemplo de la programación). La melodía también se ha convertido en el bucle del programa para mantenerlo jugando repetidamente. Usted puede encontrar por debajo de todos los bocetos de melodía diferente 16 - como se puede ver son simples y consisten en a montones y montones de comandos tone() y digitalWrite(). Seguramente puede hacer diversa clase de código si usted está hasta programación sonido - para la tarjeta de la melodía lo más importante es que toca una melodía o un sonido de algún tipo.
Subir las melodías sobre el ATtiny utilizando un Arduino
Cada uno de los códigos de la melodía de Arduino fue subido en un microcontrolador ATtiny85 utilizando una placa Arduino Uno regular como un programador ISP. Aquí hay instrucciones por Jeko sobre cómo programar ATtiny85 (o 45) utilizando el IDE de Arduino - Recuerde subir también el ejemplo de "Arduino como ISP" de Arduino para conseguirlo laborable. Utiliza al principio un protoboard para la programación, pero encontró que un escudo dedicado con zócalo de programación es mucho más práctico. Se puede ver un hecho a sí mismo en la foto.
Como comandos de sincronización como delay() no funcionan directamente sobre el ATtiny al programar con un Arduino, pasé algún tiempo para ajustar los parámetros de sincronización (principalmente la duración de los retrasos) en el código de Arduino para encontrar una velocidad conveniente para la melodía. Como una opción de tablero que seleccioné "ATtiny85 a 1MHz (oscilador interno, BOD deshabilitado) -" esto parecía funcionar en mi caso.
Otro problema que encontré fue que obtuvo un error al intentar cargar grandes bocetos sobre el ATtiny, pero resolvió el problema con la solución en este hilo.
Lista de las grabaciones de la fuente de dominio público:
- "Laulu rahaa portuguesa", compuesta por Toivo Kuula / la Biblioteca Nacional de Finlandia
- "Don Quijote parte 3", compuesto por Julet Massenet / Sound & Vision
- "Symphony no.9 op.125 en d kl.t: Molto vivace", compuesta por Ludwig van Beethoven / Sound & Vision
- "Allegro de clavicémbalo Concierto n º 1 en d kl.t. (BWV.1052) ", compuesto por Johan Sebastian Bach / Sound & Vision
- "La Traviata: Libiamo", compuesta por Giuseppe Verdi / Sound & Vision
- "Concierto para piano n º 3 op.37 en c kl.t.: Allegro con brio", compuesta por Ludwig van Beethoven / Sound & Vision
- "Presto de no.22 de la sinfonía en mi bemol (Hob.Gr.I no.22)", compuesta por Joseph Haydn / Sound & Vision
- "Sinfonía no.4 op.98 en e kl.t.: Allegro energico e passionato", compuesta por Johannes Brahms / Sound & Vision
- "Etude no.7 en cis kl.t. de 12 estudios op.25 ", compuesto por Frédéric Chopin / Sound & Vision
- "Sinfonía no.29 en un gr.t. KV.203: Minuetto ", compuesta por Wolfgang Amadeus Mozart / Sound & Vision
- "Él apacentará su rebaño de Mesías HWV.56", compuesto por Georg Frederick Handel / Sound & Vision
- "Invención no.6 en E gr.t.", compuesta por Johann Sebastian Bach / Sound & Vision
- "Sinfonía no.28 en un gr.t. (Hob.Gr.I no.28) ", compuesto por Joseph Haydn / Sound & Vision
- "Variaciones on.12 en Bes de gr.t. de 12 estudios op.25 ", compuesto por Frédéric Chopin / Sound & Vision
- "Variaciones en Weinen Klagen Sorgen Zagen (S.180)", compuesto por Franz Liszt / Sound & Vision
- "Sinfonía no.38 en D gr.t. KV.504: Finale (Presto) ", compuesta por Wolfgang Amadeus Mozart / Sound & Vision