Vaixell musical

From Edutec Wiki
Revision as of 11:06, 10 December 2018 by Jogaye (Talk | contribs)

Jump to: navigation, search


Introducció

Aquest exercici proposa una sèrie d'elements interactius per tocar i guardar notes musicals, utilitzant diferents instruments. Les melodies es guarden i es reprodueixen mitjançant l'ús de llistes i missatges de Scratch. Per fer-ho més interactiu, cada objecte pot establir un instrument musical diferent.


Pintar l'escenari i els objectes

Per practicar en la creació d'escenaris i objectes es pot començar a treballar amb el projecte des de zero. SI el temps per desenvolupar la pràctica <span class="hiddenGreenError" onkeypress="FALTA_COMA_FRASE_CONDICIONAL---#---1---#---Potser falta una coma entre les oracions. Oració
subordinada condicional avançada a l'oració
principal.---#------#---està limitat també es pot">està limitat també es pot</span> preparar una plantilla predissenyada. Hi ha una plantilla disponible, per Scratch 2.0, en aquesta adreça.

Es tracta d'una escena on hi ha un vaixell sobre el mar i un sol amb els seus raigs. Cada raig de sol és un objecte diferent i quan es cliqui toca i guarda una nota musical. Per tocar les notes (do, re, mi, fa, sol, la, si) <span class="hiddenGreenError" onkeypress="FALTA_COMA_FRASE_CONDICIONAL---#---1---#---Potser falta una coma entre les oracions. Oració
subordinada condicional avançada a l'oració
principal.---#------#---són necessari set ragis">són necessari set ragis</span> de sol, un per nota. Es poden afegir més objectes com ara un ocell.

RTENOTITLE

Una proposta de funcionament, és el següent:

Quan es fa clic a un ragi del sol, aquest reproduirà una nota i la guardarà en una llista per a la seva posterior reproducció.
Quan es cliqui el sol esborra totes les notes de la llista.
Quan es cliqui el vaixell es reprodueix la melodia guardada.
El mar, el sol i l'ocell fan canviar l'instrument musical.

Tocant les notes

Comencen programant un raig del sol. Quan es tingui un totalment programant el codi es pot copiar i ajustar a la resta del objectes similars. 

RTENOTITLE

A banda de tocar la nota es pot realitzar algun efecte visual per quan l'objete sigui ciclat. En el següent codi es canvia el color i resultat es que el raig de sol queda com il·luminat.

RTENOTITLE

No s'ha d'oblidar treure l'efecte gràfic un cop tocada la nota perquè torni al color original. Podem anar provant diferents valors en l'efecte color per veure com ens agrada més. Ja que cada raig de sol tocarà una nota diferent, també podem fer que l'efecte de color aplicat a cada un d'ells també sigui diferent.


Guardant les notes en una llista

Per guardar les notes es fan servir les llistes d'Scratch. Es tracta d'un tipus especial de variable que permet tenir una serie de valors sota el mateix nom. Es pot accedir als elements d'aquesta llista mitjançant un index que indica la seva posició a la mateixa.

Al apartat "Variables" es pot trobar un botó per crear una llita nova. Un bon nom per la llista pot ser "notes".

RTENOTITLE

 

RTENOTITLE

Per afegir una nota es fa servir el bloc "afegeix cosa a notes" que es pot tobar a varaibles:

RTENOTITLE

Les notes es poden guardar com el seu valor numéric (57 per el do o A segonn quina notació s'utilitzi). Per reproduir la melodia només caldria accedir a cada nota seuencialment (ho veurem més endavant) i tocar aquest número. En aquest exemple es guardaran els noms de la nota. D'aquesta forma es pot jugar amb els noms del les notes per enviar missatges i també perque el nostre codi sigui més facil de llegir i entrendre. Amb una petita variació respecte al codi per tocar les notes ja ho tenim preparat:

 

RTENOTITLE

 

Així només caldrà enviar el missatge "do" per fer que soni la nota ia més que s'il·lumini l'objecte que la reprodueix. Ara ja podem fer servir el bloc per afegir la nota a la llista:


RTENOTITLE

Ara si es clica sobre el raig de sol s'afegiran les notes a la llista. Per comprobar-ho es pot marcar la casella podrem veure com va afegint notes a la llista.

RTENOTITLE

Un cop comprovat que el correcte funcionametn, es poden programar els altres raigs de sol de la mateixa manera, canviant tant el missatge a enviar com la nota a guardar i la nota a reproduir.
 


Reproduir les notes musicals

Si tot ha sortit bé, la llista serà semblant a la a la següent:

RTENOTITLE

Ara només queda reproduir la llista de notes, per donar-li sentit al nom de l'exercici per exemple  quan es clica el vaixell.

Per recórrer la llista s'h de fer servir un bloc "repeteix ..." , que es pot trobar a la catgoria control. Per controlar el nombre de vegades que es fa la repetició, és necessari un bloc que ens indiqui quants element hi ha a la llista. Es tracta del bloc "llargada de ..." i es pot trobar a variables. La construcció bàsica és la següent:

RTENOTITLE

Per accecdir a cada element de la llista es fa servir el bloc "element ... de ..." de la categoria control. Amb aquest bloc es pot consultar quin és el valor de qualsevol element, que en aquestnostre cas serà el nom de la nota musical. Per exemple a la llista anterior si preguntem per el segon element es retorna "mi".

RTENOTITLE

Per poder accedir a cada element es necessaria una variable que vagi cambiant en el seu valor a mida que es fa la repetició, per exemple es pot dir "posició". Per obtenir el l primner element de la llista, "posició" ha de tenir el valor 1. I cada vegada que fem una acció a la repetició, el valor de "posició" ha d'augmentar, fins esgotar tots els elementent de la llista. El següent codi mostra els valors de les totes d e la llista:

RTENOTITLE

Com els noms dels missatges corresponen als mateixos noms de les notes guardades a la llista, l'únic que s'ha de fer és recórrer la llista i enviar el missatge que hi ha a cada element de la mateixa:

RTENOTITLE