linlin
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## linlin

linlin — Correspondance linéaire.

## Description

Opcode du greffon emugens.

Envoie un intervalle linéaires de valeurs vers un autre intervalle linéaire. Supporte les scalaires ainsi que les tableaux, aux taux-i et -k.

## Syntaxe

    ky linlin kx, ky0, ky1 [, kx0, kx1 ]

    iy linlin ix, iy0, iy1 [, ix0, ix1 ]

    kys[] linlin kxs[], ky0, ky1 [, kx0, kx1 ]

    iys[] linlin ixs[], ky0, ky1, [ kx0, kx1 ]

    kC[] linlin kx, kA[], kB[] [, kx0, kx1 ]

## Exécution

kx -- Signal en entrée.

kx0 -- Limite inférieure de l'intervalle d'entrée. 0 par défaut.

kx1 -- Limite supérieure de l'intervalle d'entrée. 1 par défaut.

ky0 -- Limite inférieure de l'intervalle de sortie.

ky1 -- imite supérieure de l'intervalle de sortie.

    y = (x - x0) / (x1 - x0) * (y1 - y0) + y0

## Exemples

Voici un exemple de l'opcode linlin. Il utilise le fichier linlin.csd.

Exemple 499. Exemple de l'opcode linlin.

    <CsoundSynthesizer>
    <CsOptions>
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 128
    nchnls = 2
    0dbfs = 1.0

    ; Example file for linlin.csd

    /*

    linlin

    linear to linear interpolation between two ranges

    ky    linlin kx, ky0, ky1, kx0=0, kx1=1
    kys[] linlin kxs[], ky0, ky1, kx0=0, kx1=1
    iys[] linlin ixs[], iy0, iy1, ix0=0, ix1=1

    linlin can be also used to blend between two arrays:

    kC[]  linlin kx, kA[], kB[], kx0=0, kx1=1

    if kx==0.5, kC[] will hold the avg of kA[] and kB[] for each value
    (assumes that kA[] and kB[] are arrays of the same size)

    */

    ; Map a value within the range 1-3 to the range 0-10.
    instr 1
      kx line 1, p3, 3
      ky linlin kx, 0, 10, 1, 3
      printks "kx: %f   ky: %f \n", 1/kr, kx, ky
    endin

    ; Map an array of values
    instr 2
      kX[] fillarray 0, 0.5, 1, 1.5, 2
      trim kX, 4
      kY[] linlin kX, 0, 10, 0, 2
      printarray kY
      turnoff
    endin

    ; Blend between two arrays
    instr 3
      kA[] fillarray 0, 1, 2, 3, 4, 5
      kB[] fillarray 0, 2, 4, 6, 8, 10
      kx line 0, p3, 1
      kC[] linlin kx, kA, kB
      printarray kC, -1, "", "blend"
    endin

    </CsInstruments>
    <CsScore>
    ; i 1 0   0.2
    i 2 0.5 0.2
    ; i 3 1 0.5

    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

lincos, bpf bpfcos scale, ntrpol,

## Crédits

Par : Eduardo Moguillansky 2017

Nouveau greffon dans la version 6.11

Précédent | Niveau supérieur | Suivant
lineto | Sommaire | lincos