cpstuni

cpstuni — Retourne des valeurs d'échelle microtonale au taux-i.

Description

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

Syntaxe

icps cpstuni index, ifn

Initialisation

icps -- Valeur de retour en cycles par seconde.

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

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

Exécution

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

cpstuni travaille au taux-i. 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 index reçoit un nombre entier indiquant quel degré de l'échelle donnée doit être converti en Hz. La table de fonction ifn 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 cpstuni. Il utilise le fichier cpstuni.csd.

Exemple 145. Exemple de l'opcode cpstuni.

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 cpstuni.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
  ; Use Table #1.
  ifn = 1

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

  i1 cpstuni index, ifn

  print i1
endin


</CsInstruments>
<CsScore>

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


</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra cette ligne :

instr 1:  i1 = 440.110

Voir aussi

cpstmid, cpstun, GEN02

Crédits

Ecrit par Gabriel Maldonado.

Exemple écrit par Kevin Conder.