@aeva Here's the C++ mini sequencer I've been using, if you want to see how easy this is:

github.com/mcclure/lovr/blob/Z

Songs look like

(P t--3 0 p8x p13x p0x p8x p13x)
(R t--2 0 t--3 p0 x p8 x p13 x)
R P -2 R P +4 R P -2

(Numbers are notes, uppercase letters are function definitions or calls, lowercase numbers are control codes)

413 lines of code (and it was only 70 lines of code in the original version; adding polyphony and hooks for GUI integration made it more complicated)