A simpler scanned synthesis implementation. This is an implementation of a circular string scanned using external tables. This opcode will allow direct modification and reading of values with the table opcodes.
ipos -- table containing position array.
imass -- table containing the mass of the string.
istiff -- table containing the stiffness of the string.
idamp -- table containing the damping factors of the string.
ivel -- table containing the velocities.
Here is an example of the scantable opcode. It uses the files scantable.orc and scantable.sco.
Example 1. Example of the scantable opcode.
/* scantable.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Table #1 - initial position
git1 ftgen 1, 0, 128, 7, 0, 64, 1, 64, 0
; Table #2 - masses
git2 ftgen 2, 0, 128, -7, 1, 128, 1
; Table #3 - stiffness
git3 ftgen 3, 0, 128, -7, 0, 64, 100, 64, 0
; Table #4 - damping
git4 ftgen 4, 0, 128, -7, 1, 128, 1
; Table #5 - initial velocity
git5 ftgen 5, 0, 128, -7, 0, 128, 0
; Instrument #1.
instr 1
kamp init 20000
kpch init 220
ipos = 1
imass = 2
istiff = 3
idamp = 4
ivel = 5
a1 scantable kamp, kpch, ipos, imass, istiff, idamp, ivel
a2 dcblock a1
out a2
endin
/* scantable.orc */
/* scantable.sco */
; Play Instrument #1 for ten seconds.
i 1 0 10
e
/* scantable.sco */