Piano Virtual utilizando framework QT

Descripción del problema

 

Nuestro proyecto surge para suplir el hecho de contar con un piano, entendiendo que en la mayoría de los casos un piano alcanza un precio no accesible para las personas. Nuestro proyecto se enfoca en la carencia de la mayoría de las escuelas públicas de tener un piano, por lo que implementaremos un software que reproduzca un piano y un temporizador para los fines que estimen convenientes los alumnos, esto ya que es más fácil que un colegio tenga computadores a que tenga pianos.

 

Análisis del problema

 

En el sistema los usuarios  serán los alumnos en este caso y el programa, los usuarios interactuarán con el programa por medio del mouse conectado al computador, el cual al tener el cursor sobre una tecla y accionarla, implicará el sonido de la tecla antes mencionada.

Por otro lado tendremos un comportamiento similar al accionarla el temporizador, no obstante, este se basa en dos click`s, el primero para iniciar el temporizador y un segundo click para detener el temporizador y mostrar por pantalla el tiempo efectuado entre estas dos acciones.

 

Definición de requerimientos

 

Nuestro proyecto presenta 2 casos de uso principales y un tercero derivado de ambos.

 

Respecto al primer caso “Generar sonido”:

Usuario busca generar sonido(s) en base a la marcación de una tecla o varias teclas, usuario hace click en una o varias teclas, la condición que se debe cumplir es que el usuario ejecute un click en el espacio correspondiente a cada tecla, es decir no hacer click en el límite de dos teclas, tras ésta acción del usuario se emite el sonido correspondiente a la tecla.

 

Respecto al segundo caso “Utilizar temporizador por fines libres”:

Usuario busca ver el tiempo entre el evento de inicio y término del caso, en base a la marcación de un botón de inicialización del temporizador y de un botón de término de la misma. La condición que se debe cumplir es que el usuario ejecute el primer click en el espacio determinado y que el segundo se realice en el mismo segmento del programa. La salida corresponde al tiempo entre estos eventos.

 

Respecto al tercer caso “Temporizador de melodías”:

Usuario busca ver el tiempo entre el inicio de una melodía en el teclado y el término de la misma, para ello el caso se inicia con un click en el temporizador, para luego proceder con la ejecución de click`s reiterados en teclas del piano, para concluir con la ejecución del segundo click en el temporizador, las condiciones para que este caso ocurra son las derivadas del caso uno y dos, teniendo finalmente como salida la melodía y cuánto se ha demorado en realizarse la misma.

 

 

 

 

 

 

Diagrama de clases UML

 

 

 

Diagrama de secuencias caso 1:

 

Vista del piano y su temporizador:

 

 

 

 

Dificultades:

 

La principal dificultad fue la lectura de archivos, la cual no respondía de forma estándar tras indicar la dirección de los mismos, lo cual se resolvió añadiendo los archivos de la forma “resource file” en QT, tras ello la lectura de los archivos funcionó con las rutas establecidas anteriormente.

 

 

 

Martín Rojas

Diseño y programación orientada a objetos - ELO329

Profesor Dr. Agustín González

 

 

El proyecto se encuentra en el siguiente link: Project_ELO329.zip