Questo progetto implementa un sistema di sintesi del suono basato su Python e Csound. Il sistema permette di generare composizioni musicali attraverso la definizione di strutture parametriche in file YAML, che vengono poi processate per creare file audio.
- Python 3.11
- Csound
- Reaper (per la post-produzione)
- Librerie Python richieste:
- numpy
- matplotlib
- plotly
- PyYAML
- Clona il repository
- Installa le dipendenze Python:
pip install numpy matplotlib plotly pyyaml
- Assicurati che Csound sia installato nel sistema
- Verifica che Reaper sia installato per la post-produzione
.
├── csound/
│ ├── comportamento2.csd
│ ├── generazione/
│ └── wav/
├── python/
│ ├── main.py
│ └── funzioni/
├── yaml_dir/
│ ├── brano.yaml
│ └── sezioni/
└── Makefile
- Definisci la struttura del brano nel file
brano.yaml - Crea le sezioni individuali in
yaml_dir/sezioni/ - Usa il Makefile per generare l'audio
# Genera tutto il brano
make
# Genera una sezione specifica
make YAML=brano SEZIONE=sezione1
# Pulisci i file generati
make cleanIl sistema utilizza due tipi di file YAML:
brano.yaml: Definisce la struttura globale del branosezioni/*.yaml: Definisce i comportamenti specifici di ogni sezione
brano:
titolo: "nome_brano"
attacco: <valore>
durata:
minuti: <valore>
secondi: <valore>
forma:
- onOff: <bool>
# altre configurazioni...Brano: Gestisce la struttura complessiva del branoSezione: Implementa una sezione del branoComportamento: Definisce i comportamenti sonoriEventoSonoro: Rappresenta un singolo evento sonoroSpazio: Gestisce lo spazio sonoroPythagoreanSystem: Implementa il sistema di accordatura pitagorico
- Parsing dei file YAML
- Creazione della struttura del brano
- Generazione dei file CSD
- Sintesi audio tramite Csound
- Post-produzione in Reaper
- Seguire le convenzioni di naming presenti nel codice
- Testare le modifiche su sezioni individuali prima di generare l'intero brano
- Utilizzare il flag
--sezioneper il debug di sezioni specifiche
- Fai un fork del repository
- Crea un branch per la tua feature
- Committi le tue modifiche
- Crea una Pull Request
MIT LICENSE