powoftwo() function returns 2 ^ x and allows positive and negatives numbers as argument. The range of values admitted in powoftwo() is -5 to +5 allowing a precision more fine than one cent in a range of ten octaves. If a greater range of values is required, use the slower opcode pow.
These functions are fast, because they read values stored in tables. Also they are very useful when working with tuning ratios. They work at i- and k-rate.
Here is an example of the powoftwo opcode. It uses the files powoftwo.orc and powoftwo.sco.
Example 282. Example of the powoftwo opcode.
/* powoftwo.orc */ ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 i1 = powoftwo(12) print i1 endin /* powoftwo.orc */
/* powoftwo.sco */ ; Play Instrument #1 for one second. i 1 0 1 e /* powoftwo.sco */
Its output should include a line like this:
instr 1: i1 = 4096.000