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