mdelay

mdelay — A MIDI delay opcode.

Description

A MIDI delay opcode.

Syntax

mdelay kstatus, kchan, kd1, kd2, kdelay

Performance

kstatus -- status byte of MIDI message to be delayed

kchan -- MIDI channel (1-16)

kd1 -- first MIDI data byte

kd2 -- second MIDI data byte

kdelay -- delay time in seconds

Each time that kstatus is other than zero, mdelay outputs a MIDI message to the MIDI out port after kdelay seconds. This opcode is useful in implementing MIDI delays. Several instances of mdelay can be present in the same instrument with different argument values, so complex and colorful MIDI echoes can be implemented. Further, the delay time can be changed at k-rate.

Examples

Here is an example of the mdelay opcode. It uses the file mdelay.csd.

Example 465. Example of the mdelay opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in    No messages
-odac           -iadc     -d         -M0  -Q1;;;RT audio I/O with MIDI in
</CsOptions>
<CsInstruments>

sr = 44100
kr = 4410
ksmps = 10
nchnls = 2

; Example by Giorgio Zucco 2007

instr 1  ;Triggered by MIDI notes on channel 1

  kstatus init 0
  ifund   notnum 	 
  ivel 	veloc 

  noteondur  1, ifund, ivel, 1

  kstatus = kstatus + 1 

  idel1 = .2
  idel2 = .4
  idel3 = .6
  idel4 = .8

  ;make four delay lines

  mdelay 	kstatus,1,ifund+2, ivel,idel1
  mdelay 	kstatus,1,ifund+4, ivel,idel2
  mdelay 	kstatus,1,ifund+6, ivel,idel3
  mdelay 	kstatus,1,ifund+8, ivel,idel4

endin

</CsInstruments>
<CsScore>
; Dummy ftable
f 0 60
</CsScore>
</CsoundSynthesizer>


Credits

Author: Gabriel Maldonado
Italy
November 1998

New in Csound version 3.492