"sone" — Génère une table contenant des valeurs de sonie.
size -- nombre de points dans la table. Doit être une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f).
start, end -- la première et la dernière valeur à mémoriser. Les points mis en mémoire sont répartis uniformément entre ces deux valeurs sur la longueur de la table.
equalpoint -- le point de la courbe où les valeurs d'entrée et de sortie sont égales.
rescale -- s'il est différent de zéro, la table n'est pas normalisée.
la table est remplie par la fonction x*POWER(x/equalpoint, FL(33.0)/FL(78.0)) pour x compris entre les points start et end. C'est la courbe d'intensité en sone.
Voici un exemple simple de la routine GENsone. Il utilise le fichier gensone.csd. Il génère une forme simple de sonie.
Exemple 947. Un exemple simple de la routine GENsone.
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 ; Audio out Audio in -odac -iadc ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o linseg.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1 Simple oscillator with loudness correction. instr 1 ; p4 = frequency in pitch-class notation. kcps = cpspch(p4) ; Create an amplitude envelope. kenv linseg 0, p3*0.25, 1, p3*0.75, 0 kamp tablei 16384*kenv, 2 a1 oscil 30000*kamp, kcps, 1 out a1 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 f 2 0 16384 "sone" 1 32000 32000 0 ; Play Instrument #1 for a half-second, p4=8.00 i 1 0 0.5 8.00 ; Play Instrument #1 for a half-second, p4=8.01 i 1 1 0.5 8.01 ; Play Instrument #1 for a half-second, p4=8.02 i 1 2 0.5 8.02 ; Play Instrument #1 for a half-second, p4=8.03 i 1 3 0.5 8.03 e </CsScore> </CsoundSynthesizer>