Difference between revisions of "Vaixell musical"
m |
|||
Line 97: | Line 97: | ||
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. | 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 categoria | + | Per recórrer la llista s'h de fer servir un bloc "repeteix ..." , que es pot trobar a la categoria "'''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: |
[[File:Vaixell11.png|RTENOTITLE]] | [[File:Vaixell11.png|RTENOTITLE]] |
Revision as of 17:10, 10 December 2018
Contents
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 està limitat també es pot 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 s'hi clica toca i guarda una nota musical. Per tocar les notes (do, re, mi, fa, sol, la, si) són necessaris set raigs de sol, un per nota. Es poden afegir més objectes com ara un ocell.
Una proposta de funcionament és la següent:
- Quan es fa clic a un raig del sol, aquest reproduirà una nota i la guardarà en una llista per a la seva posterior reproducció.
- Quan es cliqui al centre del sol, s'esborren 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.
Tocar les notes
Es comença realitzant la programació per un raig de sol i una vegada estigui acabada, el codi es copia als altres raigs, arrossegant-ho sobre les icones de l'objecte.
A Scratch 2.0, els blocs per tocar notes musicals es poden trobar a la categoria "Sons", en color violeta. A Scratch 3.0 cal afegir l'extensió "Música". Per cada raig s'ha d'establir l'instrument a tocar i la nota. Clicant al bloc sobre el valor de la nota apareix un teclat que ens ajuda a identificar les notes.
Les notes musicals estan indicades segons el sistema anglosaxó. Pot ser útil tenir a mà una equivalència de la notació anglosaxona a la llatina:
A banda de tocar la nota, es pot realitzar algun efecte visual per quan l'objecte sigui cllicat. En el següent codi fa servir blocs de la categoria "Aspecte" canviant la brillantor del raig i després de tocar la nota tornar a l'estat original amb el bloc "treu els efectes gràfics".
Es poden provar diferents valors en l'efecte color per veure quin és que millor queda. 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.
Guardar 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 sèrie de valors sota el mateix nom. Es pot accedir als elements d'aquesta llista mitjançant un índex que indica la seva posició a aquesta.
A l'apartat "Variables" es pot trobar un botó per crear una llista 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 trobar a "Variables":
Les notes es poden guardar com el seu valor numèric (57 per al "do" o A segons quina notació s'utilitzi). Per reproduir la melodia només caldria accedir a cada nota seqüencialment (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 de les notes per enviar missatges i també perquè el nostre codi sigui més fàcil de llegir i entendre. Amb una petita variació al codi per tocar les notes ja ho tenim preparat:
Així, només caldrà enviar el missatge "do" per fer que soni la nota i 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 comprovar-ho es pot marcar la casella al costat de la variable, per veure com es van afegint notes a la llista.
Un cop comprovat el correcte funcionament, 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:
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 categoria "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:
Per accedir 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 aquest cas serà el nom de la nota musical. Per exemple a la llista anterior si preguntem per el segon element es retorna "mi".
Per poder accedir a cada element cal una variable que vagi cambiant en el seu valor a mida que es fa cada repetició, per exemple es pot dir "posició". Per obtenir el primer element de la llista, "posició" ha de tenir el valor 1. Cada vegada que fem el que hi ha a la repetició, el valor de "posició" ha d'avançar una posició, fins esgotar tots els elements de la llista. El següent codi fa sonar totes notes de la llista, és a dir, la melodia que havíem composat i guardat:
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: