much improved midi parsing and easier callbacks