[Cs-dev] OSC and Csound
| Date | 2005-05-02 09:53 |
| From | jpff@codemist.co.uk |
| Subject | [Cs-dev] OSC and Csound |
I have a working OSCsend opcode -- a little restrictive until I work
some problems out. However there is a licence problem as I understand
it. I am using liblo which is GPL so cannot be linked with LGPL
code. I have mailed the author, Steve Harris, to ask for his
assistance. We need also to see if it will work on OSX and Windows.
I reinstalled liblo this morning and it all magically worked. Notes
below are preliminary. Could extend to use the N format, but I still
need to know whether a value is integer or float.
Have only given a little thought to OSCreceive.
==John ffitch
Opcode
OSCsend kwhen, sHost, iPort, sDest, itype, sArg1, sArg2
Sends OSC message(s) to host described in the string sHost, to port
iPort. A host of "" is treated as the local machine. The message is
send to the OSC destination given in the string sDest. One or two
data items can be sent. The code itype says what they are:
0) int
1) float
2) string
3) int int
4) int float
5) int string
6) float int
7) float string
8) float float
9) string int
10) string float
11) string string
A message is sent on first call, and then whenever the kwhen variable
changes.
Example
OSCsend kk, "", 7770, "/foo/bar", 4, 42, "FOO"
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |
| Date | 2005-05-02 12:42 |
| From | Istvan Varga |
| Subject | Re: [Cs-dev] OSC and Csound |
jpff@codemist.co.uk wrote:
> I reinstalled liblo this morning and it all magically worked. Notes
> below are preliminary. Could extend to use the N format, but I still
> need to know whether a value is integer or float.
> OSCsend kwhen, sHost, iPort, sDest, itype, sArg1, sArg2
You mean something like this ?
OSCsend kwhen, sHost, iPort, sDest, xArg1[, xArg2[, ... xArg27]]
with an opcode entry of:
"kSiSN"
Then, the opcode should check the following at init time:
/* with too many args, XINCODE/XSTRCODE may not work correctly */
if (p->INOCOUNT > 31) csound->InitError(...);
/* a-rate arguments are not allowed */
if (p->XINCODE) csound->InitError(...);
Argument types can be determined as follows:
xArg1 is string if p->XSTRCODE & 16 is non-zero
xArg2 is string if p->XSTRCODE & 32 is non-zero
xArg3 is string if p->XSTRCODE & 64 is non-zero
etc.
Arguments that are known to be MYFLT can be further checked for being integer
or float with code like ((double) ((long) x) == (double) x), assuming that you
do not want to treat values that are very close to integers (e.g. 0.99999) as
integers, in which case a more complex test is needed (such as done in oload.c
for consistency of sr/kr/ksmps).
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |
| Date | 2005-05-02 13:27 |
| From | jpff@codemist.co.uk |
| Subject | Re: [Cs-dev] OSC and Csound |
No, OSC transmits three type, integer, float and string. The N specification allows float or string, but not the integer v string as that is a user decision. Clearly what you suggest is possible, but is not the answer. One would need some way of indicating which. ==John ffitch ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
| Date | 2005-05-07 15:12 |
| From | Andres Cabrera |
| Subject | Re: [Cs-dev] OSC and Csound |
| Attachments | OSC.c |
Hi John,
Thanks very much for the OSCsend opcodes, they are extremely useful for
me! (and are working fine on my preliminary tests communicating with pd
locally)
I notice that the itype order is wrong in the sources with respect to
your message, I think they should be:
0) int
1) float
2) string
3) int int
4) int float
5) int string
6) float int
7) float float
8) float string
9) string int
10) string float
11) string string
I'm attaching a corrected version for someone to commit, since I don't
have karma in that directory.
Thanks,
Andres
|
| Date | 2005-05-07 18:59 |
| From | jpff@codemist.co.uk |
| Subject | Re: [Cs-dev] OSC and Csound |
The order should be int, float, string and I have ensured that is what the comments and code does. As Istvan has liberalised the number of strings again I could 'easily' extend this a little. At present there is no checking which worries me a little. ==John ffitch ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
| Date | 2005-05-07 21:37 |
| From | Istvan Varga |
| Subject | Re: [Cs-dev] OSC and Csound |
It may be possible to use a string type argument instead of an integer, in a format like "isf" (for integer, string, and float), in combination with the 'N' type. The type string would be parsed at i-rate (and checked for consistency with the actual argument list), and if it is too short, any remaining number arguments would be assumed float. jpff@codemist.co.uk wrote: > The order should be int, float, string and I have ensured that is > what the comments and code does. > > As Istvan has liberalised the number of strings again I could 'easily' > extend this a little. At present there is no checking which worries > me a little. > ==John ffitch ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
| Date | 2005-05-09 01:45 |
| From | Andres Cabrera |
| Subject | Re: [Cs-dev] OSC and Csound |
John,
Thanks, there's still this little one:
0) int
1) float
2) string
while the code says:
case 0:
lo_send(p->addr, (char*) p->dest, "i", (int)(FL(0.5)+*p->d1));
return OK;
case 1:
lo_send(p->addr, (char*) p->dest, "s", (char*) p->d1);
return OK;
case 2:
lo_send(p->addr, (char*) p->dest, "f", (float) *p->d1);
return OK;
Thanks,
Andres
On Sat, 2005-05-07 at 12:59, jpff@codemist.co.uk wrote:
> The order should be int, float, string and I have ensured that is
> what the comments and code does.
>
> As Istvan has liberalised the number of strings again I could 'easily'
> extend this a little. At present there is no checking which worries
> me a little.
> ==John ffitch
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games.
> Get your fingers limbered up and give it your best shot. 4 great events, 4
> opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
> win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |
| Date | 2005-05-09 08:36 |
| From | jpff@codemist.co.uk |
| Subject | Re: [Cs-dev] OSC and Csound |
Hum; perhaps I need new glasses. Fixed now ==John ffitch >>>>> "Andres" == Andres Cabrera |
| Date | 2005-05-09 12:41 |
| From | Istvan Varga |
| Subject | Re: [Cs-dev] OSC and Csound |
jpff@codemist.co.uk wrote:
> Hum; perhaps I need new glasses. Fixed now
Still looks wrong:
return OK;
case 1:
- lo_send(p->addr, (char*) p->dest, "s", (char*) p->d1);
+ lo_send(p->addr, (char*) p->dest, "s", (float*) p->d1);
return OK;
case 2:
- lo_send(p->addr, (char*) p->dest, "f", (float) *p->d1);
+ lo_send(p->addr, (char*) p->dest, "f", (char) *p->d1);
return OK;
case 3:
case 1 should be (assuming that it is intended to send a float)
lo_send(p->addr, (char*) p->dest, "f", (float) *p->d1);
case 2 should be (for sending a string)
lo_send(p->addr, (char*) p->dest, "s", (char*) p->d1);
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |