O que você vai aprender

  • Montar um repositório Git adequado a projetos do LMMS
  • Trocar material com colaboradores sem quebrar caminhos
  • Escolher entre trocar projeto ou trocar stems

Antes de começar

  • Noções básicas de Git
  • Entender a estrutura do arquivo de projeto

Colaboração e Versionamento🔗

Duração estimada: 40 minutos

O problema🔗

Projetos do LMMS referenciam samples por caminho absoluto e dependem de plugins instalados no sistema. Um .mmpz que abre perfeitamente na sua máquina pode abrir mudo e sem efeitos na de outra pessoa.

Estrutura de repositório🔗

minha-faixa/
├── .gitignore
├── README.md              # BPM, tonalidade, dependências, o que falta
├── projeto/
│   ├── faixa.mmp          # versionado, descomprimido
│   └── faixa.mmpz         # ignorado
├── assets/
│   ├── samples/           # todos os samples usados, caminhos relativos
│   └── presets/
├── stems/                 # exports por trilha
└── mixes/                 # versões exportadas, com data

.gitignore:

*.mmpz
mixes/*.wav
*.bak

Caminhos relativos🔗

O ponto crítico: os samples precisam estar dentro do repositório e ser carregados de lá. Use o script de coleta de assets para converter um projeto existente:

./coleta-assets.sh faixa.mmpz assets/samples

Depois disso, o projeto abre em qualquer máquina que tenha o repositório clonado.

Fluxo de trabalho🔗

# começar uma sessão
git pull
zcat projeto/faixa.mmp > /dev/null  # confere integridade
lmms projeto/faixa.mmp

# ao terminar
git add projeto/faixa.mmp assets/
git commit -m "leads: reescreve a melodia do segundo refrão"
git push

Trocar projeto ou trocar stems🔗

SituaçãoO que trocar
Duas pessoas produzindo juntasProjeto completo no Git
Alguém vai mixarStems (exportar trilhas)
Alguém vai masterizarMixagem final em WAV 24 bits
Alguém toca uma parteReferência em WAV, recebe a gravação
Colaborador usa outra DAWStems ou MIDI

Trocar stems elimina todos os problemas de dependência: um WAV soa igual em qualquer lugar.

Preparando stems🔗

Arquivo > Exportar trilhas gera um arquivo por trilha, todos com o mesmo comprimento, começando no compasso 1.

Convenções que facilitam a vida de quem recebe:

  • Nomeie as trilhas antes de exportar — os arquivos herdam os nomes
  • Exporte em WAV 24 bits
  • Retire o processamento de master antes
  • Envie junto um arquivo de texto com BPM, tonalidade e a mixagem de referência

Conflitos no Git🔗

XML não faz merge bem. Dois colaboradores editando o mesmo projeto simultaneamente vão gerar conflitos difíceis de resolver à mão.

Estratégias:

  1. Turnos: uma pessoa por vez, com o Git servindo de histórico e não de merge.
  2. Divisão por arquivo: cada pessoa trabalha num projeto separado — um faz a bateria, outro a harmonia — e a junção acontece por stems.
  3. Branches por seção, com junção manual.

A opção 2 é a que funciona melhor na prática.

💡

Escreva no README o BPM, a tonalidade e a lista de plugins externos logo no primeiro commit. Parece burocracia até a primeira vez que alguém abre o projeto, não tem o Calf instalado, e passa uma hora achando que o problema é outro.

Erros comuns

  • Versionar o `.mmpz` e ter um repositório inchado com diffs inúteis
  • Enviar o projeto sem os samples
  • Duas pessoas editando o mesmo `.mmp` ao mesmo tempo
  • Exportar stems com o processamento de master ativo

Você aprendeu

  • Versione o .mmp descomprimido e ignore o .mmpz
  • Samples precisam morar dentro do repositório para o projeto ser portátil
  • Trocar stems elimina todos os problemas de dependência
  • XML não faz merge: divida o trabalho por arquivo, não por seção do mesmo arquivo

Artigos relacionados

Referências🔗

  1. LMMS — Safety
  2. LMMS — repositório oficial no GitHub