Paso 3: Mods de bosquejo
http://code.Google.com/p/Rogue-Code/wiki/ToneLibraryDocumentation
Básicamente el funcionamiento de los sonidos es que la biblioteca crea una onda cuadrada de la frecuencia especificada. Para definir lo que desea de notas tocadas en el comienzo del esbozo. También debe definir cuánto tiempo cada nota se reproducirá. La imagen muestra lo que observa que la biblioteca es capaz de generar.
En este caso definimos un par de canciones, [starttune] y [Nota]. También definimos la duración de cada tono [duración] y [duration2]. Starttune [] tune es la melodía de baile mexicano de sombrero y la melodía de [] de nota es la melodía de la carga.
int starttune [] = {NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_C4, NOTE_F4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_F4, NOTE_G4};
int duration2 [] = {100, 200, 100, 200, 100, 400, 100, 100, 100, 100, 200, 100, 500};
int Nota [] = {NOTE_C4, NOTE_C4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5};
duración de int [] = {100, 100, 100, 300, 100, 300};
Puede cambiar cualquiera de las notas y los tiempos de duración para crear cualquier poco de música de haber jugado. Los tiempos de duración jugaba con hasta sonaban justo a mí. Pero la duración de 100 equivale a una nota de 1/8, 200 es una nota de cuarto, 300 es básicamente una nota de cuarto punteada, 400 media nota y 500 una nota media puntos. La unidad reproduce a través de la melodía bastante rápida pero se puede controlar la velocidad colocando un retardo en el bucle que juega la melodía. Si cambia el número de notas en cualquiera de los temas que tendrá que actualizar la sección donde se juega la melodía.
Para jugar estas canciones que saltamos hasta esta sección.
para (int thisNote = 0; thisNote < 13; thisNote ++) {}
jugar la siguiente NOTA:
speakerpin.Play(starttune[thisNote]);
sostener la Nota:
Si (thisNote == 0 || thisNote == 2 || thisNote == 4 || thisNote == 6)
{
digitalWrite (ledpin [0], HIGH);
}
Si (thisNote == 1 || thisNote == 3 || thisNote == 5 || thisNote == 7 || thisNote == 9 || thisNote == 11)
{
digitalWrite (ledpin [1], HIGH);
}
Si (thisNote == 8 || thisNote == 12)
{
digitalWrite (ledpin [2], HIGH);
}
Si (thisNote == 10)
{
digitalWrite (ledpin [3], HIGH);
}
Delay(duration2[thisNote]);
parada para la siguiente NOTA:
speakerpin.STOP();
digitalWrite (ledpin [0], LOW);
digitalWrite (ledpin [1], LOW);
digitalWrite (ledpin [2], LOW);
digitalWrite (ledpin [3], LOW);
Delay(25);
}
Use una sentencia For() para ejecutar un bucle a través de la melodía que queremos jugar. En el "para (int thisNote = 0; thisNote < 13; thisNote ++) {"línea el número 13 es el número de notas en la melodía. El código comienza en la primera nota y genera el tono para la duración especificada. Mientras su hacer que el código se está encendiendo un LED correspondiente dependiendo de qué nota está en la secuencia. Así que puede ir y cambiar que LED se enciende bajo qué nota para hacer las luces bailar como mejor parezca. El retraso colocado después de apagar el LED controla el tempo de la música. En este caso cuando la nota 13 se ha reproducido el programa se desplaza.
El cuerpo principal del bosquejo (void loop()) es donde el programa lee el array generado al azar y empieza a parpadear los LEDS y tocar una nota. Notas hay que redefine que se duplicará en el vacío input() para que la misma nota se juega cuando pulsas los botones.
El tono juega cuando pierdes la secuencia que se mantenía como un simple tono de la 2 Nota que coloca un par de veces. Encontrará en la sección fail() vacío del bosquejo.