Conectando players e afins com o Jack Audio

Nunca gostei dos players para interface gráfica, tais como: Amarok, Rhythmbox, Movie Player, Toten, XMMS, para ouvir música. São bonitos e facilitam o gerenciamentos das mídias, mas gostam de consumir recursos. Durante muito tempo utilizei o bom e velho mpg123, mas senti falta de uma playlist ou algo que facilitasse pelo menos a escolha do álbum/musica/artista. Entrou em ação o mocp (Figura 1). Bem, mas eu costumo equalizar o áudio que escuto, como fazer isso em um player sem este recurso ? Entra em ação o Jack Audio Connection Kit, responsável por interligar programas distintos de áudio. Jack trata tudo em tempo real e também tem suporte para distribuição de processamento de áudio através da rede.

Ok, falei da consumação de recursos dos players e termino mostrando a solução com outro software, que também consome memória. Bem, o intuito do post é mostrar a interligação de interfaces de áudio com o Jack.

Figura 1

Passo 1 – Instalação dos pacotes

Requisitos: jack, jackd, jackeq, libjack-dev, libjack0, libjackasyn0, qjackctl

#apt-get install jack jackd jackeq libjack-dev libjack0 libjackasyn0 qjackctl

Passo 2 – Executar o qjackctl

Para iniciar o jackd, clicar em <start>.

O uso do botão Connect é apresentado/exemplificado no vídeo seguinte.

USE FONE DE OUVIDO OU SUA CAIXA DE SOM. O VÍDEO TEM EXEMPLOS COM ÁUDIO

Nos raros vagos momentos [- Satanic GNU -]

Satanic GNU é uma banda de rock, nerd gore, satanista, formada por apenas 1 humano e tem como tema principal tudo que é mais tosco e sem graça para boa parte da população terrestre. Formada em 2008 como uma terapia contra alguns problemas psicossomáticos que atingem o seu fundador, a banda faz parte de um desorganizado, mas bem articulado projeto paralelo a vida real.
Fazendo parte da gravadora Chorume Record, que tem como especialidade gravações em um único canal, a banda, em conjunto com outras grandes bandas como o Dr. Fossa e The First Moment of Decomposition, gravou o seu primeiro debut “make && make install”engressando assim na problemática família Chorume record.
A sua primeira obra prima foi kernel 2.2 que de acordo com a crítica especializada foi uma porcaria. Já no submundo da música foi declarado: “A música kernel 2.2 é tão boa com um ventilador na velocidade 3”. O debut foi totalmente gravado e editado (se é que isso pode ser dito) com o uso de software livre.

Audacity, Jack audio connection kit, hydrogen.

Lista de músicas:

for i in *; do echo $i;done
01-A_KGB_LEU_MEU_LOG.mp3
01-Kernel2.2.mp3
demonic-printer.mp3
howard_o_pato_robou_meu_pense_bem.mp3
ibm_e_o_holocausto.mp3
rm-rf.mp3

http://www.4shared.com/file/RJeBAm_a/satanicgnutar.html


Creative Commons License
Stanic Gnu by Band is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at ncaio.ithub.com.br.

Shell Script + HTML + CSS + PDF = ????

Estava um dia pensando: "Como seria um conversor de "texto" para pdf com interface web, escrito (com engrenagem) em Shell Script ?". Bem, este foi mais um desafio que nunca sei onde vai parar.

Confesso que depois de iniciar o processo fiquei intrigado com tanta dificuldade. Primeiro, limitações da linguagem Shell Script. Segundo, isso vai servir para alguma coisa ? “Tanto faz, quero ver é o resultado do desafio”. Dei o nome de Pedef, seja lá o que isso queira dizer. Ele faz tudo muito grosseiramente, por isso um bigorna como logomarca. Figura 1

Bem, como instalar ? Os passos seguintes foram testados no Debian 5.0 e no Urubuntu 9.04. Deve funcionar tranquilamente nas versões mais novas, ou não. OBS: Levando em consideração que você tem permissões de root.

Criar a pasta download em /usr/local e entra nela.

# mkdir /usr/local/download

# cd /usr/local/download

Faz o download do pedef.tar.gz

# wget “http://sites.google.com/a/itnatal.com.br/alunos/home/pedef.tar.gz?attredirects=0&d=1&#8221; -O pedef.tar.gz

Desempacotar e descompactar o arquivo

# tar zxfv pedef.tar.gz

Instalar pacotes necessários

apt-get install enscript gs imagemagick apache2 xpdf-utils

Editar o arquivo de exemplo do virtual host e copiar para sites-enable do /etc/apache2 (Use o seu editor preferido)

cd /usr/local/download/pedeF/doc/apache

Exemplo de configuração do virtual host.


<VirtualHost 192.168.0.168:80>
ServerName pedef.dominio.com.br
DocumentRoot /usr/local/download/pedeF/html
Alias /pedef/ /usr/local/download/pedeF/html
Alias /cgi-bin/ /usr/local/download/pedeF/cgi-bin/
<Directory “/usr/local/download/pedeF/cgi-bin/”>
Options Indexes MultiViews ExecCGI
AddHandler cgi-script .cgi .sh
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

OBS: Cuidado com o caminho do pedef. Ele deve apontar para o path correto.

Depois de editado, copiar o arquivo de exemplo. Reload no apache

# cp pedef /etc/apache2/sites-enabled/

# /etc/init.d/apache2 reload

Este é o processo básico. Se ocorrer erros, leia com atenção e revise os caminhos. Depois é só acessar usando o seu navegador padrão. Detalhe, lembre de apontar o registro pedef para o ip correto no servidor de DNS. Se não cadastrou o host no DNS, teste apenas com o endereço ip. Exemplo http://192.168.0.168

Vídeo: PedeF

Benchmarks de Leitura III

A terceira parte do teste foi realizada em um RAID nível 1. Sabemos que o nível 1 faz espelhamento de discos. De contra partida, o tempo de escrita é mais alto que os demais níveis de RAID ?!. Mas para leitura, qual será o impacto ?

Aproveito para agradecer ao Alexandre Botão, desenvolvedor da ferramenta VDT utilizada nos testes, por me adicionar na lista de  THANKS (“feedback, reports, comments and  suggestions”) da aplicação.

Teste número 4, RAID nível 1:

“Quem vai ler um arquivo de forma incremental (inicio até o fim) de 4.8GB mais rápido ?”

Detalhes:

  • O XFS, assim como no teste anterior, teve o melhor tempo de leitura
  • O ReiseFS caiu drasticamente de performance, se comparado com o teste 1
  • Na família EXT, destaque para o EXT2. Deixou o ReiseFS na poeira, e teve melhor tempo que os parentes: EXT3 e EXT4

Benchmarks de leitura II

Um detalhe crucial que acabei deixando passar, foi a configuração da máquina realizadora dos testes.

Processador: Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz

Memória RAM: 2 GB

HD I: SAMSUNG SP0812C 80GB SATA Hard Drive (Serial ATA, 7,200 RPM, 8MB) pic

HD II: Western Digital 80 GB SATA (Detalhes…)

A segunda parte do teste, é uma continuação do realizado anteriormente. O mesmo procedimento. A mudança foi o uso da tecnologia RAID nível 0 e nível 1 (mais detalhes em RAID.edu). O procedimento de criação das partições, formatação, criação do arquivo e teste de leitura, foi o mesmo.

Teste número 3, RAID nível 0:

“Quem vai ler um arquivo de forma incremental (inicio até o fim) de 4.8GB mais rápido ?”

Detalhes:

  • Realmente, RAID nível 0 é o poder !? Aumento considerável de performance de leitura.
  • O minreadperf do EXT2 teve um ganho maior que os demais da família EXT.
  • O ReiseFS teve queda no minreadperf.
  • E o XFS ? Bem, manteve a melhor de todas as médias de leitura.

Continua no próximo post …

Benchmarks de leitura

Existem vários benchmarks de sistemas de arquivos espalhados pela net, uns realizados a muito tempo. Na maioria dos casos, temos testes realizados sobre a árvore de diretório do sistema operacional. Testes como, criar 10000 arquivos(touch), consultar por arquivos (find), criação de diretórios(mkdir), descompactar e desempacotar fontes do kernel (gzip/tar), entre outros. Na maioria das vezes temos um ou mais discos rígidos separados, afim de desvincular os nossos dados e aplicações, que na maioria das vezes sai do padrão de diretórios Unix (POSIX). Exemplo, separar um diretório chamado DB que fica na raiz (/DB). Nele ficarão meus arquivos de banco do SGDB Mysql, diferente do padrão /var/lib/mysql, por exemplo. Nota mental: “Sim, sempre que possível devo separar o meu /var em uma partição de preferência expansível (LVM)”. Mas no meu caso,  quero tudo separado do padrão. Os teste realizados foram realizados diretamente no(s) disco(s) que não contém o OS.

A metodologia utilizada para disco com ou sem RAID, foi a mesma. Preparar partição (cfdisk, fdisk), formatar (mkfs), mountar (mount), criar arquivo (dd), realizar teste de leitura do arquivo criado . Basicamente, apenas isso, acrescenta alguns detalhes de configuração nos testes com RAID. O intuito inicial não é fazer teste de estresse, é pegar o sistema de arquivo no teu estado inicial, fresquinho e sem buffer, para realizar os testes. Claro, não deixarei este tipo de teste fora do contexto, eles virão mais na frente. O arquivo de teste tem 4.8GB de tamanho e sempre criado com o seguinte comando e opções:

dd if=/dev/zero of=arquivo bs=1k count=4700000

A forma de formatação foi a mais padrão possível, apenas mkfs.<sistema de arquivo> /dev/disco.partição. Nada de especificar tamanho de blocos.

Os teste de I/O foram feito pelo VDT (Disk Visual Test), vdt -r arquivo –read –incr , ele me forneceu tudo que eu tinha em mente, antes de realizar os teste. Que era: “Ler um arquivo N a partir  do inicio, do fim, randomicamente e convergente”. Lembrando, o tópico diz “Benchmarks de leitura”. E outro grande detalhe, é: “Realizei os testes para não ficar apenas no “eu li isso em uma página de internet”. Não estou aqui julgando nada e ninguém.

Teste número 1:

“Quem vai ler um arquivo de forma incremental (inicio até o fim) de 4.8GB mais rápido ?”

Concorrentes: Ext2, Ext3, Ext4, ReiseFS, XFS.

Onde:

minreadperf = Performance mínima de leitura

avgreadperf = Performance média da leitura

maxreadperf = Performance máxima de leitura

elapsed = Tempo de duração

Teste número 2:

“Quem vai ler o mesmo arquivo de forma aleatória mais rápido ?”

Concorrentes: Ext2, Ext3, Ext4, ReiseFS, XFS.

Não temos como ter uma conclusão definitiva, mas já temos as primeiras características.

  • No requisito leitura incremental, a família Ext(2,3,4) se comportou praticamente igual. Diferença na leitura mínima, o EXT2 foi o menor de todos.
  • No requisito leitura aleatória, O EXT2 mostrou ser mais rápido. Ext3 teve o maior pico na leitura.
  • O XFS se comportou bem melhor que a família EXT nos testes.
  • O ReiseFS mostrou o melhor desempenho, sempre com boas médias.
  • Nota mental I: “1 segundo faz total diferença”.
  • Nota mental II: “Este foi o resultado de apenas uma operação por disco, imagine várias ? Nota mental I entra em ação.”

Continua no próximo post …