ctrl7
Prev | Orchestra Opcodes and Operators | Next

## ctrl7

ctrl7 — Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.

## Description

Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.

## Syntax

    idest ctrl7 ichan, ictlno, imin, imax [, ifn]

    kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn]

    adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]

## Initialization

idest -- output signal

ichan -- MIDI channel (1-16)

ictlno -- MIDI controller number (0-127)

imin -- user-defined minimum floating-point value of output

imax -- user-defined maximum floating-point value of output

ifn (optional) -- table to be read when indexing is required. Table must be normalized. Output is scaled according to imax and imin val.

icutoff (optional) -- low pass filter cut-off frequency for smoothing a-rate output.

## Performance

kdest, adest -- output signal

kmin -- user-defined minimum floating-point value of output

kmax -- user-defined maximum floating-point value of output

ctrl7 (i- and k-rate 7 bit MIDI control) allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range. It also allows optional non-interpolated table indexing. Minimum and maximum values can be varied at k-rate.

ctrl7 differs from midic7 because it can be included in score-oriented instruments without Csound crashes. It also needs the additional parameter ichan containing the MIDI channel of the controller.

The a-rate version of ctrl7 outputs an a-rate variable, which is low-pass filtered (smoothed). It contains an optional icutoff parameter, to set the cutoff frecuency for the low-pass filter. The default is 5.

## Examples

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

Example 194. Example of the ctrl7 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
    -odac   -M0  ;;;RT audio I/O with MIDI in
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs = 1

    instr 1	; expects MIDI controller input on channel 1
    ; run and move your midi controller to see result

    imax = 1
    imin = 0
    ichan = 1
    ictlno = 7

    	initc7	1, 7, 1			; start at max. volume
    kamp	ctrl7	ichan, ictlno, imin, imax	; controller 7
    	printk2	kamp
    asig	oscil	kamp, 220, 1
    	outs	asig, asig

    endin

    </CsInstruments>
    <CsScore>
    f 1 0 4096 10 1

    i1 0 20

    e
    </CsScore>
    </CsoundSynthesizer>

| Note
ctrl7 only outputs k values once the controller is first moved. To set an initial k-value, a call to initc7 is required. Ctrlinit does not work for this purpose.

## See also

MIDI input and Initialization

## Credits

Author: Gabriel Maldonado
Italy

New in Csound version 3.47

Thanks goes to Rasmus Ekman for pointing out the correct MIDI channel and controller number ranges.

The a-rate version of ctrl7 was added in version 5.06

Prev | Up | Next
ctrl21 | Home | ctrlinit