Desafío
Cree un teclado GUI con la menor cantidad de caracteres posible.
Ejemplo
Debido a que esta fue una tarea en uno de mis cursos, no puedo mostrar el código fuente. Sin embargo, aquí hay una captura de pantalla de mi teclado.
En este ejemplo, mis teclas eran de tipo JButton
y utilicé un sintetizador Midi para producir el sonido (con los valores de envolvente ADSR predeterminados).
Reglas
- Usted está permitido utilizar librerías externas estándar.
- Sé creativo con tu sonido. Puedes usar 8 bits, un sitar, etc.
- Por simplicidad, puede tener cinco llaves; blanco y negro, de C a E (las primeras cinco teclas de mi teclado).
- Lo más importante ... ¡muestra tu trabajo!
AVISO : Según el idioma con el que elija trabajar, esta puede ser una tarea bastante grande.
Esta es mi primera pregunta sobre SE Code Golf. Si algo no está claro, solicite más detalles.
EDITAR : La fecha de vencimiento para este desafío será el 22/09/12. Si publica una respuesta después de esta fecha, la revisaré independientemente (y posiblemente haga +1).
Respuestas:
Mathematica
319 259255Editar: las teclas ahora se presionan (como botones) al hacer clic.
Esto tocará las notas de piano de cola {"C", "C #", "D", "D #", "E"}, donde "C" es el medio C.
z[n_]
toca la nota.El teclado se puede extender a 18 teclas usando menos del doble de los caracteres:
fuente
w = {67, 300}
obtener tu resultado; alguna idea de por qué la diferencia? Además, ¿puedo editar este código para acortarlo, si puedo?w = {67,300}
funciona bien en la v. 9, por lo que si desea cambiarlo o, para el caso, acortar cualquiera de los códigos, continúe. El ajuste del tamaño del botón fue impredecible. Cosas extrañas sucedieron por razones que no puedo explicar. (Por ejemplo, agregar más botones afecta las proporciones de los botones originales.)Página web (840/796 caracteres)
>>> Comience a jugar (Internet Explorer no es compatible por varias razones; Google Chrome y Opera funcionan mejor).
Probablemente podría hacer esto un poco más corto, pero es un buen comienzo. La puntuación más baja es después de reemplazar todas las apariciones de
con el personaje en sí y eliminar la palabra clavenew
, este último cambio rompe la compatibilidad de Google Chrome.Guarde este código como un archivo de texto con un nombre que termine en .htm o .html y ábralo en Chrome u Opera (Safari también podría funcionar), o simplemente abra la página JSBin de la solución para comenzar a jugar. Reutilicé el encabezado del archivo WAV de mi solución al problema de golf del código Twinkle Twinkle Little Star .
Una característica importante es que el sonido disminuye a medida que pasa el tiempo. Para observar este comportamiento, intente mantener presionada una tecla durante unos segundos y escuchar lo que sucede.
Aquí hay una versión más legible del código:
fuente
Groovy: 577 (703 con espacios en blanco)
Las primeras 5 notas. Otros podrían agregarse fácilmente, es algo dinámico.
Maldito swing. Probablemente con un swing lib sería mejor.
Juega a través de JFugue.
En github: https://github.com/wpiasecki/glissando/blob/master/src/br/glissando/Piano.groovy
En groovy 2.0.2
fuente
R - 491 caracteres
Llego un poco tarde, pero ayer vi esta publicación.
Funciona en una Mac, usa playRWave y paquetes
tuneR
ysplancs
.Sin golf:
fuente