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

  1. Pulsa A. La pantalla muestra Recording... y comienza una nueva grabación.
  2. Desliza CoCube por las teclas del mapa musical.
  3. Pulsa B. La pantalla muestra Playing... y CoCube reproduce la melodía grabada.
  4. Vuelve a pulsar B para reproducir la misma melodía tantas veces como quieras.
  5. 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.

Inicializar las variables

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

Pulsar A para 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

Pulsar B para reproducir

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 300 milisegundos y compara distintas velocidades de reproducción.
  • Cambia los 50 milisegundos 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?
CC-BY-SA

© por CoCube 2024-2026.
Many thanks to Professor José Manuel Ruiz Gutiérrez for helping with the translation!
Este trabajo tiene una licencia CC-BY-SA 4.0.