midic21 — Permet un signal MIDI sur 21 bit en nombres décimaux selon une échelle entre des limites minimale et maximale.
Permet un signal MIDI sur 21 bit en nombres décimaux selon une échelle entre des limites minimale et maximale.
idest midic21 ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
kdest midic21 ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]
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.
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 | |
---|---|
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. |
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>