cpstmid

cpstmid — Retourne un numéro de note MIDI (possibilité d'échelles micro-tonales).

Description

Cette unité est semblable à cpsmidi, mais elle permet de particulariser des échelles micro-tonales.

Syntaxe

icps cpstmid ifn

Initialisation

ifn -- table de fonction contenant les paramètres (numgrades, interval, basefreq, basekeymidi) et les rapports d'accordage.

Exécution

Seulement durant l'initialisation.

cpsmid nécessite cinq paramètres. Le premier, ifn, est le numéro de la table de fonction des rapports d'accordage, et les autres paramètres sont contenus dans la table de fonction elle-même. La table de fonction ifn doit être générée par GEN02, sans normalisation. Les quatre premières valeurs stockées dans cette fonction sont :

  1. numgrades -- le nombre de degrés de l'échelle micro-tonale

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

  3. basefreq -- la fréquence de base de l'échelle en Hz

  4. basekeymidi -- le numéro de note MIDI auquel basefreq est assigné sans modification

Après ces quatre valeurs, on peut commencer à insérer les rapports d'accordage. Par exemple, pour une échelle standard sur 12 notes avec la fréquence de base 261 Hz assignée à la touche numéro 60, l'instruction f correspondante dans la partition pour générer la table sera :


  ;          numgrades interval  basefreq basekeymidi tuning ratios (equal temp)   
  f1 0 64 -2   12       2        261        60         1  1.059463094359  1.122462048309  1.189207115003 ...etc... 

Un autre exemple avec une échelle de 24 notes dont la fréquence de base de 440 Hz est assignée à la touche numéro 48, et un intervalle de répétition de 1.5 :


  ;           numgrades interval  basefreq basekeymidi tuning-ratios (equal temp)   
  f1 0 64 -2   24        1.5      440        48         1   1.01  1.02  1.03   ...etc...

Exemples

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

Exemple 181. Exemple de l'opcode cpstmid.

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
-odac     -M0  ;;;RT audio I/O with MIDI in
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o cpstmid.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; after an example from Kevin Conder
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 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

instr 1

ifn = 1
icps	cpstmid ifn
	print icps
asig	oscil 0.6, icps, 2
	outs  asig, asig

endin


</CsInstruments>
<CsScore>
f 0 20
;sine wave.
f 2 0 16384 10 1

e

</CsScore>
</CsoundSynthesizer>


Voir aussi

cpsmidi, GEN02

Crédits

Auteur : Gabriel Maldonado
Italie
1998

Nouveau dans la version 3.492 de Csound.