MusicA – Tocando MIDI no MSX – Parte I

Não preciso nem citar as diversas fontes de estudos que demonstram que a música é capaz de transformar o “estado de espírito” das pessoas, isso é um fato e principalmente um fato que comprovamos em nossos diversos anos de jogatinas no MSX pois existem jogos excelentes cuja trilha sonora ou é pífia ou inexistente e com isso os mesmos passam despercebidos pela maioria dos usuários dessas máquinas.

Já outros são lembrados e cultuados até os dias de hoje, é o caso de games como Penguin Adventure, Snatcher/SD Snatcher, Fray, a série Xak, a série Nemesis/Gradius, a série Aleste dentre outros que, para mim, tiveram grande parte de seu sucesso creditado a suas trilhas sonoras e serei mais ousado ainda, 50% do sucesso desses clássicos deveria ser creditado a essas trilhas sonoras.

Isso pode ser percebido através da importância que as produtoras de games da época davam à suas produções sonoras tanto que existiam, já naquela época, equipes de compositores dedicados a seus games, diferente de muitos dos pioneiros da produção de games que trabalhavam apenas a parte de técnicas de programação, ou a parte gráfica, deixando a parte sonora resumida a blip’s e blop’s.

E exemplo mais conhecido é da famosa produtora de games para o MSX e para outras plataformas até os dias de hoje, a Konami, que possuia já na década de 80 uma equipe de músicos especializada nas músicas de seus títulos, denominada Konami Kukeiha Club, que foi a equipe responsável pela maioria das músicas dos games lançados pela Konami na maioria das plataformas em que a produtora lançava seus títulos naquela época.

O assunto, produção musical, é tão sério que o sucesso do departamento musical da Konami inspirou a criação de um outro grupo, o Kuheika Club, formados por membros da Konami Kukeiha Club (Chiptune) e que tocavam muitas das musicas compostas por eles mesmos para os games da Konami mas com instrumentação real. Algumas piratohouses brasileiras da época vendiam fitas cassete, com os trabalhos da Kuheka Club, que pelo que me parece eram lançados pela própria Konami em CD no Japão, eu mesmo adquirir alguns cassetes (ou apenas K7) dessas piratohouses lá por 1989/1990.

A realidade do MSX no Brasil

…após o término de sua fabricação no cenário nacional, principalmente na parte de software, é quase tão ruim quanto na época de ouro do MSX, pois poderíamos ter feito muito mais coisas do que fizemos.

Felizmente os True Hackers na parte de hardware ainda continuaram ativos e produzindo inovações em hardware para MSX, dentre eles cito Ricardo Oazem (Tecnobytes) e Ademir Carchano (ACVS), o que nos dá uma sobrevida na parte de hardware.

Na parte de software devemos considerar que na decada de 80 o fator falta de conhecimento pesava bastante, pois a própria micro-informática ainda engatinhava naquela época, mas o tempo mudou e as pessoas engajadas no universo MSX na época, e que detém um maior conhecimento hoje, talvez não queiram mais saber de ouvir falar em MSX, nem pelo saudosismo.

Nesse cenário obscuro percebemos que fazer ferramentas para MSX é um terreno fértil aqui no Brasil e o MSX é um plataforma excelente para exercitarmos boas práticas para desenvolver produtos que tenham muitos recursos de software com poucos recursos de hardware, o que é exatamente a praia daqueles que desejam se aventurar em desenvolvimento para sistemas embarcados.

Apesar de estarmos muito atrasados nesse cenário do universo MSX, nunca é tarde para começar e foi por isso que lancei o projeto Old Skool Tech no Sourceforge.net, que é onde estou recuperando os fontes de alguns softwares que fiz para MSX na década de 80/90, bem como para deixar ali registrado todo e qualquer novo desenvolvimento realizado, a partir daqui, para o MSX e outras plataformas antigas.

Musica no MSX

Voltando ao foco sobre musica no MSX, vale ressaltar que um MSX original (MSX 1) é dotado de capacidades sonoras bem avançadas, não só para a época mas também nos dias atuais, haja vista trabalhos realizados por grupos especializados em fazer músicas para computadores antigos (MSX, ZX Spectrum, Commodore 64, …). Esse tipo de música é conhecida por Chiptune e existem alguns grupos que se destacam nesse cenário, como 8BitPeople.

A grande maioria desses computadores antigos, exceto o C64 que tinha o SID 6581, tinham como seu processador de áudio o chip da General Instruments, o AY-3-8910, que possui 3 canais de som, porém o MSX possui algumas vantagens pois possui extensões padronizadas como o MSX-MUSIC com chips FM OPPL YM2413 e algumas outras mais interessantes ainda como a MoonSound com o seu impressionante YMF278 OPL4 e todo esse conjunto, acredito eu que, transforma o MSX na melhor plataforma sonora de 8 bits existente.

Porém, nenhuma dessas peças de hardware tem valor se não houver nada para controla-las, principalmente senão existir uma forma de reprograma-las a medida que nossas necessidades aumentam e é no momento que chegamos nessa encruzilhada que percebemos que o MSX no cenário internacional está bem servido de grupos que desenvolvem ou desenvolveram ferramentas que tiram proveito ao máximo dessa excelente plataforma, como é o exemplo de grupos como Bandwagon, TeddyWareZ, The New Image (TNI), dentre outros diversos.

A maioria desses demos nasceu devido a algum incentivo externo recebido e que disparou o desenvolvimento dos mesmos. No caso dos demos da Bandwagon, é conhecido que esse grupo participou de diversas competições de demos de 1Kb a 8Kb, competindo com diversas plataformas  diferentes e venceu a grande maioria (senão todas), ou seja, o incentivo era a competição.

Recentemente após algumas discussões no Orkut, surgiu a idéia de desenvolver um jogo para MSX 2.0, que utilizasse a capacidade gráfica e sonora dessas máquinas, incluindo a possibilidade de tocar musicas FM-based (FM-Pac, FM-Stereo, ….). A discussão em torno dessa idéia foi crescendo e  o desenvolvimento atualmente é mantido na comunidade do Orkut, MSX-Brasil, com discussões sobre o andamento do projeto aqui nessa thread.

Esse era o incentivo necessário para se desenvolver alguma coisa para o MSX, aqui no Brasil, que estava faltando e o suficiente para eu perceber que diversas técnicas e ferramentas poderão sair daí, dentre elas:

  1. Técnicas de manipulação de gráficos;
  2. Ferramentas gráficas;
  3. Técnicas para execução de musicas em dispositivos com recursos limitados;
  4. Ferramentas musicais;
  5. Técnicas de desenvolvimento para dispositivos com recursos limitados;
  6. Ferramentas de compactação de dados.
  7. Técnicas de otimização de sistemas para dispositivos com recursos limitados;

.

Ou seja, tem muita tecnologia que poderá ser desenvolvida com o incentivo desse projeto e digo mais…..já começou a ser desenvolvida e com resultados.

O primeiro resultado positivo foi o processo de conversão de músicas MIDI e que agora podem ser convertidas e tocadas no MSX, e é exatamente sobre isso que estarei escrevendo os próximos 3 artigos dessa série de 4 artigos.

Vou explicar sobre os softwares utilizados no PC e que futuramente tentarei desenvolver para PC e MSX, bem como sobre o compilador que  já  desenvolvi para PC e que é utilizado no processo de conversão. Por fim, o processo final de conversão que é feito no MSX bem como a utilização de um Replayer para MSX que executa a música convertida.

Fiquem antenados e espero que a partir daí surjam novos softwares para MSX ou até mesmo ferramentas de apoio feitas para PC e que possibilitem a utilização extrema do hardware do MSX.

[]’s
PopolonY2k

Referências na internet.

Blip, blop for the masses.

http://www.chiptune.com/

Comunidade MSX Brasil no Orkut.

http://www.orkut.com.br/Main#Community?cmm=98375914

Onde está o Prof. Pierluigi Piazzi ?

A década de 80, para grande parte dos profissionais de TI que atuam no mercado atual, foi dominada por siglas como MSX, Apple, Amiga e MS-DOS. Crescemos vivendo em torno dessas tecnologias e que hoje ainda vivenciamos através de listas de discussão, redes sociais, emails, enfim, coisas que estão transferidas para o nosso Cortex não importando se a maré de nossas memórias irá subir e descer apagando tudo o que é temporário. 🙂

Pois bem, uma dessas lembranças que me vem à cabeça até hoje é a do Professor Pierluigi Piazzi, que na década de 80 era reconhecido no meio de tecnologia nacional, por seus livros e sua excepcional didática.

Me lembro que naquela época eu conhecia o Prof. Piazzi apenas pela fama de seus livros e cursos de VHS que estavam na mídia, mas nunca havia consumido qualquer material de sua autoria, uma vez que livrarias e lojas especializadas em produtos de TI era algo raro tanto nos grandes centros e pior ainda nas demais regiões do Brasil, o que era extamente o meu caso.

Eu era louco por ter acesso a livros e também por aprender como as coisas funcionavam, porém não tinha a menor idéia de onde buscar informações, o que é típico de um País atrasado, em diversos sentidos.

Recentemente tive acesso a um dos diversos materiais desenvolvidos pelo Prof. Piazzi na década de 80, o famoso curso de BASIC para MSX, que foi um curso criado para ser assistido em equipamentos de  VHS e foi feito em parceria com a empresa MPO Video, bastante famosa no meio MSX na década de 80.

Ao assistir o vídeo, finalmente verifiquei o porque do Prof. Pierluigi Piazzi ser muito festejado no meio MSX da época, pois sua postura é a de um verdadeiro Mestre, uma pessoa extremamente preocupada em que a didática seja perfeita visando o entendimento por parte de quem o assiste, o conteúdo de seu curso é milimétricamente calculado, ou seja, os níveis avançam passo-a-passo onde percebi o cuidado do autor na condução do conteúdo veículado de forma que não se torne cansativa a quem está assistindo. Enfim, uma pessoa que está constantemente buscando a excelência naquilo que faz.

Foi muito gratificante, após vários anos, descobrir que existiam técnicas do MSX-BASIC que eu poderia ter aprendido de maneira mais rápida e eficiente, na época, caso eu tivesse acesso a esse e outros materiais publicados pelo Professor Piazzi.

Bom, como um dia perdido não volta mais, precisamos continuar subindo os degraus da escada da inteligência e por isso compartilho com os amigos um vídeo do Youtube com a aula de MSX-BASIC do Professor Piazzi, para que vejam e sintam que se trata de um clássico e principalmente para cultivarmos o que é ser um mestre de verdade.

Abaixo também outro vídeo do Professor Pierluigi Piazzi dos dias atuais, dando uma entrevista sobre a importância do trabalho docente, bem como sobre os perigos da tecnologia quando utilizada de forma errônea tanto por mestres quanto por alunos. Excelente vídeo que mostra um pouco das preocupações desse guru que ajudou a formar muitos dos profissionais que estão no mercado de trabalho.

É excelente saber que o Prof. Piazzi continua firme e forte, educando e principalmente ensinado inteligência, para Filhos, Pais e Mestres, através de suas aclamadas obras, Aprendendo Inteligência, Estimulando Inteligência e Ensinando Inteligência, publicadas pela Editora Aleph.

Por fim, o vídeo excelente, onde o Prof. Piazzi simplesmente arrebenta. Só vendo mesmo. É extenso mas vale cada milisegundo assistido. Vai a primeira parte….é só seguir a sequência.

[]’s a todos e principalmente ao Prof. Piazzi, se um dia chegar a ler esse post.

PopolonY2k

Referências (08/03/2011):

Twitter oficial do Prof. Pier.

http://twitter.com/#!/professorpier

Dicas para uma internet “educada”

Quem nunca participou de forums de discussão ou coisa parecida, na internet e não saiu no tapa com alguma outra pessoa em ambiente virtual ??

Vocês talvez mas eu….nunquinha da silva !!!!  😀 😀 😀

Por isso, estou disponibilizando algumas dicas para postar sobre qualquer assunto na internet. Espero sua contribuição para ampliar essa lista:

1) Antes de postar algo, preste atenção se você não vai fazê-lo logo após chegar do trabalho pois as chances de você dar uma “espinafrada” em alguém que tá de boa, só porque seu chefe te encheu o saco o dia inteiro, são grandes.

Solução: Tome um banho, um café e assista a novela das 8 antes de ligar o micro;

2) Não leia a parte de Política do portal Terra antes de comentar em seu forum ou rede social preferidos (orkut, facebook, etc, …) pois existe a possibilidade de você ler sobre o inédito índice de 100% de aprovação da Presidenta da Republica nunca antes alcançado na história desse País.
As chances, em percentual, de você pensar “ixi…nem votei e detesto essa bruaca” e esse pensamento elevar seu nível de stress, são de 100%.

Solução: Vai jogar PlayStation (qualquer geração). Mas não jogue aqueles games emulados, principalmente games de MSX, senão você vai ficar achando defeitos na emulação, pixels e cores e isso vai te fazer descarregar sua raiva na pobre da internet.

3) Não faça nenhum post depois de discutir se o Android é melhor que o Apple IOS ou vice-versa. Android tem suas vantagens assim como o AMIGA no mundo dos micros antigos, porém com todas as limitações do Apple IOS, o pessoal ainda prefere ele pelos seus efeitos e frescuras fru-frus etc e tal, assim como preferem o MSX pelos seus jogos e sua magia.

Solução: Abra sua gaveta de velharias e olhe fixamente para o seu Motorola PT-550 (aka Tijorola) por 1 minuto. Isso vai te trazer paz de espírito.

4) Se depois disso tudo você decidir postar algum #%(&@!!#+, contra alguém, em algum lugar na internet, não se esqueça de fazê-lo sem envolver “terceiros“, pois quando esse “terceiro” começar a não concordar com você, você poderá entrar em uma crise existencial que poderá te levar ao stress profundo, o mesmo que levou a Branca de Neve ao coma profundo após comer a maçã envenenada.

Solução: Vá namorar, até mesmo porque se você precisar sair do coma não é garantido que seu principe encantado não seja um Tião Macalé.

[]’s
PopolonY2k

Funções ZZ

Passeando por sites de Linux durante a última semana me deparei com uma notícia bem legal sobre o lançamento de uma nova versão do projeto Funções ZZ.

Para quem não sabe, Funções ZZ é um projeto Open Source Brasileiro que implementa, via Shell Script, um conjunto de funções bastante úteis para o dia a dia de desenvolvedores de softwares, administradores de SO, webmasters, etc, chegando ao número de 111 funções, disponíveis para os sistemas operacionais Linux, BSD, Cygwin (Windows), Mac OS X, entre outros UNIX-like.

Dentre essas funções dou destaque a algumas bem úteis para mim:

zzansi2html – Converte para HTML o texto colorido do terminal (códigos ANSI). Util para mostrar a saída do terminal em sites e blogs, sem perder as cores.

Bom, digamos que você tenha um blog de Linux ou tenha, como eu, a necessidade de mostrar o resultado de seus testes realizados em um console UNIX ?

Nos meus reviews eu geralmente entro no editor do WordPress e vou colorindo a saída manualmente, simulando a saída do console. Com a função a zzansi2html ganho agilidade na hora de postar saídas do console UNIX.

Vamos ao que interessa, que é a pratica da coisa.

Utilizei as Funções ZZ da forma que baixei no site, claro que tem a parte da instalação, que é baba, mas vamos pular isso tudo. Executei o seguinte comando na tela de console :

popolony2k@ZanacEx:~/Projects/Spool$ df | ./funcoeszz-10.12.sh zzansi2html

E a saída em HTML obtida foi:

<pre style=”background:#000;color:#FFF”><div style=”display:inline”>
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             73718652   7948276  62025628  12% /
udev                    772080       328    771752   1% /dev
none                    772080       200    771880   1% /dev/shm
none                    772080        88    771992   1% /var/run
none                    772080         0    772080   0% /var/lock
none                    772080         0    772080   0% /lib/init/rw

</pre>

O resultado visual é o seguinte:

Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 73718652 7948276 62025628 12% / udev 772080 328 771752 1% /dev none 772080 200 771880 1% /dev/shm none 772080 88 771992 1% /var/run none 772080 0 772080 0% /var/lock none 772080 0 772080 0% /lib/init/rw

.

Massa não ? Agora imagina você tendo que montar essa tela “na mão” nos seus sites ? Ia dar o maior trampo, com certeza !!!

O outro exemplo legal que testei foi o de obter as cotações da bolsa através da função zzbolsas que descrevo abaixo (retirado dos comentários do código fonte):

zzbolsas – Pesquisa índices de bolsas e cotações de ações.

Essa função, assim como outras, necessita do text web browser, Lynx que você deve baixar no site do projeto Lynx, é claro. Mas se você for um usuário de um Linux fru-fru e usa Ubuntu, como eu, basta instalar o Lynx via Synaptic ou apt-get na linha de comando como eu fiz pois apesar de usar um Linux fru-fru, não sou tão fru-fru assim.

popolony2k@ZanacEx:~/Projects/Spool$ sudo apt-get install lynx

Depois de instalado é só chamar a função:

popolony2k@ZanacEx:~/Projects/Spool$ ./funcoeszz-10.12.sh zzbolsas

americas :
^MERV ^BVSP ^MXX europe :
^ATX ^BFX ^FCHI ^GDAXI ^AEX ^OSEAX ^OMXSPI ^FTSE asia :
^AORD ^HSI ^JKSE ^KLSE ^NZ50 ^STI ^KS11 africa :
^TA100 Dow Jones :
^DJI ^IXIC ^GSPC ^GSPTSE ^DWC NYSE :
^NYA ^NYI ^NYY ^NY ^NYL Nasdaq :
^IXIC ^IXBK ^NBI ^IXK ^IXF ^IXID ^IXIS ^IXFN ^IXUT ^IXTR ^NDX Standard & Poors :
^GSPC ^OEX ^MID ^SPSUPX ^SML Amex :
^XAX ^IIX ^NWX ^XMI Outros Índices Nacionais :
^IBX50 ^IVBX ^IGCX

.

Claro que existem opções para se pegar índices individuais, etc etc e etc, mas a idéia é que você poderá criar soluções integradas a seus serviços, como softwares de consulta ou sites, com o suporte das Funções ZZ.

E por último uma outra bem legal é a zzanatel que descrevo abaixo (retirado dos comentários do código fonte):

zzanatel – Busca as tarifas das operadoras no plano básico para ligações DDD.

popolony2k@ZanacEx:~/Projects/Spool$ ./funcoeszz-10.12.sh zzanatel 11 3231 12 3022

00:00-00:59 TELESP 15 Básico 0,07663 01:00-01:59 TELESP 15 Básico 0,07663 02:00-02:59 TELESP 15 Básico 0,07663 03:00-03:59 TELESP 15 Básico 0,07663 04:00-04:59 TELESP 15 Básico 0,07663 05:00-05:59 TELESP 15 Básico 0,07663 06:00-06:59 TELESP 15 Básico 0,17845 07:00-07:59 TELESP 15 Básico 0,34189 08:00-08:59 TELESP 15 Básico 0,34189 09:00-09:59 TELESP 15 Básico 0,34189 10:00-10:59 TELESP 15 Básico 0,34189 11:00-11:59 TELESP 15 Básico 0,34189 12:00-12:59 TELESP 15 Básico 0,34189 13:00-13:59 TELESP 15 Básico 0,34189 14:00-14:59 TELESP 15 Básico 0,17845 15:00-15:59 TELESP 15 Básico 0,17845 16:00-16:59 TELESP 15 Básico 0,17845 17:00-17:59 TELESP 15 Básico 0,17845 18:00-18:59 TELESP 15 Básico 0,17845 19:00-19:59 TELESP 15 Básico 0,17845 20:00-20:59 TELESP 15 Básico 0,17845 21:00-21:59 TELESP 15 Básico 0,17845 22:00-22:59 TELESP 15 Básico 0,17845 23:00-23:59 TELESP 15 Básico 0,17845

.

Não é bem legal ? A quantidade de coisas que dá para bolar com essas funções é algo muito legal pois vai depender apenas da sua necessidade, afinal nessa última versão são 111 funções.

Bom é isso.

Inté.

PopolonY2k

Referências:

Site oficial das Funções ZZ

http://funcoeszz.net/

Site do navegador de texto, Lynx

http://lynx.isc.org/

Old Skool Tech – Novo projeto no SourceForge.net

Fuçando os meus disquetes de MSX para ver se achava alguma coisa interessante e também para ver se os jogos funcionavam após 20 anos, tive a grata surpresa de encontrar um software que eu estava desenvolvendo em 1995, chamado MSXDD, ou MSX Disk Doctor.

A idéia do MSXDD era ser um conjunto de ferramentas utilitárias para manipulação, edição, correção, formatação, copia, ….e etc, de discos. O software está escrito todinho em Turbo Pascal, com rotinas Inline em Z80 ASM.

Após essa grata surpresa decidi abrir um novo projeto, que entra para a minha lista de projetos Open Source como os que estão aí na seção Local Network no lado direito da página. O projeto é o Old Skool Tech, que será um repositório com todos os softwares que eu fiz e que vou fazer para plataformas antigas, aka MSX, AMIGA, Commodore 64, Atari, etc…, tudo liberado sob a licensa GPLv3.

Já adicionei os 3 primeiros módulos da biblioteca base que foi desenvolvida para dar suporte ao  desenvolvimento do MSXDD, que na época já contava com um editor hexadecimal de arquivos e setores. Infelizmente não avancei no desenvolvimento de tudo o que eu queria para o MSXDD, porém nunca é tarde para recomeçar.

Os módulos já liberados são:

  1. MSXDOS.PAS – Biblioteca de funções de baixo nível para manipulação de rotinas internas do MSXDOS, arquivos, DPB (Disk Parameter Block), leitura e gravação de setores, etc…
  2. MEMORY.PAS – Helper functions para manipulação de memória;
  3. DOSTEST1.PAS – Programa de teste da MSXDOS.PAS (Mostra conteúdo do DPB de um disco);

.

Segue o link para o código que já está no SVN do projeto. Não postei todo o código das bibliotecas e também do core do MSXDD porque os comentários do programa estão em português e desejo traduzir tudo para o Inglês, bem como fazer algumas otimizações de código e por enquanto só os 3 módulos que estão lá no SVN.

http://oldskooltech.svn.sourceforge.net/viewvc/oldskooltech/msx/trunk/msxdos/pascal/

Com certeza muitos outros projetos que desejo iniciar para micros antigos terão seus códigos liberados nesse repositório no SourceForge.net.

Bom, é isso aí.

Inté.

PopolonY2k