#!/usr/bin/bash

function nota {
	seq $1 | while read A; do
		echo -n "$M "
		echo "A Am B Bm C Cm D Dm E Em F Fm G Gm" |  sed 's/\ /\n/g' | sort -R | head -n1
	done
}
function lista {
	seq $2 1 $3 | while read M; do
		echo -n "$M "
		echo "$1" |  sed 's/\ /\n/g' | sort -R | head -n1
	done
}

function siglas {
	echo "mf mp ff p" |  sed 's/\ /\n/g' | sort -R | head -n1
}

while [ 1 ]; do

GENERO=$(echo "hiphop Rave TRIP0$[ $RANDOM % 4 ] Swing FUS0$[ $RANDOM % 8 ] HIP$[ $RANDOM % 2 ]$[ $RANDOM % 9 ] teamtechno TECH0$[ $RANDOM % 9 ] PUNK0$[ $RANDOM % 2] Trance$[ $RANDOM % 2 ] BigBand HipHopSusPlus1 HipHopSusPlus2 08Beat0$[ $RANDOM % 9 ] 16Beat0$[ $RANDOM % 9 ]" | sed 's/\ /\n/g' | sort -R | head -n1)

NOTAS=$(nota $[ $RANDOM % 10 + 3 ])
N1=$(nota 1)

echo $NOTAS $GENERO $N1

echo "Tempo $[ $RANDOM % 80 + 120 ]
Groove $GENERO
Repeat
Volume $(siglas)" > /tmp/a

N=$[ $RANDOM % 20 ]

lista "$NOTAS"  1 $N >> /tmp/a

[ "$[ $RANDOM % 2 ]" == "1" ] && echo "Decresc $(siglas) $(siglas) $[ $RANDOM % 9 + 1 ]"  >> /tmp/a
W=$[ $RANDOM % 20 + $N ]

lista "$NOTAS"  $N $W >> /tmp/a

echo "RepeatEnding
$((W+1))     $N1  /  / z
RepeatEnd
$((W+2))     $N1  /  / z!
cut -$[ $RANDOM % 3 + 1 ] " >> /tmp/a
	#convierte a midi
	mma /tmp/a && \
	timidity /tmp/a.mid  -OF -o - | play  -q -  flanger 0 2 20 100 6 sin 25 lin chorus 0.7 0.9 55 0.4 0.25 2 -t
	# reproduce midi
done
