2010-06-07 10 views
10

Solo quiero jugar una nota muy simple y directa al darle a mi computadora cierta frecuencia como un entero, y desde allí puedo descubrir cómo hacer que la nota sea más larga o más corta. No necesariamente tiene que salir de la tarjeta de sonido real, si está generada y la salida del altavoz interno está bien.¿Manera simple de jugar una sola frecuencia en Java?

Miré las bibliotecas midi que Java ha incluido, y son mucho más de lo que quiero hacer. Esto solo necesita ser muy básico.

Respuesta

2

Este example construye y reproduce un equal tempered scale.

+0

Eso es mucho más código de lo que esperaba, pero muy sólido, y el más corto de cualquier otra cosa que he buscado. ¡Gracias! – nathas

0

Por lo que sé, no hay forma de hacerlo sin un código repetitivo en Java. Probablemente la clase Applet proporcione la API más simple (también puede ser utilizada por los que no sean Applets) en forma de newAudioClip (URL url) -method estático. Sin embargo, esto le da la capacidad de reproducir clips de audio predefinidos y tiene muy poco control sobre el audio. Si solo necesita reproducir audio de un conjunto pequeño y predefinido de clips, podría ser suficiente (podría tener un conjunto de archivos wav que contengan sus notas y reproducirlas de esta manera, AudioClip's se puede enlazar si lo desea).

Aparte de eso, tanto la API de audio midi como la de muestra son mucho más poderosas, pero la flexibilidad tiene un precio: necesitas bastante más código para configurarlas.

7

Mire en JFugue - es realmente fácil hacer algunas cosas básicas, y las capacidades están ahí si desea expandirlas más adelante.

Player player = new Player(); 
player.play("A C# E"); 
+2

Además, puede usar la clase MicrotoneHelper de JFugue para asignar una frecuencia específica (en hercios) a una letra, luego use esa letra como una nota para reproducir el tono. –

+0

Ooh, ¿es eso nuevo? No he jugado con eso todavía (/ me descarga la nueva versión ...) –

Cuestiones relacionadas