loscilx

loscilx — Lit un son échantillonné multi-canaux depuis une table.

Description

Lit un son échantillonné (jusqu'à 16 canaux) depuis une table, avec avec bouclage d'entretien et de relâchement facultatif.

Syntaxe

ar1 [, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14, \
      ar15, ar16] loscilx xamp, kcps, ifn \
      [, iwsize, ibas, istrt, imod, ibeg, iend]
ar[] loscilx xamp, kcps, ifn \
      [, iwsize, ibas, istrt, imod, ibeg, iend]

Initialisation

ifn -- numéro de table de fonction, désignant typiquement un segment de son échantillonné avec prescription de points de bouclage au moyen de GEN01. Le fichier source peut avoir jusqu'à 16 canaux.

iwsize (facultatif) -- taille de la fenêtre utilisée dans l'interpolation. iwsize (facultatif, zéro par défaut) -- taille de la fenêtre d'interpolation en échantillons. Peut prendre une des valeurs suivantes :

  • 1 : arrondi à l'échantillon le plus proche (pas d'interpolation, pour kpitch=1)

  • 2 : interpolation linéaire

  • 4 : interpolation cubique

  • >=8 : iwsize interpolation sinc par point avec anti-repliement (lente)

Zéro ou des valeurs négatives sélectionnent l'action par défaut qui est l'interpolation cubique.

ibas (facultatif) -- fréquence de base en Hz du son enregistré. Permet de redéfinir la fréquence donnée dans le fichier audio, mais est requis si le fichier n'en contient pas. La valeur par défaut est 261.626 Hz, le do médian. (Nouveau dans Csound 4.03). Si la valeur est inconnue ou absente, utiliser 1 ici et dans kcps.

istrt (facultatif, 0 par défaut) -- Trame du début de la lecture des données. Si ce n'est pas un nombre entier, les données sont interpolées (voir iwsize).

imod (facultatif, -1 par défaut) -- mode de jeu des boucles d'entretien et de relâchement. 1 signifie un bouclage normal, 2 un bouclage à l'endroit et à l'envers, 0 pas de boucle. La valeur par défaut (-1) choisit le mode et les points de bouclage donnés dans le fichier source. Il ne faut pas oublier de choisir un mode approprié si le fichier ne contient pas cette information.

ibeg, iend (facultatif, dépendant d'imod) -- points de début et de fin des boucles d'entretien et de relâchement. Ils sont mesurés en trames d'échantillon depuis le début du fichier. Si aucun point de boucle n'est spécifié alors qu'un mode de bouclage (imod) est donné, le fichier sera bouclé sur toute sa longueur.

Exécution

ar1, ar2, ... ar[] -- la sortie au taux audio. Le nombre de sorties doit correspondre au nombres de canaux dans le fichier échantillonné.

xamp -- l'amplitude du signal de sortie.

kcps -- le facteur de lecture du fichier. Par exemple, une valeur de 1 ne provoque pas de transposition, 1.5 transpose d'une quinte vers le haut et 2 d'une octave.

loscilx échantillonne la ftable audio au taux déterminé par kcps, puis multiplie le résultat par xamp. L'incrément d'échantillonnage pour kcps dépend de la fréquence de la note de base de la table ibas, et est automatiquement ajusté si la valeur du sr de l'orchestre diffère de celle utilisée lors de l'enregistrement de la source. Dans cette unité la ftable est toujours échantillonnée avec interpolation.

Si l'échantillonnage atteint le point final de la boucle d'entretien et que le bouclage est actif, le point d'échantillonnage est modifié et loscil continue sa lecture depuis ce segment de boucle. Si l'instrument reçoit un signal turnoff (depuis la partition ou depuis un évènement MIDI noteoff), le prochain point final d'entretien est ignoré et l'échantilllonnage continue vers le point final de la boucle de relâchement ou vers le dernier échantillon (des valeurs nulles).

Si l'on veut boucler sur tout le fichier, spécifier un mode de bouclage dans imod et n'entrer aucune valeur dans ibeg et dans iend.

Exemples

Voici un exemple de l'opcode loscilx. Il utilise les fichiers loscil.csd et drumsSlp.wav.

Exemple 539. Exemple de l'opcode loscilx.

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 loscilx.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

;  by Istvan Varga 2006 and Menno Knevel 2022

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

gS_loop = "drumsSlp.wav"
gisr filesr gS_loop
gilength filelen gS_loop
gibeats = 16 
gi_sampleleft ftgen 1, 0, 0, 1, gS_loop, 0, 4, 0

instr 1
    idur = p3
    iamp = p4
    ibeat = p5
    itune = p6
    ipos = ibeat / gibeats * gilength * gisr

    aenv linseg iamp, idur - 0.01, iamp, 0.01, 0
    a1, a2 loscilx aenv, itune, 1, 0, 1, ipos, 0    ; in this case stereo file
    outs a1, a2
endin

</CsInstruments>
<CsScore>

t 0 170

; Measure 1
i 1 0.0 0.5 0.707 2 1
i 1 1.0 0.5 0.707 1 1
i 1 2.5 0.5 0.707 0 1
i 1 3.0 0.5 0.707 1 .8

; Measure 2
i 1 4.0 0.5 0.707 0 1
i 1 5.0 0.5 0.707 1 1
i 1 6.5 0.5 0.707 0 1
i 1 7.0 0.5 0.707 1 1

; Measure 3
i 1 8.0  0.5 0.707 0 1
i 1 9.0  0.5 0.707 1 1
i 1 10.5 0.5 0.707 0 1
i 1 11.0 0.5 0.707 1 1

; Measure 4
i 1 12.0 0.5 0.707 0 1
i 1 13.0 0.5 0.707 1 1
i 1 14.5 0.5 0.707 0 1
i 1 15.0 0.5 0.707 2 .8

</CsScore>
</CsoundSynthesizer>


Voir aussi

loscil

Crédits

Ecrit par Istvan Varga.

2006

Nouveau dans Csound 5.03

Nouvelle version avec tableau dans Csound 6.13 (Février 2019)