fixed bpm and made sizes depend on canvas
merged abduls code