Tocando Karaokê
Autor: Carlos Ribeiro | Publicado: 2005-10-30T12:39:00-02:00

Resolvi instalar ontem programas de karaokê. Eu já tinha alguns arquivos antigos, e resolvi procurar um player legal para Linux, além de músicas mais novas. O resultado não foi exatamente o que eu queria, mas mesmo assim, tive algumas boas surpresas.Tenho hoje dois PCs em casa: um rodando Linux (Ubuntu Hoary, com backports) e outro mais antigo com Windows 98. Tenho também um teclado Roland E-38 que pode ser usado para tocar arquivos MIDI ou karaokê (usando o padrão GM). O teclado tem entrada MIDI, e o PC antigo ainda tem uma 'game port' para joystick analógico, que aceita um cabo MIDI especial. A vantagem é que não consome CPU nenhuma (o processamento do som é feito no teclado), e a qualidade é muito boa.O Timidity++ é um player MIDI para Linux. É um soft synth, ou seja, ele gera os sons no PC. Para isso ele precisa de um banco de sons de instrumentos. O Timidity aceita sons no formato GUS e em um formato mais novo, chamado SoundFont. O Ubuntu tem um banco de sons em formato GUS (o pacote freepats). Instalei ambos e testei o sistema com alguns arquivos MIDI e também com arquivos de karaokê (extensão .kar). Tive dois problemas:   A síntese MIDI é boa, e os sons do freepats são bons, mas infelizmente o pacote é incompleto, pois não suporta todos instrumentos do padrão GM. Depois de testar algumas músicas com instrumentos faltando, vi que precisava encontrar alguma forma de completar o conjunto.   Nos arquivos de karaokê, o Timidity tem um problema de sincronização; o som aparece bem depois da letra que passa na tela. Acho que é efeito colateral do softsynth, que opera com um atraso significativo. Pensei em procurar um ajuste de timing no Timidity, mas ainda não tentei resolver o problema.  O problema (2) ficou para depois, mas o problema (1) tinha que ser resolvido. Pesquisei o assunto para saber mais sobre como instalar novos sons para o Timidity. Não há documentação (pra variar...) mas felizmente, o processo é simples de entender.Existem muitos sites com fontes de instrumentos na Internet. Há dois problemas: alguns são muito ruins, e também é necessário ajustar tudo para funcionar dentro do padrão GM. Sem o padrão GM, fica praticamente impossível trocar arquivos MIDI na Internet... especialmente arquivos de karaokê. Não basta baixar um ou outro instrumento; os instrumentos precisam estar afinados entre si, e precisam estar com o volume bem nivelado também. Assim, a primeira parte do problema é decidir qual o melhor conjunto de instrumentos.Li várias páginas sobre o assunto. Não foi fácil achar um pacote completo para download, pois há dezenas de referências, muitas para sites inexistentes. O site HammerSound contém muitos arquivos de SoundFont. Lendo em discussões online, vi muitas referências a trabalho do Milton Paredes (AIR versões 320 e 340); o site original estava fora do ar, mas nas próprias discussões alguns mirrors para o AIR 340 foram citados. Também vi outra discussão citando a Big Merlin (disponível no site da Allegro e também no Personal Copy) e a GeneralUser GS.È fácil ficar perdido com tanta opção, por isso decidi simplificar, e instalei a AIR 340. É um arquivo grande, que vem duplamente comprimido -- dentro de um arquivo ZIP, o arquivo da fonte (extensão .sf2) vem comprimido com um programa chamado sfArk (há um descompressor sfArk para Linux). Segui os passos:   Coloquei o arquivo SF2 (descomprimido com o sfArk) em um diretório novo (/usr/share/midi/soundfont). Obs: renomeei o arquivo para airfont340.sf2, para retirar os espaços do nome e evitar problemas.Coloquei uma linha adicional no fim do arquivo de configuração do Timidity (em /etc/timidity/timidity.cfg), para referenciar o SoundFont, contendo: # soundfont tem preferencia sobre patches normaissoundfont /usr/share/midi/soundfont/airfont340.sf2 order=0Note que o arquivo de SoundFont é interessante porque inclui toda informação necessária (mapeamento de instrumentos, etc) o que simplifica a configuração comparado com arquivos GUS. No caso do GUS cada instrumento vem em um arquivo, e é necessário editar manualmente o arquivo de configuração para ajustar as alocações de som para cada instrumento MIDI. Trabalhoso mais flexível.Feito isso, teste novamente os arquivos MIDI. Os instrumentos parecem todos corretamente registrados agora, e os sons são de boa qualidade. Agora, ficam faltando mais arquivos MIDI ou Karaokê; isto fica para o próximo artigo.Referências adicionais:   EAWPlus GUS patch set. É um patch set mais antigo, de 2000. Não testei, mas imagino que seja uma versão mais antiga do que a que está no freepats. Há referências antigas de que este patch é de boa qualidade.Discussão sobre patches para o Timidity. Cita GUS, ChaosBank (outro conjunto de fontes), Midia set, etc. Interessante para entender a situação.   Timidity, GM, Softsynths. Mais discussão, alguns links úteis, e referências sobre softsynths no ambiente Windows.   ShomInst - Roland GS para Timidity. Baseado no GUS (não é SoundFont) mas com a promessa de suporte ao Roland GS, que é uma extensão do GM. Não teste ainda.   Tune Smith Central - AIR 340. Mais um mirror do AIR 340, que ainda contém outros arquivos e comentários.TiMidity++ Configuration File Package. Exemplos de configuração do Timidity com diversos tipos de soundfont diferente. Inclui links. Achei esta página tarde -- ela podia ter poupado um bocado de trabalho.