for news and upcoming events go to schedule
stay informed about netpd and subscribe to the newsletter


what is netpd?

netpd is a project based on the software puredata. its intention is to create an environment for electronic musicians and give them the opportunity to jam with each other in realtime, connected over the internet or a LAN.

netpd does not provide any software which produces sound, but an environment to share client created patches and broadcast control data. it is important to the idea of netpd not to prescribe a way how to make music. for this reason, the users of netpd are asked to build their own patches and to play them in netpd, which hopefully leads to a big variety of styles of creating music (or noise).


how does netpd work?

the topology of the netpd-system is basically a server with an arbitrary numbers of clients connected. the clients are represented by the netpd-users. the server is relatively stupid, since he just forwards the messages it receives. through this network, clients can share data, that is: patches and controller/state data.
the main principle behind this framework is to make sure, that every user hears/sees the same (or gets the same output in whatsoever format/medium) at any time, independently from the moment of joining the network.

translated into terms of pd, this means:

  1. every connected client should have the same patches open at any time (patch synchronisation)
  2. all loaded patches should have the same state on each client at any time (state synchronisation)

these principles are obtained by different parts of netpd:

chat

_chat.pd is somehow the root-patch of netpd. it establishes the connection to the server and it allows the user to talk with other connected clients. from chat, other basic netpd-patches can be launched, such as creator and logview.

creator

_creator.pd is used to load custom made netpd-patches (e.g synthesizers, sequencers, gem-patches etc.), so that these can be played within netpd. whenever a client loads a patch, this patch gets loaded on every connected client as well. if this patch is not existent on a remote host, it gets uploaded. creator also provides a versioning system in order to make sure, that every connected client has the most recent version of a certain patch. further has creator the capability to resolve dependencies of abstractions used by netpd-patches - in short: creator makes sure, that every client has the same set of patches open at anytime (patch synchronisation).

netpd-abstractions

netpd comes with a set of abstractions. the goal of these abstractions is to make it as easy as possible to turn an existing patch into a netpd-patch. basically these abstractions provide state synchronisation for certain sets of data, such as gui-objects, floats, lists, tables etc. - in short: the netpd-abstractions make sure, that a certain netpd-patch has the same state on each client at any time (state synchronization).

server

the server is a simple pd patch, that forwards incoming messages to specific or all connected clients. it usually runs on a host, that is accessible by the netpd-clients. check the server page for more information.


more about netpd