Vaixell musical
Contents
Introducció
Aquest exercici proposa una sèrie d'elements interactius per tocar notes musicals utilitzant diferents instruments. Les melodies es poden tant guardar com reproduir mitjançant l'ús de llistes i missatges de Scratch. Si volem fer-ho més interacitu, cada objecte pot establir un instrument musical o efecte de so diferent.
Pintant escenari i objectes
Crearem nosaltres mateixos l'aparença de l'escenari i dels objectes, encara que també és possible importar imatges predissenyades com ja hem vist en altres casos. Hem triat una escena on apareixerà un vaixell sobre el mar i un sol, podent afegir més objectes com ara un ocell. Cada raig de sol és un objecte diferent i quan es cliqui toca i guarda una nota musical Si ens volem estalviar la feina de crear-ho tot des de zero, tenim una plantilla disponible aquí.
Si volem tocar les set notes (do, re, mi, fa, sol, la, si) hauríem de tenir set rajos de sol, un per nota.
El funcionament d'aquest progama é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 nostes 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.
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.
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".
Per afegir una nota es fa servir el bloc "afegeix cosa a notes" que es pot tobar a varaibles:
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:
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:
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.
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é tindrem una llista de notes semblant a la següent:
Per reproduir la melodia, en el nostre cas quan es prem el vaixell, hem Després d'haver provat el comportament de cada raig de sol, anem a veure com podem reproduir la melodia quan, per exemple, cliquem al sol. Si hem tocat cada raig de sol per ordre de notes, hauríem de tenir la llista: