Gaspard Bucher
2010-09-13 19:38:00 UTC
Hi there !
I have been looking at the ZeroMQ <http://www.zeromq.org/> library and found
that it does many things (surely much better) that the oscit library does:
1. handle subscriptions from not-yet-connected devices
2. handle different types of connections depending on protocol
(inter-process communication, network communication, in-process, etc)
3. fully asynchronous
4. reliable channel (both in terms of low jitter and ensured packet
delivery)
I think it should not be too hard to add ZeroConf on top of this.
The only drawback is that this library is using TCP for network connections.
Since I really want to be able to concentrate on the application layer of
oscit (make distributed OSC based systems easy) and not reinvent a transport
layer, I might use this library and see if the latency is really a problem
or if it's just a haunting ghost.
The typical latency of my sound system is around 5-10 ms (256-512 samples @
44.1kHz), whereas the measured latency of ZeroMQ is around 50us (0.05ms) (
http://www.zeromq.org/results:more-precise-0mq-tests).
This means that the latency of TCP transport with ZeroMQ is 220 times
*lower* then what I can easily handle (musically) with my sequencer.
What are your latency requirements ? Is 50us for transport too much ? Why ?
Cheers,
Gaspard
I have been looking at the ZeroMQ <http://www.zeromq.org/> library and found
that it does many things (surely much better) that the oscit library does:
1. handle subscriptions from not-yet-connected devices
2. handle different types of connections depending on protocol
(inter-process communication, network communication, in-process, etc)
3. fully asynchronous
4. reliable channel (both in terms of low jitter and ensured packet
delivery)
I think it should not be too hard to add ZeroConf on top of this.
The only drawback is that this library is using TCP for network connections.
Since I really want to be able to concentrate on the application layer of
oscit (make distributed OSC based systems easy) and not reinvent a transport
layer, I might use this library and see if the latency is really a problem
or if it's just a haunting ghost.
The typical latency of my sound system is around 5-10 ms (256-512 samples @
44.1kHz), whereas the measured latency of ZeroMQ is around 50us (0.05ms) (
http://www.zeromq.org/results:more-precise-0mq-tests).
This means that the latency of TCP transport with ZeroMQ is 220 times
*lower* then what I can easily handle (musically) with my sequencer.
What are your latency requirements ? Is 50us for transport too much ? Why ?
Cheers,
Gaspard