loscil3 — Lit un son échantillonné depuis une table avec interpolation cubique.
Lit un son échantillonné (mono ou stéréo) depuis une table, avec des boucles facultatives d'entretien et de relâchement, et interpolation cubique. Une version donnant la position exacte dans la table (phase) correspondant à l'échantillon en sortie est fournie comme opcode alternatif.
ar1 [,ar2] loscil3 xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \
[, imod2] [, ibeg2] [, iend2]
aph, ar1 [,ar2] loscil3phs xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1] \
[, imod2] [, ibeg2] [, iend2]
ifn -- numéro de table de fonction, contenant typiquement un son échantillonné avec des points de boucle précisés, remplie au moyen de GEN01. Le fichier source peut être mono ou stéréo.
ibas (facultatif) -- fréquence de base en Hz du son enregistré. Elle remplace éventuellement la fréquence donnée dans le fichier audio, mais devient nécessaire si le fichier n'en contient pas. La valeur par défaut est 261,626 Hz, c-à-d le do médian. (Nouveau dans Csound 4.03). Si la valeur est inconnue ou absente il faut utiliser 1 ici et dans kcps.
imod1, imod2 (facultatif, -1 par défaut) -- modes d'interprétation des boucles d'entretien et de relâchement. Une valeur de 1 signifie une boucle normale, 2 signifie une boucle à l'endroit et à l'envers, 0 signifie pas de boucle. La valeur par défaut (-1) s'en remet au mode et aux points de boucle définis dans le fichier source. Il faut s'assurer de choisir un mode approprié si le fichier ne contient pas cette information.
ibeg1, iend1, ibeg2, iend2 (facultatifs, dépendants de mod1, mod2) -- début et fin des boucles d'entretien et de relâchement. Ils sont mesurés en trames d'échantillon (un groupe d'échantillons à la même date, un par canal. En mono, 1 trame = 1 échantillon. En stéréo, 1 trame = 2 échantillons, etc.) depuis le début du fichier, et auront ainsi la même valeur que le son soit mono ou stéréo. Si aucun point de boucle n'est spécifié et qu'un mode de boucle est donné (imod1, imod2, le fichier sera lu en boucle sur toute sa longueur.
aph -- la position normalisée dans la table correspondant à l'échantillon en sortie (seulement pour loscilphs3).
ar1, ar2 -- la sortie de taux audio. Il n'y a que ar1 pour une sortie mono, alors qu'il y a ar1 et ar2 pour une sortie stéréo.
xamp -- l'amplitude du signal de sortie.
kcps -- la fréquence du signal de sortie en Hz.
loscil3 est identique à loscil sauf qu'il utilise l'interpolation cubique. Nouveau dans la version 3.50 de Csound.
Note pour les utilisateurs de Windows | |
---|---|
Les utilisateurs de Windows utilisent normalement l'antislash, « \ », lorsqu'ils écrivent les chemins de leurs fichiers. Par exemple, un utilisateur de Windows pourra utiliser le chemin « c:\music\samples\loop001.wav ». Ceci pose problème car les l'antislash est normalement utilisé pour spécifier des caractères spéciaux. Pour écrire correctement ce chemin dans Csound, on peut :
|
Note | |
---|---|
Voici loscil3 en mono :
a1 loscil3 10000, 1, 1, 1, 1
... et loscil3 en stéréo :
a1, a2 loscil3 10000, 1, 1, 1, 1
|
Voici un exemple de l'opcode loscil3. Il utilise les fichiers loscil3.csd, drumsMlp.wav et drumsSlp.wav.
Exemple 538. Exemple de l'opcode loscil3.
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 loscil3.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; by Menno Knevel 2022 sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ; loscil makes use of embedded loop points in wav ichnls = ftchnls(p4) prints "\nnumber of channels = %d\n\n", ichnls if (ichnls == 1) then asigL loscil3 .8, 1, p4, 1 ; sample loops between 1 and end loop point at 2 secs. asigR = asigL elseif (ichnls == 2) then asigL, asigR loscil3 .8, 1, p4, 1 ; sample loops between 2 and end loop point at 3 secs. else ; safety precaution if not mono or stereo asigL = 0 asigR = 0 endif outs asigL, asigR endin </CsInstruments> <CsScore> f 1 0 0 1 "drumsMlp.wav" 0 0 0 f 2 0 0 1 "drumsSlp.wav" 0 0 0 i 1 0 7 1 ;mono file i 1 7 12 2 ;stereo file e </CsScore> </CsoundSynthesizer>