outch — Ecrit des données audio multi-canaux sous contrôle de l'utilisateur, vers un périphérique externe ou un flot.
Ecrit des données audio multi-canaux sous contrôle de l'utilisateur, vers un périphérique externe ou un flot.
outch envoie asig1 sur le canal déterminé par kchan1, asig2 sur le canal déterminé par kchan2, etc.
Note | |
---|---|
Le plus grand numéro de paramètre kchanX pour outch dépend de nchnls. Si kchanX est supérieur à nchnls, asigX sera silencieux. Noter que outch donnera dans ce cas un avertissement mais pas d'erreur. |
Voici un exemple de l'opcode outch. Il utilise le fichier outch.csd.
Exemple 698. Exemple de l'opcode outch.
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 ;;;realtime audio out ; For Non-realtime ouput leave only the line below: ; -o outch.wav -W ;;; for file output any platform ; By Stefano Cucchi - 2020 </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 asig vco2 0.2, 100 ; Audio signal. kout randomh 1, 2, 5 ; Extracts random number between 1 & 2 - 5 times per second. outch kout,asig ; Sends the signal to the channel according to "kout". printks "signal is sent to channel %d\\n", .2, kout ; Prints the channel where you hear the sound. endin </CsInstruments> <CsScore> i 1 0 15 e </CsScore> </CsoundSynthesizer>
Voici un autre exemple de l'opcode outch. Il utilise le fichier outch-2.csd.
Exemple 699. Exemple de l'opcode outch.
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 ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o outch.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 5 0dbfs = 1 instr 1 asig vco2 .05, 100 ; sawtooth waveform at low volume kcut line 100, p3, 30 ; Vary cutoff frequency kresonance = .7 inumlayer = 3 asig lowresx asig, kcut, kresonance, inumlayer klfo lfo 4, .5, 4 klfo = klfo+1 ; offset of 1 printks "signal is sent to channel %d\\n", .1, klfo outch klfo,asig endin </CsInstruments> <CsScore> i 1 0 30 e </CsScore> </CsoundSynthesizer>
signal is sent to channel 5 signal is sent to channel 4 signal is sent to channel 3 signal is sent to channel 2 signal is sent to channel 1 signal is sent to channel 5 ........
Voici un autre exemple de l'opcode outch. Il utilise le fichier outch-3.csd.
Exemple 700. Un autre exemple de l'opcode outch.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o outch-2.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 4 0dbfs = 1 seed 0 instr 1 ;random movements between 4 speakers with outch ichn1 random 1, 4.999 ;channel to start ichn2 random 1, 4.999 ;channel to end prints "Moving from speaker %d to speaker %d%n", int(ichn1), int(ichn2) asamp soundin "fox.wav" kmov linseg 0, p3, 1 a1, a2 pan2 asamp, kmov outch int(ichn1), a1, int(ichn2), a2 endin </CsInstruments> <CsScore> r 5 i 1 0 3 e </CsScore> </CsoundSynthesizer>
Plus d'information sur cet opcode : http://www.csoundjournal.com/issue16/audiorouting.html, érit par Andreas Russo.