GEN51

GEN51 — This subroutine fills a table with a fully customized micro-tuning scale, in the manner of Csound opcodes cpstun, cpstuni and cpstmid.

Description

This subroutine fills a table with a fully customized micro-tuning scale, in the manner of Csound opcodes cpstun, cpstuni et cpstmid.

Syntax

f # time size -51 numgrades interval basefreq basekey tuningRatio1 tuningRatio2  .... tuningRationN

Performance

The first four parameters (i.e. p5, p6, p7 and p8) define the following generation directives:

p5 (numgrades) -- the number of grades of the micro-tuning scale

p6 (interval) -- the frequency range covered before repeating the grade ratios, for example 2 for one octave, 1.5 for a fifth etcetera

p7 (basefreq) -- the base frequency of the scale in cps

p8 (basekey) -- the integer index of the scale to which to assign basefreq unmodified

The other parameters define the ratios of the scale:

p9...pN (tuningRatio1...etc.) -- the tuning ratios of the scale

For example, for a standard 12-grade scale with the base-frequency of 261 cps assigned to the key-number 60, the corresponding f-statement in the score to generate the table should be:

;             numgrades        basefreq           tuning-ratios  (eq.temp) .......
;                     interval         basekey
f1 0 64 -51     12       2      261      60        1   1.059463 1.12246 1.18920 ..etc...

After the gen has been processed, the table f1 is filled with 64 different frequency values. The 60th element is filled with the frequency value of 261, and all other elements (preceding and subsequents) of the table are filled according to the tuning ratios

Another example with a 24-grade scale with a base frequency of 440 assigned to the key-number 48, and a repetition interval of 1.5:

;            numgrades       basefreq             tuning-ratios .....
;                     interval         basekey
f1 0 64 -51     24      1.5     440      48         1   1.01  1.02  1.03  ..etc...

Credits

Author: Gabriel Maldonado