TuxGuitar 1.0 com FluidSynth Plugin

Tags: , , — August 23, 2008 @ 11:37 pm

TuxGuitar 1.0A quase um ano atrás estive falando sobre o TuxGuitar aqui no blog. O programinha trata-se de uma ótima alternativa livre ao Guitar Pro e não deixa nada a desejar.

Após este tempo, o TuxGuitar, agora já na versão 1.0, está disponível nos repositórios do Debian Lenny, juntamente com os plugins Alsa e FluidSynth, o que significa que todo aquele trabalho para fazer funcionar sons Midino Debian não é mais necessário.

O FluidSynth é um sintetizador midi baseado nas especificações SoundFount 2.

Primeiramente você precisará instalar o programa, juntamente com seu plugins alsa e fluidsynth:

# aptitude install \
tuxguitar \
tuxguitar-alsa \
tuxguitar-fluidsynth \
fluidsynth

Para começar a utilizar o TuxGuitar, você precisará também dos kits de instrumentos SoundFonts, que são geralmente encontrados como arquivos com a extensão *.sf2. O website sf2midi.com é uma boa fonte de SoundFonts, dos quais posso recomendar 8MBGMSFX para quem quiser testar rapidamente o TuxGuitar, ou que tiver um computador pouco generoso em memória e processamento. O 8MBGMSFX é um pacote básico de instrumentos, com pouco menos de 8MB, mas que deve servir para a maioria, outros SoundFonts bem mais completos podem ser encontrados no mesmo website ou em outros, e não custa nada testar qual que mais lhe agrada ou pesquisar em alguns fóruns sobre o assunto.

Após baixar o SoundFont, descompacte ele, caso necessário, e verifique a extensão. Se o arquivo estiver com a extensão *.sf2 sem problemas, mas caso esteja com a extensão *.sfArk algum trabalho extra será necessário.

sfArk é um método de compressão comum que alguns compositores utilizam para compactar seus SounFonts. Por sorte a companhia por tráz dele tem uma versão Linux do aplicativo de descompressão, faça o download deste a partir do website http://melodymachine.com/sfark.htm. Para utilizá-lo basta executar: $ sfarkxtc ./thenameofthefilehere.sfArk e o arquivo deve ser descompactado em um *.sf2 (obs. se ao invés de descompactar um *.sf2, descompactar um *.exe ou qualquer outra coisa, procure outro SoundFont).

Com o SoundFont escolhido e salvo, abra seu TuxGuitar, vá em Ferramentas -> Plugins, selecione FluidSynth output plugin e clique em Configurar e depois em Adicionar, então selecione o arquivo *.sf2 que vc baixou e descompactou.

Depois disse vá em Ferramentas -> Configurações -> Som e em Midi Port selecione TG FluidSynth [nome do seu SondFont] .

Adicionando o SoundFont ao plugin FluidSynth  Selecionando o SoundFound como saída de som

Após terminar as configurações, basta clicar em Ok e aplicar as configurações e começar a utilizar o TuxGuitar.

Boas Composições…

SpiderMonkey JavaScript Shell – Programando JavaScript em linha de comando

Tags: , , , — March 14, 2008 @ 7:10 pm

Desenvolvedores Web costumam ter grandes problemas para debugar JavaScript. Enquanto programas como a extensão FireBug do Firefox fazem milagres para debugar, o programador ainda precisa colocar sucessivos alert()s para descobrir os valores que suas variáveis assumem em determinados pontos. Certo?

Errado!

Estava pesquisando agora a pouco algumas funções de js no MDC quando fiquei meio curioso com o modo como os exemplos de código eram mostrados e, em especial, de uma função print(). Como no fragmento a seguir:

var names = "Harry Trump ;Fred Barney; Helen Rigby ;";
print(names);
var re = /\s*;\s*/;
var nameList = names.split(re);
print(nameList);

Ora, bolas! Javascript não pode imprimir nada em stdout, então, como pode existir uma função print()?

Então que, pesquisando mais um pouquinho, cheguei ao SpiderMonkey Javascript Shell.

O SpiderMonkey é o mecanismo interpretador de Javascript do Gecko, escrito em C, e utilizado em vários produtos Mozilla, como o Firefox, por exemplo e a boa notícia é que ele provê também um Shell para executar js em linha de comando.

Com isso fica extremamente fácil criar e testar scripts para usar posteriormente. Veja o exemplo a seguir:

diovani@debian-websul:~$ js
js> var frase = 'Hello World!';
js> var tamanho = frase.length;
js> var teste = frase + ' tem ' + tamanho + ' caracteres.';
js> print(teste);
Hello World! tem 12 caracteres.
js>

Para instalar o SpiderMonkey JS Shell no Debian GNU/Linux basta executar o comando:

# aptitude update && aptitude install spidermonkey-bin

Após a instalação, basta executar em um terminal o comando $ js para entrar no Shell interativo:

Para entrar no shell interativo use o comando:
$ js

Para executar os scripts de um arquivo (foo.js) use:
$ js -f foo.js

Para executar os scripts de um arquivo (foo.js) e entrar no shell interativo (muito útil para carregar funções ou bibliotecas) em seguida use:
$ js -f foo.js -f -

Mas mesmo para outras distribuições, e até mesmo Windows, deve ser extremamente fácil instalá-lo. Veja o link abaixo para a Documentação do Javascript Shell e exemplos de uso:

Link: Introdução ao Shell Javascript

Usando apt-listbugs para verificar bugs em pacotes antes de atualizações e instalações

Tags: , — @ 3:08 pm

Esta semana me ocorreu um grande problema no Debian, resultado de usar versão testing/unstable. Fui, alegremente, atualizar meu sistema, com # aptitude update && aptitude full-upgrade e, depois de terminada a atualização, meu querido TuxGuitar não funcionou mais.

Procurando ajuda no irc (#Debian@irc.freenode.org) um usuário me disse algo como:

Como você está usando Debian Testing/Unstable sem usar apt-listbugs?

Bem, até pouco tempo em nem conhecia este pacote, mas trata-se de um programinha essencial para quem deseja aventurar-se no Debian Testing e/ou Unstable. Para instalá-lo apenas execute: # aptitude update && aptitude install apt-listbugs;.

O apt-listbugs verifica os principais bugs em cada pacote antes de uma instalação e atualização e exibe ao usuário, pedindo uma confirmação antes de prosseguir com a instalação. Aqui vai um exemplo:

# aptitude install ghostscript

É preciso obter 0B/887kB de arquivos. Depois do desempacotamento, 7774kB serão liberados.
Você deseja continuar? [Y/n/?] Y
Gravando informações estendidas de estado… Pronto
A ler campos dos pacotes… Feito
A ler estado do pacote… Feito
A obter relatórios de bugs… Feito
A processar informação de Encontrado/Corrigido… Feito
serious bugs do ghostscript (-> 8.62.dfsg.1-2) <pending>
#457568 – segfault when creating pdfs
Juntado com: 453903 457547
serious bugs do gs-esp (8.15.3.dfsg.1-1 -> 8.62.dfsg.1-2) <pending>
#435534 – gs-esp – segfault/bus error in ps2pdf

Sumário:
ghostscript(1 bug), gs-esp(1 bug)
Tem a certeza que quer instalar/actualizar os pacotes acima? [Y/n/?/...] n

*****************************************************************
***** Terminar com um erro forçado para parar a instalação. *****
*****************************************************************
E: Sub-processo /usr/sbin/apt-listbugs apt || exit 10 retornou um código de erro (10)
E: Failure running script /usr/sbin/apt-listbugs apt || exit 10
A instalação de um pacote falhou. Tentando recuperar :
Lendo lista de pacotes… Pronto

Veja as linhas em negrito acima. O apt-listbugs exibe a descrição dos bugs de cada pacote e pede uma confirmação, se o usuário selecionar ‘y‘ ele prossegue com a instalação, caso contrário ele forca o apt-get (ou aptitude) a interromper o processo.

Uma ótima ajuda para prevenir bugs inesperados que provavelmente só serão resolvidos depois de algumas semanas.

Usando um chroot para rodar aplicações 32bit em uma instalação amd64

Tags: , , — March 11, 2008 @ 11:55 am

Quem tem um processador 64 bits deve ficar tentado a instalar um sistema inteiro em 64 bits para aproveitar todos os recursos da máquina. Acontece que, após a instalação, nota-se que certas aplicações inexistem para a arquitetura 64 bits (amd64 ou x86_64), como o plugin Flash para Firefox/Iceweasel, o Navegador Opera e Skype.

O Debian dispõe de um pacote ia32-libs, contendo as principais bibliotecas 32 bits necessárias para rodar o FlashPlayer e algumas outras aplicações, mas caso deseja instalar algum outro pacote 32 bits (ia32, x86) então temos um problema. Mas não existe problema que não possa ser resolvido em software livre.

A solução Debian para o problema é criar um chroot 32 bits, um chroot trata-se de uma pasta root (‘/’) dentro de uma pasta do sistema, em outras paravras, é como instalar um sistema inteiro dentro de outro. Antes de mais nada precisamos instalar os programa necessários para criar e utilizar o chroot:

# aptitude install cdebootstrap schroot

cdebootstrap é um comando presente no atual Debian Testing e Unstable, se estiver usando Stable (Etch) ou anterior, use o comando debootstrap

Então você deve criar o chroot com o comando cdeboostrap:

# cdebootstrap --arch i386 sid /var/chroot/sid-ia32 \

http://ftp.debian.org/debian/

Após isso, você terá uma estrutura completa de diretórios dentro de /var/chroot/sid-ia32. Para alterar para este chroot basta usar o comando chroot:

# chroot /var/chroot/sid-ia32

Podendo instalar qualquer programa ou biblioteca normalmente com apt-get/aptitude:

# aptitude install opera skype

Para executar asplicações dentro de seu chroot ia32m você vai precisar de certas parte do seu sistema 64 bits, isso pode ser obtido com um ‘bind mount‘. No mínimo você precisará de /tmp, para compartilhar a sessão do X11, e de /home, para poder utilizar seus arquivos e configurações pessoais. Você poderá desejar também unir os diretórios /dev, /proc e /sys.

Saia do chroot e escreva em seu /etc/fstab:

# sid32 chroot
/home   /var/chroot/sid-ia32/home none    bind      0       0
/tmp    /var/chroot/sid-ia32/tmp  none    bind      0       0
/dev    /var/chroot/sid-ia32/dev  none    bind      0       0
/proc   /var/chroot/sid-ia32/proc none    bind      0       0
/sys    /var/chroot/sid-ia32/sys  none    bind      0       0

Depois monte-os:

mount /var/chroot/sid-ia32/home
mount /var/chroot/sid-ia32/tmp
mount /var/chroot/sid-ia32/dev
mount /var/chroot/sid-ia32/proc
mount /var/chroot/sid-ia32/sys

Para executar eplicações facilmente no novo chroot, você poderá usar o programa schroot. Para isso configure o arquivo /etc/schroot/schroot.conf:

[sid32]
description=Debian Sid i386 (sid32)
location=/var/chroot/sid-ia32
priority=3
groups=users,root
root-groups=root
aliases=default,unstable,ia32
personality=linux32
type=plain
run-exec-scripts=true
run-setup-scripts=true

A partir daí basta executar os aplicativos com o comando schroot:

schroot -p openoffice

Para facilitar ainda mais, você poderá criar um script que permite executar os aplicativos com um simples comando. Crie um arquivo /usr/local/bin/do_chroot e adicione o conteúdo a seguir:

#!/bin/bash

exec schroot -p -c sid32 -q -- "`basename $0`" "$@"

Torne-o executável:

# chmod 755  /usr/local/bin/do_chroot

E então crie links simbólicos para ele dentro de /usr/local/bin:

# cd /usr/local/bin
# ln -s do_chroot opera
# ln -s do_chroot skype

Agora, para executar estes aplicativos basta executar os comandos opera ou skype normalmente.

NOTA: Os aplicativos Opera e Skype não estão presentes nos repositórios oficiais do Debian, para instalá-los via aptitude adicione as seguintes linhas ao seu /etc/apt/sources.list, dentro do chroot, não esquecendo de executar aptitude update:

## Opera Web-Browser
deb http://deb.opera.com/opera/ sid non-free
## Skype
deb http://download.skype.com/linux/repos/debian/ stable non-free

Fonte: debian-amd64-howto

<<< Previous Page - Next Page >>>