Conhecido agora como "alto-falante da placa-mãe", ou apenas "bip", o
PC Speaker foi introduzido em 1981, juntamente com o primeiro computador IBM pessoal. Sendo um sucessor dos grandes computadores sérios para negócios sérios, ele foi projetado para produzir sinais sonoros muito básicos do sistema; portanto, nunca teve a chance de brilhar como dispositivo de música em vários programas de entretenimento do mercado doméstico emergente. Ofuscado por chips de som muito mais avançados de sistemas populares de jogos caseiros, rapidamente substituídos por placas de som poderosas, ele serviu principalmente como uma opção de fallback, reproduzindo conteúdo severamente rebaixado de melhor hardware de som.
“System Beeps” é um álbum de música no formato de um programa MS-DOS que apresenta músicas originais compostas para o
PC Speaker usando as mesmas técnicas básicas antigas como as encontradas nos jogos clássicos de PC. Ele segue a fórmula usual de demoscene da computação retro - pegue algo enferrujado e obsoleto e empurre-o para onze - e tenta revelar o longo potencial escondido desse humilde e pequeno dispositivo de som. Você pode ouvi-lo em ação e formar uma opinião sobre o sucesso dessa tentativa no
Bandcamp , ou no vídeo abaixo. O artigo a seguir é uma visão geral aprofundada dos recursos originais do
PC Speaker e da elaboração do projeto, para aqueles que desejam saber mais.
Internos do PC Speaker
O PC Speaker é um pequeno alto-falante acionado magneticamente ou, em tempos mais recentes, uma campainha piezoelétrica, acionada diretamente por um canal do
8253 Programmable Interval Timer que divide a frequência do relógio de 1,19 MHz por um valor programado de 16 bits. Para produzir som, o timer está definido no modo gerador de ondas quadradas. É uma melhoria pequena, mas útil, em comparação com os computadores domésticos contemporâneos de baixo custo, como
Apple II e
ZX Spectrum , onde o alto-falante foi conectado diretamente a uma linha de E / S e o som destinado a ser produzido pela CPU.
O uso do
PIT permite que a CPU configure apenas uma frequência e continue a lidar com outras tarefas enquanto o timer gera som. No entanto, a CPU pode produzir sons polifônicos multi-timbrais muito mais interessantes, enquanto o
PC Speaker , sem grande ajuda da CPU, é incapaz de soar alto ou silencioso, suave ou nítido - é limitado apenas à onda quadrada simples sem controle de volume.

Para reproduzir efeitos sonoros ou música, a CPU atualiza o estado do timer, ou seja, o som ligado / desligado e sua afinação, em períodos de tempo uniformemente distribuídos. Geralmente, isso é feito no manipulador de interrupção do canal do timer 0 (IRQ0), que é acionado pelo mesmo chip PIT. A taxa de interrupção padrão é 18,2 Hz, mas os jogos geralmente aumentam essa taxa até 30 ... 200 Hz, dependendo de um jogo. Isso ajuda a melhorar um pouco a complexidade do som.
O PC Speaker pode reproduzir efetivamente tons na faixa de 100 ... 2000 Hz. Pode ir bem mais baixo ou mais alto, mas isso traz alguns problemas. Os pequenos alto-falantes e piezos não conseguem reproduzir outras frequências suficientemente bem. Acima de 2000 Hz, ele também começa a se desviar muito das frequências de notas musicais devido à resolução do temporizador. Abaixo de 100 Hz, a frequência do som pode se tornar menor que o período de atualização, levando à perda de algumas das atualizações de som, porque o temporizador atualiza apenas o divisor de frequência depois que a contagem atual do divisor anterior é concluída.
Polifonia monofônica
O PC Speaker é um dispositivo monofônico - ele possui apenas um canal de som ou "voz", ou seja, é capaz de reproduzir apenas uma frequência de som por vez. Isso é muito limitante para fins musicais, portanto, os desenvolvedores de jogos e os compositores de música estavam descobrindo algumas maneiras de alcançar a polifonia verdadeira ou falsa. Três abordagens comuns foram desenvolvidas e usadas ao longo do tempo.
A primeira abordagem considera que o
PC Speaker toca onda quadrada como de costume, o código do player atualiza sua afinação na interrupção do timer a uma taxa definida, quase sem carregar a CPU. Mas existem 2-3 canais virtuais de som com partes diferentes sendo reproduzidas, com apenas um deles sendo emitido para o alto-falante real em um determinado momento, e eles estão alternando a cada atualização. Por exemplo, existem dois canais. Em uma atualização, a primeira é direcionada ao alto-falante (divisor de frequência e estado ligado / desligado do alto-falante enviado aos registros de som); em outra atualização, a segunda é direcionada ao alto-falante. É assim que algum tipo de polifonia é obtida no
Lotus III e no
Xenon 2 . Um caso bastante comum aqui é que um canal toca parte de baixo enquanto o outro toca melodia, e essas partes são separadas por frequência, dando grandes saltos de afinação, ou um canal toca uma nota enquanto o outro está mudo - em ambos os casos leva a um zumbido constante desagradável. Ele pode ser reduzido pela omissão de quaisquer notas silenciadas da música, como o
Axe Dourado , o que limita muito os meios de expressão musical (as pausas têm tanta importância quanto as notas na música). Outra maneira é evitar a alternância de canais sempre que possível, como quando apenas um dos canais toca uma nota. Isso ajuda a fazer com que essas peças soem mais limpas, como ouvidas em
acrobacias .
A segunda abordagem é vista em muitos jogos da
Lucas Art . A empresa costuma fazer um esforço extra para melhorar o som das versões dos alto-falantes. Eles geralmente tocam uma melodia principalmente monofônica que possui partes melódicas, graves e rítmicas separadas no tempo. O segundo canal toca notas staccato muito curtas, como arpejo ou bateria, que têm prioridade, silenciando brevemente o canal principal. Exemplos podem ser encontrados em
Monkey Island ,
Loom ,
Indiana Jones . Um dos usos mais avançados dessa técnica é ouvido em
Zak McKracken e no Alien Mindbenders . Isso torna a ilusão polifônica muito mais realista e agradável, embora com capacidades bastante limitadas.
Com a última e terceira abordagem,
o hardware
do PC Speaker não é usado para gerar som por si só, mas como um DAC bruto que apenas gera o som gerado pela CPU em todo o software. Isso leva muito tempo da CPU, chegando ao máximo da carga 8086, por isso só ganhou popularidade com a chegada de 80386. A qualidade do som desse método é bastante ruim e é objetivamente inferior à de uma réplica Covox mais simples feita de poucos resistores. No entanto, foi uma conquista verdadeiramente impressionante para a época, já que uma de suas implementações, o
RealSound , foi patenteada e sublicenciada.
O PC Speaker pode ser transformado em um DAC desativando a contagem do temporizador e ativando / desativando a saída de som, o que o torna um DAC muito básico de 1 bit ou usando o canal de som do PIT para gerar pulsos curtos de largura variável (PWM) em frequência portadora definida pela interrupção do temporizador, o que efetivamente fornece um DAC de 6 bits muito melhor.O primeiro pode ser ouvido em
Fantasy World Dizzy e
Hard Drivin ' , o último com mais freqüência foi empregado para tocar música digital baseada em amostra, como no
Pinball Sonhos . Ele também foi usado em ferramentas fascinantes do passado, como
TEMU e
VSB - emuladores de software do chip de som
Tandy de 3 canais e parte digital do
Sound Blaster , que permitia emitir som através do
PC Speaker em programas que suportavam dispositivos nomeados sem possuir os próprios dispositivos (necessário
386SX ou superior).
Álbum e como foi feito
Originalmente, eu não tinha intenção de fazer um álbum de música. Eu estava criando um projeto de jogo que seria denominado como um jogo de pseudo-gráficos da era XT. Para completar a visão, tive a idéia de criar não apenas a estilização, mas a música real do
PC Speaker que também seguiria a fórmula comum dos jogos da era de 8 bits - uma faixa em loop de cerca de um minuto. Eu não queria usar amostras digitais ou síntese de software, pois seria inapropriado para estética considerada e não teria um caráter único em si. Senti um apelo especial na música monofônica desde que a ouvi pela primeira vez no
ZX Spectrum em jogos como
Ping Pong ,
Stardust ,
Score 3020 . Tendo essa oportunidade, eu estava ansioso para tentar criar uma música monofônica real e tentar obter algum resultado inédito por meios de arranjo - um desafio atraente para mim como compositor musical.
O trabalho na música me empolga e me interessa mais do que o próprio projeto do jogo. Tendo me
divertido bastante , desenvolvi e publiquei o
PCSPE , o plug-in
VSTi , fiz muitos esboços musicais e algumas versões de capa de meus trabalhos mais antigos, a fim de desenvolver técnicas de composição adequadas para arranjos monofônicos e modelar o design geral do som. Por fim, decidi que o resultado não se encaixava no projeto do jogo que, na época, perdeu seu apelo para mim e foi colocado em espera. No entanto, eu tinha algumas músicas gravadas e, sentindo que ele tem algum potencial digno de lançamento, achei que seria bom fazer um rápido estímulo e divulgá-lo ao público, assim como um disco de música independente do
MS-DOS , que também servir como uma demonstração dos recursos do
PCSPE .
O estímulo rápido acabou não sendo tão rápido. Algumas músicas se tornaram algumas dezenas, a coleção de músicas aleatórias evoluiu para um álbum conceitual, os planos estão mudando, os prazos adiando. Foram quase 1,5 anos para concluir o projeto, de julho de 2017 a 7 de janeiro de 2019. Durante esse período, também consegui desenvolver o
AONDEMO e compor uma música para ele (o hardware de som da AON é uma combinação próxima do
PC Speaker ), além de participar do projeto do jogo
Planet X3 como desenvolvedor de código e ferramentas de som. Este jogo também acabou usando a primeira faixa que compus para o álbum como música titular.
O término do projeto atrasou muito, estava ficando mais e mais músicas, até que eu usei todas as idéias e rascunhos originais que foram feitos enquanto trabalhava no projeto. A lista final de faixas inclui 23 músicas divididas em três grupos.
O lado A inclui 16 músicas principais, mais ou menos conectadas ao tema e ao design de som. A maioria deles foi composta para este álbum a partir do zero ou foi baseada em material antigo não utilizado que se encaixa bem em arranjos monofônicos. Para esta categoria, escolhi as músicas mais originais e que tiveram mais sucesso dentro das limitações escolhidas, em comparação com outras.
O lado B inclui 6 músicas supostamente de qualidade do lado B. A maioria delas são versões de capa dos meus trabalhos mais antigos para outras plataformas, ou foram baseadas em um material de backlog não utilizado mais desenvolvido que foi inicialmente direcionado para mídias muito diferentes, variando de um módulo rastreador XM a uma música pop punk. Este lado também incluiu a música que foi usada no jogo
Planet X3 .
O lado X inclui uma faixa bônus, adaptada do
AONDEMO com alterações mínimas. Foi separado do resto para um terceiro lado, por causa do humor.
O álbum em si foi apresentado como um programa para o
MS-DOS 3.3 ou superior, que será executado no
IBM PC XT clássico com pelo menos 256K de RAM e
placa de vídeo
CGA . A
CGA original está sujeita à chamada "neve", um artefato visual que ocorre sempre que um programa está gravando na memória de vídeo durante a varredura por varredura. Assim, o programa do álbum é apresentado em dois sabores - um
sbx.com reduzido sem nevar, mas sem efeito de analisador de espectro e
sb.com completo com recursos visuais completos. Uma CPU mais rápida é recomendada para tornar o visual mais suave. Você também pode usar um PC moderno com o
FreeDOS carregado a partir de um
dispositivo USB ou emulação de
DosBox .
Lado musical
O álbum não emprega nenhum truque avançado, como síntese de som de software ou reprodução de amostra. Ele usa a tecnologia mais tradicional - onda quadrada monofônica clássica gerada pelo canal PIT. A taxa de atualização do som é de 120 Hz, um pouco mais alta que o normal, mas nada extremo. O Classic XT está totalmente preparado para a tarefa, com tempo de CPU suficiente para executar outras tarefas além de tocar a música.
O verdadeiro truque é uma abordagem especial à composição e organização das músicas. A experiência passada em áreas de conhecimento relacionadas foi uma grande ajuda - a experiência de fazer música para chips de som clássicos que frequentemente exigiam colocar algumas partes em um único canal, intercalando e sobrepondo elementos; a experiência de desenvolver mecanismos de som de jogos para sistemas de jogos antigos, onde os efeitos sonoros geralmente precisam roubar canais de som da música; também experiência em compor músicas originais para serem tocadas em uma unidade de disquete. Na verdade, eu estava desenvolvendo a abordagem usada por
Lucas Art , embora não estivesse ciente disso, e só ouvi o tema
Monkey Island na época.
Um problema interessante que precisava ser resolvido imediatamente era a bateria e a percussão. No chiptune tradicional, normalmente são feitos com mistura de tom e ruído branco. No entanto, não há como o
PC Speaker produzir ruído branco enquanto mantém a taxa de atualização do som dentro de uma faixa de uma dúzia a cem Hz.

O chute de tambor e timbres funcionou bem sem ruído, assim como o tom desliza para baixo com velocidade e duração diferentes - o chute é um deslize rápido para baixo em uma nota mais baixa, o toms é mais lento e mais longo para uma nota mais alta. O tarola mais importante, no entanto, não funcionou bem como um simples slide de tom, soa estranho e não corta o mix de sons ocupado com outros elementos. Um truque comum no
chip SID e no
AY-3-8910 funcionou bem aqui - um breve momento de silêncio inserido logo após o início do deslize para baixo, que cria um efeito de rolagem de tambor com salto curto. Isso torna o som da caixa diferente o suficiente dos outros sons de percussão e melhora a audibilidade da caixa na mixagem. Funciona especialmente bem, considerando fortes ressonâncias que o
PC Speaker real possui.
Como não há maneira de produzir ruído branco, os chimbal não eram aceitos. Para tornar o som de percussão mais interessante, os sons de bateria estão variando entre as músicas. Algumas faixas possuem bateria mais longa, outras curtas e fortes, às vezes lançam baixo ou alto, elementos extras de percussão presentes em alguns locais.
Várias técnicas gerais foram desenvolvidas enquanto trabalhava na música. Ele pode ser aplicado a arranjos de escrita que dariam a impressão de ter polifonia para qualquer dispositivo monofônico sem controle de volume - variando de um cartão postal de música a uma máquina CNC a uma bobina de Tesla. A variedade de truques de organização inclui:
- O truque da percepção auditiva quando um som presumivelmente mais alto, como bumbo ou tarola, ou uma nota na melodia principal, silencia todas as outras partes, mas o cérebro não presta muita atenção à breve falta de outros elementos sonoros.
- Arranjo que permite pausas suficientes entre sons em geral, especialmente durante as partes de introdução. Isso permite separar as entidades para serem ouvidas melhor; assim, quando o arranjo se torna mais intenso, o cérebro ainda considera esses elementos presentes, mesmo que mal sejam ouvidos.
- Tocar notas ligeiramente fora da batida ou compor melodias que colocam a maioria de suas notas nas batidas fracas ou na batida, pois esses locais tendem a ter intervalos, portanto as notas da melodia não interferem no baixo ou em outros sons. Isso torna as melodias e os suportes altamente sincopados, adicionando um toque especial à música.
- Os arpejos habituais em sintonia com chips em velocidades diferentes, incluindo os de 120 Hz. Uma grande variedade de velocidades de arpejo é muito útil para adicionar mais variedade ao som, considerando a grande falta de variedade timbral, porque tudo está tocando com uma onda quadrada simples.
- Lacunas nos sons contínuos para permitir que outras partes sejam cortadas, ou séries de lacunas de duração crescente para imitar a diminuição do volume.
- Maior variedade na duração das notas, incluindo o uso de notas extremamente curtas, para imitar a diferença de volume. Foi utilizado para dar ênfase ao groove dos graves e aos efeitos de eco. O eco é feito repetindo a mesma parte com um atraso e com notas muito mais curtas.

Lado técnico
Outro elemento-chave na produção foi o uso de ferramentas modernas que tornaram o fluxo de trabalho muito eficiente e otimizado. As ferramentas incluíam um DAW
Reaper moderno (uma alternativa ao
FL Studio ,
Cubase e similares) junto com um conjunto de plugins VST personalizados.

Essa abordagem é experimental, pouco convencional na criação de "verdadeiro chiptune" - ou seja, música destinada a tocar usando dispositivos de som reais do passado. Geralmente, a criação dessa música envolve o uso de um software especial chamado rastreador de música, ou a preparação manual e a inserção de bytes de dados da música no código-fonte. O mesmo resultado certamente poderia ser alcançado por esses meios clássicos também (exatamente o que eu fiz para o
Planeta X3 ), mas isso exigiria muito mais esforço e mudaria o foco da criação da música para a superação de problemas técnicos ao longo do caminho.

Para criar música com o
PC Speaker , criei um plug-in
VSTi chamado
PCSPE . Ele emula as
partes internas
do PC Speaker , permitindo ouvir um som realista com todas as suas peculiaridades e limitações, e implementa um sistema de instrumentos de sintonia de chip, semelhante ao dos rastreadores de música para vários chips de som. Possui envelopes para volume virtual (prioridade), arpejo e afinação, definidos por meio de cadeias de texto de um formato simples, semelhante ao
MML (um parente próximo às cadeias de texto encontradas no operador
PLAY do
BASIC ). Esses envelopes permitem projetar instrumentos diferentes, por exemplo, sons de bateria ou um instrumento de solo com profundidade de vibrato aumentando lentamente.
O principal dever do plugin, no entanto, é misturar algumas faixas
MIDI recebidas que contêm várias partes da música em uma única faixa final. O volume virtual que mencionei acima serve como base para o sistema prioritário. Apenas um instrumento que possui o maior volume virtual atual é reproduzido em um determinado momento. Por exemplo, um instrumento de baixo tem o volume 2, a melodia principal tem o volume 6 e todos os instrumentos de bateria têm o volume 8. Nesse caso, as notas da melodia terão prioridade sobre as notas do baixo, silenciando a parte do baixo enquanto a melodia é reproduzida, e todas as baterias silenciam tudo. outros sons. É assim que algumas partes que tocam simultaneamente se misturam no canal monofônico do
PC Speaker .
O plugin também possui a função de exportação que permite usar música em programas reais do MS-DOS. Funciona como um simples registrador de dados: o plug-in contém informações sobre qual frequência é transmitida ao alto-falante em um determinado momento e o tempo das mudanças de frequência. Quando a música é reproduzida do início ao fim com o recurso de exportação ativado, esses dados são capturados e gravados em um arquivo em tempo real. Agora, para reproduzir a música, basta selecionar os dados do arquivo e enviá-los para o
PC Speaker usando os tempos gravados.
O arpejo clássico de
sintonia de chip pode ser criado no
PCSPE da maneira clássica, usando um envelope de arpejo que define uma sequência de desvios de semitons da nota de base. No entanto, isso exigiria alternar entre instrumentos com bastante frequência e lembre-se de que instrumento precisa ser usado para um determinado acorde. Esse fluxo de trabalho não é muito conveniente para ser usado em uma
DAW moderna.
Meu outro
VSTi , um arpejador chamado
ChipArp , ajuda a criar arpejos clássicos de
sintonia de chip de uma maneira muito mais fácil. Ele pega os acordes polifônicos normais de uma faixa
MIDI recebida e o transforma em um arpejo da configuração necessária (tudo para cima, tudo para baixo, para cima e para baixo no BPM exigido) on-fly - você pode tocar acordes usando um teclado
MIDI e ouvir arpejo adequado imediatamente. Ao contrário dos arpejadores modernos, projetados para serem usados na música eletrônica, meu plug-in não reinicia uma nota para cada etapa do arpejo, mas implementa-a como uma série de dobras rápidas na nota de base. Dessa forma, ele não quebra os instrumentos com fluxo contínuo de som e você ainda pode ouvi-los evoluindo no tempo enquanto são arpeggiados. O problema aqui é que o plug-in de sintetizador precisa suportar curvas de tom amplo e reagir a elas imediatamente, o que não é algo comum para sintetizadores modernos. No entanto, todos os meus sintetizadores
VST oferecem suporte para isso.
Quase todos os emuladores, incluindo
PCSPE e coisas como
DosBox , produzem uma versão idealizada da onda quadrada, que soa bem diferente do hardware real. Os minúsculos alto-falantes destinados apenas a produzir bipes básicos têm muitas ressonâncias e distorções fortes. Isso enfatiza muito os transitórios, ou seja, os momentos de ativação ou desativação do som ou mudanças rápidas na frequência. Entre outras coisas, isso faz com que a bateria e as notas curtas soem muito mais fortes no
PC Speaker real. Para controlar e empregar essa peculiaridade para o bem maior, gravei algumas respostas de impulso para vários alto-falantes pequenos e os usei com um plug-in
convolver gratuito chamado
NadIR - assim como as respostas de impulso de armários de guitarra são usadas atualmente durante a gravação de guitarras pesadas.
Mercadorias
O projeto foi lançado sob a licença
CC-BY . Isso inclui a própria música, o código-fonte do player e os projetos Reaper para todas as músicas. Dessa forma, você pode fazer qualquer projeto derivado, seja música ou código. Todos os plugins usados para criar o álbum também estão disponíveis gratuitamente, juntamente com o código fonte:
Leitor de álbuns do MS-DOSProjetos de código-fonte e ReaperPCSPE com código fonteChipart com código fonteAlto-falantes minúsculos impulsionam respostas