Hi all,
The Barcelona Laptop Orchestra has been working with some network abstractions built specifically per piece (chats, OSC sync and so). I was thinking on making a whole, reusable framework, but then I read about the NetPd system... I'd like to develop stuff from it (some GUI abstractions, log systems, etc), but it says it's under a transition and so. Does anybody know the current status of the project? Is it usable now, or should I use the old system?
Cheers,
Quim
Hi Quim
On Tue, 2012-03-13 at 12:27 +0100, Quim Llimona wrote:
Hi all,
The Barcelona Laptop Orchestra has been working with some network abstractions built specifically per piece (chats, OSC sync and so). I was thinking on making a whole, reusable framework, but then I read about the NetPd system... I'd like to develop stuff from it (some GUI abstractions, log systems, etc), but it says it's under a transition and so. Does anybody know the current status of the project? Is it usable now, or should I use the old system?
netpd is currently a one-man show. This means, it's only me working on it and occasionally playing with it. The new OSC based version is much more mature than the original framework ever was. The old netpd is not maintained anymore and I wouldn't use it, though it still seems to run OK with today's version of Pd[-extended].
I'd say the new netpd framework is in a beta stage now. I haven't touched the server for quite a while (it seems robust) and also worked on the client-side framework stuff only occasionally, mainly when smallish issues were found during development of custom made netpd-patches / instruments. In recent weeks, I actually spent most time on importing old netpd-patches to the new framework or rewriting them from scratch. The most important ones are already done. The one big chunk still missing is a proper documentation and also eventually making a release. I don't follow a particular schedule, though.
Explained in only a few words, the main goal of the framework is to ensure instrument/patch synchronisation (every client has the same set of of custom made patches loaded at any time) and state synchronization (the state of a certain patch is the same on every client at any time). Of course, you can pick only the features you're interested to. For instance, you could use it only for passing OSC messages around between clients. I tried to make the framework modular, so it might well be that you find something for your needs, but to tell you more about it, I'd need to know more precisely what you're trying to achieve.
I encourage you to try out the new netpd yourself. To get a running setup, do this in a terminal:
$ git clone git://github.com/reduzent/netpd2.git $ git clone git://github.com/reduzent/netpd2-patches.git $ cd netpd2 $ rm -rf abs/ patches/ $ ln -s ../netpd2-patches/patches/ $ ln -s ../netpd2-patches/abs/
This will give you the framework itself plus a set of patches/instruments.
To run it, open 'netpd2/chat.pd' in your 0.43 version of Pd or Pd-extended.
The following external libraries are used:
Have fun (or report back)!
Roman
Great!
I'll try it out, and if you want I can help with abstractions (I already have som GUI stuff done with raw OSC) and so. We need, on the network side, mostly message passing between clients and server (we usually have a local "server", that outputs all the audio), chat and some kind of ready-to-use templates.
I'll give you feedback very soon :)
Thanks!
Quim
2012/3/14 Roman Haefeli reduzent@gmail.com
Hi Quim
On Tue, 2012-03-13 at 12:27 +0100, Quim Llimona wrote:
Hi all,
The Barcelona Laptop Orchestra has been working with some network abstractions built specifically per piece (chats, OSC sync and so). I was thinking on making a whole, reusable framework, but then I read about the NetPd system... I'd like to develop stuff from it (some GUI abstractions, log systems, etc), but it says it's under a transition and so. Does
anybody
know the current status of the project? Is it usable now, or should I use the old system?
netpd is currently a one-man show. This means, it's only me working on it and occasionally playing with it. The new OSC based version is much more mature than the original framework ever was. The old netpd is not maintained anymore and I wouldn't use it, though it still seems to run OK with today's version of Pd[-extended].
I'd say the new netpd framework is in a beta stage now. I haven't touched the server for quite a while (it seems robust) and also worked on the client-side framework stuff only occasionally, mainly when smallish issues were found during development of custom made netpd-patches / instruments. In recent weeks, I actually spent most time on importing old netpd-patches to the new framework or rewriting them from scratch. The most important ones are already done. The one big chunk still missing is a proper documentation and also eventually making a release. I don't follow a particular schedule, though.
Explained in only a few words, the main goal of the framework is to ensure instrument/patch synchronisation (every client has the same set of of custom made patches loaded at any time) and state synchronization (the state of a certain patch is the same on every client at any time). Of course, you can pick only the features you're interested to. For instance, you could use it only for passing OSC messages around between clients. I tried to make the framework modular, so it might well be that you find something for your needs, but to tell you more about it, I'd need to know more precisely what you're trying to achieve.
I encourage you to try out the new netpd yourself. To get a running setup, do this in a terminal:
$ git clone git://github.com/reduzent/netpd2.git $ git clone git://github.com/reduzent/netpd2-patches.git $ cd netpd2 $ rm -rf abs/ patches/ $ ln -s ../netpd2-patches/patches/ $ ln -s ../netpd2-patches/abs/
This will give you the framework itself plus a set of patches/instruments.
To run it, open 'netpd2/chat.pd' in your 0.43 version of Pd or Pd-extended.
The following external libraries are used:
- iemnet
- osc
- mrpeach ([slipdec] and [slipenc])
- zexy
Have fun (or report back)!
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Wed, 2012-03-14 at 10:59 +0100, Quim Llimona wrote:
Great!
I'll try it out, and if you want I can help with abstractions (I already have som GUI stuff done with raw OSC) and so. We need, on the network side, mostly message passing between clients and server (we usually have a local "server", that outputs all the audio), chat and some kind of ready-to-use templates.
OK, I think I understand your intended setup. I would run your audio generating node and all the controller nodes as netpd-clients. You could run a local instance of a netpd server which every of your node (including your 'server') would connect to. Then they'd be able to communicate with each other. You could configure all your controller nodes to send their messages only to your audio generating node.
Check the protocol specification [1] to get an idea about how communication between nodes works.
You can download the netpd-server from here: https://github.com/reduzent/netpd-server2
Just run netpd-server2.pd in its own Pd instance (or Pd-extended, for that matter) and ignore all the python stuff (it's not up-to-date anyway).
The simplest way to establish a connection between a node and the netpd-server is to run chat.pd. You may want to adjust the IP address of your local netpd-server in the appropriate field in chat.pd's preference dialog. You can open that dialog by hitting the 'pref' button.
I a new patch, you may want to put:
[r NETPD] | [print NETPD]
This will print the communication between the node and the server and probably helps you get an idea of how everything works.
Roman