Linux Fun

Linux pode ser divertido também! Jogos & aplicativos pouco usuais merecem seu espaço...

30 outubro, 2005

Tocando Karaokê

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:

  1. 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.
  2. 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:
  1. 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.
  2. Coloquei uma linha adicional no fim do arquivo de configuração do Timidity (em /etc/timidity/timidity.cfg), para referenciar o SoundFont, contendo:
  3. # soundfont tem preferencia sobre patches normais
    soundfont /usr/share/midi/soundfont/airfont340.sf2 order=0
Note 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.

29 outubro, 2005

Tabs para violão e guitarra

Quando aprendi a tocar violão, era muito comum comprar revistinhas com cifras. Com a Internet, vieram os arquivos de 'tabs', ou tablaturas. O mais famoso era o Olga (On Line Guitar Archives), que foi tirado do ar por causa de ameaças legais envolvendo direitos autorais. A situação é controversa -- há quem diga que o autor de um tab fez a sua própria interpretação da música, e é por direito o dono do copyright daquela versão. O fato é que até hoje, o Olga sobrevive, pulando de site em site, e há vários outros sites que oferecem tabs para download.

Tabs são arquivos texto, fáceis de organizar, imprimir ou ler. O difícil é editar um tab. Há dois tipos de tab: tabs para solo (que reproduzem o braço da guitarra) e tabs para acompanhamento (a famosa cifra de violão). Em ambos os casos, a edição envolve o alinhamento preciso das linhas do tab. Se você quiser inserir um acorde, ou reformatar o tab inteiro, precisa alinhar tudo na mão.

Na minha curiosidade, comecei a pesquisar as alternativas em Linux. Achei dois programas:

  1. O GnomeTab é um editor visual de tabs. O programa oferece vários recursos de notação gráfica, porém, o editor em si deixa a desejar. O autor deixa claro na página que escreveu o programa para poder escrever tabs de forma mais conveniente, de acordo com suas necessidades particulares, e sem maiores pretensões. Por isso, a formatação é um pouco limitada.
  2. O SongWrite também é um editor visual, mas que usa uma notação mais simples para edição; o editor trabalha diretamente no braço da guitarra, em formato de tablatura de solo, indicando com números a posição do braço para cada nota. É possível mudar o som (com registros MIDI) e a duração individual de cada nota.
Nenhum dos dois programas inclui um recurso que eu desejava, que é um editor de tabs para acompanhamento (com acordes e letras). O SongWrite oferece um sistema de tablatura simples, bom para transcrever dedilhados e solos simples. A integração com MIDI permite ouvir o que foi escrito, e a saída visual (usando o LilyPond) dá um bom resultado visual. Por enquanto, é o programa que eu pretendo usar, mas acho que ainda dá para encontrar (ou fazer?) alguma coisa melhor.