¿Qué PC Speaker es capaz de hacer?

Conocido ahora como el "altavoz del sistema" o simplemente "tweeter", PC Speaker nació en 1981 con la primera computadora personal de IBM . Heredero de varias generaciones de computadoras grandes para negocios serios, desde su nacimiento solo tenía la intención de entregar las señales más simples del sistema, y ​​no podía probarse adecuadamente al anotar los programas de entretenimiento que dominan el mercado interno. Fuertemente inferior a los chips de sonido de los sistemas de juegos especializados, desapareciendo a la sombra de las tarjetas de sonido avanzadas que pronto surgirán, fue respaldado por muchos desarrolladores con el principio residual, como una opción que produce al menos algo de sonido en ausencia de mejores alternativas. Con raras excepciones, se reprodujeron a través del altavoz versiones de melodías completamente simplificadas y de una sola voz, originalmente compuestas para dispositivos mucho más potentes.

El álbum de música System Beeps fue escrito para PC Speaker utilizando la misma técnica básica de los juegos antiguos, y de acuerdo con la fórmula típica de creatividad retro-computadora casi demoscene, está destinado a revelar durante muchos años el potencial inexplorado de este dispositivo de sonido más simple. En realidad, puede escuchar el resultado y expresar su opinión sobre el éxito de este evento en Bandcamp o en el video a continuación, y el texto adicional profundiza en el dispositivo del orador, el historial del proyecto y las formas de lograr un resultado similar para aquellos que desean saber más.


PC Speaker


Técnicamente, un altavoz es un altavoz pequeño o un emisor piezoeléctrico, controlado directamente por uno de los canales del temporizador del sistema 8253, que divide la frecuencia del reloj de entrada de 1.19 MHz por el valor de 16 bits establecido por el programa. Para obtener sonido, se utiliza el modo de conteo, en el que el temporizador produce un meandro, es decir, una onda cuadrada. Este es un pequeño, pero aún un paso adelante en comparación con el sonido de computadoras anteriores o económicas como Apple II y ZX Spectrum , donde el altavoz estaba conectado simplemente a un puerto de E / S de un solo bit, y el procesador tuvo que lidiar con la generación de sonido. El uso del canal del temporizador permite que el procesador simplemente seleccione el tono deseado y continúe haciendo otras cosas. Sin embargo, el procesador puede sintetizar mediante programación sonidos de diversa naturaleza y polifonía verdadera. PC Speaker no puede sonar más alto o más bajo, más suave o más brillante. Todo lo que es capaz de hacer sin una intervención constante del procesador es chirriar o no chirriar con un tono dado con el mismo timbre sin cambios.

Al reproducir efectos de sonido o música, el procesador actualiza el estado del altavoz (enciende y apaga el sonido y cambia su tono) en algunos intervalos. Típicamente, estos cambios ocurren en la interrupción del canal cero del mismo temporizador del sistema. Esto es 18,2 Hz estándar, pero los juegos a menudo cambian este valor hacia arriba, en el rango de 30 a 200 Hz, dependiendo del juego.

El rango efectivo de frecuencias disponibles para el altavoz es de aproximadamente 100.2000 hertz. Aunque se pueden establecer otras frecuencias, comienzan una variedad de problemas fuera del rango especificado. En primer lugar, los altavoces usados ​​no reproducen bien estas frecuencias. En segundo lugar, por encima de 2000 Hz, comienza una desviación notable de las posibles frecuencias de las frecuencias de las notas, y cuando la frecuencia del sonido cae por debajo de la frecuencia de actualización del estado del hablante, las actualizaciones comienzan a funcionar tarde: el temporizador no actualiza el divisor de frecuencia hasta que finaliza el período de conteo con el divisor anterior .

Polifonía de una sola voz


Dado que el altavoz es capaz de reproducir solo un canal de sonido o "voz", es decir, solo una frecuencia a la vez, y esto es muy pequeño para fines musicales, los programadores y autores de música han encontrado formas de obtener una polifonía imaginaria o real. Se pueden distinguir tres enfoques principales.

En el primer enfoque, el altavoz genera el sonido como de costumbre, el reproductor de música actualiza la frecuencia del sonido por temporizador con una frecuencia determinada y casi no carga el procesador. Pero al mismo tiempo, se reproducen simultáneamente dos o tres canales virtuales con diferentes partes, y los valores de la frecuencia y el sonido activado / desactivado se emiten alternativamente al altavoz real en cada actualización. Por ejemplo, con dos canales en la primera actualización, el sonido se emite desde el primer canal virtual y en el siguiente, desde el segundo. La polifonía se implementa de manera similar en los juegos de Lotus III y Xenon 2 . Dado que a menudo un canal virtual toca una parte de bajo y otra melodía, y estas partes tienen pausas, resulta alternar notas muy alejadas, o notas alternadas y silencio, lo que conduce al crepitar constante, desagradable para el oído. Puede reducirlo rechazando pausas en partes, como en Golden Axe , que empeora significativamente los medios expresivos (las pausas en la música son tan importantes como las notas), o deshabilitando la alternancia de canales cuando hay una pausa en una de ellas, que proporciona un sonido más claro de notas individuales, como en Stunts .

El segundo enfoque se puede observar en los juegos de Lucas Art , en los que tradicionalmente se ha prestado más atención a la calidad de las versiones de altavoces del acompañamiento musical. Como regla general, suenan principalmente una melodía de una sola voz con inserciones raras de bajos y elementos rítmicos separados en el tiempo, interrumpidos por sonidos muy cortos y espasmódicos de la parte del segundo canal auxiliar, por ejemplo, arpegio o batería. En otras palabras, los canales no se alternan constantemente, sino solo en breves momentos cuando la segunda voz ahoga a la primera. Se pueden escuchar ejemplos en los juegos Monkey Island , Loom , Indiana Jones , y quizás la versión más avanzada del acuerdo en Zak McKracken y Alien Mindbenders . Esto crea una ilusión auditiva de polifonía más convincente y agradable, aunque es bastante limitada.

En el tercer enfoque, el altavoz no genera sonido por sí mismo, sino que se utiliza como un codificador digital a analógico a través del cual se reproducen el sonido o las digitalizaciones programadas por el procesador. Este proceso requiere recursos computacionales significativos, cargando casi por completo el 8086 regular, por lo que el método ha ganado popularidad con la distribución de 80386. La calidad del sonido reproducido de esta manera es baja y objetivamente inferior incluso al Covox casero más simple de un puñado de resistencias, pero en ese momento fue un logro impresionante, por uno de los cuales, RealSound , incluso una patente fue presentada y la tecnología fue sublicenciada.

Puede convertir el altavoz en un DAC simplemente activando / desactivando el sonido con una cuenta prohibida, que proporciona el DAC más simple de 1 bit, o usando el canal de sonido del temporizador para generar pulsos cortos de diferentes longitudes a una frecuencia establecida por el temporizador del sistema (PWM), que lo convierte en uno mejor DAC de 6 bits. La primera opción se puede escuchar en la música multicanal en los juegos Fantasy World Dizzy y Hard Drivin ' , la segunda se usa con más frecuencia para reproducir música basada en muestras, por ejemplo, en Pinball Dreams . También se usó en proyectos tan entretenidos del pasado como TEMU y VSB , emuladores de software del chip de sonido de tres canales Tandy y la parte digital de Sound Blaster , lo que permite que, en ausencia de estos dispositivos, emitan el sonido deseado a través del altavoz (requiere 386SX y superior).

Álbum e historia de la creación.


Inicialmente, no tenía un plan para hacer un álbum de música. Hubo una búsqueda creativa de una imagen audiovisual para un proyecto de juego con estilo para juegos pseudográficos de la era XT, y para la máxima imagen auténtica, surgió la idea de escribir no solo la estilización, sino la música realmente posible en PC Speaker , la siguiente fórmula musical clásica de juegos de 8 bits: pistas en bucle que duran aproximadamente minutos No quería utilizar el sonido digital o la síntesis de software, ya que el resultado difícilmente se correspondería con el espíritu de la época y no tendría un carácter especial. Las melodías de una sola voz han sido objeto de mi interés desde la época de ZX Spectrum y mi conocimiento de los juegos Ping Pong , Stardust , Score 3020 . Y dado que hubo un caso así, quería intentar escribir solo música con una sola voz, pero obtener un resultado inusual debido al arreglo, un desafío atractivo para el compositor.

El trabajo en la música se llevó aún más que el trabajo en el juego. En el proceso de quemar la idea, se desarrolló y publicó el complemento VSTi PCSPE , se realizaron varios bocetos de melodías y versiones de prueba de versiones antiguas de pistas para desarrollar la técnica de trabajar con arreglos de una sola voz y encontrar soluciones comunes para el sonido. Más tarde se hizo evidente que el resultado aún no se corresponde con la visión del proyecto del juego, y el proyecto en sí fue gradualmente a la mesa. Pero el material musical permaneció y el potencial escuchado sugirió que sería bueno organizarlo rápidamente como una pequeña colección separada de canciones para MS-DOS , al menos como una demostración de las capacidades del complemento.

No funcionó rápidamente, el asunto se prolongó, varias pistas se convirtieron en varias docenas, una colección de melodías aleatorias evolucionó en un álbum temático, los planes cambiaron, los plazos cambiaron. Como resultado, la finalización de la idea tomó un año y medio, desde julio de 2017 hasta enero de 2019. Durante este tiempo, logré hacer AONDEMO y escribir una pista para él (la plancha de sonido AON casi repite PC Speaker ), así como participar en el desarrollo del código de sonido y las utilidades para el juego Planet X3 , que también incluyó la primera pista escrita para la colección como pista principal.

La finalización del proyecto se pospuso constantemente, se agregaron más y más pistas hasta que todas las ideas y bocetos iniciales se agotaron por completo. En la forma final, el álbum incluyó 23 pistas, divididas en tres grupos.

El lado A contiene 16 pistas principales, más o menos conectadas por un tema y sonido comunes. En su mayor parte, fueron compuestos específicamente para el álbum, desde cero o basados ​​en material antiguo que funcionó bien para un arreglo de una sola voz. El principio de selección en este grupo fue original y más exitoso, como me pareció, la disposición en las restricciones seleccionadas, en comparación con otras pistas.

El lado B incluía 6 pistas, supuestamente menos exitosas, que eran versiones de mis viejos trabajos para otras plataformas, o se basaban en material antiguo más o menos elaborado, que inicialmente asumía formatos completamente diferentes, desde el módulo XM hasta la canción pop-punk. La pista, ya iluminada en Planet X3 , también se incluyó aquí.

Side X incluyó una pista de AONDEMO con modificaciones mínimas. Tal separación se hace como una broma de humor.

El álbum en sí está hecho en forma de un programa reproductor para MS-DOS 3.3 y superior, que se ejecutará en IBM PC XT con al menos 256 KB de RAM y un adaptador de video CGA . Dado que la tarjeta CGA original está sujeta a la llamada "nieve", un artefacto visual al intentar actualizar la pantalla mientras el haz se mueve a lo largo del ráster, el programa se presenta en dos versiones: sbx.com sin el efecto de un analizador de espectro, pero también sin nieve, y sb.com con él efecto Para una representación más suave del analizador, es deseable tener un procesador más potente. Por supuesto, las computadoras más modernas también funcionarán, por ejemplo, descargando FreeDOS desde USB , así como emulando DosBox .

Componente musical


El álbum no utiliza ningún truco de software, como sintetizar el sonido del procesador y usar el altavoz como un DAC. La tecnología es la más tradicional: onda cuadrada estrictamente monofónica generada por el temporizador del sistema, con la actualización del tono con una frecuencia relativamente grande, pero no fuera de la frecuencia normal de 120 Hz, que es bastante capaz del clásico XT y deja suficiente tiempo de procesador para realizar otras tareas además de reproducir música.

Todo el secreto está en un enfoque especial para escribir melodías y arreglos. Aquí, la experiencia previa en varios campos relacionados ayudó mucho: la experiencia de escribir una melodía de chip clásica para chips de sonido del pasado, en la que a menudo tienes que combinar varias partes en un canal mediante métodos alternativos y superpuestos; experiencia en el desarrollo de motores de sonido para juegos en computadoras antiguas, donde los efectos de sonido toman prestados canales de la música, ahogándolos; así como la experiencia de componer música original para el disco. Al final resultó que, de hecho, desarrollé el enfoque de la música de los altavoces utilizado por Lucas Art , aunque en el momento en que comencé solo escuché el tema de Monkey Island .

Uno de los problemas interesantes que había que resolver casi al comienzo del trabajo era la batería y los instrumentos de percusión. En chiptune, generalmente se hacen usando un canal de ruido, pero no hay posibilidad de perder ruido en el altavoz a una frecuencia de actualización del orden de decenas a cientos de hercios.

La patada de bajo y los toms funcionan bien sin ruido, en forma de simples deslizamientos hacia abajo a diferentes velocidades y duraciones: la patada es más rápida y corta desde una nota baja, los toms son más lentos y más auténticos desde las notas más altas. Pero el principal instrumento de percusión, el pequeño tambor (en funcionamiento), en forma de una simple diapositiva, no parece convincente y no corta la mezcla cargada con otros elementos. Aquí el truco funcionó, que a menudo se encuentra en la simulación del tambor en SID y AY-3-8910 : silencio a corto plazo al comienzo de la diapositiva, creando el efecto de una fracción. Esto hace que el sonido sea bastante diferente de otros instrumentos de percusión, y también mejora la visibilidad del tambor en la mezcla. Esto se manifiesta especialmente en conjunción con resonancias características de un hablante real.

Debido a la falta de ruido, tuve que abandonar a los enemigos. Para un sonido más variado e interesante, los instrumentos de batería difieren entre las pistas. En algún lugar son más largos, en algún lugar abrupto, suenan más alto o más bajo, a veces hay elementos adicionales presentes.

En el proceso de trabajar en música, se han desarrollado técnicas universales que son adecuadas para escribir arreglos monofónicos para cualquier dispositivo monofónico que no tenga control de volumen, ya sea una tarjeta de música, una máquina CNC o una bobina Tesla. Entre ellos están:

  • Una característica del oído humano cuando un sonido supuestamente más alto enmascara los sonidos más silenciosos. Por ejemplo, un ritmo de batería o una nota de una melodía central: distraen la atención y hacen que la desaparición a corto plazo de otras partes sea discreta.
  • Un arreglo en el cual hay suficientes pausas entre notas. Esto es especialmente cierto en la introducción. En estos momentos, los componentes son claramente audibles por separado y tienen la oportunidad de ser recordados, de modo que durante el desarrollo de la pista, cuando la disposición se vuelve más densa, el cerebro continúa reconociendo la presencia de estos elementos, incluso si apenas se oyen en la mezcla.
  • La composición de las melodías en las que una parte importante de las notas cae en una parte débil, así como el desplazamiento del comienzo de las notas en relación con la cuadrícula del medidor. Esto permite que las notas de la melodía tomen pausas en el acompañamiento, reduciendo así la superposición de las partes. En particular, esto le permite ganar un poco de espacio para notas de partes de bajo, que son importantes para obtener una buena participación. Esto le da a las melodías una fuerte sincopia, crea una sensación de funkiness, lo que es beneficioso para su interés.
  • Arpegios de afinación de chip ordinarios a diferentes velocidades, incluidos arpegios de dos notas muy rápidos a 120 Hz. Las variaciones en la velocidad le permiten crear elementos de arreglo con diferentes sonidos, lo que ayuda mucho en ausencia de medios expresivos de timbre; después de todo, todas las notas tienen el mismo sonido de onda cuadrada.
  • Pausas repetidas en sonidos extendidos, por ejemplo, en un instrumento solista, en el que se escuchan otros canales virtuales. Como regla general, tales instrumentos comienzan con un sonido continuo, luego aparecen pausas y su frecuencia y duración aumentan gradualmente, lo que es una especie de imitación de la caída del volumen.
  • Variaciones en la duración de las notas, incluidas notas muy cortas, para simular una diferencia de volumen. Se utiliza para enfatizar la onda en las partes graves, donde las notas que caen en un ritmo fuerte tienen una duración más larga, y también para crear un efecto de eco cuando una parte con notas de la misma duración se hace eco, pero con notas de duración significativamente más corta.



Componente técnico


Otro punto clave en el trabajo del álbum es el uso de herramientas modernas que lo hacen mucho más cómodo y efectivo. Este es un moderno estudio digital Reaper, que me es familiar (un programa similar a FL Studio , Cubase y similares) y un conjunto de complementos VST de desarrollo propio.



Tal enfoque es experimental, completamente poco convencional para crear un verdadero sintonizador de chips, es decir, música destinada a reproducirse en un dispositivo real, generalmente para este propósito se utilizan programas de seguimiento especiales o relleno manual de datos de música. Por supuesto, se puede obtener el mismo resultado por medios más clásicos (que se hizo para el Planeta X3 ), pero esto requiere más esfuerzo y una distracción regular del proceso creativo a cuestiones puramente técnicas.


Especialmente para crear música de altavoces, se desarrolló el complemento VSTi PCSPE . Emula el hardware de PC Speaker , lo que le permite escuchar de inmediato un resultado casi real, y también implementa un sistema de instrumentos chiptune similares a los utilizados en los rastreadores para varios chips de sonido.Los sobres de volumen virtual (prioridad), arpegios y cambios de tono se especifican como líneas de texto con un formato muy simple que recuerda el lenguaje de programación musical MML (en relación con las líneas de letras en la instrucción PLAY en BASIC ). Con estos sobres, puede configurar, por ejemplo, varios sonidos de instrumentos de percusión, o un instrumento solista con vibrato que aumenta gradualmente.

Pero la tarea principal del complemento es reducir automáticamente múltiples entradas MIDI-pistas con diferentes partes a la pista monofónica final. El volumen virtual de instrumentos mencionado es la base del sistema de prioridad. En un momento dado (período de actualización del estado del altavoz), solo suena el instrumento con el volumen actual más alto. Por ejemplo, un instrumento de bajo tiene un volumen de 2, las melodías tienen un volumen de 6 y la batería tiene un volumen de 8, lo que significa que las notas de la melodía amortiguarán las notas del bajo y la batería amortiguará ambas. Por lo tanto, varias partes musicales que suenan simultáneamente se reducen a un canal de altavoz.

El complemento tiene una función de exportación para un mayor uso de la música en programas reales. Se usa el principio del registro: el complemento siempre sabe qué frecuencia se emite al altavoz emulado en cada momento y cuánto tiempo pasa entre sus cambios. Cuando habilita la función de exportación y reproduce la pista de principio a fin, estos datos se graban en tiempo real en un archivo del formato seleccionado. Además, para reproducir música, es suficiente tomar estos datos de un archivo y enviarlos a un altavoz real con los retrasos necesarios.

Arpegios típicos de chiptune se pueden crear en PCSPEen la forma clásica, correspondiente a la envolvente que establece la secuencia de desplazamientos en semitonos en relación con la nota base. Pero esto requiere cambiar constantemente los instrumentos y tener en cuenta la correspondencia entre los instrumentos y los acordes resultantes. Hacer esto en DAW modernos es bastante inconveniente.

Mi otro complemento VSTi implementa una forma mucho más conveniente : el arpegiador ChipArp , especialmente diseñado para escribir chiptune y estilización. Convierte automáticamente los acordes polifónicos tradicionales de la pista MIDI de entrada en arpegios con los parámetros especificados en la pista MIDI de salida , y lo hace sobre la marcha: puede tocar acordes en MIDI-Teclado e inmediatamente escucho el arpegio. A diferencia de los arpegiadores para la música electrónica moderna, que reinicia constantemente una nota desde el principio, este complemento implementa arpegios en forma de bandas de tono en relación con la nota más baja de un acorde. Por lo tanto, el arpegio no viola el sonido extendido de los instrumentos. Para que este complemento funcione correctamente, requiere soporte para instalar una amplia gama de bandas y una respuesta instantánea a las bandas en el complemento de sintetizador utilizado, lo cual no es común, pero todos mis sintetizadores lo admiten.

Emuladores de tipo PCSPE y DosBoxProducen una onda cuadrada idealizada, significativamente diferente en sonido del dispositivo real. Los pequeños altavoces del sistema están sujetos a fuertes resonancias y distorsiones de respuesta de frecuencia que enfatizan los transitorios, es decir, momentos en que el sonido se enciende o apaga o un cambio de frecuencia agudo. En particular, esto hace que la batería de un altavoz real sea mucho más pronunciada en la mezcla, es decir. "Golpeando". Para controlar y revertir esta característica en beneficio de la disposición, utilizamos el plug-in gratuito NadIR y los pulsos grabados a mano de varios altavoces pequeños, de forma similar a cómo se usan los pulsos de los gabinetes de guitarra reales para la grabación digital de guitarras.

Materiales


El proyecto fue publicado bajo la licencia abierta CC-BY , incluida la música en sí, la fuente del reproductor y los proyectos de todas las pistas para Reaper. Por lo tanto, cualquiera es libre de hacer productos derivados, tanto con respecto al componente musical como al código. Todas las herramientas utilizadas en el desarrollo también están disponibles junto con las fuentes:

Programa de reproductor con música
Programas y proyectos de fuentes para el
complemento Reaper PCSPE con fuentes
Complemento ChipArp con fuentes Pulsos de altavoz

Source: https://habr.com/ru/post/438448/


All Articles