GEN51 — Ce sous-programme remplit une table avec une échelle microtonale personnalisée, à la manière des opcodes de Csound cpstun, cpstuni et cpstmid.
Ce sous-programme remplit une table avec une échelle microtonale personnalisée, à la manière des opcodes de Csound cpstun, cpstuni et cpstmid.
f # date taille -51 nbrdegres intervalle freqbase touchebase rapport1 rapport2 .... rapportN
Les quatre premiers paramètres (c'est-à-dire p5, p6, p7 et p8) définissent les directives de génération suivantes :
p5 (nbrdegres) -- le nombre de degrés de l'échelle microtonale
p6 (intervalle) -- l'intervalle de fréquences couvert avant de répéter les rapports des degrés, par exemple 2 pour une octave, 1,5 pour une quinte, etc.
p7 (freqbase) -- la fréquence de base de l'échelle en cps
p8 (touchebase) -- L'indice entier dans la table auquel assigner la fréquence de base inchangée
Les autres paramètres définissent les rapports de l'échelle :
p9 ... pN (rapport1 ... etc.) -- les rapports des degrés de l'échelle
Par exemple, pour une échelle standard de 12 degrés avec une fréquence de base de 261 cps assignée à la touche numéro 60, l'instruction f de la partition pour générer la table serait :
; nbrdegrés fréqbase rapports (tempérament égal) ....... ; intervalle touchebase f1 0 64 -51 12 2 261 60 1 1.059463 1.12246 1.18920 ..etc...
Après le calcul du gen, la table f1 est remplie avec 64 valeurs de fréquences différentes. Le 60ème élément est rempli avec la valeur de fréquence 261, et tous les autres éléments de la table (précédents et suivants) sont remplis selon les rapports des degrés.
Un autre exemple avec une échelle de 24 degrés, une fréquence de base de 440 cps assignée à la touche numéro 48, et un intervalle de répétition de 1,5 :
; nbrdegrés fréqbase rapports ....... ; intervalle touchebase f1 0 64 -51 24 1.5 440 48 1 1.01 1.02 1.03 ..etc...