advertisement

Perl, musica automagica

100 %
0 %
advertisement
Information about Perl, musica automagica

Published on August 31, 2007

Author: larsen

Source: slideshare.net

Description

An algorithmic approach to music generation
advertisement

Perl Musica Automagica!

Andrew Plotkin

Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura ché la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura! Tant'è amara che poco è più morte; ma per trattar del ben ch'i' vi trovai, dirò de l'altre cose ch'i' v'ho scorte. Io non so ben ridir com'i' v'intrai, tant'era pien di sonno a quel punto

Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura ché la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura! Tant'è amara che poco è più morte; ma per trattar del ben ch'i' vi trovai, dirò de l'altre cose ch'i' v'ho scorte. Io non so ben ridir com'i' v'intrai, tant'era pien di sonno a quel punto

Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura ché la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura! Tant'è amara che poco è più morte; ma per trattar del ben ch'i' vi trovai, dirò de l'altre cose ch'i' v'ho scorte. Io non so ben ridir com'i' v'intrai, tant'era pien di sonno a quel punto

while( @notes ) { if( scalar @notes >= $tuple_size + 1 ) { my $key = join ' ', @notes[0 .. $tuple_size-1]; push @{ $tuples{ $key } } , $notes[$tuple_size]; } shift @notes; }

Markov Chain di grado N

Algorithm:: MarkovChain

$chain->seed( symbols => @notes , longest => $tuple_size )

MIDI / MIDI::Simple • read, compose, modify, and write MIDI files • Sean Burke++

while( $n-- ) { my @tuple = @{ $tuples{ $k } }; my $last = $tuple[ int rand scalar @tuple ]; n( $last, $tempo[ rand scalar @tempo ], 'f' ); my @next_tuple = split / /, $k; shift @next_tuple; push @next_tuple, $last; if (defined $tuples{ join ' ', @next_tuple }) { $k = join ' ', @next_tuple; ++$hit; } else { $k = ( keys %tuples )[ int rand $l ]; ++$miss; } }

hobbes:~/Desktop larsen$ perl mozart.pl -f peaches.mid -t 6 -s 4 -n 100 Fetching info from MIDI file... # Type Track Name Instrument 1 MTrk 2 MTrk Peaches en Regalia original 3 MTrk Drums Drums 4 MTrk Saxes Saxes 5 MTrk Brass Brass 6 MTrk Bass Bass 7 MTrk Piano Piano 8 MTrk Synth Synth 9 MTrk Clarinet Clarinet 10 MTrk Guitar Guitar 11 MTrk M-Playback*recorded M-Playback

Fetching track 6... I've learnt 376 tuples... Average number of buckets per key: 1.90159574468085... 1. '38 41 29 34' => 35 2. '43 35 35 42' => 47 3. '41 42 43 46' => 38 38 4. '40 35 42 47' => 42 42 42 42 42 42 5. '46 38 39 40' => 41 6. '40 42 40 40' => 35 47 35 35 35 35 35 7. '42 40 37 36' => 40 40 40 40 40 40 40 40 8. '54 52 49 42' => 49 9. '42 47 42 35' => 35 35 35 35 35 35 35 35 10. '40 42 40 43' => 43 11. '46 33 33 33' => 45 12. '45 51 52 45' => 44 13. '48 40 40 44' => 32 14. '53 41 41 41' => 43

Demo

I am quite struck by them.. from listening to them you can tell they are meant to have musical structure, and they sound like they are intentionally musical, but they contain no coherent musical quot;thoughtquot;

“Peaches en regalia”

“Frame by frame”

“Epitaph”

MIDI MIDI::Simple Algorithm::MarkovChain Getopt::*

http://larsen.perlmonk.org/perl/mozart.html

Add a comment

Related pages

Perl, musica automagica - Technology

Download Perl, musica automagica. Transcript. 1. ... ~/Desktop larsen$ perl mozart.pl -f peaches.mid -t 6 -s 4 -n 100 Fetching info from MIDI file ...
Read more

perl script to pictures - Art & Photos

Perl, musica automagica An algorithmic approach to music generation WebServices in Perl DEV DEVeloping Software Solutions — n. 127 — marzo ...
Read more

Perl, musica automagica - HubSlide

Transcripts - Perl, musica automagica. 1. Perl Musica Automagica! 2. Andrew Plotkin
Read more

Dando los primeros pasos con Gentoo - linuxito.com

Renombrar múltiples archivos + documentación perl; Diagnosticar switches Cisco; Cómo crear tu propia autoridad certificante ...
Read more

Nosotros, los programadores | En borrador permanente

Ahora caigo. Si el tipo hizo Perl, ahora veo cómo pudo ganar el IOCCC. ¡Es lógico! http://siempredesdeaca.blogspot.com/ Chiquito. Buen post, yo ...
Read more

La historia de Python: Historia Personal – parte 2, CNRI y ...

GNU mailman también nació aquí: originalmente usábamos una herramienta escrita en Perl llamada Majordomo, ...
Read more