loscil3
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## loscil3

loscil3 — Lit un son échantillonné depuis une table avec interpolation cubique.

## Description

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.

## Syntaxe

    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]

## Initialisation

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.

## Exécution

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 : Soit utiliser le slash : c:/music/samples/loop001.wav Soit utiliser le caractère spécial d'antislash, « \\ »: c:\\music\\samples\\loop001.wav

| 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

## Exemples

Voici un exemple de l'opcode loscil3. Il utilise les fichiers loscil3.csd, mary.wav et kickroll.wav.

Exemple 528. 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>

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

    instr 1

    ichnls = ftchnls(p4)
    print ichnls

    if (ichnls == 1) then
       asigL loscil3 .8, 1, p4, 1
       asigR = 	asigL
    elseif (ichnls == 2) then
       asigL, asigR loscil3 .8, 1, p4, 1
    ;safety precaution if not mono or stereo
    else
       asigL = 0
       asigR = 0
    endif
            outs asigL, asigR

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 0 1 "mary.wav" 0 0 0
    f 2 0 0 1 "kickroll.wav" 0 0 0

    i 1 0 3 1 ;mono file
    i 1 + 2 2 ;stereo file
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

loscil et GEN01

## Crédits

La note au sujet de la différence mono/stéréo est due à Rasmus Ekman.

Précédent | Niveau supérieur | Suivant
loscil | Sommaire | loscilx