Domanda

Vorrei implementare un algoritmo evolutivo interattivo per generare musica (probabilmente solo semplici melodie con cui iniziare).

Mi piacerebbe usare JFugue per questo. Il suo sito web afferma che è adatto alla musica evolutiva, ma non riesco a trovare alcun esempio evolutivo.

Ho già un framework per fornire i macchinari evolutivi. Quello che sto cercando è un codice semplice e funzionante che mostri approcci praticabili per la parte musicale (ad es. Codifiche adatte e operatori evolutivi per i brani evoluti).

Ho alcune idee su come potrebbe essere raggiunto, ma non sono particolarmente informato sulla teoria musicale, quindi per cominciare vorrei solo reimplementare qualcosa che è noto per funzionare.

Qualcuno ha, o conosce, qualche codice liberamente disponibile (qualsiasi lingua va bene) che dimostra uno o più approcci alla musica evolutiva?

EDIT: Sto specificatamente cercando un codice evolutivo piuttosto che altre tecniche che potrebbero essere utilizzate per la sintesi musicale.

È stato utile?

Soluzione 2

Finora ho trovato solo questo , che è un esempio di programmazione genetica in C.

Aggiornamento (gennaio 2010): e questo sistema online , che non funziona avere il codice sorgente ma è un esempio di ciò che può essere raggiunto. Ho anche trovato Grammidity , che consente alle sequenze di eventi MIDI di evolversi dalle grammatiche.

Aggiornamento (luglio 2011): ho appena trovato alcuni codici Python rilevanti sul sito MIT Open Courseware .

Altri suggerimenti

Probabilmente vuoi esaminare Markov Chains - Probabilmente ti sono più utili di un algoritmo evolutivo per cominciare, poiché giudicare la qualità dell'output per generare il meglio è sarà un incubo (soggettivo e dispendioso in termini di tempo), e sono ideali per combinarsi con la programmazione evolutiva.

C'è una buona introduzione a loro su Coding Horror . L'articolo spiega il concetto e dimostra i notevoli risultati, i commenti menzionano molto di più la musica (mi sono perso per ore nei commenti e nei siti a cui erano collegati). Ci sono alcuni dettagli più specifici e ulteriori letture su Wikipedia .

Le catene di Markov hanno un elemento di probabilità per loro, quindi è qui che puoi combinarle con la programmazione evolutiva - evolvendo un metodo di scelta di alternative diverso dal lancio di un dado.

È in corso una ricerca sull'utilizzo di Automi cellulari per generare musica. Come per tutte le altre generazioni musicali, si tratta davvero di mappare piuttosto che di generazione. Puoi usare praticamente qualsiasi cosa come input purché tu definisca la tua mappatura in modo che suoni "bene". (beh, credo che interessante sia una parola migliore).

Googling " automi cellulari " dà parecchi successi. Un'altra buona fonte di informazioni è il Computer Music Journal se puoi accedere ai loro archivi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top