logbtwo() returns the logarithm base two of x. The range of values admitted as argument is .25 to 4 (i.e. from -2 octave to +2 octave response). This function is the inverse of powoftwo().
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 logbtwo opcode. It uses the files logbtwo.orc and logbtwo.sco.
Example 1. Example of the logbtwo opcode.
/* logbtwo.orc */
/* Written by Kevin Conder */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
i1 = logbtwo(3)
print i1
endin
/* logbtwo.orc */
/* logbtwo.sco */
/* Written by Kevin Conder */
; Play Instrument #1 for one second.
i 1 0 1
e
/* logbtwo.sco */
instr 1: i1 = 1.585