Grabar y reproducir música
En la actividad anterior, Tocar música con el zumbador sobre el mapa, CoCube leía los ID de tarjeta del mapa musical y reproducía las notas correspondientes con su zumbador.
Esta vez añadiremos una nueva capacidad: recordar las teclas por las que pasa y reproducir automáticamente la melodía.
Programa en línea: Abrir en MicroBlocks
Archivo del programa: Buzzer_Record_and_Replay.ubp
1. Cómo utilizarlo
- Pulsa A. La pantalla muestra
Recording...y comienza una nueva grabación. - Desliza CoCube por las teclas del mapa musical.
- Pulsa B. La pantalla muestra
Playing...y CoCube reproduce la melodía grabada. - Vuelve a pulsar B para reproducir la misma melodía tantas veces como quieras.
- Pulsa A de nuevo para borrar la melodía anterior y comenzar otra grabación.
El programa solo registra el orden de las notas, no la velocidad del movimiento. Durante la reproducción, cada nota dura 300 milisegundos y después hay una pausa de 50 milisegundos.
2. Preparar una lista de notas
El programa utiliza tres variables:
key: el ID de tarjeta de la tecla actual.last_key: el ID de tarjeta anterior.notes: una lista que guarda en orden todas las notas grabadas.

Al iniciar, key y last_key se establecen en 0, y notes se convierte en una lista vacía.
Una lista es como un recipiente que puede crecer. Si CoCube pasa por las teclas 60, 64 y 67, la lista queda así:
notes = [60, 64, 67]
3. Pulsar A para comenzar a grabar

Al pulsar A, el programa limpia la pantalla, muestra Recording... y prepara una grabación nueva:
notes = lista vacía
last_key = 0
Esto elimina la melodía anterior. La lectura y reproducción de las teclas funciona casi igual que en la actividad anterior: el programa cambia de nota solo cuando key es diferente de last_key.
El bloque nuevo es:
añadir key a notes
Cada vez que CoCube entra en una tecla válida, el programa reproduce la nota y añade su número al final de notes. De este modo, todas las teclas visitadas quedan guardadas en orden.
4. Pulsar B para reproducir la melodía

Al pulsar B, detener otras tareas finaliza el bucle de grabación. Después, el programa recorre la lista notes:
para cada note de notes:
reproducir note durante 300 milisegundos
esperar 50 milisegundos
El bucle toma las notas desde el principio de la lista y las reproduce hasta completar toda la melodía.
La lista notes no se borra después de la reproducción, por lo que se puede pulsar B varias veces. La melodía anterior solo se elimina al volver a pulsar A.
5. Pruébalo
- Cambia los
300milisegundos y compara distintas velocidades de reproducción. - Cambia los
50milisegundos y escucha las pausas entre las notas. - Muestra el número MIDI actual durante la reproducción.
- ¿Qué otro dato habría que registrar para conservar el ritmo original?