Linux Fun

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

25 julho, 2009

De volta à ativa, com Linux + Wii + ScummVM

Esse blog ficou parado tempo demais... como aliás acontece com os blogs. É assim mesmo, a gente que não vive profissionalmente de escrever vai e volta. Manter um blog exige foco, atenção, e toma muito tempo. Vale a pena mas nem sempre dá para priorizar como a gente gostaria.

Agora que eu tenho um PC bem configurado em casa, vamos voltar a postar. Justo né?

A idéia agora é usar esse blog mais para coletar minhas peripécias para colocar jogos para rodar em Linux. Meu PC Linux hoje é uma VM, o que pode ser limitante na parte gráfica (não tem o mesmo suporte de aceleração nativa que tem para Windows). Mas vou aproveitar esse mesmo blog para tratar dos jogos de Wii com homebrew, que eu instalei recentemente no meu próprio Wii. Para começar, jogos com ScummVM, tipo "Monkey Island", que são divertidíssimos...

23 fevereiro, 2006

Ferramentas para gerenciamento de iPod

Comprei hoje (23/02) um iPod Shuffle. Instalei o software para Windows (iTunes) no notebook, e quero achar uma ferramenta equivalente para Linux. Achei estes programas no repositório para testar:

banshee - Audio Management and Playback application
gnupod-tools - command-line tools for the iPod family of portable music players
gtkpod - manage songs and playlists on an Apple iPod
ipod - tool for retrieving informations from iPods
Resolvi instalar os três últimos, que citam explicitamente o iPod:
cribeiro@python:~$ sudo apt-get install gnupod-tools gtkpod ipod
Password:
Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências... Pronto
Os pacotes extra a seguir serão instalados:
libaudio-flac-header-perl libipoddevice0 libogg-vorbis-header-pureperl-perl
libxml-libxml-common-perl libxml-libxml-perl libxml-namespacesupport-perl
libxml-sax-perl libxml-simple-perl
Pacotes sugeridos :
lame flac faac mp3gain recode
Os NOVOS pacotes a seguir serão instalados:
gnupod-tools gtkpod ipod libaudio-flac-header-perl libipoddevice0
libogg-vorbis-header-pureperl-perl libxml-libxml-common-perl
libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-perl
libxml-simple-perl
0 pacotes atualizados, 11 pacotes novos instalados, 0 a serem removidos e 4 não atualizados.
É preciso fazer o download de 1124kB de arquivos.
Depois de desempacotamento, 4583kB adicionais de espaço em disco serão usados.
Quer continuar [S/n] ?
Vou testar os pacotes nos próximos dias, e complementar as informações abaixo com uma avaliação prática. As informações que disponho até agora são as seguintes:

iPod

Ferramenta simples, usando a biblioteca de ferramentas de iPod, que permite recuperar informações de um iPod, como por exemplo: modelo, nome do iPod, tamanho da memória, etc.

gtkpod

Programa que oferece um conjunto de funcionalidade similar ao iTunes. O visual não é tão caprichado mas é limpo e razoável. Ainda não testei com o iPod, só avaliei visualmente a interface e os comandos disponíveis, portanto não sei o que realmente funciona e o que não funciona.

gnupod-tools

Utilitários de linha de comando que permitem um controle mais fino do iPod. Há programas que atuam diretamente sobre o iPod, importando ou modificando a base de dados (chamada de iTunesDB). Interessante, bom para experimentar.

12 novembro, 2005

Processamento de áudio no Ubuntu

Venho pesquisando um bocado sobre o estado da arte em processamento de áudio no Ubuntu. Tem um monte de coisas que eu não estava à par, e que podem ajudar muito no projeto de gerenciamento de "Sound Fonts" que estou montando. Minha primeira surpresa foi o LADSPA (ou Linux Audio Developer's Simple Plugin API), uma API padrão para plugins de áudio, que eu descobri quando instalei o Hydrogen, um excelente sequenciador de bateria. Instalei depois mais dois pacotes, o swh-plugins (Steve Harris's LADSPA plugins) e o tab-plugins (Tom's Audio Processing LADSPA plugins), que suportam efeitos diversos como delay, reverb, chorus e flanger, além de diversos tipos de distorção.

Outro projeto interessante é o DSSI, abreviatura de (DSSI Soft Synth Instrument). Pelo que pude entender, é ainda uma parte da infraestrutura que não está totalmente madura, mas que tem potencial para oferecer uma API superior à disponível para controle MIDI no ambiente Windows. Por sinal o Windows não é a melhor referência neste assunto... mas como eu não tenho acesso a um Mac, fico devendo a comparação.

O interessante é notar que ainda não achei nada parecido com o que eu queria, que é uma interface simples para administrar Sound Fonts no Ubuntu. Percebi ainda outra parte do problema, que talvez seja mais complicada de resolver. No caso dos plugins LADSPA, também não há uma interface administrativa; eu descobri os pacotes acima (swh-plugins e tap-plugins) usando o Synaptic e procurando pela string LADSPA. O resultado não é confiável, pois há outros pacotes que contém a string e que não são uma coleção de plugins. A solução seria ter alguma forma de pesquisar o repositório identificando pacotes específicos, como fontes TrueType, plugins LADSPA, ou Sound Fonts, de forma a permitir sua instalação através do "painel de controle" correspondente.

03 novembro, 2005

Melhorando o suporte MIDI no Ubuntu

O suporte a multimídia é uma das áreas em que o Linux mais fica a dever para o Windows. Um dos itens onde isso fica visível é no suporte MIDI, essencial para aplicações de composição musical. O MIDI tem uma certa má fama, injustificável na minha opinião, por causa do som de 'brinquedinho de camelô' de algumas implementações, que usavam síntese FM. Com uma boa base de instrumentos digitalizadas, o som MIDI no PC nada fica em dever em qualidade aos instrumentos profissionais disponíveis no mercado.

Desde a versão 3.11, o Windows inclui suporte nativo para MIDI. É possível selecionar entre diversas saídas, mapear canais individuais para saídas diferentes, remapear sons de instrumentos, entre outras coisas. A partir do XP, a síntese MIDI foi grandemente melhorada com o adoção dos sons (patches) da Roland; assim, mesmo sem um sintetizador externo, os sons são de boa qualidade.

No mundo Linux, a solução é o Timidity++, um pacote que gera saída de áudio em tempo real a partir de um arquivo MIDI. Instalando um conjunto pequeno de pacotes -- entre eles, o timidity e o freepats, temos uma solução suficiente para começar a 'brincar' com MIDI no PC. Infelizmente, ainda é só isso -- brincadeira -- porquê os sons e a funcionalidade básica são bons, mas o pacote ainda peca nos detalhes, longe da experiência que a alternativa Windows proporciona. Os problemas são diversos:

  • Suporte GM incompleto. O pacote freepats tem sons de boa qualidade em formato GUS, mas faltam alguns instrumentos, o que prejudica a reprodução de arquivos MIDI que usem estes sons.
  • Problemas de sincronização. O Timidity toca arquivos de Karaoke, mas os a letra fica fora de sincronismo com a música. Não sei se o delay de áudio é culpa do Timidity, ou do subsistema de áudio (ALSA/OSS/ESD, o que for), mas o mesmo não acontece no Windows
  • Falta de uma interface de configuração. Tudo é feito em arquivos texto - não há um painel de controle para o MIDI.
  • Falta de ferramentas para gerenciamento de patches, ou sound fonts. Esta talvez seja a única fraqueza compartilhada com o Windows, e fica evidente quando se tenta instalar sons adicionais para complementar o suporte ao padrão GM.

Minha contribuição para resolver o problema é modesta; abri uma especificação ontem no Ubuntu LaunchPad para melhorar o suporte MIDI via 'Soft Synth'. Se os itens citados anteriormente forem tratados, então poderemos dizer que pelo menos neste ponto, a experiência multimídia com o Linux se tornou tão simples e funcional como é hoje no Windows. Agora, é esperar para ver se a especificação ganha suporte, e se aparecem mais voluntários para fazer acontecer...

02 novembro, 2005

Planeta Ubuntu Brasil, Dapper e 'Linux Fun'

Boas notícias! Agora temos um local adequado para trocar idéias, que é o Planeta Ubuntu Brasil. A comunidade é ativa, e cá pra nós -- o Ubuntu merece isso.

Em casa, ainda estou com o Hoary, usando os backports... e com uma preguiça imensa de migrar para o Breezy. Já estou usando o Breezy em outros PCs -- entre eles, um servidor na empresa onde trabalho, e também como segundo OS no meu notebook (que por razões diversas ainda depende do XP). E hoje, pra completar a salada, comecei a acompanhar o desenvolvimento da futura versão, 'Dapper Drake', prevista para daqui a seis meses.

Minha idéia ao participar do processo do Dapper Drake -- a princípio com idéias e especificações, e se der, com código -- está 100% alinhada com este blog: a idéia que o Linux pode ser uma distribuição amigável, apropriada para uso doméstico, em um PC que é compartilhado com todos -- esposa, filhos, cunhados, e quem mais aparecer. Por isso, o polimento é necessário. O suporte a multimídia do Linux, por exemplo: é bom, funciona, mas... falta polimento. É neste ponto que quero ajudar.

A primeira idéia, apesar de meio 'nerd', é uma coisa que já havia me incomodado -- um 'event viewer' ou 'log viewer' de boa qualidade para o Ubuntu. Mexer com log de sistema já é assustador o suficiente, o que dirá se a interface não colabora. Vamos ver se dá pra emplacar algo neste sentido...

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.