bpf

bpf — Fonction à points charnière avec interpolation linéaire.

Description

Fonction à points charnière avec interpolation linéaire. Utile lorsque la définition d'une table avec GEN27 et la mise à l'échelle de la valeur consommerait trop de ressoures.

Syntaxe

ky bpf kx, kx1, ky1, kx2, ..., kxn, kyn

Exécution

kx -- Valeur d'entrée.

kxn, kyn -- Définit un point charnière. Peut changer au taux-k, mais tous les kxs doivent être ordonnés.

Les points (kx1, ky1), (kx2, ky2), etc, définissent une fonction interpolée linéairement. Cette fonction est évaluée au point kx. Cette fonction s'étend à la fois ver -inf et +inf, si bien que si kx < kx1 alors ky = ky1 et pareillement à l'autre extrémité.

Les lignes suivantes sont équivalentes :

      ky bpf kx, 0, 0, 0.5, 10, 1.02, 200

      itab ftgenonce 0, 0, -27, 0, 0, 50, 10, 102, 200
      ky = tablei(limit(kx, 0, 1.02)*100, itab)
    
[Note] Note

Les valeurs x doivent être ordonnées. Les valeurs x et y peuvent changer mais les valeurs x doivent rester ordonnées.

Exemples

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

Exemple 95. Exemple de l'opcode bpf.

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

ksmps = 128
nchnls = 2

instr 1
  kx line -1, p3, 2.5
  
  ky bpf kx,        \
         0,    0,   \
         1.01, 10,  \
         2,    0.5, \
         2.5,  -1

  ; the same expressed as a table (notice that we need to scale and
  ; limit kx). It gets even more complicated with breakpoints with
  ; negative x
  itab ftgenonce 0, 0, 1000, -27,  \
         0, 0,    \  
       101, 10,   \
       200, 0.5,  \
       250, -1,   \
      1000, -1

  ky2 tablei limit(kx, 0, 2.5)*100, itab

  printks "kx: %f   ky: %f   ky2: %f \n", 1/kr, kx, ky, ky2

endin

</CsInstruments>
<CsScore>
i 1 0 2

</CsScore>
</CsoundSynthesizer>


Voir aussi

scale, ntrpol, xyscale, linlin

Crédits

Par : Eduardo Moguillansky 2017