powoftwo

powoftwo — Calcule une puissance de deux.

Description

Calcule une puissance de deux.

Syntaxe

powoftwo(x)  (argument au taux d'initialisation ou de contrôle seulement)

Exécution

La fonction powoftwo() retourne 2x et accepte comme argument des nombres positifs et négatifs. L'intervalle des valeurs autorisées dans powoftwo() va de -5 à +5 permettant une précision plus fine qu'un cent dans un intervalle de dix octaves. Pour un intervalle de valeurs plus grand, utiliser l'opcode plus lent pow.

Ces fonctions sont rapides, car elles lisent des valeurs stockées dans des tables. Elles sont très utiles lorsque l'on travaille avec des rapports de hauteurs. Elles travaillent au taux-i et au taux-k.

Exemples

Voici un exemple de l'opcode powoftwo. Il utilise le fichier powoftwo.csd.

Exemple 779. Exemple de l'opcode powoftwo.

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

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

instr 1	; bit reduction for Lo-Fi sound

iBits	  = p4						;bit depth
iQuantize = powoftwo(iBits)				;find number of discrete steps for this bit depth
iQuantize = iQuantize*0.5				;half the number of steps for each side of a bipolar signal
print	  iQuantize
asig	  soundin "fox.wav"
asig	  = round(asig * iQuantize) / iQuantize		;quantize audio signal (bit reduce)
	  outs asig, asig         

endin
</CsInstruments>
<CsScore>
;        bits
i1 0   3  16
i1 ^+3 .  12
i1 ^+3 .   8
i1 ^+3 .   4
i1 ^+3 .   2
i1 ^+3 .   1

e
</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

instr 1:  iQuantize = 32768.000
instr 1:  iQuantize = 2048.000
instr 1:  iQuantize = 128.000
instr 1:  iQuantize = 8.000
instr 1:  iQuantize = 2.000
instr 1:  iQuantize = 1.000

Voir aussi

logbtwo, pow

Crédits

Auteur : Gabriel Maldonado
Italie
Juin 1998

Auteur : John ffitch
Université de Bath, Codemist, Ltd.
Bath, UK
Juillet 1999

Nouveau dans la version 3.57 de Csound