Conocido ahora como un "altavoz de la placa base", o simplemente "beeper",
PC Speaker se introdujo en 1981 junto con la primera computadora personal de IBM. Siendo un sucesor de las grandes computadoras serias para negocios serios, ha sido diseñado para producir pitidos de sistema muy básicos, por lo que nunca tuvo la oportunidad de brillar como un dispositivo de música en numerosos programas de entretenimiento del emergente mercado doméstico. Eclipsado por chips de sonido mucho más avanzados de los populares sistemas de juegos domésticos, reemplazados rápidamente por potentes tarjetas de sonido, en su mayoría sirvió como una opción alternativa, reproduciendo contenido severamente degradado de un mejor hardware de sonido.
"System Beeps" es un álbum de música en forma de un programa MS-DOS que presenta música original compuesta para
PC Speaker usando las mismas técnicas antiguas básicas como las que se encuentran en los juegos clásicos de PC. Sigue la fórmula habitual de demoscene de la informática retro: toma algo oxidado y obsoleto y llévalo a las once, e intenta revelar el potencial oculto de este pequeño y humilde dispositivo de sonido. Puedes escucharlo en acción y formarte una opinión sobre el éxito de este intento en
Bandcamp , o en el video a continuación. El siguiente artículo es una descripción detallada de las capacidades originales de
PC Speaker y la realización del proyecto, para aquellos que deseen saber más.
PC Speaker Internals
PC Speaker es un pequeño altavoz magnético o, en tiempos más recientes, un zumbador piezoeléctrico, directamente accionado por un canal del
temporizador de intervalo programable 8253 que divide la frecuencia de reloj entrante de 1,19 MHz por un valor programado de 16 bits. Para producir sonido, el temporizador se configura en el modo generador de onda cuadrada. Es una mejora pequeña pero útil en comparación con las computadoras hogareñas contemporáneas de bajo costo como
Apple II y
ZX Spectrum , donde el altavoz se ha conectado directamente a una línea de E / S y el sonido está destinado a ser producido por la CPU.
El uso de
PIT permite que la CPU solo configure una frecuencia y continúe manejando otras tareas mientras el temporizador genera sonido. Sin embargo, la CPU puede producir sonidos polifónicos multitímbricos mucho más interesantes, mientras que el
altavoz de la PC , sin la ayuda de la CPU, es incapaz de sonar fuerte o silencioso, suave o agudo: solo se limita a la onda cuadrada sin control de volumen.

Para reproducir efectos de sonido o música, la CPU actualiza el estado del temporizador, es decir, el sonido activado / desactivado y su tono, en períodos de tiempo uniformemente extendidos. Por lo general, esto se realiza en el controlador de interrupciones del Timer Channel 0 (IRQ0) que es controlado por el mismo chip PIT. La frecuencia de interrupción predeterminada es de 18,2 Hz, pero los juegos a menudo aumentan esta frecuencia hasta 30 ... 200 Hz, dependiendo de un juego. Esto ayuda a mejorar un poco la complejidad del sonido.
PC Speaker puede reproducir tonos de manera efectiva en el rango de 100 ... 2000 Hz. Puede ir mucho más bajo o más alto, pero esto trae algunos problemas. Los pequeños altavoces y piezos no pueden reproducir otras frecuencias lo suficientemente bien. Por encima de 2000 Hz también comienza a desviarse mucho de las frecuencias de las notas musicales debido a la resolución del temporizador. Por debajo de 100 Hz, la frecuencia del sonido puede ser inferior al período de actualización, lo que lleva a perder algunas de las actualizaciones de sonido, porque el temporizador solo actualiza el divisor de frecuencia una vez que se realiza el recuento actual con el divisor anterior.
Polifonía monofónica
PC Speaker es un dispositivo monofónico: solo tiene un canal de sonido o "voz", es decir, solo es capaz de reproducir una frecuencia de sonido a la vez. Esto es muy limitante para fines musicales, por lo tanto, los desarrolladores de juegos y los compositores de música estaban descubriendo algunas formas de lograr una polifonía verdadera o falsa. Tres enfoques comunes se han desarrollado y utilizado a lo largo del tiempo.
El primer enfoque considera que
PC Speaker reproduce la onda cuadrada como de costumbre, el código del jugador actualiza su tono en la interrupción del temporizador a una velocidad establecida, lo que casi no carga en la CPU. Pero hay 2-3 canales virtuales de sonido con diferentes partes que se reproducen, y solo uno de ellos se emite al altavoz real en un momento dado, y se alternan con cada actualización. Por ejemplo, hay dos canales. En una actualización, la primera se dirige al altavoz (el divisor de frecuencia y el estado de encendido / apagado del altavoz se envían a los registros de sonido), en otra actualización, la segunda se dirige al altavoz. Así es como se logró algún tipo de polifonía en
Lotus III y
Xenon 2 . Un caso bastante común aquí es que un canal toca la parte de bajo mientras que el otro toca la melodía, y estas partes están muy separadas por la frecuencia, haciendo saltos de tono importantes, o un canal toca una nota mientras el otro está silenciado, en ambos casos conduce a un zumbido constante desagradable. Se puede reducir omitiendo cualquier nota silenciada en la música, como lo hace el
Golden Axe , lo que limita mucho los medios para la expresión musical (las pausas tienen tanta importancia como las notas en la música). Otra forma es evitar la alternancia de canales siempre que sea posible, como cuando solo uno de los canales reproduce una nota. Ayuda a que estas partes suenen más limpias, como se escucha en
Stunts .
El segundo enfoque se ve en muchos juegos de
Lucas Art . La compañía a menudo hace un esfuerzo adicional para que las versiones de altavoces de su música suenen mejor. Suelen reproducir una melodía mayormente monofónica que tiene partes melódicas, graves y rítmicas separadas en el tiempo. El segundo canal reproduce notas staccato muy cortas, como arpegios o tambores, que tienen prioridad, silenciando brevemente el canal principal. Se pueden encontrar ejemplos en
Monkey Island ,
Loom ,
Indiana Jones . Uno de los usos más avanzados de esta técnica se escucha en
Zak McKracken y Alien Mindbenders . Esto hace que la ilusión polifónica sea mucho más realista y agradable, aunque sus capacidades son bastante limitadas.
Con el último, tercer enfoque, el hardware de
PC Speaker no se usa para generar sonido por sí solo, sino que se usa como un DAC bruto que solo emite el sonido generado por la CPU en el software. Esto lleva mucho tiempo de CPU, casi maximizando la carga de 8086, por lo que solo ganó popularidad con la llegada de 80386. La calidad de sonido de este método es bastante pobre y es objetivamente inferior a la de una réplica Covox más simple hecha de un puñado de resistencias. Sin embargo, fue un logro realmente impresionante para la época, ya que una de sus implementaciones,
RealSound , ha sido patentada y sub-licenciada.
PC Speaker se puede convertir en un DAC al deshabilitar el conteo del temporizador y luego habilitar / deshabilitar la salida de sonido, lo que lo convierte en un DAC muy básico de 1 bit, o al usar el canal de sonido del PIT para generar pulsos cortos de ancho variable (PWM) en La frecuencia de la portadora establecida por la interrupción del temporizador, que efectivamente proporciona un DAC de 6 bits mucho mejor. El primero se puede escuchar en
Fantasy World Dizzy y
Hard Drivin ' , el último se empleó con mayor frecuencia para reproducir música basada en muestras digitalizadas, como en
Pinball Sueños También se ha utilizado en herramientas tan fascinantes del pasado como
TEMU y
VSB , emuladores de software del chip de sonido
Tandy de 3 canales y parte digital del
Sound Blaster , que permitieron tener sonido a través de
PC Speaker en programas que admitían dispositivos con nombre sin tener los dispositivos en sí (se requiere
386SX o mejor).
Álbum y cómo se hizo
Originalmente no tenía intención de hacer un álbum de música. Estaba diseñando un proyecto de juego que sería diseñado como un juego de pseudo gráficos de la era XT. Para completar la visión, se me ocurrió una idea para hacer no solo la estilización, sino también la música real de
PC Speaker que también seguiría la fórmula común de los juegos de la era de 8 bits: una pista en bucle de aproximadamente un minuto de duración. No quería usar muestras digitales o síntesis de software, ya que estaría fuera de lugar para una estética considerada y no tendría un carácter único en sí mismo. Sentí un atractivo especial en la música monofónica desde que la escuché por primera vez en
ZX Spectrum en juegos como
Ping Pong ,
Stardust ,
Score 3020 . Al tener esa oportunidad, estaba ansioso por intentar hacer una música monofónica real e intentar obtener algún resultado nunca antes escuchado a través de medios de arreglo, un desafío atractivo para mí como compositor musical.
El trabajo en la música me dejó llevar, y me interesó más que el proyecto del juego en sí. Lo pasé genial, desarrollé y publiqué
PCSPE , el complemento
VSTi , hice muchos bocetos de música y algunas versiones de mis trabajos anteriores, para desarrollar técnicas de composición adecuadas para arreglos monofónicos y para dar forma al diseño de sonido general. Finalmente, decidí que el resultado no encajaba en el proyecto del juego, que en ese momento perdió su atractivo para mí y quedó en suspenso. Sin embargo, hice algo de música y, sintiendo que tiene un potencial digno de lanzamiento, pensé que sería bueno hacer una producción rápida y lanzarla al público como un disco de música independiente de
MS-DOS , eso también servir como una demostración de las capacidades de
PCSPE .
La producción rápida resultó no ser tan rápida. Algunas canciones se convirtieron en algunas docenas, la colección de canciones aleatorias evolucionó en un álbum conceptualizado, los planes han cambiado y los plazos se posponen. Terminó casi 1,5 años para finalizar el proyecto, desde julio de 2017 hasta el 7 de enero de 2019. Durante este tiempo también pude desarrollar el
AONDEMO y componer una canción para él (el hardware de sonido de AON es muy similar al
PC Speaker ), así como participar en el proyecto del juego
Planet X3 como desarrollador de código de sonido y herramientas. Este juego también terminó usando la primera canción que compuse para el álbum como canción titular.
Terminar el proyecto se retrasó mucho, fue obteniendo más y más canciones, hasta que utilicé todas las ideas y borradores originales que se hicieron mientras trabajaba en el proyecto. La lista final de canciones incluye 23 canciones divididas en tres grupos.
El lado A incluye 16 canciones principales, más o menos relacionadas tanto con el tema como con el diseño de sonido. La mayoría de estos han sido compuestos para este álbum desde cero, o se basaron en material antiguo no utilizado que se adapta bien a la disposición monofónica. Para esta categoría, elegí aquellas canciones que eran más originales y que se sentían más exitosas dentro de las limitaciones elegidas, en comparación con otras.
Side B incluye 6 canciones supuestamente de calidad B-side. La mayoría de estas son versiones de mis trabajos anteriores para otras plataformas, o se basaron en un material de trabajo no desarrollado más desarrollado que inicialmente estaba dirigido a medios muy diferentes, que van desde un módulo rastreador XM hasta una canción pop punk. Este lado también incluyó la canción que se ha utilizado en el juego
Planet X3 .
Side X incluye una pista adicional, adaptada de
AONDEMO con cambios mínimos. Se separó del resto en un tercer lado, porque el humor.
El álbum en sí se ha presentado como un programa para
MS-DOS 3.3 o superior, que se ejecutará en el clásico
IBM PC XT con al menos 256K de RAM y tarjeta de video
CGA . El
CGA original está sujeto a la llamada "nieve", un artefacto visual que ocurre cada vez que un programa escribe en la memoria de video durante el escaneo de trama. Por lo tanto, el programa del álbum viene en dos sabores: un
sbx.com reducido sin nevar, pero sin efecto de analizador de espectro, y
sb.com con todas las
funciones y efectos visuales completos. Se recomienda una CPU más rápida para que las imágenes sean más fluidas. También puede usar una PC moderna con
FreeDOS cargado desde una
memoria USB o la emulación
DosBox .
Lado musical
El álbum no emplea ningún truco avanzado, como la síntesis de sonido del software o la reproducción de muestras. Utiliza la tecnología más tradicional: onda cuadrada monofónica clásica generada por el canal PIT. La velocidad de actualización del sonido es de 120 Hz, un poco más alta de lo habitual, pero nada extremo. Classic XT está totalmente preparado para la tarea, con suficiente tiempo de CPU restante para realizar otras tareas además de reproducir la música.
El verdadero truco está en un enfoque especial para la composición y arreglo musical. La experiencia pasada en áreas relacionadas de conocimiento fue de gran ayuda: la experiencia de hacer música para chips de sonido clásicos que a menudo requerían poner algunas partes en un solo canal entrelazando y superponiendo elementos; la experiencia de desarrollar motores de sonido de juegos para sistemas de juegos antiguos, donde los efectos de sonido generalmente tienen que robar canales de sonido de la música; También experiencia en la composición de música original para reproducirla en una unidad de disquete. Al final resultó que, en realidad, estaba desarrollando el enfoque que
Lucas Art ha utilizado, aunque no lo sabía, y solo escuché el tema de
Monkey Island en ese momento.
Un problema interesante que debía resolverse de inmediato era la batería y la percusión. En el chiptune tradicional, normalmente se hacen con una mezcla de tono y ruido blanco. Sin embargo, no hay forma de que
PC Speaker produzca ruido blanco mientras mantiene la velocidad de actualización de sonido dentro de un rango de una docena a cien Hz.

Kick drum y toms funcionaron bien sin usar ningún ruido, al igual que el tono se desliza hacia abajo con diferente velocidad y duración: el kick es un deslizamiento rápido hacia abajo desde una nota más baja, toms es un deslizamiento más lento y más largo desde una nota más alta. Sin embargo, el tambor más importante no funcionó bien como una simple diapositiva de tono, suena extraño y no corta la mezcla de sonido ocupada con otros elementos. Un truco que es común en
SID y
AY-3-8910 chiptune funcionó bien aquí: un breve momento de silencio insertado justo después de que comienza el deslizamiento hacia abajo, que crea un breve efecto de tambor de balanceo. Esto hace que la caja suene lo suficientemente diferente de los otros sonidos de percusión y mejora la audibilidad de la caja en la mezcla de sonido. Funciona especialmente bien teniendo en cuenta las fuertes resonancias que tiene el
PC Speaker real.
Como no hay forma de producir ruido blanco, los charles no se podían usar. Para que el sonido de percusión sea más interesante, los sonidos de batería varían entre las canciones. Algunas pistas tienen tambores más largos, algunas cortas y contundentes, a veces lanzaron elementos de percusión extra bajos o altos presentes en los lugares.
Se han desarrollado una serie de técnicas generales mientras se trabaja en la música. Se puede aplicar a arreglos de escritura que darían la impresión de tener polifonía para cualquier dispositivo monofónico sin control de volumen, desde una postal musical hasta una máquina CNC y una bobina Tesla. La variedad de los trucos de organización incluye:
- El truco de percepción auditiva cuando un sonido presumiblemente más fuerte, como una patada o una caja, o una nota en la melodía primaria, silencia todas las otras partes, pero el cerebro no presta mucha atención a la breve falta de otros elementos de sonido.
- Disposición que permite pausas suficientes entre los sonidos en general, especialmente durante las partes de introducción. Esto permite separar las entidades para que se escuchen mejor, por lo que una vez que el arreglo se vuelve más intenso, el cerebro aún considera que esos elementos están allí, a pesar de que apenas se escuchan.
- Tocar notas ligeramente fuera del ritmo o componer melodías que ponen la mayoría de sus notas en los ritmos débiles o fuera de ritmo, ya que estos lugares tienden a tener huecos, por lo que las notas de la melodía no interferirán con los graves u otros sonidos. Esto hace que las melodías y los respaldos estén altamente sincopados, agregando un toque funky especial a la música.
- Los arpegios habituales de chiptune a diferentes velocidades, incluidos los ultrarrápidos de 120 Hz. La amplia gama de velocidades de arpegio es muy útil para agregar más variedad en el sonido, considerando la gran falta de variedad tímbrica, porque todo se reproduce con onda cuadrada simple.
- Brechas en los sonidos continuos para permitir que otras partes se corten, o series de brechas de duración creciente para imitar la disminución del volumen.
- Gran variedad en la duración de las notas, incluido el uso de notas extremadamente cortas, para imitar la diferencia de volumen. Se ha utilizado para poner énfasis en el groove de graves y los efectos de eco. El eco se realiza repitiendo la misma parte con un retraso y con notas mucho más cortas.

Lado técnico
Otro elemento clave en la producción fue el uso de herramientas modernas que hicieron que el flujo de trabajo fuera mucho más eficiente y racionalizado. Las herramientas incluían un DAW
Reaper moderno (una alternativa al
FL Studio ,
Cubase y similares) junto con un conjunto de complementos VST desarrollados a medida.

Este enfoque es experimental, bastante poco convencional en la creación de "chiptune verdadero", es decir, música destinada a reproducirse utilizando dispositivos de sonido reales del pasado. Por lo general, la creación de dicha música implica el uso de un software especial llamado rastreadores de música, o la preparación manual y la introducción de bytes de datos de música en el código fuente. Ciertamente, el mismo resultado también podría lograrse por estos medios clásicos (exactamente lo que hice para
Planet X3 ), pero esto requeriría mucho más esfuerzo y cambiaría el enfoque de la creación musical a la superación de problemas técnicos en el camino.

Para hacer música de
PC Speaker , creé un complemento
VSTi llamado
PCSPE . Emula
las partes internas de los
altavoces de la PC , lo que permite escuchar un sonido realista con todas sus peculiaridades y limitaciones, e implementa un sistema de instrumentos chiptune, similar al de los rastreadores de música para varios chips de sonido. Tiene sobres para volumen virtual (prioridad), arpegio y tono, definidos a través de cadenas de texto de un formato simple muy parecido a
MML (un pariente cercano a las cadenas de texto encontradas en el operador
PLAY de
BASIC ). Estos sobres permiten diseñar diferentes instrumentos, por ejemplo, sonidos de batería o un instrumento solista con una profundidad de vibrato que aumenta lentamente.
Sin embargo, el deber principal del complemento es mezclar algunas pistas
MIDI entrantes que contienen varias partes de la canción en una sola pista final. El volumen virtual que mencioné anteriormente sirve como base para el sistema de prioridad. Solo se reproduce un instrumento que tiene el volumen virtual actual más alto en un momento dado. Por ejemplo, un instrumento de bajo tiene volumen 2, la melodía principal tiene volumen 6 y todos los instrumentos de batería tienen volumen 8. En este caso, las notas de melodía tendrán prioridad sobre las notas de bajo, silenciando la parte de bajo mientras suena la melodía, y todas las baterías silenciarán todas otros sonidos Así es como algunas partes musicales que se reproducen simultáneamente se mezclan en el canal monofónico del
PC Speaker .
El complemento también presenta una función de exportación que permite usar música en programas reales de MS-DOS. Funciona como un simple registrador de datos: el complemento tiene información sobre qué frecuencia se emite al altavoz en un momento dado, y los tiempos de los cambios de frecuencia. Cuando la canción se reproduce desde el principio hasta el final con la función de exportación habilitada, estos datos se capturan y se escriben en un archivo en tiempo real. Ahora, para reproducir la música, todo lo que se necesita es simplemente seleccionar los datos del archivo y enviarlos al
PC Speaker real usando los tiempos grabados.
El arpegio de chiptune clásico se puede crear en
PCSPE de la manera clásica, utilizando un sobre de arpegio que define una secuencia de compensaciones de semitonos a partir de la nota base. Sin embargo, esto requeriría cambiar entre instrumentos con bastante frecuencia y tener en cuenta qué instrumento debe usarse para un acorde en particular. Este no es un flujo de trabajo muy conveniente para ser usado en un
DAW moderno.
Mi otro
VSTi , un arpegiador llamado
ChipArp , ayuda a hacer arpegios clásicos de chiptune de una manera mucho más fácil. Toma los acordes polifónicos normales de una pista
MIDI entrante y lo convierte en un arpegio de configuración requerida (todo arriba, todo abajo, arriba, abajo, a BPM requerido) sobre la marcha: puede tocar acordes usando un teclado
MIDI y escuchar Arpegio adecuado de inmediato. A diferencia de los arpegiadores modernos que están diseñados para usarse en música electrónica, mi complemento no reinicia una nota para cada paso de arpegio, sino que lo implementa como una serie de curvas de tono rápido desde la nota base. De esta manera, no rompe los instrumentos con un flujo de sonido continuo, y aún puede escucharlos evolucionando en el tiempo mientras se arpegia. El problema aquí es que el complemento de sintetizador necesita admitir curvas de tono amplio y reaccionar a ellas de inmediato, lo que no es algo común para los sintetizadores modernos. Sin embargo, todas mis funciones de sintetizador
VST son compatibles con esto.
Casi todos los emuladores, incluidos
PCSPE y cosas como
DosBox , producen una versión idealizada de la onda cuadrada, que suena bastante diferente del hardware real. Los pequeños altavoces pequeños que solo están destinados a producir pitidos básicos tienen muchas resonancias y distorsiones fuertes. Esto pone mayor énfasis en los transitorios, es decir, los momentos de activación o desactivación del sonido, o cambios rápidos en la frecuencia. Entre otras cosas, esto hace que la batería y las notas cortas suenen mucho más potentes en el
PC Speaker real. Para controlar y emplear este capricho por el bien común, grabé algunas respuestas de impulso para varios altavoces pequeños, y los usé con un complemento de convolver gratuito llamado
NadIR , al igual que las respuestas de impulso de los gabinetes de guitarra se usan en estos días al grabar guitarras pesadas.
Bienes
El proyecto se lanzó bajo la licencia
CC-BY . Esto incluye la música en sí, el código fuente del reproductor y los proyectos Reaper para todas las canciones. De esta manera, puede hacer cualquier proyecto derivado, ya sea música o código relacionado. Todos los complementos utilizados para crear el álbum también están disponibles de forma gratuita junto con el código fuente:
Reproductor de álbumes MS-DOSCódigo fuente y proyectos ReaperPCSPE con código fuenteChipart con código fuenteLos altavoces pequeños impulsan las respuestas