jspline

jspline — Un générateur de spline avec gigue.

Description

Un générateur de spline avec gigue.

Syntaxe

ares jspline xamp, kcpsMin, kcpsMax
kres jspline kamp, kcpsMin, kcpsMax

Exécution

kres, ares -- Signal de sortie.

xamp -- Facteur d'amplitude.

kcpsMin, kcpsMax -- Intervalle de définition du taux de génération des points. Les limites minimale et maximale sont exprimées en Hz.

jspline (générateur de spline avec gigue) génère une courbe lisse basée sur des points aléatoires engendrés au taux [cpsMin, cpsMax]. Cet opcode est semblable à randomi ou à randi ou à jitter, toutefois les segments ne sont pas des lignes droites, mais des courbes splines cubiques. Les valeurs de sortie sont approximativement comprises entre -xamp et xamp. Dans la réalité, l'intervalle peut être un peu plus grand, à cause des courbes d'interpolation entre chaque paire de points aléatoires.

Actuellement les courbes générées sont assez lisses quand cspMin n'est pas trop différent de cpsMax. Quand l'intervalle cpsMin-cpsMax est grand, quelques petites discontinuités peuvent se produire, mais, dans la plupart des cas, cela ne devrait pas poser de problème. L'algorithme sera peut-être amélioré dans les prochaines versions.

Ces opcodes sont souvent meilleurs que jitter lorsque l'on veut un rendu « naturel » ou « analogique » de sons numériques. On peut aussi les utiliser dans la composition algorithmique, pour générer des lignes mélodiques aléatoires lisses lors d'une utilisation conjointe avec l'opcode samphold.

Noter que le résultat est assez différent de celui que l'on obtiendrait en filtrant un bruit blanc, et que l'on peut ainsi obtenir un contrôle bien plus précis.

Exemples

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

Exemple 490. Exemple de l'opcode jspline.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o jspline.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1

kamp    init p4
kcpsmin init 2
kcpsmax init 20

ksp  jspline kamp, kcpsmin, kcpsmax
aout pluck 1, 200+ksp, 1000, 0, 1
aout dcblock aout	;remove DC
     outs aout, aout

endin
</CsInstruments>
<CsScore>

i 1 0 10 2	;a bit jitter
i 1 8 10 10	;some more
i 1 16 10 20	;lots more
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Gabriel Maldonado

Nouveau dans la Version 4.15