¿Qué ocurre con la generación de datos de 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.
Piense en un altavoz. 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 divisores de datos 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 desea crear una muestra de PCM para una nota determinada, simplemente calcule la frecuencia (aquí hay un table) y luego coloque una onda sinusoidal en el búfer. Puede mezclar diferentes frecuencias con solo agregarlas (asegúrese de que la suma sea menor que el volumen máximo, para evitar clipping)
Eso es un artefacto de tener un mal soundba nk. Con un banco de sonido de alta calidad, MIDI puede sonar casi tan bueno como la música real. De hecho, la comunidad musical usa MIDI todos los días; no tienen las mismas vistas negativas de MIDI que los programadores a menudo tienen. –