# mmpCreator - Documentação Técnica --- ## 🛠️ Área de Desenvolvimento O site está sendo desenvolvido em um ambiente virtual Python (`venv`). Para executá-lo corretamente, ative o ambiente com o comando: ```bash source venv/bin/activate ``` Isso garante que todas as dependências do projeto sejam utilizadas corretamente. --- ## 👁️ Serviço de Monitoramento (Watchdog) Um serviço systemd foi criado para monitorar alterações na pasta `src/samples`: - **Serviço:** `/etc/systemd/system/mmpCreator-upload-server.service` - **Nome do serviço:** `mmpCreator-upload-server.service` - **Frequência:** A cada 5 segundos ### Funcionalidade: Sempre que houver mudanças na pasta de samples, o serviço irá: 1. Detectar alterações via `watchdog`. 2. Executar um novo build do site. 3. Atualizar automaticamente o conteúdo do site em tempo real. > **Nota:** O build atual está sendo feito apenas na parte de testes. Verificar e ajustar o caminho correto do build. --- ## 📤 Servidor de Upload de Samples O servidor `upload_server.py` é responsável por receber arquivos de áudio (samples) para a plataforma. Ele é construído com: - **Framework:** Flask - **Monitoramento:** Biblioteca `watchdog` ### Funcionamento: 1. Após qualquer modificação nas pastas de samples: - O script atualiza os arquivos `samples-manifest.json` e `mmp-manifest.json`. - Os caminhos dos arquivos são ajustados para garantir exibição e execução corretas. ### Acesso: - `http://127.0.0.1:5000` > ⚠️ **Importante:** Avaliar a segurança do servidor antes de validar como ferramenta oficial do projeto. Atualmente está sendo usado apenas para testes. --- ## ✅ Funcionalidades Já Implementadas - [x] Criar projetos - [x] Carregar projetos (do PC ou do servidor) - [x] Salvar projetos (externamente) - [x] Editar projetos existentes (sem alterar o original) - [x] Utilizar metrônomo - [x] Criar e excluir patterns - [x] Alternar entre patterns em tempo real - [x] Controle de volume e pan por pattern e por instrumento - [x] Controle de volume e pan global - [x] Alterar quantidade e formato de compassos - [x] Alterar BPM - [x] Exibir duração da pattern via timer --- ## 📋 TODO (Próximos Passos) ### 🛠️ Funcionalidades - [ ] Validar projetos MMP antes de aceitar uploads: - [ ] Verificar se os samples são nativos - [ ] Corrigir caminhos dos samples (evitar problemas de execução) - [ ] Permitir envio de samples gravados com microfone: - [ ] Executar e recortar antes de salvar no servidor - [ ] Gravar músicas diretamente na plataforma, mesmo sem mixagem - [ ] Ativar/desativar samples em patterns - [ ] Remover botões inúteis no controle de patterns - [ ] Melhorar documentação do código - [ ] Permitir alteração dos nomes das patterns (novos e existentes projetos) - [ ] Corrigir sistema de notas do projeto: - [ ] Incluir rastros da plataforma MMPCreator - [ ] Informações de autor e metadados - [ ] Criar atalhos de teclado: - [ ] Barra de espaço para play/pause - [ ] `+` e `-` para alternar entre patterns - [ ] Permitir alteração de nome de samples (⚠️ pode gerar duplicatas) - [ ] Verificar duplicidade de samples e projetos por nome - [ ] Resetar valores de botões via scroll do mouse - [ ] Ao salvar projeto: - [ ] Permitir escolha entre download ou salvar no servidor - [ ] Escolher nome do projeto