fixed semitones again (i was looking at a bad conversion chart). made overtone
line playing functions more versatile by letting one pass a callback
for how each midi note should be played, and defined two such callbacks for
convenience.
fixed some bugs. next steps need to be improving the speed of the random generation functions