The dfscore system is a realtime dynamic score system built to function over a local network to display a variety of musical material. The primary motivations for building the system were to allow for a middle ground between composition and improvisation, and to be able to dynamically restructure and reorchestrate material on any given instrumentation.
dfscore is designed to run on as a standalone server on a Raspberry Pi under linux.Each additional device (laptop, iPhone, iPad) then connects to the same local network (via ethernet or wireless) and can join, perform, or edit existing compositions.
dfscore can be installed on any operating system (Win, OSX, Linux) and run on a local network following the instructions below.
dfscore uses web browsers as clients with a realtime connection to a server which is written using the node.js platform.
Once you have installed dfscore and it's dependencies you can open a local session.
*node.js is cross-platform and can be run under all OS' supported by node.js (Win, OSX, Linux). The node fibers module is distributed as source and therefore may require build tools (gcc, make, node-gyp, xcode) depending on how node works on your OS.
dfscore can be used across any network (LAN, wireless, internet) but is intended for low-latency networks due to realtime event triggering.
For remote usage, the listenAddress parameter in config.json should be adjusted to the server's external IP. serverPort can also be used to change to a port other than 8080 (the last part of the url you connect to). Ports below 1024 typically require admin privileges on a given operating system.
To run as a client you do not need to install any of the software above and only need a web browser(s) with websocket, html5 canvas, and webaudio support:
After a composition is loaded by the admin user, each connecting client will be offered a choice of role. The admin user may choose a role, and can see all other role assignments. When the desired number of performers have joined and picked roles, the admin user can select 'Begin performance', which will initiate the performance with a count-in as specified using the slider to the left of the begin button.
If the admin user is not active as a performer (ie has not selected a role), they will remain on the countin page until the performance has completed.
At the end of a role's involvement, their screen will display 'End of Performance'. When all roles have completed their involvement, the admin user will automatically reload the package list.
See the development page