midic21

midic21 — Permet un signal MIDI sur 21 bit en nombres décimaux selon une échelle entre des limites minimale et maximale.

Description

Permet un signal MIDI sur 21 bit en nombres décimaux selon une échelle entre des limites minimale et maximale.

Syntaxe

idest midic21 ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
kdest midic21 ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]

Initialisation

idest -- signal de sortie

ictln1o -- numéro de contrôleur pour l'octet de poids fort (0-127)

ictlno2 -- numéro de contrôleur pour l'octet de poids moyen (0-127)

ictlno3 -- numéro de contrôleur pour l'octet de poids faible (0-127)

imin -- valeur décimale minimale de sortie définie par l'utilisateur

imax -- valeur décimale maximale de sortie définie par l'utilisateur

ifn (facultatif) -- la table à lire lorsque l'indexation est requise. La table doit être normalisée. La sortie est mise à l'échelle entre les valeurs imax et imin.

Exécution

kdest -- signal de sortie

kmin -- valeur décimale minimale de sortie définie par l'utilisateur

kmax -- valeur décimale maximale de sortie définie par l'utilisateur

midic21 (contrôle MIDI sur 21 bit au taux-i et au taux-k) permet un signal MIDI sur 21 bit en nombres décimaux mis à l'échelle entre des limites minimale et maximale. Les valeurs minimale et maximale peuvent être variées au taux-k. Il peut utiliser en option une indexation de table interpolée. Il nécessite trois contrôleurs MIDI en entrée.

[Note] Note

Veuillez noter que la famille des opcodes midic est prévue pour des évènements MIDI déclenchés, et ne nécessite pas de numéro de canal car ils vont répondre au même canal que celui qui a déclenché l'instrument (voir massign). Cependant ils vont planter s'ils sont appelés depuis un évènement de partition.

Exemples

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

Exemple 590. Exemple de l'opcode midic21.

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 --midi-key-cps=4 --midi-velocity-amp=5   ;;;realtime audio out and realtime midi in, midi key cps is routed to p4 and velocity to p5
; For Non-realtime ouput leave only the line below:
; -o midic21.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; by tgrey - 2020

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1
	; This example expects MIDI controller input on channel 1
	; run, play a note and move your midi controllers 1, 7, and 10 to see results
	ictlno1= 1 	; = cc #1 midi mod wheel (course tuning)
	ictlno2= 7 	; = cc #7 midi volume (fine tuning)
	ictlno3= 10 ; = cc #10 midi pan (extremely fine tuning)

	; max range is 4 octaves: (2^4) = 16
	imax  = 16

	; read all 3 controllers, scaling them between 1 and imax
	kTune midic21 ictlno1, ictlno2, ictlno3, 1, imax	
	printk2	kTune

	; generate tones
	asig oscili p5, p4*kTune
	aref oscili p5, p4

	; combine detuned tone and reference tone
	; creates a beat effect from the detune
	asig=(asig+aref)*.5

	outs asig, asig
endin
</CsInstruments>
<CsScore>
; run for 60 seconds
f0 60
e
</CsScore>
</CsoundSynthesizer>


Voir aussi

ctrl7, ctrl14, ctrl21, initc7, initc14, initc21, midic7, midic14

Crédits

Auteur : Gabriel Maldonado
Italie

Nouveau dans la version 3.47 de Csound

Merci à Rasmus Ekman pour avoir indiqué le bon intervalle pour le numéro de contrôleur.