(define-macro (mplay . args)
(if (symbol? (car args))
`(play-midi-note (*metro* beat) ,(car args)
(real->integer ,(cadr args))
(real->integer ,(caddr args))
(*metro* 'dur ,(car (cdddr args))) 0)
`(play-midi-note (*metro* (+ beat ,(car args))) ,(cadr args)
(real->integer ,(caddr args))
(real->integer ,(car (cdddr args)))
(*metro* 'dur ,(cadr (cdddr args))) 0)))