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.
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.
Code
https://gitorious.org/nodescore
Examples
http://nodescore.kiben.net:8889/m/score.html
http://nodescore.kiben.net:8889/m/controls.html