2008/01/22


The Midnight Disc Commander

This is the story about how I crated my own DJ system to use in my Linux box. It is based on midnight commander, mplayer and a small JACK/GTKmm application. Here is the screenshot!

Free Image Hosting at www.ImageShack.us

(( If you are interested in computer audio, you might enjoy this text I wrote about a measurement of the filters in an M-Audio Fast Track Pro... ))

I'm about to go to my brother's birthday party, where I'll serve as a DJ for a bit. For the first time I'll use my notebook to play the songs. It is a Compaq with an AMD Sempron 3500+, and has Debian. I'm an old-school guy, and my window manager is VTWM.

There are lots of Linux programs for disc-jockeys. Mixxx and xwax are two fine programs that emulate vinyl turntables, and let you scratch and make loops... Mixxx can be used with joysticks and other specialized hardware. They also measure the BPM of the musics, and let you change the speed, and apply effects... And of course, they have a window for you to select the files you want to load.

I was going to use mixxx, but I decided it was not good for me. I didn't want all the options, and I wanted easier access to do the few things I was going to do: load new songs alternating the tracks, and make a crossfade.

I searched for other Linux program with the "crossfade" and "playlist" features, but most of them only make the crossfade between the currently playing song and the next one, emulating the work I wanted to do by hand.

So, I realised Linux had advanced applications for composer-DJs, and DJ-emulator programs, but no proper application for a humble "just play the tunes" DJ like me... I believe idjc would be the closest to my wishes, but I couldn't run it. Plus it is based on QT, and I prefer GTK, or console applications, possibly with ncurses.

As a JACK fan, I even considered using something as puredata to do the work. But in the end I decided that all I needed was a small program to make the mixing (directed to do just the cross-fading), then I could select and play the songs with other programs. I decided to do something the unix way, full of pipes and running external applications...

I couldn't find a proper simple JACK mixer program, so first I made my own. It has a scrollbar to select the mixing level, and a bunch of radiobuttons to change the mixing style between linear, fixed-then-linear, sudden and quadratic. The jack part just outputs the weighted sum of the two inputs. There is also a simple first-order IIR filter in the scrollbar reading, to make the transitions more continuous and slow.

To load the songs in the two tracks I made two small bash scripts. This was already enough to work from two xterm windows.

Then I started to enhance my general interface. I created scripts that open an xterm windows and call mplayer inside it. Mplayer already lets you pause and move forward, backwards and to the beginning of the song using the keyboard. I created key short-cuts in my vtwm configuration so F6 F7 F8 alternate between the two tracks (mplayer) and the mixer windows.

Finally, to browse through the files and load the songs in the tracks, I decided I wanted something similar to moc... I wanted something like midnight commander... Then I thought: "hey, why not midnight commander itself???" And voilà!... I configured MC to load my magical script when I select ogg or mp3 files!... The result is the screenshot above. The mc window won the F5 short cut, so I never have to use the mouse. Just push buttons, the way I like it!...

It is not enough to use Linux to play your songs, you have to make your own mixer program and make it interact with midnight commander! THIS is a true DJ hacker! ;)



The system worked successfully. The house almost went down with Search and Destroy and Territorial Pissings!... You can see the pictures of the party at my picasa album.

The greatest success, of course, was being cited at Music Thing. Thanks for the attention, guys! :)



I have detailed some more my system at this later blog post. The mixer program is still not in the Internet, but I can send to anyone interested... It's a very basic jack client integrated into a GTKmm application.


Miscelânea da mixórdia

Não basta ser metido a hacker, e discotecar num bar usando um notebook com Debian instalado. Tem que ser um hacker desvairado, e fazer seu próprio programa (ou programas) pra discotecar, de preferência explorando ao máximo possível os recursos de seu sistema operacional.

Free Image Hosting at www.ImageShack.us

Eu tava com raiva dos programas bons de DJzar que eu vi, porque são mais voltados pra quem faz música eletrônica maluca, e faz scratch e o escambau. Eu não queria nada disso, só quero o básico do básico...

Procurei por outros programas de Linux que possuíssem "crossfade" e "playlist"... E só achei programas em que vc programa uma playlist e ele faz crossfade sozinho entre a música tocando e apróxima da lista, ou seja, emulando exatamente oq ue eu quero fazer na mão!!!...

Fiquei com raiva de não existir algo que me atendesse, e animei de fazer um programa eu memso, já que eu queria tão pouco!...

Aproveitando meus conhecimentos de JACK e GTKmm, fiz esse pequeno mixer em que vc liga duas entradas, e ele faz a soma ponderada e joga na saída. O controle é só um scrollbar, e em baixo tem radiobuttons pra escolher o tipo de fade que é pra fazer. O nome desse programa é "crossjazz" (tentativa bizarra de fazer um trocadilho abstrato com "crossdress")

Pra tocar as músicas tem que chamar o mplayer, e mandar ele entrar na entrada certa do meu mixer. Fiz dois scripts pra isso, com nomes bem simples, e ainda montei um terceiro script que lembra onde entrou a última música, e carrega a próxima música na outra porta. Com isso já dá pra ser feliz.

Por fim, pra carregar as músicas, tou usando o midnight commander. Configurei ele pra executar meus script quando o arquivo executado for ogg ou mp3...

Depois disso é só montar as janelinhas em coordenadas agradáveis, e configurar mais uns atalhos no vtwm pra quando vc der "F5, F6,..." ele ir direto pra uma das quatro janelas de interesse.

Daí o resto é a contrapartida das interfaces reaproveitadas: usar setinhas pro lado e teclas "home end" e "pgup pgdown" pra navegar em pastas arquivos e variar o mixer...

Não sei se eu podia tar muito mais satisfeito não, viu... Só falta um jeito do script identificar quando houver um erro, e tentar ajudar. Mas isso já é deixar as coisas robustas, e não tirar do chão, que é o mais legal!...

Usei as entidades: JACK, mplayer, midnight commander, gtkmm, c++ emacs, vtwm... e é claro, X, linux, e a máquina... Assim que é legal, tudo modular, tudo conversando. Não é um caixotão que faz tudo...

2008/01/21


Pequeno DJ programador local

Olha que interessante, tou procurando um bom programa de Linux pra discotecar no aniversário do meu irmão... Primeiro achei o tal mixxx, e esse parece quebrar o galho. Só que achei bizarro, muito cheio de frescura, e o que eu precisava mesmo ele não faz

Aí que comecei a reparar que ele é mais pra esses DJ assim de coisas eletrôniacs, de fazer scratch e o escambau. eu simplesmente não quero isso. Quero dois "players" normais que tem crossfade e playlists... só!...

Cara... simplemente não existe!

Ou é um mega mixer cheio de coisa, todo estribado, que não é votaldo pra quem só vai tocar músicas em festa, ou é uma coisa pra vc ouvir sozinho, sem controlar muito... estilo 'jukebox"

o mais gozado: Tem inúmeras aplicações pra tocar música que dizem ter "crossfade", mas é na verdade um programa que faz o crossfade automaticamente entre a música q tá tocando e apróxima od playlist. São programas feitos por pogramadores solitários que queriam ouvir múscia como se eu estivesse ali colocando pra eles, fazendo o crossfade manualmente.

Só tem um program que pareceu que me agradaria, o idjc... Ele é votlado pra discotecar em rádio, fazendo stream pelo shoutcast, o que tem tudo a ver. Mas naõ rolou aqiu :/

Era hora deu encarnar o pequeno programador local e fazer meu próprio programa!!......... até parece! :P

Foda q tem vááários programa modo texto. Só que nenhum é voltado pra fazer 2 tracks e dar crossfade entre eles!...

2008/01/20


Coincidências caretas cabisbaixas

Olha que louco... Não sei se o SRV se ligava em HC, mas que ao menos tem umas coincidências interessantes aqui tem!...

O Minor Threat lançou em Abril de 1983 um disco chamado "Out of Step".

Em 84 saiu uma coletânea com a famosa música Straight Edge, que lançou (por mais que inadvertidamente) uns movimentos onde algumas pessoas são abstêmias. O próprio Ian MacKaye já cantava sobre seu "estilo de vida" sem drogas (e álcool) desde sempre, sendo que a própria música "Out of Step" fala:

"I don't smoke. I don't drink. I don't fuck. At least I can fucking think."

Em algum lugar perto de 1989, o Minor Threat lançou um disco com sua obra completa, com uma foto muito famosa na capa:


Não consegui descobrir direito a data de lançamento, o AMG dá 1988...

Essa capa depois serviu até de inspiração pra capa dum disco do Rancid, de 1995:


Agora, pouco antes ali dos anos 1989, Stevie Ray Vaughan teve seus problemas com dogas (e álcool), chegando ao ponto de ter que fazer um tratamento de reabilitação. Logo depois do seu tratamento ele gravou e lançou um disco, que saiu em Junho de 1989, chamado "In Step". O nome seria justamente uma referência à sua reabilitação, após a qual ele se tornou um total abstêmio (que os gringos chamam de "teetotaler"). A capa do disco está a seguir:



O que vcs me dizem????...

[OBS: Todas imagens e quase todas informações vieram da Wikipédia.]

2008/01/18


Ódio interfásico

Jamais cessarei de postar sobre o óido que adquiri a programas de edição como o word desde que comecei a usar LaTeX para fazer documentos...

Olha só esse problema: Você está com o cursor num ponto do texto. Anda com ele pra cima. Aí vai subindo linah a linha... apssa por um subtítulo, passa por um título de capítulo, some mais o texto.. Aí passa por uma caixinha especial que faz primeira letra do parágrafo ser grande. Aí vc vai pra cima e pra cima e pra cima, normal.

Aí você começa air pra baixo...

você vai pra baixo, pra baixo, desce, desce... Passa por um nome de capítulo sem problema, desce.. e de repente, você fica PRESO! Sim, você CAI NUMA ARMADILHA! Aquela mesma caixinha de letra grande no começo do parágrafo não deiax mais você descer, ela só deixa subir!!...

Isso é "intuitivo"? Isso é "amigável"? Isso é "parecido com o papel"? Não!! Isso é uma HISTERESE! Isso é VARIANTE NO TEMPO, isso é ASSIMÉTRICO, ANISOTRÓPICO.

Não é possível que uma interface não consiga mantera algo tão básico quanto se certificar de que a ação de "andar pra baixo" seja sempre um correspondente lógico correto e absoluto da ação de "andar pra cima"!... Um tem que ser o undo do utro, sempre. Tem que ser SEMPRE duas ações PERFEITAMENTE REVERSAS.

***

Outra coisa ridícula. Essa vai pra junto da minha crítica da sinsibiliadde da questão do mouse, que vc não mirar direitinho o pixel lá, no complexo processo do feedback com o ratão, vc pode fazer a sua ação desejada, ou então outra que não tem nada a ver...


Pra caminhar pelo texto, vc usa lá o teclado, sobre ou desce uma ou duas linhas com seu cursor maravilhoso... Poisé, mas tem qe tomar cuidado, amigo, que se por acaso vc tiver largado por acidente uma caixa contendo uma imagem e uma legenda, e mais um milhão de informações de formatação e posicionamento e sei lá o que, se vc deixar por acidente e ssa estrutura complexa selecionada, quando vc apertar o botãozinho pra cima, ao invés da inocente ação de andar com o cursor no texto, você vai descolar a caiax da figura de lugar!!!! vai mudar um motne de coisa de lugar, vai tirar texto do ugar, vai tirar INÍCIO DE SEÇÃO do lugar, coisa com fote diferente uma da outra, ainda pode sair desalinhando o negócio.

Aquela ação que vc achava que ia fazer, que era tão inocente e inócua, avacalha seu texto todo!!!...

Isso é intuitivo? Amigo do usuário? É uma metáfora adequada? É algo MELHOR do que a metáfora? Hardly...


Antípodas

Mapa impressionante dos antípodas do planeta

Muito impressionante esse mapa!... Abram imediatamente!... Não tinha noção, mas quase nenhuma parte seca desse mundo fica exatamente do outro lado de outra parte seca!!!

O Japão e a China, que a gente fala tanto, ficam muito mais ao norte do que a gente pensa!... O Japão cai quase todo saindo do Rio Grande do Sul. Só aquelas ilhas do sul que caem ali em cima do rio Uruguay.

A ilha de Taiwan (Formosa) chega a se sobrepor à região do norte da argentina, que tb se chama Formosa... (vi esse mapa por causa disso! Link da Wikipédia)

As Filipinas caem em cima do Mato Grosso...

América do Norte, Austrália, África e Europa não tem nada do outro lado, exceto pela Península Ibérica que pega parte da Nova Zelândia. Antártida cai em cima do Oceano Ártico (exceto pela Groenlândia...) Rússia não pega nada.

A parte de terra desse mundo que mais se sobrepõe a algo do outro lado são justamente a Argentina e o Chile, que entram pra dentro da Rússia, partindo a Manchúria...

Dá até pra pensar uma teoria científica: será que existe uma tendência de terras secas ficarem do outro lado de oceanos???...

A deriva dos continentes está contrariando essa tendência, porque a américa do sul estaria entrado cada vez mais pra dentro da Ásia... (aumentando o Atlântico)

muito louco, muito louco...

2008/01/17


O colar de pérolas negras

Já que todos dizem que é legal fazer "divulgação científica", e como todo problema de matemática tem que ter uma historinha pra acompanhar, pra ser divertido, aqui vai o tenebroso...

PROBLEMA DO COLAR DAS PÉROLAS NEGRAS

Na ilha de Lesbos, na Grécia antiga, havia uma matemática chamada Sapro. Ao completar 16 anos, Sapro jurou que se casaria apenas com um homem capaz de resolver um problema matemático proposto por ela.

Sapro pegou uma linha, e colocou nela três pérolas: uma preta e duas brancas, e amarrou a linha formando um colar (sim, um colar meio feio, com a linha aparecendo...)

A cada ano de vida, Sapro pegava outra linha, desamarrava o colar, e fazia outro maior, colocando pedras no novo colocar de acrodo com cada pedra do colar antigo, como ao rezar um terço bizantino. As pedras devem ser colocadas da seguinte forma:

Para cada pérola negra encontrada, passe ela para o novo colar, e substitua a pedra seguinte por uma hematita e uma pérola branca (a branca se torna a primeira pedra do colar velho).

Cada pedra branca encontrada é passada imediatamente para o novo colar.

Para cada hematita, colocar uma pedra branca no colar novo, e substituir a pedra seguinte no colar antigo por uma pérola negra.

Note que pode acontecer da última pedra do colar antigo ser uma pérola negra ou uma hematita, o que requer uma substituição da pedra seguinte. Nesse caso a substituição deve ser feita nas primeiras pedras do colar novo (que são são as "seguintes" ao se fechar o colar).

Sapro propôs então: "Só hei de me casar com um homem, se um dia aparecer um que me presenteie com um fórmula algébrica para o número de pedras de meu colar para cada ano de minha vida!..."

Aos 16 anos, portanto, seu colar tinha 3 pedras. Aos 17, 5 pedras, sendo uma delas uma hematita grande, que servia de pingente. Aos 18 anos, seu colar adquiriu 7 pedras. É dito que neste ano Teseu pretendeu desposar de Sapro, dizendo que o colar adquiriria a cada ano os sucessivos números ímpares, e preveu 9 contas para quando a jovem matemática atingisse 19 anos.

Ele ficou desapontado, entretanto, ao ver que quando completou 19 anos, Sapro reformulou seu colar e este adquiriu 10 contas ao invés de 9.

O matemático Hipparcus previu que o colar eventualmente cresceria com uma fórmula exponencial, com um ruído alternativamente negativo e positivo. Isto foi verdade dos 27 aos 32 anos, mas aos 33 a sua fórmula deu um ruído positivo, repetindo o anterior. A fórmula de Hipparcus foi

(73/40) * (3/2)^(n-15) .

Sapro morreu neste mesmo ano, no cerco de Corinto em 146 AC, a caminho do -XXVIII congresso de matemática pura e aplicada de Siracusa.



A configuração de todos os colares de Sapro a partir dos seus 16 anos, o número de contas, e a configuração das pedras está abaixo. ('F' são as pérolas negras, 'o' as brancas e 'G' a hematita)


3: Foo
5: oGooF
7: oGoFooF
10: oGoFooFooF
14: FoFooFooFooFoo
21: FooFooFooFooFooFooFoo
32: oGooFooFooFooFooFooFooFooFooFooF
47: FoFooFooFooFooFooFooFooFooFooFooFooFooFooFooFoo
47: Fo( 15 Foo)
71: oGoo( 22 Foo)F
106: oGo( 34 Foo)F
158: Fo( 52 Foo)
237: ( 79 Foo)
356: oGoo( 87 Foo)F
533: Fo(177 Foo)
800: oGoo(265 Foo)F
1199: Fo(399 Foo)
1799: oGoo(598 Foo)F
2698: oGo(898 Foo)F


Quem resolver esse problema não poderá mais desposar da fictícia e falecida Lesbiana, mas eu dou 5 reais pra quem me achar uma relação de recursão pra essas séries, e 10 pra quem achar uma fórmula algébrica fechada!... (se é que existe!)

Eu acho que deve rolar uma coisa tipo T <- (T%n==0)?T*k0:(T%n==1)?T*k1:(T%n==2)T*k2...


Potencial descoberta interessante

Estou fazendo meu trabalho de tecnologia adaptativa... Na minha varredura do espaço de autômatos finitos adaptativos possíveis, encontrei um, o de número "4258072", que parece possuir umas características bacanas (leia-se: comportamento caótico).

Em minha linguagem para descrição de AFAs, que batizei de SDMBA, essa máquina possui o programa

FUN PRE F: GEN;
* 1 T11 G;
T1 1 *; END;
FUN PRE G: GEN;
T1 1 T11 F;
T 1 T1; END;
q1 1 q1 F;
INIT q1;
FINAL q1;

que acredito ser equivalente a:

FUN PRE F: GEN;
* 1 T11 G;
T1 1 *;
END;
FUN PRE G:
T 1 T1;
T1 1 T11 F; END;
(...)

Esse autômato aceitou a série de números:

0 2 5 9 15 24 38 59 90 137 207 312 470 707 1062 1595 2394 3593 5391 8088

que se vc fizer altas diferenças sucessivas, não vai achar nada de muito esclarecedor:

0 2 5 9 15 24 38 59 90 137 207 312 470 707 1062 1595 2394 3593
2 3 4 6 9 14 21 31 47 70 105 158 237 355 533 799 1199
1 1 2 3 5 7 10 16 23 35 53 79 118 178 266 400
0 1 1 2 2 3 6 7 12 18 26 39 60 88 134
1 0 1 0 1 3 1 5 6 8 13 21 28 46
-1 1 -1 1 2 -2 4 1 2 5 8 7 18
2 -2 2 1 -4 6 -3 1 3 3 -1 11
...

Poisé, tentando decifrar o autômato ainda estou tentando colocar ele em forma de uma gramática pra ver o que acontece... Só que tem que ser uma gramática "cíclica". Vai ser algo como um colar de contas, que vc vai mudando as cores de acordo com as regras da gramática.

Ainda acho que posso descobrir que isso vai cair em alguma outro sistema já famoso... Mas tomara que não!! =) (ou que sim, porque facilitaria as coisas...)

Enviei a série pra famosa Enciclopédia de séries de inteiros, vamos ver se obtenho alguma resposta...

(Esse post é só pra marcar esse momento, que pode talvez vir a ser uma descoberta interessante! Ou talvez apenas um fugaz momento de esperança seguida de desilusão...)

2008/01/16


Folha Online - Inform�tica - Macaca nos EUA faz rob�andar no Jap�o usando for�a do pensamento - 16/01/2008

Folha Online - Inform�tica - Macaca nos EUA faz rob�andar no Jap�o usando for�a do pensamento - 16/01/2008: "'� um pequeno passo para um rob�e um salto gigantesco para um primata'"

Eu diria que foi mais um peqeno passo para um primata, mas um gigante salto para a robótica!...

2008/01/15


Direito de se aborrecer

Não sei se culpa do autor ou do entrevistado, mas nessa reportagem aqui http://www1.folha.uol.com.br/folha/ilustrada/ult90u363525.shtml

com o diretor do filme britânico "Steal This Film", eles tratam de maneira extremamente superficial e ingênua a questão do direito de cópia e de autor.

O sujeito fala que "registrou o copyright", e fica implícito que o filme seria portanto proibido de ser copiado, como os outros, mas não é tão simples. Um autor de um filme pode perfeitamente manter seu "copyright", mas permitir a cópia irrestrita de seu filme. Ele pode permitir a cópia e proibir a reutilização do filme, por exemplo, ou pode proibir que se dê acesso de forma restrita à obra... São as pequenas nuances que existem em licenças tipo GPL, LGPL, CC et cetara. Do jeito que o sujeito coloca a coisa ficou parecendo que só existem no mundo filmes "sem direitos de cópia", e filmes "registrados" que são proibidos de se copiar...

Nenhum juiz do mundo aceitaria se esse cara resolvesse fazer uso dos seus "direitos de cópia" em um tribunal, uma vez que ele distribuiu o próprio filme livremente, em um contexto onde a permissão para cópias futuras era minimamente subentendida (num site). As coisas são muito mais complicadas do que falar que "registrou" o filme, e que você "tem copyright"... Perderam uma boa chance de fazer as pessoas pensarem um pouco sobre o assunto, e ao invés disso, criaram uma reportagem polêmica e vazia.