ctrl7 — Allows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.
idest ctrl7 ichan, ictlno, imin, imax [, ifn]
kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn]
adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]
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.
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.
Here is an example of the ctrl7 opcode. Play 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. |