mdelay
Prev | Orchestra Opcodes and Operators | Next

## 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 288. 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

Prev | Up | Next
mclock | Home | metro