I have given a look to the code and perhaps the man page is old. `mdelay' writes the midi status byte in an internal buffer only when status = 144 (note on) or status = 128 (note off) and sends a midi note message after the delay (when the read value of the buffer is non-zero, so 144 or 128). Here is a variation of mdelay.csd -odac -iadc -d -M0 -Q1 sr = 44100 ksmps = 10 nchnls = 2 massign 0, 1 instr 1 kstatus, kchan, keynum, kvel midiin idel1 = .2 idel2 = .4 idel3 = .6 idel4 = .8 if (kstatus == 128 || kstatus == 144) then midiout kstatus, kchan, keynum, kvel endif mdelay kstatus, kchan, keynum+2, kvel, idel1 mdelay kstatus, kchan, keynum+4, kvel, idel2 mdelay kstatus, kchan, keynum+6, kvel, idel3 mdelay kstatus, kchan, keynum+8, kvel, idel4 endin i1 0 36000 tito