# NodeScore

## What is NodeScore?

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

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

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

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

## How does NodeScore work?

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

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

## How is this achived technically?

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

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

## Code

https://gitorious.org/nodescore

## Browser Compatability:

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