112 lines
4.5 KiB
HTML
112 lines
4.5 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<script src="/js/stopwatch.js" type="text/javascript" charset="utf-8"></script>
|
||
|
<link href="/stylesheets/style.css" rel="stylesheet">
|
||
|
<script src="/socket.io/socket.io.js"></script>
|
||
|
<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
|
||
|
<script src="/js/socket-ctrl.js"></script>
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
<style type="text/css">body{ background-color: white; }</style>
|
||
|
|
||
|
<div id="title">
|
||
|
<h1>NodeScore</h1>
|
||
|
</div>
|
||
|
|
||
|
<br/>
|
||
|
<img src="img/chromiumlogo.png" width="30" height="30"/>
|
||
|
<img src="img/nodejs-dark.png" height="30"/>
|
||
|
<img src="img/ECMAScript.png" height="30"/>
|
||
|
|
||
|
<br/><br/>
|
||
|
|
||
|
<div class="readme">
|
||
|
|
||
|
<h2>What is NodeScore?</h2> 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.
|
||
|
|
||
|
<p> 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.
|
||
|
</p>
|
||
|
<p>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.
|
||
|
</p>
|
||
|
<p>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.</p>
|
||
|
<h2>How does NodeScore work?</h2> 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.
|
||
|
|
||
|
<p>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.
|
||
|
</p>
|
||
|
|
||
|
<h2>How is this achived technically?</h2> 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. <p>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.</p>
|
||
|
|
||
|
<h2>Code</h2>
|
||
|
|
||
|
<a href="https://gitorious.org/nodescore">https://gitorious.org/nodescore</a>
|
||
|
|
||
|
|
||
|
<h2>Browser Compatability:</h2> 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.
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<br/>
|
||
|
|
||
|
|
||
|
<br/>
|
||
|
<script type="text/javascript" src="/js/footer.js"> </script>
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|