jspline — Un générateur de spline avec gigue.
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.
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>