The value returned by the octave function is a factor. You can multiply a frequency by this factor to raise/lower it by the given amount of octaves.
Here is an example of the octave opcode. It uses the files octave.orc and octave.sco.
Example 242. Example of the octave opcode.
/* octave.orc */ ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 ; The root note is A above middle-C (440 Hz) iroot = 440 ; Raise the root note by two octaves. ioctaves = 2 ; Calculate the new note. ifactor = octave(ioctaves) inew = iroot * ifactor ; Print out of all of the values. print iroot print ifactor print inew endin /* octave.orc */
/* octave.sco */ ; Play Instrument #1 for one second. i 1 0 1 e /* octave.sco */
Its output should include lines like:
instr 1: iroot = 440.000 instr 1: ifactor = 4.000 instr 1: inew = 1760.149