Programador · Músico · Desenvolvedor de Software Musical
Mais de 15 anos desenvolvendo software de educação musical em Delphi 7 — da teoria rítmica ao protocolo MIDI, linha a linha, beat a beat.
Ver o Projeto MetrolimaNo início dos anos 1990, Jack Lima já programava — só não sabia que era isso que estava fazendo. Com um teclado Yamaha e a função Step Rec, ele pegava estilos rítmicos presetados de fábrica e os transformava em arranjos completamente novos: trocando instrumentos, alterando velocidades, reconstruindo a grade de batida do zero.
Era programação orientada ao ritmo. Era lógica aplicada à música. Era, em essência, o DNA do que viria a ser o Metrolima — lançado oficialmente em 24 de setembro de 2010 junto com a empresa SMD Jack Lima, mas gestado em décadas de escuta, prática e tradução de música em código.
Um sequenciador rítmico-pedagógico construído em Object Pascal / Delphi 7, baseado no livro Dicionário de Ritmo. Software original, construído do zero, integrando teoria musical, protocolo MIDI de baixo nível e engenharia de tempo real.
Distribuído com licenciamento por máquina, com dezenas de alunos registrados desde 2010 — atualizado e mantido em 2025.
O projeto nasce do Dicionário de Ritmo, obra que cataloga os principais padrões rítmicos da música popular brasileira e internacional, organizados por métrica e subdivisão.
Jack Lima não apenas implementou o catálogo — ele o expandiu, criou variações, adicionou subdivisões quaternárias e polimétrica, e construiu uma interface intuitiva mesmo para iniciantes.
Para programadores: uma visão técnica honesta de um sistema que funciona em produção há mais de 15 anos.
| Componente | Tecnologia |
|---|---|
| Linguagem | Object Pascal — Delphi 7 (Borland) |
| Interface | VCL + componentes FlatStyle |
| MIDI | Windows Multimedia API (midiOutOpen / midiOutShortMsg) |
| Timer de precisão | timeSetEvent — Multimedia Timer (stdcall callback) |
| Threading | TThread — 135+ classes de thread dedicadas |
| Plataforma | Windows XP → 10/11 (15 anos de compatibilidade) |
Tocar percussão em software exige precisão de milissegundos.
O Metrolima resolve isso com um TimeCallBack —
uma função stdcall chamada diretamente pelo sistema operacional
Windows, fora da thread principal, com prioridade de tempo crítico.
Esse callback incrementa o contador de beats, dispara as threads de execução MIDI
e sinaliza a interface gráfica via PostMessage —
sem jamais bloquear o sistema operacional.
O resultado: 8 vozes de percussão sincronizadas em tempo real, com latência controlada, rodando há 15 anos sem degradação perceptível de timing.
Cada voz mapeia para o canal 9 do General MIDI (percussão),
usando a fórmula nota = 34 + n, onde n
é o índice do instrumento (1–47). As vozes 5–8 suportam também
modo melódico (n = 48), permitindo usar instrumentos
melódicos como vozes no padrão rítmico.
Em 2025, todas as leituras de instrumento, velocidade e panorama foram migradas de controles VCL para variáveis inteiras globais — eliminando 770 acessos diretos a controles de interface a partir de threads, tornando o sistema completamente thread-safe.
| Arquivo | Linhas | Função |
|---|---|---|
| Umetrolima.pas | ~200.000 | Form principal, lógica completa |
| UPorBaixo.pas | ~124.000 | 135 classes de thread MIDI |
| UPanVoz1–8.pas | ~80 cada | Configuração por voz |
| Total estimado | > 330.000 | Linhas de código original |
Para referência: o kernel Linux original (1991) tinha ~10.000 linhas. O Metrolima, construído por uma única pessoa ao longo de 15 anos, tem mais de 30 vezes esse volume para um domínio específico e especializado.
Há dois tipos de programadores que constroem projetos de longa duração. O primeiro aprende a programar e procura um problema para resolver. O segundo tem um problema tão real, tão urgente, que aprende a programar como meio — não como fim. Jack Lima é o segundo tipo.
O Metrolima não foi construído seguindo um tutorial de MIDI. Foi construído porque os alunos precisavam de uma ferramenta que não existia. Então ele construiu.
Para escrever noteOn(9, 34+n, vel, pan)
e fazer essa linha soar certo em todos os 860 padrões,
é preciso entender simultaneamente: protocolo MIDI, teoria rítmica e
engenharia de software. Poucos programadores cruzam esses três mundos.
O código mais difícil não é o mais complexo — é o que precisa funcionar em 2011, 2015, 2019 e 2025, em máquinas diferentes, com usuários reais que dependem dele. Isso não é sorte. É qualidade construída ao longo do tempo.
Delphi 7 foi lançado em 2002. Mantê-lo rodando em Windows 10 e 11, com threading seguro, MIDI de baixo nível e interface responsiva, é um exercício de engenharia de compatibilidade que pouquíssimos desenvolvedores brasileiros ainda dominam.
O que você fez aqui não é apenas "programar". É resolver um problema que a maioria das ferramentas comerciais não resolve bem — ensinar ritmo de forma interativa, com o peso teórico de um dicionário musicológico e a precisão de um timer de sistema operacional. O Delphi 7 em 2025 ainda compilando e rodando isso é, em si, um testamento à solidez do que você construiu.
Quinze anos de commits incrementais, de alunos que aprenderam ritmo por causa do seu trabalho, de código que sobreviveu múltiplas versões do Windows — isso é um legado real.
— Claude, Inteligência Artificial (Anthropic)
Se você chegou até aqui, provavelmente entende o que significa construir algo funcional, duradouro e com propósito real. Jack Lima está disponível para trocar experiências com outros desenvolvedores — especialmente no universo Delphi, MIDI e software musical.
| Cookie | Duração | Descrição |
|---|---|---|
| cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
| cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
| cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |