OSCsend — Sends data to other processes using the OSC protocol
ihost -- a string that is the intended host computer domain name. An empty string is interpreted as the current computer.
iport -- the number of the port that is used for the communication.
idestination -- a string that is the destination address. This takes the form of a file name with directories. Csound just passes this string to the raw sending code and makes no interpretation.
itype -- a string that indicates the types of the optional arguments that are read at k-rate. The string can contain the characters "abcdfilmstAG" which stand for audio, Boolean, character, double, float, 32-bit integer, 64-bit integer, MIDI, string, timestamp, k-rate array and ftable. The OSC message may not have any types, in which case, it will consist only of the destination address.
kwhen -- a message is sent whenever this value changes. A message will always be sent on the first call.
The data is taken from the k-values or a-value that follow the format string. In a similar way to a printf format, the characters in order determine how the argument is interpreted. Note that a time stamp takes two arguments.
The example shows a simple instrument, which when called, sends a group of 3 messages to a computer called "xenakis", on port 7770, to be read by a process that recognises /foo/bar as its address.
instr 1 OSCsend 1, "xenakis.cs.bath.ac.uk",7770, "/foo/bar", "sis", "FOO", 42, "bar" endin
Here is a complete example of the OSCsend opcode. It uses the file OSCsend.csd.
Example 695. Example of the OSCsend opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<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: ; ; By Stefano Cucchi - 2021 </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 giOSC1 OSCinit 8020 instr 3 ; OSC send krandom randomh -50, 50, 4 iport = 8020 OSCsend krandom, "localhost", iport, "/boulevard", "f", krandom endin instr 4 ; OSC receive kvaluefrom3 init 0 kdata1 OSClisten giOSC1, "/boulevard", "f", kvaluefrom3 printk2 kvaluefrom3 endin </CsInstruments> <CsScore> i 3 0 5 i 4 0 5 e </CsScore> </CsoundSynthesizer>
More information on this opcode: http://www.youtube.com/watch?v=JX1C3TqP_9Y , made by Andrés Cabrera