Apenas uma idéia que tive no outro dia: Fazer batidas seguindo uma cadeia de Markov de sons predefinidos.
Lembro que alguém fez um beatbox com o Google Translate e o idioma alemão (siga o link e pressione Ouvir).
Portanto, o desafio é criar uma entrada de texto para o Google Translate a partir de uma determinada cadeia. Ou você pode usar notas musicais e tocar você mesmo :).
Você pode fazer um programa lendo uma linha com o número de batimentos, outro com seus nomes e uma representação matricial das probabilidades (você pode escolher a representação).
Você também pode fazer uma função com esses três argumentos.
Por exemplo
[entrada]
20
pv zk bschk kkkk
[[.1, .4, .5, 0.],
[.3, .2, .3, .2],
[0., .3, .2, .5],
[.1, .8, .1, 0.]]
[output] algo como:
pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk
A probabilidade inicial é a mesma para cada batida.
Esse não é um desafio do código-golfe, porque eu gostaria de ver algumas soluções legais (seja criativo).
Pontos extras se você inventar novas batidas e / ou escolher uma tabela de probabilidades que ofereça batidas agradáveis a maior parte do tempo.
Se quiser, você pode usar ritmos reais (em muitas línguas é fácil abrir .wav
arquivos, como o wave
módulo em Python) e gerar música! Aqui estão algumas batidas de amostra grátis.
Posso postar uma implementação de referência, se necessário.