Solo un'idea che ho avuto l'altro giorno: fare ritmi seguendo una catena di Markov di suoni predefiniti.
Ricordo che qualcuno ha fatto un beatbox con Google Translate e la lingua tedesca (segui il link e premi ascolta).
Quindi, la sfida è costruire un input di testo su Google Translate da una determinata catena. Oppure puoi usare le note musicali e suonarlo da solo :).
Puoi creare un programma leggendo una riga con il numero di battute, un'altra con i loro nomi e una rappresentazione a matrice delle probabilità (puoi scegliere la rappresentazione).
Puoi anche fare una funzione con questi tre argomenti.
Per esempio
[ingresso]
20
pv zk bschk kkkk
[[.1, .4, .5, 0.],
[.3, .2, .3, .2],
[0., .3, .2, .5],
[.1, .8, .1, 0.]]
[output] qualcosa del tipo:
pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk
La probabilità iniziale è la stessa per ogni battito.
Questa non è una sfida di code-golf perché vorrei vedere alcune belle soluzioni (sii creativo).
Punti extra se inventi nuovi ritmi e / o scegli una tabella di probabilità che ti dà dei bei ritmi il più delle volte.
Se vuoi, puoi usare ritmi reali (in molte lingue è facile aprire .wav
file, come il wave
modulo in Python) e generare musica! Qui alcuni ritmi campione gratuiti.
Posso pubblicare un'implementazione di riferimento se necessario.