midic14
Prev | Orchestra Opcodes and Operators | Next

## midic14

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

## Description

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

## Syntax

    idest midic14 ictlno1, ictlno2, imin, imax [, ifn]

    kdest midic14 ictlno1, ictlno2, kmin, kmax [, ifn]

## Initialization

idest -- output signal

ictln1o -- most-significant byte controller number (0-127)

ictlno2 -- least-significant byte 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 imin and imax values.

## Performance

kdest -- output signal

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

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

midic14 (i- and k-rate 14 bit MIDI control) allows a floating-point 14-bit MIDI signal scaled with a minimum and a maximum range. The minimum and maximum values can be varied at k-rate. It can use optional interpolated table indexing. It requires two MIDI controllers as input.

| Note
Please note that the midic family of opcodes are designed for MIDI triggered events, and do not require a channel number since they will respond to the same channel as the one that triggered the instrument (see massign). However they will crash if called from a score driven event.

## Examples

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

Example 587. Example of the midic14 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 --midi-key-cps=4 --midi-velocity-amp=5   ;;;realtime audio out and realtime midi in, midi key cps is routed to p4 and velocity to p5
    ; For Non-realtime ouput leave only the line below:
    ; -o midic14.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; by tgrey - 2020

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

    instr 1
    	; This example expects MIDI controller input on channel 1
    	; run, play a note and move your midi controllers 1 and 7 to see results
    	ictlno1= 1 	; = cc #1 midi mod wheel (course tuning)
    	ictlno2= 7 	; = cc #7 midi volume (fine tuning)

    	; max range is 3 octaves: (2^3) = 8
    	imax  = 8

    	; read both controllers, scaling them between 1 and imax
    	kTune midic14 ictlno1, ictlno2, 1, imax
    	printk2	kTune

    	; generate tones
    	asig oscili p5, p4*kTune
    	aref oscili p5, p4

    	; combine detuned tone and reference tone
    	; creates a beat effect from the detune
    	asig=(asig+aref)*.5

    	outs asig, asig
    endin
    </CsInstruments>
    <CsScore>
    ; run for 60 seconds
    f0 60
    e
    </CsScore>
    </CsoundSynthesizer>

## See Also

ctrl7, ctrl14, ctrl21, initc7, initc14, initc21, midic7, midic21

## Credits

Author: Gabriel Maldonado
Italy

New in Csound version 3.47

Thanks goes to Rasmus Ekman for pointing out the correct controller number range.

Prev | Up | Next
midiarp | Home | midic21