Meu
primeiro contato com sons digitais e computadores
foi no início da década de 80, quando
o mercado era literalmente dominado pelas máquinas
clones do Sinclair ZX 81. No Brasil eram
conhecidos como TKzinhos.
Essas
máquinas não possuíam recursos
sonoros, mas como geravam audio para gravar os programas
em fitas K7, estava aberta a porta para a experimentação
e para novas descobertas.
Mais
tarde, no tempo do TRS 80, os computadores
tinham como componente standard um alto falante,
para produzir os beeps e pings necessários
para avisar ao usuário quando algo não
ia muito bem. Os PCs (XTs e ATs) também usaram
e abusaram desse sistema (até hoje ainda
usam).
Foi
no TRS 80 que ousei digitalizar pela primeira
vez um som. Esses computadores, como o ZX 81,
também tinham saída e entrada de audio
para gravação de programas em fitas
K7. Essas saídas estavam conectadas a uma
porta I/O e, usando Assembler, podia-se ler/escrever
nelas.
Basicamente
o que se fazia era ficar lendo a porta, num determinado
intervalo de tempo, registrando a presença
ou não de corrente (0 ou 1). Só isso
já dava para produzir uma gravação
digital com alguma qualidade. Ouvir meu CP 500
velho de guerra dizer suas primeiras palavras foi
um acontecimento e tanto.
Nesta
época eu dirigia o CPD da revista Micro
Sistemas e me lembro bem da gravação
que fizemos, tranformada depois num arquivo .bat
para ser executado assim que o computador fosse
ligado pelo digitador, que adorava um joguinho.
Estaria garantindo, com isso, as brincadeiras e
gozações por uma semana inteira, afinal,
um computador "falante" era uma tremenda novidade
naqueles tempos.
Não
se usavam sons deste tipo em jogos, pois dispendiam
muito espaço de gravação. Os
jogos faziam uso amplo de rotinas que produziam
os mais diferentes tipos de beeps pelo alto
falante. A rotina que faz isso é extremamente
simples (veja acima uma rotina que faz isso no PC).
O tempo
passou e surgiram as placas de sons e seus formatos
de arquivos. O espaço de armazenamento aumentou
e os jogos, assim como as imagens, evoluiram para
o uso de coisas mais sofisticadas do que simples
beeps pelo alto falante.
No
final de 1994, quando estava trabalhando na versão
SuperVGA do jogo Amazônia, tive meu primeiro
contato com a edição de sons específicos
para um jogo. Nada muito sofisticado. Precisava
de sons de mala abrindo, porta batendo, vidro quebrando,
tiros, urros etc.
Foi
uma experiência e tanto, já que nesta
época ainda não existiam em abundância,
no mercado, os CDs de clip sons e bons editores
de waves. Outro problema com os sons para os jogos
é capturar exatamente o som que se necessita.
É fácil fazer uma porta batendo, mas
o urro de uma onça ou um tiro, são
um pouco mais sofisticados. A maior parte dos sons
que usei naquele jogo derivou de uma régua
de aço batendo sobre uma mesa de madeira.
O som
da mala abrindo, por exemplo, veio de uma dessas
gravações, devidamente distorcida
e duplicada (com uma pequena diferença entre
o inicio de cada uma), para dar a idéia das
duas fechaduras sendo acionadas.
Em termos de sonoplastia
- uso de sons em jogos - temos a considerar três
aspectos importantantes: sons e ruidos incidentes
(a porta bantendo, o motor do carro, etc); sons
de fundo (geralmente uma música, um eco,
etc); as vozes e falas propriamente ditas.
Hoje em dia, todo o
esforço despendido no aspecto sonoro dos
jogos, visa uma reprodução a mais
fiel possível da realidade. O que se pretende,
além da qualidade, é estruturar de
tal forma a sonoplastia que esta sirva como coadjuvante
à narrativa do jogo.
Por
falar em sons, jogos e realidade, não resisto
à tentação de reproduzir um
trecho de uma matéria, publicada na PC
Zone de maio de 1997, sobre a visita de um grupo
de repórteres às instalações
da Sonalysts Inc, para cobrir o lançamento
do jogo 688i Hunter Killer (um simulador de submarino
nuclear).
Quem
assina a matéria é Duncan MacDonald
e na equipe de jornalistas, de várias partes
do mundo, ele destaca a presença de um alemão,
apelidado de Herman, the nightmare German. O assunto
gira em torno de como as empresas gostam de alardear
seus fantásticos gastos na obtenção
"do melhor possível", transformando este
marqueting no destaque principal do jogo.
A
resident drug-crazed muso talked us through the
piece: "A lot of the sounds in the music track are,
like, from de real thing, man. We spent like three
days at sea recording, well, like everything. Hear
that sonar ping, yeah? Real! And that propeller
wash? Real!"
"Was
that the real sound a torpedo makes when it hits
a ship, then?" asked Herman, the nightmare German,
keenly.
"No,"
replied the muso. "That was a syn-drum solo." Doh!
Sons,
jogos & rock'n'roll
Criar
sons para nossos jogos, notadamente os sons para
efeitos de sonoplastia, não é um bicho
de sete cabeças. Podemos literalmente partir
de qualquer ponto e usar coisas que já existem.
Vamos ilustrar neste artigo duas coisas: como usar
uma biblioteca de sons, do pacote de programação
chamado DGC (Delphi Games Creator), que suporta
o uso do Direct-X, e como "criar" um som específico.
A grande
vantagem de usar o Direct-X é podermos usufruir
do multiplayer, ou seja, um som não precisa
ter sido tocado para que outro seja inicializado.
O Direct-X se encarrega de mixar os dois (ou mais)
sons - isso o TMediaPlayer não faz. Tal característica
é de suma importância nos jogos de
ação, onde os sons devem se misturar
constantemente.
No
DGC não usamos os sons a partir de arquivos
independentes, mas sim de bibliotecas que devem
ser montadas com um editor que vem junto com o pacote.
Para compreender melhor como o DGC usa os sons,
basta carregar no Delphi o exemplo do diretório
Demo11 (presente no pacote DGC).
Para
caracterizar o uso da biblioteca e de um som novo,
vamos implementar mais um instrumento no exemplo
citado. Algo bem simples, partindo de uma gravação
qualquer.
Digitalizamos
a introdução de uma antiga música,
pois nela tem um som metálico que iremos
transformar num "instrumento".
Existem
muitos programas de edição de waves
na própria Internet (Tucows e afins),
mas recomendamos o GoldWave. É facílimo
de usar e possui (a versão registrada, é
claro) uma gama muito variada de efeitos.
Pelo
gráfico do WAV dá para perceber
que apenas nos interessa um pequeno som, logo no
início da música. Com a ferramenta
de corte, eliminados todo o resto.
A partir
deste pequeno pedaço (sample) podemos criar
alterações à vontade. Mudamos
um pouco a frequência, aumentamos o volume
de execução, passamos por um filtro
de ruídos e adicionamos um pouquinho de efeito
Doppler. A onda final aparece a seguir.
Rodamos
o Sound Library Editor, que acompanha o pacote
do DGC. Ao carregar para edição
a biblioteca do exemplo 11, teremos a lista dos
instrumentos já presentes. Basta adicionar
o nosso som, que chamamos de SOM.WAV e salvar a
biblioteca.
Para
trabalhar com uma biblioteca, no DGC, teremos que
colocar em nosso programa dois componentes: o TDGCSoundLib
(o botão com a wave) que é a biblioteca
propriamente dita - ela será compilada e
fará parte do arquivo .EXE; e o componente
TDGCAudio, que será o responsável
por "tocar" os sons da biblioteca.
No
Delphi, carregamos o exemplo 11 (Funky Drummer)
e duplicamos um dos botões. A programação
que irá responder ao nosso novo instrumento
é bem simples:
procedure
TForm1.SpeedButton6Click(Sender: TObject);
begin
DGCAudio1.Sound[5].Replay;
end;
procedure TForm1.FormKeyPress(Sender: TObject;
var Key: Char);
begin
case Key of
's': DGCAudio1.Sound[0].Replay;
'c': DGCAudio1.Sound[1].Replay;
'h': DGCAudio1.Sound[2].Replay;
'p': DGCAudio1.Sound[3].Replay;
'b': DGCAudio1.Sound[4].Replay;
'r': DGCAudio1.Sound[5].Replay;
end;
end;
Pronto.
Dispomos agora de um "Roll", ou seja, um novo instrumento
baseado num pedaço de som que já existia.
Isso vale para tiros, coisas quebrando, palavras,
vozes, etc, etc, etc. Qualquer coisa pode ser transformada
em um novo instrumento ou ser usada como um efeito
sonoro especial, como clicks de teclado, portas
abrindo, bips, blimps e clamps.
Clique
nos links abaixo e pegue o demo11
do DGC (modificado) para ver como ficou o novo instrumento
e para baixar o trecho completo da música
digitalizada e tentar reproduzir a mesma operação.