rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42:
rc-web@42:

NodeScore

rc-web@42:
rc-web@42: rc-web@42:
rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42:

rc-web@42: rc-web@42:
rc-web@42: rc-web@42:

What is NodeScore?

NodeScore is a framework to facilitate rc-web@42: networked telematic ensemble performance. As a framework it uses the rc-web@42: "screen score" as its paradigm. While it could be used to syncronise rc-web@42: any type of telematic event/performance in this context it is aimed at rc-web@42: the musical performance. rc-web@42: rc-web@42:

The goal of the NodeScore framework is to allow performers rc-web@42: who are connected to a network via a computer/tablet/mobile device to rc-web@42: syncronise to a master clock and recieve instructions, in rc-web@42: realtime,from a central "conductor/director" as well as being able to rc-web@42: communicate with one another. rc-web@42:

rc-web@42:

As performers may be geographically dispersed the technical setup rc-web@42: needs to be trivial, this is why NodeScore uses the Internet browser rc-web@42: as it is a cross-platform, standards compliant rc-web@42: environment that will run on anycomputer without complex setup and rc-web@42: installation process. All that the performers involved in a NodeScore rc-web@42: performance need to do is open a browser such as Google's Chrome and rc-web@42: point it to the address of the NodeScore server, login and await rc-web@42: instructions that shall be displayed in the browsers window. rc-web@42:

rc-web@42:

The nature of these instuctions is the left to the composer, the rc-web@42: only prerequisite when composing for the NodeScore framework is that rc-web@42: the instructions are formatted in HTML5. This allows for the rc-web@42: incorporation of a wide range of rich media content such as images, rc-web@42: video, sound and animated SVG as well as simple plain text rc-web@42: instructions. Any medium that can be displayed in an internet web rc-web@42: browser maybe used in a NodeScore composition. rc-web@42: rc-web@42: Other features include a shared, embedded network stopwatch and a rc-web@42: live-chat window to facilitate syncronisation and communication rc-web@42: between partisipants in the performance.

rc-web@42:

How does NodeScore work?

The control interface for rc-web@42: NodeScore is a webpage displayed in an internet web browser, from this rc-web@42: control page the "conductor/director" can issue the precomposed, HTML5 rc-web@42: formated, compositional instructions. These instrutions can be rc-web@42: deployed to the ensemble as a whole or targeted at specific rc-web@42: perfomers. Once the instruction is deployed by the director it is rc-web@42: instantly presented in the web browser of the performer/s. rc-web@42: rc-web@42:

In a NodeScore performance the conductor/director also becomes rc-web@42: active in the compositional process as he she decides who plays what rc-web@42: material when. In this way NodeScore can be seen as an evolution of rc-web@42: methods used by composers from Lutoslawski (Jeux vénitiens to Zorn rc-web@42: ("Cobra") amongst others, where musicians are given cues chosen by the rc-web@42: director indicating certian prearranged stratagies. NodeScore however rc-web@42: alows much more complex media to be incorporated in the instructions rc-web@42: as well as facilitating networked telematic performances in this rc-web@42: style. rc-web@42:

rc-web@42: rc-web@42:

How is this achived technically?

NodeScore uses realtime web rc-web@42: technologies including the node.js server software allowing serverside rc-web@42: javascript as well as websockets. "Websockets" allows the server to rc-web@42: push content to the clients without them requesting it first as is rc-web@42: traditionally the case.

This has been possible in the past through a rc-web@42: technique called "longpolling", though this was quite inefficient rc-web@42: compatered to websockets which allow a persistant live connection rc-web@42: between server and client. Through this connection the server can push rc-web@42: content to the client in realtime for instant displayed in their rc-web@42: browser.

rc-web@42: rc-web@42:

Code

rc-web@42: rc-web@42: https://gitorious.org/nodescore rc-web@42: rc-web@42: rc-web@42:

Browser Compatability:

This project uses some bleeding rc-web@42: edge network technologies his means it will not currently work in all rc-web@42: browsers, some versions of Firefox have disabled websockets for rc-web@42: security reasons, also different browsers deal with CSS scaling in rc-web@42: different ways for example. Recent versions of Chromium, Google Chrome or rc-web@42: Firefox are recomended. rc-web@42: rc-web@42:
rc-web@42: rc-web@42:
rc-web@42: rc-web@42: rc-web@42:
rc-web@42: rc-web@42: rc-web@42: rc-web@42: rc-web@42: