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
che la verace via abbandonai.
Ma poi ch'i' fui al piè d'un colle giunto,
là dove terminava quella valle15che m'avea di paura il cor compunto,
guardai in alto, e vidi le sue spalle
vestite già de' raggi del pianeta
che mena dritto altrui per ogne calle.
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
che la verace via abbandonai.
Ma poi ch'i' fui al piè d'un colle giunto,
là dove terminava quella valle15che m'avea di paura il cor compunto,
guardai in alto, e vidi le sue spalle
vestite già de' raggi del pianeta
che mena dritto altrui per ogne calle.
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
che la verace via abbandonai.
Ma poi ch'i' fui al piè d'un colle giunto,
là dove terminava quella valle15che m'avea di paura il cor compunto,
guardai in alto, e vidi le sue spalle
vestite già de' raggi del pianeta
che mena dritto altrui per ogne calle.
♫
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 Chaindi 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 3510. '40 42 40 43' => 4311. '46 33 33 33' => 4512. '45 51 52 45' => 4413. '48 40 40 44' => 3214. '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 "thought"
“Peaches en regalia”
“Frame by frame”
“Epitaph”
MIDIMIDI::SimpleAlgorithm::MarkovChainGetopt::*
どうもありがとう
http://larsen.perlmonk.org/perl/mozart.html
Top Related