audio - google - Código postal que reproduce una melodía navideña
music player download (6)
"Jingle Bells" en java (hinchado como siempre), usando JFugue , con campanas tubulares y xilófonos (¡polifónico!):
import org.jfugue.*;
public class JingleBells
{
public static void main(String[] args)
{
Player player = new Player();
player.play("T170 "+
" V0 I[XYLOPHONE] C4q C4q C3h C4q C4q C3h C3q B3q A3q G3q C4h "+
" V1 I[TUBULAR_BELLS] E5q E5q E5h E5q E5q E5h E5q G5q C5q D5q Eqh "+
" V2 I[XYLOPHONE] G3h G2q G3q G3h G3h");
}
}
¿Hay alguna manera de reproducir una canción navideña en una PC o Mac sin tener un archivo de sonido pregrabado? (No .mp3 o .wav o cualquier archivo de sonido)
Recuerdo que en mi TI 99 / 4A se podían reproducir los sonidos de Apple II (parecido a la música). No estoy seguro de si las computadoras modernas tienen estas habilidades (aparte del pitido ).
¿Qué hay de generar datos PCM sobre la marcha? PCM - Pulse Code Modulated - el sonido es solo un montón de muestras de voltaje en un sistema de sonido analógico.
Piensa en un hablante. A medida que se reproduce el sonido, vibra. ¿Qué pasaría si tomaras una regla y midieras la ubicación del altavoz a un ritmo más rápido que la frecuencia del sonido? Obtendrás una imagen de una forma de onda. Así es exactamente como se ven los datos de PCM, con cada medición almacenada como una int de 8 o 16 bits. La frecuencia, digamos 44khz es el número de muestras por segundo. Los CD usan una frecuencia de muestreo de 44 kHz y muestras de 16 bits.
DirectSound (en Windows) y OpenAL (plataforma cruzada) son dos bibliotecas que puede usar para reproducir databuffers llenos de datos PCM. He usado DirectSound en el pasado, no para reproducir datos, sino más bien para leer los datos del micrófono para obtener el nivel de volumen.
Si quería crear una muestra de PCM para una determinada nota, simplemente calcule la frecuencia (aquí hay una tabla ) y luego coloque una onda sinusoidal en su memoria intermedia. Puede mezclar diferentes frecuencias juntas simplemente agregándolas (asegúrese de que la suma sea menor que el volumen máximo, para evitar el recorte)
Hablando de "tan malo como un pitido", si tienes un beep instalado en tu linux box, puedes ejecutar el siguiente script de shell (en la misma línea que la respuesta de Jeremy Ruten):
#!/bin/sh
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 800
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 659 -l 800
sleep 0.05
beep -f 659 -l 400
sleep 0.05
beep -f 783 -l 400
sleep 0.05
beep -f 523 -l 400
sleep 0.05
beep -f 587 -l 400
sleep 0.05
beep -f 659 -l 800
MIDI es una opción, aunque en una PC suena casi tan mal como un pitido.
Sí, puedes jugar midi.
Midi no codifica los sonidos per se, codifica la información utilizada para reproducir música; el tono, el tono, la intensidad, etc.
Hay un kit de herramientas midi C # en codeplex en: http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx
La calidad del sonido depende completamente del dispositivo midi utilizado para reproducirlo, por lo que variará en calidad de computadora a computadora.
Puede encontrar una buena lista de archivos Midi de Navidad en: http://www.lockergnome.com/midi/
Windows Media Player puede reproducir archivos midi como Quick Time (creo).
PLAY "e4 e4 e2 e4 e4 e2 e4 g4 c4 d4 e2"