;; int -> int -> int (define midi-combine-bytes (lambda (p q) (fxxor p (fxarithmetic-shift-left q 7)))) ;; int -> [int, int] (define midi-uncombine-value (lambda (n) (list (fxand #x7f n) (fxand #xff (fxarithmetic-shift-right n 7))))) ;; int -> int -> int (define midi-status-byte-construct (lambda (major minor) (fxxor major minor))) ;; int -> int (define midi-status-minor (lambda (n) (fxand n #x0f))) ;; int -> int (define midi-status-major (lambda (n) (fxand n #xf0))) ;; int -> int -> bool (define midi-status-check (lambda (type data) (= (fxand type data) type)))