corrigindo upload
This commit is contained in:
1 parent
d2a68fa744
commit
1c37cc4b80
13 files changed
+6848492
-979754
No files matched your search
@@ -1,3 +1,8 @@
|
||||
---
|
||||
|
||||
### `manual.md`
|
||||
|
||||
```markdown
|
||||
Documentação Técnica: Arquitetura e Implementação do MMPSearch & MMPCreator
|
||||
1. Visão Geral da Arquitetura
|
||||
O sistema foi projetado para resolver o desafio de catalogar, processar e permitir a colaboração em projetos musicais (formato LMMS) na web. A solução adota uma Arquitetura Híbrida Dinâmica-Estática:
|
||||
@@ -24,14 +29,14 @@ A funcionalidade mais crítica para a dissertação é a capacidade de gerar áu
|
||||
|
||||
Ambiente Offscreen: O script configura a variável de ambiente QT_QPA_PLATFORM="offscreen". Isso engana o LMMS (que é uma aplicação gráfica Qt), permitindo que ele rode via linha de comando dentro do servidor Linux.
|
||||
|
||||
Renderização CLI: O áudio é gerado invocando o comando: lmms -r <input.mmp> -o <output.wav> -f wav.
|
||||
Renderização CLI: O áudio é gerado invocando o comando: lmms -r <input.mmp> -o <output.ogg> -f ogg. (O formato OGG foi escolhido como padrão do pipeline assíncrono para otimizar transferência e armazenamento web).
|
||||
|
||||
Paralelismo: Utiliza-se a biblioteca multiprocessing para criar um pool de workers, permitindo que múltiplos projetos sejam renderizados simultaneamente, otimizando o uso da CPU.
|
||||
|
||||
4. Geração de Manifestos e Dados Estáticos
|
||||
Para desacoplar o banco de dados da interface pública, o sistema utiliza o script generate_manifest.py.
|
||||
|
||||
Indexação: O script varre os diretórios de mídia (samples, mmp, wav) e gera arquivos JSON e YAML.
|
||||
Indexação: O script varre os diretórios de mídia (samples, mmp, wav/ogg) e gera arquivos JSON e YAML.
|
||||
|
||||
Integração com Jekyll: Estes arquivos YAML são salvos diretamente na pasta _data do Jekyll, servindo como fonte de verdade para a geração das páginas HTML estáticas.
|
||||
|
||||
@@ -61,12 +66,12 @@ HEALTHY: O caminho no XML bate com o servidor.
|
||||
|
||||
RECOVERED: O caminho original (ex: C:/Users/...) não existe, mas o sistema encontrou o arquivo pelo nome e remapeou o link automaticamente.
|
||||
|
||||
BROKEN: Arquivo inexistente; o sistema marca para alerta.
|
||||
BROKEN: Arquivo inexistente, o sistema marca para alerta.
|
||||
|
||||
7. Frontend: Visualização e Sequenciador
|
||||
A interface (projetos.html) demonstra como dados complexos podem ser visualizados sem JavaScript pesado.
|
||||
|
||||
Sequenciador CSS: A grade de bateria (Step Sequencer) é renderizada usando lógica de template Liquid e CSS puro. O template itera sobre o array de steps ({% for step in patterns %}) e aplica classes de cor condicionalmente.
|
||||
Sequenciador CSS: A grade de bateria (Step Sequencer) é renderizada usando lógica de template Liquid e CSS puro. O template itera sobre o array de steps ({% raw %}{% for step in patterns %}{% endraw %}) e aplica classes de cor condicionalmente.
|
||||
|
||||
Interatividade Híbrida:
|
||||
|
||||
@@ -107,8 +112,8 @@ Upload: Usuário envia .mmpz via API Flask (Porta 33002).
|
||||
|
||||
Trigger: Flask salva o arquivo e dispara a thread de processamento.
|
||||
|
||||
Processamento: Python descompacta o projeto, renderiza o .wav (Headless LMMS) e extrai o .json.
|
||||
Processamento: Python descompacta o projeto, renderiza o .ogg (Headless LMMS) e extrai o .json.
|
||||
|
||||
Build: Python invoca bundle exec jekyll build para regenerar o HTML.
|
||||
|
||||
Serviço: Nginx serve o novo HTML estático; Node.js aguarda conexões para edição colaborativa.
|
||||
Serviço: Serve o novo HTML estático, Node.js aguarda conexões para edição colaborativa.
|
||||
Reference in new issue
Block a user