sábado, 14 de septiembre de 2013

COLABO CLARINETE +ARDUINO

DISEÑO DE UNA CONSOLA DE CLARINETE
Para comenzar de lleno con el diseño de lleno debemos conocer alguna cosas del clarinete la cual son de vital importancia para el diseño del mismo en esta ocasión se va a diseñar con el software processing que es un programa de desarrollo integrado de código abierto el cual es una herramienta fundamental que es la interfaz que nos va mostrar el instrumento y nos va  a mostrar los orificios a  tapar en cada una de las notas y se va a usar  arduino que es una plataforma de hardware libre con una placa de desarrollo basada en micro controladores atmel que va ser la interfaz entre el usuario o aprendiz y el instrumento por medio del processing  para continuar debemos conocer las características del clarinete que  es  importante de este diseño.
 El clarinete actual tiene 24 agujeros y consta de cuatro partes la "boquilla" o "pico", sobre la que se fija la lengiieta vibrante de cana por medio de un anillo de metal provisto de tornillos; la "portón superior" del cuerpo o de la mano izquierda; la "portón inferior" o de la mano derecha y el "pabellón" o "campana". El material ideal para la construcción del clarinete es la madera de ébano. Existen, sin embargo, instrumentos más económicos en ebonita o metal, pero naturalmente de calidad inferior. Antigua-mente se construía diversos tipos de clarinetes de distintas tonalidades. Uno de ellos llamado "corno di bassetto" fue usado frecuentemente por Mozart. Actualmente existen cinco tipos de clarinetes: el clarinete en mi bemol o clarinete piccolo, el clarinete en do y en si bemol, el clarinete en la y el clarinete bajo en si bemol. Vivaldi fue el primero que lo empleo en la orquesta y Rameau lo introdujo en la opera. En la orquesta los más utilizados actualmente son el clarinete en la, en si bemol y el clarinete bajo en si bemol.

Primero que todo para la parte del processing como es un software basado java nos da muchas ventajas a la hora del diseño ya que nos permite hacerle muchos efectos para empezar para hacer más llamativa la cosa utilice un programa que todos conocen llamado Photoshop el cual me sirvió mucho para  darle un toque de elegancia al diseño  como lo van a ver a continuación en las imágenes




IMAGEN  1:
 esta fue la imagen escogida debido a muchas razones de diseño una  de  ella es que se puede visualizar la mayoría de los orificios del instrumento que es de vital importancia para ya que la consola  hecha para aquellas personas que desean aprender a tocar y por supuesto para los ya saben le puedan dar el visto bueno a la consola  o escribir sugerencias en blog.




                                                            IMAGEN 2:
aquí podemos observar la  imagen de fondo utilizada para quitarle la simplicidad que tenía la imagen anterior  si se dan cuenta esta imagen fue escogida de acorde a la ocasión 

                                                          IMAGEN  3: 
esto son los botones utilizados  en la maniobra del instrumento  y toca cada una de las  notas  del clarinete 


                                                            IMAGEN 4: 
Acá  podemos mirar y darnos cuenta el cambio que se obtuvo a darle estos retoques  que se le dieron   a  la imagen ya pueden observar un poco como es el diseño  se colocaron 48 botones los cuales se dividen en 4  filas a 12 botones las cuales se dividen bajo, medio, alto y superior  y también se le dio un poco más de brillo a la imagen  más  adelante  en el desarrollo veremos cómo se  hace con processing  para  mostrar estas imágenes  y demás efectos.

En los pasos anteriores apenas vimos como  retocar  la imagen a mostrar en la consola  ahora vamos  a pasar a  una de las partes importantes de la  consola como lo es  la programación  con processing  el  cual como ya dije anteriormente está basado en un entorno   java.  el lenguaje de que se utiliza en acá es muy parecido a lenguaje c. por lo tanto aquellos que programen bien en c se le s hará mucho más  fácil esta parte  en esta dirección electrónica podrás encontrar más información acerca del programa  y podrás descargarlo  y descargar las  diferentes librerías necesarias   para cualquier proyecto que desees realizar con este programa y además es a código abierto  www.processing.org  .
Para entrar en materia  toda consola necesita de unas notas las cuales son  el punto importante de este instrumento   para el diseño de la consola existen varias formas de hacerla una es aplicarle furrier a cada nota y sacarle la  fundamental y  la otra forma seria la cual fue la que he escogido para hacer. La  cual es, grave cada una de las notas   principales que se reproducen las cual la saque  de una página en internet  donde se encuentran muchos instrumentos musicales para practica y aprender y de hay me guie para el diseño de mi consola que la puedes encontrar en la siguiente página http://www.freeecardgreeting.net/home/clarinet_online_spanish.php  de aquí grave cada nota la cual me la entregaba en formato midi. Después de descargar las 48 notas básicas lo que se hice  fue con un editor de música fue recortarle los espacio en blanco que se generan al momento de grabar, para lo cual utilice  programa  que se llama audicity. Después esos archivos lo convertir a WAV  la conversión va de acuerdo a la librería que usen a los formatos que esta admita para la reproducción.  Bueno continuando  para este diseño utilice la librería maximjava.api  para la reproducción los tonos grabados se deben guardar en la misma carpeta  donde se encuentra su proyecto junto con la imagen que deseen  mostrar. Y debe también incluirse la librería en el caso que el processing no la tenga incluida.
Para iniciar después de haber descargado el processing abrimos  


                                            IMAGEN 5:
 como nos muestra la imagen le damos click  y nos abra una ventana de  trabajo donde vamos a realiza nuestra programación 


                                                         IMAGEN 6:
En la imagen  6 Primero que todo declare  la variables a usar los tonos declarando primero la librería que use  en mi caso como se muestra que maxim, como pueden ver declare cada una de los tonos   y los clasifique,  podemos observar que para esto se usó la instrucción  AudioPlayer tono1;   AudioPlayer tono2; y así sucesivamente hasta completar los 48 tonos las cuales se asigna para la librería los  reconozca.



                                                     IMAGEN 7:
En esta parte lo que hice  cargar a imagen que se  diseñó y se arregló como  pueden ver  en la imagen 7  utilice la siguientes instrucciones size(900, 600); la cual me da el tamaño de la imagen a colocar la cual al momento de diseñar se le debe colocar  en mi caso es de 900X600.  Para cargar la imagen utilice la instrucción  img = loadImage("clarinete-8.jpg"); dentro de los paréntesis va el nombre de imagen con que la guardaron a acompañada de punto  y el formato utilizado en mi caso use .jpg, luego le agregue la siguiente instrucción la cual nos sirve para centrar la imagen  y su instrucción es,  imageMode(CENTER); . Luego en la parte de debajo de la imagen a una variable le asigne cada tono  de las notas grabadas. Con la  siguiente instrucción agregue el archivo grabado anteriormente   tono1 = maxi.loadFile ("tono1E_L.wav"); como puden observar que con esta instrucción se agrega el tono de  la nota del archivo guardado con su respectivo formato en este es WAV  acompañado del nombre que tiene, asi sucesivamente hasta completar los 48  tonos.

En este diseño se implementó para que el usuario viera que teclas se necesitan tapar para sacar cada nota. Para esto le voy a mostrar el siguiente.
Void draw () {
  background (0, 102, 153);    /////
 Image (img, width/2, height/2);  }
Estas instrucciones no sirve para cargar el fondo  de la imagen  el background  es el que hace y se le cargan los valores que se necesitan y en la parte de abajo el alto y ancho de la imagen.
                               IMAGEN 8:
 En la imagen 8 se  puede observar que use la instrucción void mouse pressed esta parte se encarga de declarar a mouse con actuador para hundir la tecla que se desea  después más abajo declare la coordenadas  de mouse en este caso X y Y  después viene un condicional el cual se le coloca las coordenadas de cada botón cuando que activa los orificios que se deben tapar.



                                            IMAGEN 9:
 EN esta imagen podemos ver  que después de  la condicional  encontramos la instrucción fill la cual es la encargada de dar color por ejemplo el color amarrillo seria asi. Fill (242, 204, 47, 160); //Amarillo  en este caso una elipse la cual la sacamos con la instrucion ellipse (xo,yo, xi yi) la cual es la elipse del botón principal y las que siguen son de los orificios que se deben tapar para la cada nota en este código mostrado en la figura 9 es la tecla E de los bajos. Y a cada orificio se le asigno cada  coordenada para este paso se hace muy tedioso ya que toca ir probando por cárdenas tanto en x como en y hasta llegar a la posición deseada después colocarle las coordenada para el diámetro del círculo. 

                        IMAGEN 10: ejecución de tono
En esta imagen se puede apreciar cómo se ejecutó cada tono  y su respectiva instrucción  primero se usó tono1.play(); la cual llama a la librería para ejecutar el tono asignado  luego se colocó una instrucción para aumentar el volumen la  cual es tono1.volume(8); ya que esta librería  me presento un problema con la amplitud del sonido a medida que se le fueron ingresando los tonos estos fueron disminuyendo  y con esta instrucción logre darle un poco más de volumen  y no le pude colocar más valor al volumen que es el que se encuentra dentro del paréntesis. Pero les recomiendo utilizar la librería minim la cual. Voy a cambiar para mejorar mucho más el sonido y que compañeros me recomendaron y me mostraron las diferencias entre las librerías.
Después se colocó la instrucción  tono1.setLooping(false);  la cual hace que apenas termine tono este no se vuelva a repetir hasta tanto el usuario  no vuelva a tocar el botón otra vez.
De aquí en adelante el código se repite hasta hacer los 48  teclas con sus respectivos orificios a tapar, se repite solo cambian los tonos que son diferente y las coordenadas de los botones que hace que el diseño sea tedioso les voy a dejar el código completo para que el que quiera mirar y probar y  mirar cómo se pueden hacer buenos proyectos con estas herramientas de  código abierto y las ventajas que
Para la parte de la interfaz usuario y el instrumento  descargue la librería que se necesita para conectar el arduino con el proccesinng que es el firmata que lo puedes encontrar en http://arduino.cc/es/Reference/Libraries



Acá les dejo el código completo por si tienen alguna duda acerca de la consola  y le hagan los cambios que quieran  hacerle y alguna inquietud  con lo explicado anteriormente.


Maxim maxi;
///////////////// sonido del clarinete  bajos//////////////////////////////////////////////////////////////////
AudioPlayer tono1;  AudioPlayer tono2; AudioPlayer tono3; AudioPlayer tono4; AudioPlayer tono5; 
AudioPlayer tono6;  AudioPlayer tono7; AudioPlayer tono8; AudioPlayer tono9; AudioPlayer tono10;
AudioPlayer tono11; AudioPlayer tono12;

////////////////////MEDIOS ////////////////////////////////////////////////////////////////////////////////////
AudioPlayer tono1M;  AudioPlayer tono2M;  AudioPlayer tono3M; AudioPlayer tono4M;  AudioPlayer tono5M;
AudioPlayer tono6M;  AudioPlayer tono7M;  AudioPlayer tono8M; AudioPlayer tono9M;  AudioPlayer tono10M;
AudioPlayer tono11M; AudioPlayer tono12M;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////ALTOS///////////////////////////////////////////////////////////////////////////
AudioPlayer tono1H;  AudioPlayer tono2H;   AudioPlayer tono3H;   AudioPlayer tono4H; AudioPlayer tono5H;
AudioPlayer tono6H;  AudioPlayer tono7H;   AudioPlayer tono8H;   AudioPlayer tono9H; AudioPlayer tono10H;
AudioPlayer tono11H; AudioPlayer tono12H;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////SUPERIOR//////////////////////////////////////////////////////////////////////77
AudioPlayer tono1h;  AudioPlayer tono2h;   AudioPlayer tono3h;   AudioPlayer tono4h;  AudioPlayer tono5h;
AudioPlayer tono6h;  AudioPlayer tono7h;   AudioPlayer tono8h;    AudioPlayer tono9h; AudioPlayer tono10h;
AudioPlayer tono11h; AudioPlayer tono12h;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PImage img;
PImage imgMask;

import java.awt.*;
import java.applet.*;
void setup() {
   /*Label L1;
  L1 = new Label("");*/
  size(900, 600);
  img = loadImage("clarinete-8.jpg");
  imageMode(CENTER);
  
  
   maxi = new Maxim(this);
  
  //sonido clarinete  BAJOS///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  tono1 = maxi.loadFile("tono1E_L.wav");    tono2 = maxi.loadFile("tono2F_L.wav");      tono3 = maxi.loadFile("tono3F#Gb_L.wav");   tono4 = maxi.loadFile("tono4G_L.wav");
  tono5 = maxi.loadFile("tono5G#Ab_L.wav"); tono6 = maxi.loadFile("tono6A_L.wav");      tono7 = maxi.loadFile("tono7A#Bb_L.wav");   tono8 = maxi.loadFile("tono8B_L.wav");
  tono9 = maxi.loadFile("tono9C_L.wav");    tono10 = maxi.loadFile("tono10C#Db_L.wav"); tono11 = maxi.loadFile("tono11D_L.wav");    tono12 = maxi.loadFile("tono12D#Eb_L.wav");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////MEDIO/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 tono1M = maxi.loadFile("tono1E_M.wav");    tono2M = maxi.loadFile("tono2F_M.wav");       tono3M = maxi.loadFile("tono3F#Gb_M.wav");   tono4M = maxi.loadFile("tono4G_M.wav");
 tono5M = maxi.loadFile("tono5G#Ab_M.wav"); tono6M = maxi.loadFile("tono6A_M.wav");       tono7M = maxi.loadFile("tono7A#Bb_M.wav");   tono8M = maxi.loadFile("tono8B_M.wav");
 tono9M = maxi.loadFile("tono9C_M.wav");    tono10M = maxi.loadFile("tono10C#Db_M.wav");  tono11M = maxi.loadFile("tono11D_M.wav");    tono12M = maxi.loadFile("tono12D#Eb_M.wav");
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 ////////////////////////////////////ALTOS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 tono1H = maxi.loadFile("tono1E_H.wav");     tono2H = maxi.loadFile("tono2F_H.wav");       tono3H = maxi.loadFile("tono3F#Gb_H.wav");   tono4H = maxi.loadFile("tono4G_H.wav");
 tono5H = maxi.loadFile("tono5G#Bb_H.wav");  tono6H = maxi.loadFile("tono5G#Bb_H.wav");    tono7H = maxi.loadFile("tono7A#Bb_H.wav");   tono8H = maxi.loadFile("tono8B_H.wav");
 tono9H = maxi.loadFile("tono9C_H.wav");     tono10H = maxi.loadFile("tono10C#Db_H.wav");  tono11H = maxi.loadFile("tono11D_H.wav");    tono12H = maxi.loadFile("tono12D#Eb_H.wav");

 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 //////////////////////////////////////////////////SUPERIOR/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 tono1h = maxi.loadFile("tono1E_ho.wav");    tono2h = maxi.loadFile("tono2F_ho.wav");       tono3h = maxi.loadFile("tono3F#Gb_ho.wav");  tono4h = maxi.loadFile("tono4G_ho.wav");
 tono5h = maxi.loadFile("tono5G#Ab_ho.wav"); tono6h = maxi.loadFile("tono6A_ho.wav");       tono7h = maxi.loadFile("tono7A#Bb_ho.wav");  tono8h = maxi.loadFile("tono8B_ho.wav");
 tono9h = maxi.loadFile("tono9C_ho.wav");    tono10h = maxi.loadFile("tono10C#Db_ho.wav");  tono11h = maxi.loadFile("tono11D_ho.wav");   tono12h = maxi.loadFile("tono12D#Eb_ho.wav");
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

}
  void draw() {
  background(0, 102, 153);    /////
 image(img, width/2, height/2);
  }
  void mousePressed()
{  
   println(mouseX);
   println(mouseY);
 /////////////////////////////BAJOS//////////////////////////////// 
 if(dist(325,60, mouseX, mouseY) <=20)  //tecla1 bajo E
     {
       fill(128, 128 ,128, 160);
       ellipse(325,60, 35, 35);  /////BOTON PRINCIPAL
       frameRate(6); 
       
       fill(255, 0 ,47, 160);
       ellipse(185,235, 10, 10);  
       frameRate(8); 
       

        fill(174, 221 ,50, 160);
       ellipse(198,236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221,255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(240,270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(270,278, 15, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300,320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320,335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(330,370, 20, 10);  
       frameRate(8);
       tono1.play();
       tono1.volume(8);
       tono1.setLooping(false);

     }

 if(dist(373, 60, mouseX, mouseY) <=20) //tecla2 bajo F
     {
       fill(128, 128 ,128, 160);
       ellipse(373, 60, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(275, 268, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(330, 370, 20, 10);  
       frameRate(8);
       tono2.play();
       tono2.volume(8);
       tono2.setLooping(false);
     }

if(dist(419,61, mouseX, mouseY) <=20) //tecla3 bajo F#Gb_L
     {
       fill(128, 128 ,128, 160);
       ellipse(419, 61, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(295, 276, 10, 14);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(310, 360, 20, 10);  
       frameRate(8);
       tono3.play();
       tono3.volume(8);
       tono3.setLooping(false);
     }
     if(dist(463,61, mouseX, mouseY) <=20) //tecla4 bajo G
     {
       fill(128, 128 ,128, 160);
       ellipse(463, 61, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       tono4.play();
       tono4.volume(8);
       tono4.setLooping(false);
     }

if(dist(508, 61, mouseX, mouseY) <=20) //tecla5 bajo G#Ab
     {
       fill(128, 128 ,128, 160);
       ellipse(508,61, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       tono5.play();
       tono5.volume(8);
       tono5.setLooping(false);
     }

if(dist(555, 63, mouseX, mouseY) <=20) //tecla6 bajo A
     {
       fill(128, 128 ,128, 160);
       ellipse(555, 63, 35, 35);  
       frameRate(6); 
        
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       tono6.play();
       tono6.volume(7);
       tono6.setLooping(false);
     }

if(dist(604, 63, mouseX, mouseY) <=20) //tecla7 bajo A#Bb
     {
       fill(128, 128 ,128, 160);
       ellipse(604, 63, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       tono7.play();
       tono7.volume(8);
       tono7.setLooping(false);
     }
if(dist(648, 62, mouseX, mouseY) <=20) //tecla8 bajo B
     
  {    
       fill(128, 128 ,128, 160);
       ellipse(648, 62, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       tono8.play();
       tono8.volume(8);
       tono8.setLooping(false);
     }
     if(dist(696, 61, mouseX, mouseY) <=20) //tecla9 bajo C
     {
       fill(128, 128 ,128, 160);
       ellipse(696, 61, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       tono9.play();
       tono9.volume(8);
       tono9.setLooping(false);
     }
     
      if(dist(740, 64, mouseX, mouseY) <=20) //tecla10 bajo C#Db
     {
       fill(128, 128 ,128, 160);
       ellipse(740, 64, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(260, 273, 20, 10);  
       frameRate(8); 
       tono10.play();
       tono10.volume(7);
       tono10.setLooping(false);
     }
     if(dist(785, 65, mouseX, mouseY) <=20) //tecla11 bajo D
     {
       fill(128, 128 ,128, 160);
       ellipse(785, 65, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       tono11.play();
       tono11.volume(7);
       tono11.setLooping(false);
     }

   if(dist(830, 64, mouseX, mouseY) <=20) //tecla12 bajo D#EB
     {
       ////////////////////////////
       fill(128, 128 ,128, 160);
       ellipse(830, 64, 35, 35);  
       frameRate(6); 
       /////////////////////////////
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       /////////////////////////////
       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 
      //////////////////////////////
       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       ////////////////////////////
       fill(174, 221 ,50, 160);
       ellipse(240, 290, 10, 10);  
       frameRate(8); 
       tono12.play();
       tono12.volume(7);
       tono12.setLooping(false);
     } 
  //////////////////////////////////////////////////////////////////////

//////////////////////////////////////MEDIO/////////////////////////////////////  
 if(dist(325, 110, mouseX, mouseY) <=20)  //tecla1 MEDIO E
     {
       fill(128, 128 ,128, 160);
       ellipse(325, 110, 35, 35);  
       frameRate(6); 
       //////////////////////////////
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       //////////////////////////////
       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 
       tono1M.play();
       tono1M.volume(8);
       tono1M.setLooping(false);
     }
     
     if(dist(372, 110, mouseX, mouseY) <=20)  //tecla2 MEDIO F
     {
       fill(128, 128 ,128, 160);
       ellipse(372, 110, 35, 35);  
       frameRate(6); 
       
       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       tono2M.play();
       tono2M.volume(7);
       tono2M.setLooping(false);
     }
     
     if(dist(419, 110, mouseX, mouseY) <=20)  //tecla3 MEDIO G#Ab
     {
       fill(128, 128 ,128, 160);
       ellipse(419, 110, 35, 35);  
       frameRate(6); 
       
       fill(174, 221 ,50, 160);
       ellipse(198, 236, 15, 15);  
       frameRate(8); 

       tono3M.play();
       tono3M.volume(8);
       tono3M.setLooping(false);
     }
     
     if(dist(463, 110, mouseX, mouseY) <=20)  //tecla4 MEDIO G
     {
       fill(128, 128 ,128, 160);
       ellipse(463, 110, 35, 35);  
       frameRate(6); 
       
       tono4M.play();
       tono4M.setLooping(false);
       tono4M.volume(8);
     }
     if(dist(510, 110, mouseX, mouseY) <=20)  //tecla5 MEDIO G#Ab
     {
       fill(128, 128 ,128, 160);
       ellipse(510, 110, 35, 35);  
       frameRate(6); 
       
       fill(174, 221 ,50, 160);
       ellipse(210, 230, 15, 11);  
       frameRate(8); 

       tono5M.play();
       tono5M.volume(6);
       tono5M.setLooping(false);
}

 if(dist(558, 110, mouseX, mouseY) <=20)  //tecla6 MEDIO A
     {
       fill(128, 128 ,128, 160);
       ellipse(558, 110, 35, 35);  
       frameRate(6); 
       
       fill(174, 221 ,50, 160);
       ellipse(185, 222, 10, 18);  
       frameRate(8); 

       tono6M.play();
       tono6M.volume(7);
       tono6M.setLooping(false);
    }
    
    if(dist(604, 110, mouseX, mouseY) <=20)  //tecla7 MEDIO A#Bb
     {
       fill(128, 128 ,128, 160);
       ellipse(604, 110, 35, 35);  
       frameRate(6); 
       
       fill(174, 221 ,50, 160);
       ellipse(185, 222, 10, 18);  
       frameRate(8); 
       
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       tono7M.play();
       tono7M.volume(7);
       tono7M.setLooping(false);
    }
    
    if(dist(650, 110, mouseX, mouseY) <=20) //tecla8 medio 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(650, 110, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(270, 276, 10, 14);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(315, 376, 20, 10);  
       frameRate(8);
       tono8M.play();
       tono8M.volume(7);
       tono8M.setLooping(false);
     }
     if(dist(696, 110, mouseX, mouseY) <=20) //tecla9 medio 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(696, 110, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(270, 268, 10, 12); 
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(325, 370, 25, 10);  
       frameRate(8);
       tono9M.play();
       tono9M.volume(7);
       tono9M.setLooping(false);
     }
     if(dist(739, 110, mouseX, mouseY) <=20) //tecla10 medio 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(739, 110, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(310, 360, 25, 10);  
       frameRate(8);
       tono10M.play();
       tono10M.volume(7);
       tono10M.setLooping(false);
     }
     if(dist(786, 113, mouseX, mouseY) <=20) //tecla11 medio 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(786, 113, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
      
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       tono11M.play();
       tono11M.volume(7);
       tono11M.setLooping(false);
     }
     if(dist(830, 113, mouseX, mouseY) <=20) //tecla12 medio 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(830, 113, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       tono12M.play();
       tono12M.volume(6);
       tono12M.setLooping(false);
     }
     ////////////////////////////////ALTOS///////////////////////////////////////////////////////////////////////////
     
     if(dist(324, 161, mouseX, mouseY) <=20) //tecla1 ALTO E 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(324, 162, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       tono1H.play();
       tono1H.volume(6);
       tono1H.setLooping(false);
     }
     if(dist(373, 161, mouseX, mouseY) <=20) //tecla2 ALTO F
     {
       
       fill(128, 128 ,128, 160);
       ellipse(373, 161, 35, 35);  
       frameRate(6); 
      
       
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       tono2H.play();
       tono2H.volume(6);
       tono2H.setLooping(false);
     }
     if(dist(421, 161, mouseX, mouseY) <=20) //tecla3 ALTO F#Gb
     {
        fill(128, 128 ,128, 160);
       ellipse(421, 161, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
        
       tono3H.play();
       tono3H.volume(7);
       tono3H.setLooping(false);
     }
      if(dist(464, 161, mouseX, mouseY) <=20) //tecla4 ALTO G
     {
        fill(128, 128 ,128, 160);
       ellipse(464, 161, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
        
       tono4H.play();
       tono4H.volume(7);
       tono4H.setLooping(false);
     }

 if(dist(511, 161, mouseX, mouseY) <=20) //tecla5 ALTO G
     {
        fill(128, 128 ,128, 160);
       ellipse(511, 161, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(260, 273, 20, 10);  
       frameRate(8); 
        
       tono5H.play();
       tono5H.volume(7);
       tono5H.setLooping(false);
     }
     
      if(dist(557, 161, mouseX, mouseY) <=20) //tecla6 ALTO A
     {
        fill(128, 128 ,128, 160);
       ellipse(557, 161, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       tono6H.play();
       tono6H.volume(7);
       tono6H.setLooping(false);
     }
      if(dist(603, 162, mouseX, mouseY) <=20) //tecla7 ALTO A
     {
       fill(128, 128 ,128, 160);
       ellipse(603, 162, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

        fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(240, 290, 10, 10);  
       frameRate(8);
        
       tono7H.play();
       tono7H.volume(6);
       tono7H.setLooping(false);
     }
      if(dist(650, 162, mouseX, mouseY) <=20) //tecla8 ALTO B
     {
        fill(128, 128 ,128, 160);
       ellipse(650, 162, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8);

       tono8H.play();
       tono8H.volume(6);
       tono8H.setLooping(false);
     }
     if(dist(696, 162, mouseX, mouseY) <=20) //tecla9 ALTO C
     {
        fill(128, 128 ,128, 160);
       ellipse(696, 162, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       tono9H.play();
       tono9H.volume(6);
       tono9H.setLooping(false);
     }
     if(dist(741, 162, mouseX, mouseY) <=20) //tecla10 alto 
     {
       fill(128, 128 ,128, 160);
       ellipse(741, 162, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       tono10H.play();
       tono10H.volume(6);
       tono10H.setLooping(false);
     }
     if(dist(785, 163, mouseX, mouseY) <=20) //tecla11 alto
     {
       
       fill(128, 128 ,128, 160);
       ellipse(785, 163, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono11H.play();
       tono11H.volume(6);
       tono11H.setLooping(false);
     }
      if(dist(831, 163, mouseX, mouseY) <=20) //tecla12 alto
     {
       
       fill(128, 128 ,128, 160);
       ellipse(831, 163, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
      
        fill(174, 221 ,50, 160);
       ellipse(304, 330, 20, 3);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono12H.play();
       tono12H.volume(6);
       tono12H.setLooping(false);
     }
     
     //////////////////////////////////////SUPERIOR///////////////////////////
     
     if(dist(323, 210, mouseX, mouseY) <=20) //tecla1  SUPERIOR  E 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(323, 210, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240,270, 10, 10);  
       frameRate(8); 
     
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono1h.play();
       tono1h.volume(6);
       tono1h.setLooping(false);
     }
     if(dist(372, 210, mouseX, mouseY) <=20) //tecla2  SUPERIOR  F 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(372, 210, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8);
      
       fill(174, 221 ,50, 160);
       ellipse(260, 273, 20, 10);  
       frameRate(8);  
     
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono2h.play();
       tono2h.volume(6);
       tono2h.setLooping(false);
     }
     if(dist(418, 210, mouseX, mouseY) <=20) //tecla3  SUPERIOR  F#Gb 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(418, 210, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
        
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono3h.play();
       tono3h.volume(5);
       tono3h.setLooping(false);
     }
     if(dist(463, 211, mouseX, mouseY) <=20) //tecla4  SUPERIOR  G 
     {
       
       fill(128, 128 ,128, 160);
       ellipse(463, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
        
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono4h.play();
       tono4h.volume(5);
       tono4h.setLooping(false);
     }
     if(dist(510, 211, mouseX, mouseY) <=20) //tecla5  SUPERIOR  
     {
       
       fill(128, 128 ,128, 160);
       ellipse(510, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
        
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono5h.play();
       tono5h.volume(5);
       tono5h.setLooping(false);
     }
     if(dist(557, 211, mouseX, mouseY) <=20) //tecla6  SUPERIOR  A  
     {
       
       fill(128, 128 ,128, 160);
       ellipse(557, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8);

       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
        
       fill(174, 221 ,50, 160);
       ellipse(328, 362, 15, 10);  
       frameRate(8);
       
       tono6h.play();
       tono6h.volume(6);
       tono6h.setLooping(false);
     }
      if(dist(605, 211, mouseX, mouseY) <=20) //tecla7  SUPERIOR  A  
     {
       fill(128, 128 ,128, 160);
       ellipse(605, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(210, 230, 15, 11);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8);

       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
        
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono7h.play();
       tono7h.volume(6);
       tono7h.setLooping(false);
     }
     if(dist(650, 211, mouseX, mouseY) <=20) //tecla8  SUPERIOR  B  
     {
       
       fill(128, 128 ,128, 160);
       ellipse(650, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8);

       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
        
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono8h.play();
       tono8h.volume(6);
       tono8h.setLooping(false);
     }
      if(dist(694, 211, mouseX, mouseY) <=20) //tecla9  SUPERIOR  C  
     {
       
       fill(128, 128 ,128, 160);
       ellipse(694, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(210, 230, 15, 11);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(198, 236, 10, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(328, 349, 15, 10);  
       frameRate(8);
       
       tono9h.play();
       tono9h.volume(6);
       tono9h.setLooping(false);
     }
      if(dist(742, 211, mouseX, mouseY) <=20) //tecla10 superior
     {
       
       fill(128, 128 ,128, 160);
       ellipse(742, 211, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(300, 320, 20, 10);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(310, 360, 25, 10);  
       frameRate(8);
       tono10h.play();
       tono10h.volume(6);
       tono10h.setLooping(false);
     }
     if(dist(788, 213, mouseX, mouseY) <=20) //tecla11 superior D
     {
       fill(128, 128 ,128, 160);
       ellipse(788, 213, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 

       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       fill(174, 221 ,50, 160);
       ellipse(310, 360, 25, 10);  
       frameRate(8);
       tono11h.play();
       tono11h.volume(6);
       tono11h.setLooping(false);
     }
     if(dist(830, 213, mouseX, mouseY) <=20) //tecla12  SUPERIOR  
     {
       fill(128, 128 ,128, 160);
       ellipse(830, 213, 35, 35);  
       frameRate(6); 
      
       fill(255, 0 ,50, 160);
       ellipse(170, 232, 10, 18);  
       frameRate(8); 

       fill(255, 0 ,50, 160);
       ellipse(185, 235, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(221, 255, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50,160);
       ellipse(240, 270, 10, 10);  
       frameRate(8); 
       
       fill(174, 221 ,50, 160);
       ellipse(320, 335, 20, 15);  
       frameRate(8);
       
       tono12h.play();
       tono12h.volume(6);
       tono12h.setLooping(false);
     }
}




IMAGEN 11: codigo compilado funcionando  



autor: adolfo gamez castro

No hay comentarios:

Publicar un comentario