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

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

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

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...