lincos

lincos — Interpolation linéaire vers cosinus.

Description

Opcode de greffon dans emugens.

Distribue un intervalle de valeurs linéaires vers un intervalle de valeurs cosinus (transitions douces). Ne supporte pour le moment que les scalaires, de taux-i ou -k (pas de tableaux).

Syntaxe

ky lincos kx, ky0, ky1 [, kx0, kx1 ]
iy lincos ix, iy0, iy1 [, ix0, ix1 ]

Exécution

kx -- Signal en entrée.

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

ky1 -- Limite supérieure de l'intervalle en sortie.

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

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

dx = ((x-x0) / (x1-x0)) * PI + PI
y  = y0 + ((y1 - y0) * (1 + cos(dx)) / 2.0);
      

Exemples

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

Exemple 475. Exemple de l'opcode lincos.

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

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

; Example file for lincos.csd

/*
  lincos

  similar to cosseg, but with an explicit input for time
  lincos can be used ease-in / out any linear ramp

  ky  lincos kx, ky0, ky1, kx0=0, kx1=1
  iy  lincos ix, iy0, iy1, ix0=0, ix1=1

*/


seed 0

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

instr 2
  ; lincos can be used to create amplitude or pitch envelopes
  ktrig init 0
  krnd dust 1, 1
  ktrig = lineto(sc_trig(krnd & ~ktrig, 0.5), 1)
  kpitch = lincos:k(ktrig, 60, 61)
  a0 oscili 0.7, mtof(kpitch)

  kfade  lincos linsegr(0, 1.5, 1, 1.5, 0), 0, 1
  kcresc lincos ktrig, 0.25, 1
  outch 1, a0 * interp(kfade * kcresc)
endin

</CsInstruments>
<CsScore>

i 1 0 0.2
i 2 0 20

</CsScore>
</CsoundSynthesizer>


Voir aussi

linlin, cosseg, scale, ntrpol, bpf

Crédits

Auteur : Eduardo Moguillansky 2018

Nouveau greffon dans la version 6.12