CANCIONES

 

14.1. EXPERIMENTA

 

1) Introduce en la unidad de discos A el Disco de Utilidades, carga el siguiente fichero e imprime en papel su contenido:

 

?carga "música

?eco "lpt1

?im "común

?noeco

 

2) Define el siguiente procedimiento y ejecútalo

 

para frere :k

haz "f [do4 re4 mi4 do4 do4 re4 mi4 do4 mi4 fa4 sol14 mi4 fa4 sol14 sol4 la4 sol4 fa4 mi4 do4 sol14 la4 sol14 fa4 mi4 do4 re4 si3 do4]

haz"d[2 2 2 2 2 2 2 2 2 2 4 2 2 4 1 1 1 1 2 2 1 1 1 1 2 2 2 2 4] 

común :f :d :k

fin

 

Ejecución:

 

?notas

?frere 2

?frere 4

?frere 8

?frere 1

?frere.5

 

3) Define los siguientes procedimientos y ejecútalos:

 

para tocar

bp bt ot

poncursor [10 10]

es[q = do\ \ \ \ \ \w=re]

poncursor [16 22] es [f =fin]

órgano

fin

 

para órgano

local "c

haz "c lc

si "q = :c [tono :do4 4]

si "w = :c [tono :re4 4]

si "f = x [pt bt alto]

órgano

fin

 

Ejecución:

 

?tocar

 

Pulsa las teclas q w f y repite tocar

 

4) Añadimos nuevos elementos al procedimiento órgano

 

para órgano

local "c

haz "c lc

poncursor [15 23] es "\ \ \ \ \

poncursor [15 23]

si "q = :c [tono :do4 4 es "DO]

si "w = :c [tono :reo 4 es "RE]

si "f = :c [pt bt alto]

órgano

fin

 

Ejecución:

 

?tocar

 

5) Carga del Disco de Utilidades el archivo MUSIMEMO y teclea luego las siguientes órdenes:

 

?imts

?imtodo

?notas

?bp órganom

 

Pulsa repetidas veces las letras q w e r

Después de un tiempo pulsa la m

Dale el nombre que quieras y continua tocando.

Repite esta secuencia varias veces.

 

Pulsa ahora la c

 

Trata de entender lo que hace el ordenador.

 

 

14.2. OBSERVA

 

SOLFEANDO UNA CANCION

 

Notas musicales:

 

A cada nota le damos un nombre según su colocación en el pentagrama

 

do        Corresponde a la nota atravesada por una línea auxiliar debajo de I

            primera línea del pentagrama.

re         Es la nota que está situada justo debajo de la primera línea del pentagrama.

mi         Está atravesada por la primera línea.

fa         Está entre la primera y segunda línea.

sol        Está atravesada por la segunda línea.

la         Está entre la segunda y tercera línea.

si          Está atravesada por la tercera línea.

 

DURACIONES DE LAS NOTAS:

 

Depende de la figura de las notas, sólo utilizaremos las siguientes:

 

Redonda =8 blanca = 4 negra = 2  blanca=1

 

A la corchea le asignamos la duración 1, las demás tienen doble duración que la anterior.

 

ENSEÑANDO UNA CANCION AL ORDENADOR

 

Para enseñar una canción al ordenador basta con introducirle en un procedi miento dos listas en las que estarán las notas y las duraciones.

 

para frere :k

haz "f [do4 reo mi4 do4 do4 reo mi4 do4 mi4 fa4 so14 mi4 fa4 solo so14 la, solo fa4 mi4 do4 solo lao solo fa4 mi4 do4 reo si3 do4] haz"d[2 2 2 2 2 2 2 2 2 2 4 2 2 4 1 1 1 1 2 2 1 1 1 1 2 2 2 2 4 ]

común :f :d :k

fin

 

El procedimiento común nos ayuda a interpretar canciones leyendo su parti tura.

 

para común :f :d :k

si y [ ] - :f [ ] = :d [alto]

tono valor pr :f :k * pr :d

común mp :f mp :d :k

fin

 

Es un procedimiento recursivo que va tomando los elementos de dos listas, un de frecuencias y otro de duraciones y se los presenta como entradas a la primitiv tono.


MEMORIZANDO CANCIONES EN EL ORDENADOR

 

Mediante el procedimiento ejecución conseguimos que a la vez que se emite un sonido y se escribe el nombre de la nota, ésta se vaya incluyendo en una lista a la que se pone nombre en memoriza y se convierte en procedimiento.

 

Con el procedimiento Interpreta podemos oir de nuevo lo que antes hemos tocado.

 

14,3. RESOLUCION DE PROBLEMAS

 

PROBLEMA 1:

 

1) Define un procedimiento que permita tocar la siguiente canción.

 

2) ¿Qué canción es?

 

PROBLEMA 2:

 

Amplía los procedimientos tocar y órganos del EXPERIMENTA para tener octava 41 completa y poder usar el ordenador como un órgano.

 

PROBLEMA 3:

 

Define un procedimiento que se combine con órgano para que dibuje las noti en un pentagrama.

 

PROBLEMA 4:

 

Define un procedimiento interactivo que permita memorizar una canción a

 

vez que se va interpretando con el procedimiento órgano.

 

PROBLEMA 5:

 

Define un menú con una variable global arranque para los contenidos de e: tema.


14.4. SOLUCIONES

 

PROBLEMA 1:

 

1)

para cumpleaños :k

recicla

haz "f [do4 do4 reo do4 fa4 mi4 do4 do4 reo do4 so14 fa4 do4 do4 do51a4 fa4 mi4 reo la#4 la#4 lao fa4 so14 fa4 s]

haz"d [1 1 2 2 2 4 1 1 2 2 2 4 1 1 2 2 2 2 2 1 1 2 2 2 4 2 ]

común :f :d :k

fin

 

Ejecución:

 

?cumpleaños 2

 

2) La canción era el "cumpleaños feliz"

 

PROBLEMA 2:

 

Añadimos las letras que hacen sonar las diversas notas en los procedimientos

tocar y órgano.

              para tocar

              bp bt ot

              poncursor [0 21]

              es [Q\=\do W\=\re E\=\mi R\=\fa T\=\sol Y\=\la U\=\si I\=\do]

              poncursor [4 22]

              es [2\=\do# 3\=\re# 5\=\fa# 6\=\sol# 7\=\la#]

              poncursor [16 23]

              es [F = Fin]

              órgano

              fin   

                                                                          

              para órgano

            local "c

              haz "c Ic

              poncurcor [17 15] es "\ \ \ \ \ 

              poncursor [17 15]

              si "q = :c [tono :do4 4 es "DO]                             

              si "w = :c [tono :reo 4 es "RE]

              si "e = :c [tono :mi4 4 es "MI]

si "r = :c [tono :fa4 4 es "FA]

si "t = :c [tono :sol4 4 es" SOL]

si "y = :c [tono :la4 4 es "LA]

si "u= :c [tono :si4 4 es "SI]

si "1 = :c [tono :dos 4 es "DO]

si 2 = :c [tono :do#4 4 es "DO#]

si 3 = :c [tono :re#4 4 es "RE#]

si 5 = :c [tono :fa#4 4 es "FA#]

si 6 = :c [tono :sol#4 4 es "SOL#]

si 7 = :c [tono :la#4 4 es "LA#]

si "f = :c [pt bt alto]

órgano

fin

 

Ejecución:

 

?tocar

 

PROBLEMA 3:

 

Necesitamos los procedimientos del tema anterior con los que dibujábamos pentagramas y luego modificar tocar y órgano.

 

para tocar1

bp bt ot

pentagrama 60

clave si poncursor [0 21]

es [Q\=\do W\=\re E\=\mi R\=\fa T\=\sol Y\=\la U\=\si I\=\do]

poncursor [4 22] es [2\=\do# 3\=\re# 5\=\fa# 6\=\sol# 7\=\la#]

poncursor [16 23]

es [F = Fin]

órgano1

fin

 

para órgano1

local "c

haz "c lc

poncursor [15 15] ponforma "negra mt

si "q = :c [ponforma "negrad ponpos [-100 30] tono :do4 4 es "\ \ DO]

si "w = :c [ponpos [-80 34] tono :reo 4 es "\ \ RE]

si "e = :c [ponpos [-60 37.5] tono: mi4 4 es "\ \ MI]

si "r = :c [ponpos [-40 39.5] tono :fa4 4 es"\\ FA]

si "t = :c [ponpos [-20 43] tono :sol4 4 es "\ SOL]

si "y = :c [ponpos [0 44.5] tono :la4 4 es "\ \ LA]

si "u = :c [ponpos [20 48.5] tono :si4 4 es "\ \ SI]

si "i = :c [ponpos [40 50.6] tono :dos 4 es "\ \ DO]

si 2 = :c [ponforma "negrads ponpos [-100 30] tono :do#4 4 es "\ DO#]

si 3 = :c [ponforma "negrads ponpos [-80 35] tono :re#4 4 es "\ RE#]

si 5 = :c [ponforma "negras ponpos [-40 40] tono :fa#4 4 es "\ FA#]

si 6 = :c [ponforma "negras ponpos [-20 42.5] tono :sol#4 4 es "SOL#]

si 7 = :c [ponforma "negras ponpos [0 45] tono :la#4 4 es "\ LA#]

si "f = :c [pt bt alto]

órgano1

fin

 

Ejecución:

 

?tocar1

 

PROBLEMA 4:

 

Modificamos el procedimiento órgano1, introduciendo ejecución. Definimos los procedimientos memoriza, Interpreta, ejecución y ampliamos el menú de le­tras.

 

para tocarm

bp bt ot pentagrama 60 clave

sl poncursor [0 21]

menúm

órganom

fin

 

para menúm

bt

es [Q\=\do W\=\re E\=\mi R\=\fa T\=\sol Y\=Va U\=\si I\=\do]

poncursor [1 21 es [M\=\Memoriza]

poncursor [23 22] es [C\=\Interpreta]

poncursor [123] es [2\=\do# 3\=\re# 5\=\fa# 6\=\sol# 7\=\la# F\=\fin]

fin

 

para órganom

local "c

haz "c lc poncursor [1515] ponforma "negra mt

si "q = :c [ejecución [ponforma "negrad ponpos [-100 30] tono :do4 4 es "\ \ DO]]

si "w = :c [ejecución [ponpos [-80 34] tono :reo 4 es "\ \ RE]]

si "e = :c [ejecución [ponpos [-60 37.5] tono :mi4 4 es "\ \ MI]]

si "r = :c [ejecución [ponpos [-40 39.5] tono :fa4 4 es "\ \ FA]]

si "t = :c [ejecución [ponpos [-20 43] tono :sol4 4 es "\ SOL]]

si "y = :c [ejecución [ponpos [0 44.5] tono la4 4 es "\ \ LA]]

si "u = :c [ejecución [ponpos [20 48.5] tono :si4 4 es "\ \ SI]]

si "1 = :c [ejecución [ponpos [40 50.6] tono :dos 4 es "\ \ DO]]

si 2 = :c [ejecución [ponforma "negrads ponpos [-100 30] tono :do#4 4 es "\ DO#]]

si 3 = :e [ejecución [ponforma "negras ponpos [-80 34] tono :re#4 4 es "\ RE#]]

si 5 = :c [ejecución [ponforma "negras ponpos [-40 39.5] tono :fa#4 4 es "\ FA#]]

si 6 = :c [ejecución [ponforma "negras ponpos [-20 43] tono :sol#4 4 es "SOL#]]

si 7 = :c [ejecución [ponforma "negras ponpos [0 44.5] tono :la#4 4 es "\ LA#]]

si "m = :c [memoriza menúm órganom]

si "c = :c [interpreta menúm órganom]

si "f = :c [pt bt alto]

órganom

fin

 

para ejecución :acción

ejecuta :acción

haz "órdenes (pu :acción :órdenes)

fin

 

para memoriza

bt

es [¿Cómo quieres llamar a esta canción?]

es [Pulsa INTRO después del nombre]

haz "nombre pr ll

si no miembro? :nombre :nombres [haz "nombres pu :nombre :nombres]

define :nombre (pp [ ] :órdenes)

bt haz "órdenes [ ]

fin


 

 

para interpreta

bt

si: nombres = [ ] [es [Aún no sé ninguna canción] espera 50 alto] es [Sé las canciones siguientes:]

es :nombres

es [¿Qué canción quieres que interprete?]

haz "canción ll

si no miembro? pr :canción :nombres [interpreta alto]

ejecuta :canción

bt

fin

 

Ejecución:

 

?tocarm

 

PROBLEMA 5:

 

Los apartados del menú pueden ser:

 

1.‑ Cumpleaños

 

2.Frere

 

3.Tocar el órgano

 

4.Tocar el órgano y memorizar

 

5.‑ FIN

 

para menú

ponfondo 1 ponpaleta 0

cargadib "menú

ot

ponct [1 0]

poncursor [6 11] es [OPCIONES \ \ \ \ \ EJECUCION]

ponct [3 0]

poncursor [10 13] es [1 \ \ \ \ \ Cumpleaños]

poncursor [10 14] es [2 \ \ \ \ \ Frere]

poncursor [10 15] es [3 \ \ \ \ \ Tocar el órgano]

poncursor [10 16] es [4 \ \ \ \ \ Tocar el órgano]

poncursor [17 17] es [y memorizar]

poncursor [10 18] es [5 \ \ \ \ \ FIN]

ponct [2 0]

poncursor [8 20] es [Pulsa la opción deseada]

opciones

fin

 

para opciones

haz "a lc

si no miembro? :a [1 2 3 4 5] [menú]

si 1= :a [cumpleaños 5 opciones alto]

si 2 = :a [frere 5 opciones alto]

si 3 = :a [bp tocar1 continuar alto]

si 4 = :a [bp tocarm continuar alto]

si 5 = :a [pt bt alto] fin

 

para continuar

local "v

poncursor [3 24]

teclea [¿Quieres volver al menú? \(S\/N\)\ ]

haz "v lc

si "s = :v [menú]

pt bt

fin

 

 

Arbol de los procedimientos:

menú --.opciones (*)------------    cumpleaños

                                                 Frere

                                                 tocarl

                                                 tocarm

Ejecución:

       ?menú

 

Definimos una variable arranque y lo guardamos en el disco.

 

?haz "arranque [menú]

?guarda "tema14


 

 

14.5. PROYECTO

 

PROYECTO 1. Música

 

Dibujar partituras de canciones con el ordenador.

 

Sebástián Timón

Ramón Castro

Colegio Ntra. Sra. del Pilar

 

Madrid

 

PROYECTO 2. Música

 

Enseñarle al ordenador canciones infantiles o populares y presentarlas en u rnenú para poder oir la que queremos.

 

Jesús Hernández

José A. Morán

José A. Casmartiño

Colegio Los Sauces

Madrid