Difference between revisions of "Ejercicio: Barco musical"

From Edutec Wiki
Jump to: navigation, search
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category: Scratch]]
 
[[Category: 10 a 12 años]]
 
  
==Introducción==
+
== Introducción ==
Este ejercicio propone una serie de elementos interactivos para tocar notas musicales y cambiar instrumentos. Las melodías se pueden guardar y reproducir ,mediante el uso de listas y mensajes de Scratch.
+
  
 +
Este ejercicio propone una serie de elementos interactivos para tocar notas musicales utilizando diferentes instrumentos.
  
==Ejemplo==
+
Las melodías se pueden tanto guardar como reproducir mediante el uso de listas y mensajes de Scratch.
  
[http://scratch.mit.edu/projects/1105114/ Barco Musical]
+
El objetivo principal es que cuando el usuario clique en un objeto, éste reproducirá una nota y la guardará en una lista para su posterior reproducción. Si queremos añadirle un poco de diversificación, cada objeto puede "sonar" con un instrumento musical o efecto de sonido distinto antes de reproducir y guardar la nota.
  
[[Archivo:barco_musical_01.png]]
+
[[File:Barco musical 01.png|center|RTENOTITLE|link=http://scratch.mit.edu/projects/40618572/]]
 +
 
 +
 
 +
 
 +
== Pintando escenario y objetos ==
 +
 
 +
En este ejercicio crearemos nosotros mismos la apariencia del escenario y de los objetos, aunque también es posible importar imágenes prediseñadas como ya hemos visto en otros casos. En nuestro caso hemos elegido una escena donde aparecerá un barco sobre el mar y un sol, pudiéndole añadir más objetos como por ejemplo un pájaro. Podemos incluso hacer que cada rayo del sol sea un objeto diferente. Cada uno será capaz de tocar y guardar una nota cuando el usuario clique sobre él. Si nos queremos ahorrar el trabajo de crearlo todo desde cero, tenemos una plantilla disponible [https://scratch.mit.edu/projects/133008728/ aquí].
 +
 
 +
Si queremos tocar las siete notas (do, re, mi, fa, sol, la, si) deberíamos tener siete rayos de sol, uno por nota.
 +
 
 +
== Tocando notas ==
 +
 
 +
Una vez tenemos los objetos creados (luego podemos añadir más), podemos empezar haciendo con cualquiera los rayos del sol.
 +
 
 +
[[File:Barco musical 02.png|center|RTENOTITLE]]
 +
 
 +
 
 +
 
 +
Podemos cambiar el instrumento y la nota en vez de dejar los que vienen por defecto. Opcionalmente podríamos añadirle algún efecto visual, como si se "iluminase" el objeto al tocar en él:
 +
 
 +
[[File:Barco musical 03.png|center|RTENOTITLE]]
 +
 
 +
 
 +
 
 +
No debemos olvidarnos de quitar el efecto gráfico una vez tocada la nota para que vuelva al color original. Podemos ir probando diferentes valores en el efecto color para ver cual nos gusta más. Ya que cada rayo de sol tocará una nota diferente, también podemos hacer que el efecto de color aplicado a cada uno de ellos también sea distinto.
 +
 
 +
 
 +
 
 +
== Guardando notas en lista ==
 +
 
 +
Ahora que tenemos la parte de tocar la nota, vamos a cómo guardarla. Crearemos una lista y le pondremos de nombre "notas", por ejemplo.
 +
 
 +
[[File:Barco musical 04.png|center|Barco musical 04.png]]
 +
 
 +
 
 +
 
 +
[[File:Barco musical 05.png|center|Barco musical 05.png]]
 +
 
 +
 
 +
 
 +
Una vez creada, para añadirle una nota usaremos el siguiente bloque:
 +
 
 +
[[File:Barco musical 06.png|center|RTENOTITLE]]
 +
 
 +
 
 +
 
 +
Y qué hemos de añadir exactamente? Podríamos guardar el mismo número que representa la nota, para luego hacer un bloque que vaya reproduciéndolas desde la lista una a una. Pero dado que ya tenemos un bloque que ya reproduce una nota y además ilumina el objeto cuando lo tocamos, podemos hacer que esto lo ejecute mediante la recepción de un mensaje:
 +
 
 +
[[File:Barco musical 07.png|center|RTENOTITLE]]
 +
 
 +
 
 +
 
 +
Así sólo hará falta enviar el mensaje '''do''' para hacer que suene la nota y además que se ilumine el objeto que la reproduce. Ahora ya podemos usar el bloque para añadir la nota a la lista:
 +
 
 +
[[File:Barco musical 08.png|center|Barco musical 08.png]]
 +
 
 +
 
 +
 
 +
Ahora si clicamos encima del rayo de sol podremos ver como va añadiendo notas a la lista. Una vez comprobado que funciona, podemos programar los demás rayos de sol de la misma forma, cambiando tanto el mensaje a enviar como la nota a guardar y la nota a reproducir.
 +
 
 +
== Reproduciendo las notas ==
 +
 
 +
Una vez hecho esto y después de haber probado el comportamiento de cada rayo de sol, vamos a ver cómo podemos reproducir la melodía cuando, por ejemplo, cliquemos en el sol. Si hemos tocado cada rayo de sol por orden de notas, deberíamos tener la siguiente lista:
 +
 
 +
[[File:Barco musical 09.png|center|Barco musical 09.png]]
 +
 
 +
 
 +
 
 +
Como los nombres de los mensajes que hemos creado corresponden a los mismos nombres de las notas guardadas en la lista, lo único que tenemos que hacer es recorrer la lista y enviar el mensaje que hay en cada posición. Como hemos de repetir una acción varias veces, necesitamos el siguiente bloque:
 +
 
 +
[[File:Barco musical 10.png|center|Barco musical 10.png]]
 +
 
 +
 
 +
 
 +
Cuántas veces necesito repetir la operación? Tantas como notas tenga la lista, o dicho de otra manera, su longitud:
 +
 
 +
[[File:Barco musical 11.png|center|Barco musical 11.png]]
 +
 
 +
 
 +
 
 +
Y cómo puedo extraer el mensaje que hay en una posición concreta de la lista? Mediante este bloque:
 +
 
 +
[[File:Barco musical 12.png|center|Barco musical 12.png]]
 +
 
 +
 
 +
 
 +
Con lo cual si enviamos el mensaje que nos devuelve el último bloque, la cosa quedaría así:
 +
 
 +
[[File:Barco musical 13.png|center|Barco musical 13.png]]
 +
 
 +
 
 +
 
 +
Es correcto? No hace falta ni probarlo para ver que no lo es, ya que lo que hará será repetir el envío de mensaje tantas veces como notas haya (en este caso 7), pero dicho mensaje siempre es el mismo ('''do'''), con lo que sonará 7 veces la misma nota. Si necesitamos un número que apunte la posición del mensaje dentro de la lista y además que vaya variando en cada repetición, necesitamos una variable.
 +
 
 +
Qué valor ha de tener la variable al principio? Como las listas en Scratch empiezan por 1, ése será su valor inicial. Además, en cada repetición aumentará su valor en 1:
 +
 
 +
[[File:Barco musical 14.png|center|Barco musical 14.png]]
 +
 
 +
 
 +
 
 +
[[Category:Scratch]] [[Category:10 a 12 años]]

Latest revision as of 16:08, 7 December 2016

Introducción

Este ejercicio propone una serie de elementos interactivos para tocar notas musicales utilizando diferentes instrumentos.

Las melodías se pueden tanto guardar como reproducir mediante el uso de listas y mensajes de Scratch.

El objetivo principal es que cuando el usuario clique en un objeto, éste reproducirá una nota y la guardará en una lista para su posterior reproducción. Si queremos añadirle un poco de diversificación, cada objeto puede "sonar" con un instrumento musical o efecto de sonido distinto antes de reproducir y guardar la nota.

RTENOTITLE

 

Pintando escenario y objetos

En este ejercicio crearemos nosotros mismos la apariencia del escenario y de los objetos, aunque también es posible importar imágenes prediseñadas como ya hemos visto en otros casos. En nuestro caso hemos elegido una escena donde aparecerá un barco sobre el mar y un sol, pudiéndole añadir más objetos como por ejemplo un pájaro. Podemos incluso hacer que cada rayo del sol sea un objeto diferente. Cada uno será capaz de tocar y guardar una nota cuando el usuario clique sobre él. Si nos queremos ahorrar el trabajo de crearlo todo desde cero, tenemos una plantilla disponible aquí.

Si queremos tocar las siete notas (do, re, mi, fa, sol, la, si) deberíamos tener siete rayos de sol, uno por nota.

Tocando notas

Una vez tenemos los objetos creados (luego podemos añadir más), podemos empezar haciendo con cualquiera los rayos del sol.

RTENOTITLE

 

Podemos cambiar el instrumento y la nota en vez de dejar los que vienen por defecto. Opcionalmente podríamos añadirle algún efecto visual, como si se "iluminase" el objeto al tocar en él:

RTENOTITLE

 

No debemos olvidarnos de quitar el efecto gráfico una vez tocada la nota para que vuelva al color original. Podemos ir probando diferentes valores en el efecto color para ver cual nos gusta más. Ya que cada rayo de sol tocará una nota diferente, también podemos hacer que el efecto de color aplicado a cada uno de ellos también sea distinto.

 

Guardando notas en lista

Ahora que tenemos la parte de tocar la nota, vamos a cómo guardarla. Crearemos una lista y le pondremos de nombre "notas", por ejemplo.

Barco musical 04.png

 

Barco musical 05.png

 

Una vez creada, para añadirle una nota usaremos el siguiente bloque:

RTENOTITLE

 

Y qué hemos de añadir exactamente? Podríamos guardar el mismo número que representa la nota, para luego hacer un bloque que vaya reproduciéndolas desde la lista una a una. Pero dado que ya tenemos un bloque que ya reproduce una nota y además ilumina el objeto cuando lo tocamos, podemos hacer que esto lo ejecute mediante la recepción de un mensaje:

RTENOTITLE

 

Así sólo hará falta enviar el mensaje do para hacer que suene la nota y además que se ilumine el objeto que la reproduce. Ahora ya podemos usar el bloque para añadir la nota a la lista:

Barco musical 08.png

 

Ahora si clicamos encima del rayo de sol podremos ver como va añadiendo notas a la lista. Una vez comprobado que funciona, podemos programar los demás rayos de sol de la misma forma, cambiando tanto el mensaje a enviar como la nota a guardar y la nota a reproducir.

Reproduciendo las notas

Una vez hecho esto y después de haber probado el comportamiento de cada rayo de sol, vamos a ver cómo podemos reproducir la melodía cuando, por ejemplo, cliquemos en el sol. Si hemos tocado cada rayo de sol por orden de notas, deberíamos tener la siguiente lista:

Barco musical 09.png

 

Como los nombres de los mensajes que hemos creado corresponden a los mismos nombres de las notas guardadas en la lista, lo único que tenemos que hacer es recorrer la lista y enviar el mensaje que hay en cada posición. Como hemos de repetir una acción varias veces, necesitamos el siguiente bloque:

Barco musical 10.png

 

Cuántas veces necesito repetir la operación? Tantas como notas tenga la lista, o dicho de otra manera, su longitud:

Barco musical 11.png

 

Y cómo puedo extraer el mensaje que hay en una posición concreta de la lista? Mediante este bloque:

Barco musical 12.png

 

Con lo cual si enviamos el mensaje que nos devuelve el último bloque, la cosa quedaría así:

Barco musical 13.png

 

Es correcto? No hace falta ni probarlo para ver que no lo es, ya que lo que hará será repetir el envío de mensaje tantas veces como notas haya (en este caso 7), pero dicho mensaje siempre es el mismo (do), con lo que sonará 7 veces la misma nota. Si necesitamos un número que apunte la posición del mensaje dentro de la lista y además que vaya variando en cada repetición, necesitamos una variable.

Qué valor ha de tener la variable al principio? Como las listas en Scratch empiezan por 1, ése será su valor inicial. Además, en cada repetición aumentará su valor en 1:

Barco musical 14.png