cpstun

cpstun — Retourne des valeurs d'échelle microtonale au taux-k.

Description

Retourne des valeurs d'échelle microtonale au taux-k.

Syntaxe

kcps cpstun ktrig, kindex, kfn

Exécution

kcps -- Valeur de retour en cycles par seconde.

ktrig -- Un signal utilisé pour déclencher l'évaluation.

kindex -- Un nombre entier servant d'indice dans l'échelle.

kfn -- Table de fonction contenant les paramètres (numgrades, interval, basefreq, basekeymidi) ainsi que les rapports de hauteur.

Cet opcode est similaire à cpstmid, mais son fonctionnement ne nécessite pas le MIDI.

cpstun travaille au taux-k. Il permet d'obtenir des échelles microtonales personnalisées. Il nécessite le numéro d'une table de fonction qui contient les rapports de hauteur, et quelques autres paramètres stockés dans la table elle-même.

L'argument kindex reçoit des nombres entiers indiquant quel degré de l'échelle donnée doit être converti en Hz. Dans cpstun, une nouvelle valeur ne sera évaluée que lorsque ktrig contiendra une valeur non nulle. La table de fonction kfn sera générée par GEN02, les quatre premières valeurs stockées dans la table étant des paramètres qui expriment :

  • numgrades -- Le nombre de degrés de l'échelle microtonale.

  • interval -- L'intervalle de fréquence couvert avant de répéter les rapports des degrés, par exemple 2 pour une octave, 1,5 pour une quinte, etc.

  • basefreq -- La fréquence de base de l'échelle en cycles par seconde.

  • basekey -- L'indice entier dans l'échelle auquel la fréquence de base sera affectée sans changement.

On peut insérer les rapports de hauteur après ces quatre valeurs. Par exemple, pour une échelle standard de 12 degrés avec une fréquence de base de 261 Hz affectée au numéro de touche 60, l'instruction f de la partition pour générer la table sera :

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

Un autre exemple avec une échelle de 24 degrés et une fréquence de base de 440 affectée au numéro de touche 48, et un intervalle de répétition de 1,5 :

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

Exemples

Voici un exemple de l'opcode cpstun. Il utilise le fichier cpstun.csd.

Exemple 161. Exemple de l'opcode cpstun.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o cpstun.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Table #1, a normal 12-tone equal temperament scale.
; numgrades = 12 (twelve tones)
; interval = 2 (one octave)
; basefreq = 261.659 (Middle C)
; basekeymidi = 60 (Middle C)
gitemp ftgen 1, 0, 64, -2, 12, 2, 261.659, 60, 1.00, \
             1.059, 1.122, 1.189, 1.260, 1.335, 1.414, \
             1.498, 1.588, 1.682, 1.782, 1.888, 2.000

; Instrument #1.
instr 1
  ; Set the trigger.
  ktrig init 1

  ; Use Table #1.
  kfn init 1

  ; If the base key (note #60) is C, then 9 notes 
  ; above it (note #60 + 9 = note #69) should be A.
  kindex init 69

  k1 cpstun ktrig, kindex, kfn

  printk2 k1
endin


</CsInstruments>
<CsScore>

; Play Instrument #1 for one second.
i 1 0 1
e


</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra cette ligne :

i1   440.11044

Voir aussi

cpstmid, cpstuni, GEN02

Crédits

Exemple écrit par Kevin Conder.