rc-web@42
|
1 <!DOCTYPE html>
|
rc-web@42
|
2 <html>
|
rc-web@42
|
3 <head>
|
rc-web@42
|
4 <script src="/js/stopwatch.js" type="text/javascript" charset="utf-8"></script>
|
rc-web@42
|
5 <link href="/stylesheets/style.css" rel="stylesheet">
|
rc-web@42
|
6 <script src="/socket.io/socket.io.js"></script>
|
rc-web@42
|
7 <script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
|
rc-web@42
|
8 <script src="/js/socket-ctrl.js"></script>
|
rc-web@42
|
9 </head>
|
rc-web@42
|
10
|
rc-web@42
|
11 <body>
|
rc-web@42
|
12 <style type="text/css">body{ background-color: white; }</style>
|
rc-web@42
|
13
|
rc-web@42
|
14 <div id="title">
|
rc-web@42
|
15 <h1>NodeScore</h1>
|
rc-web@42
|
16 </div>
|
rc-web@42
|
17
|
rc-web@42
|
18 <br/>
|
rc-web@42
|
19 <img src="img/chromiumlogo.png" width="30" height="30"/>
|
rc-web@42
|
20 <img src="img/nodejs-dark.png" height="30"/>
|
rc-web@42
|
21 <img src="img/ECMAScript.png" height="30"/>
|
rc-web@42
|
22
|
rc-web@42
|
23 <br/><br/>
|
rc-web@42
|
24
|
rc-web@42
|
25 <div class="readme">
|
rc-web@42
|
26
|
rc-web@42
|
27 <h2>What is NodeScore?</h2> NodeScore is a framework to facilitate
|
rc-web@42
|
28 networked telematic ensemble performance. As a framework it uses the
|
rc-web@42
|
29 "screen score" as its paradigm. While it could be used to syncronise
|
rc-web@42
|
30 any type of telematic event/performance in this context it is aimed at
|
rc-web@42
|
31 the musical performance.
|
rc-web@42
|
32
|
rc-web@42
|
33 <p> The goal of the NodeScore framework is to allow performers
|
rc-web@42
|
34 who are connected to a network via a computer/tablet/mobile device to
|
rc-web@42
|
35 syncronise to a master clock and recieve instructions, in
|
rc-web@42
|
36 realtime,from a central "conductor/director" as well as being able to
|
rc-web@42
|
37 communicate with one another.
|
rc-web@42
|
38 </p>
|
rc-web@42
|
39 <p>As performers may be geographically dispersed the technical setup
|
rc-web@42
|
40 needs to be trivial, this is why NodeScore uses the Internet browser
|
rc-web@42
|
41 as it is a cross-platform, standards compliant
|
rc-web@42
|
42 environment that will run on anycomputer without complex setup and
|
rc-web@42
|
43 installation process. All that the performers involved in a NodeScore
|
rc-web@42
|
44 performance need to do is open a browser such as Google's Chrome and
|
rc-web@42
|
45 point it to the address of the NodeScore server, login and await
|
rc-web@42
|
46 instructions that shall be displayed in the browsers window.
|
rc-web@42
|
47 </p>
|
rc-web@42
|
48 <p>The nature of these instuctions is the left to the composer, the
|
rc-web@42
|
49 only prerequisite when composing for the NodeScore framework is that
|
rc-web@42
|
50 the instructions are formatted in HTML5. This allows for the
|
rc-web@42
|
51 incorporation of a wide range of rich media content such as images,
|
rc-web@42
|
52 video, sound and animated SVG as well as simple plain text
|
rc-web@42
|
53 instructions. Any medium that can be displayed in an internet web
|
rc-web@42
|
54 browser maybe used in a NodeScore composition.
|
rc-web@42
|
55
|
rc-web@42
|
56 Other features include a shared, embedded network stopwatch and a
|
rc-web@42
|
57 live-chat window to facilitate syncronisation and communication
|
rc-web@42
|
58 between partisipants in the performance.</p>
|
rc-web@42
|
59 <h2>How does NodeScore work?</h2> The control interface for
|
rc-web@42
|
60 NodeScore is a webpage displayed in an internet web browser, from this
|
rc-web@42
|
61 control page the "conductor/director" can issue the precomposed, HTML5
|
rc-web@42
|
62 formated, compositional instructions. These instrutions can be
|
rc-web@42
|
63 deployed to the ensemble as a whole or targeted at specific
|
rc-web@42
|
64 perfomers. Once the instruction is deployed by the director it is
|
rc-web@42
|
65 instantly presented in the web browser of the performer/s.
|
rc-web@42
|
66
|
rc-web@42
|
67 <p>In a NodeScore performance the conductor/director also becomes
|
rc-web@42
|
68 active in the compositional process as he she decides who plays what
|
rc-web@42
|
69 material when. In this way NodeScore can be seen as an evolution of
|
rc-web@42
|
70 methods used by composers from Lutoslawski (Jeux vénitiens to Zorn
|
rc-web@42
|
71 ("Cobra") amongst others, where musicians are given cues chosen by the
|
rc-web@42
|
72 director indicating certian prearranged stratagies. NodeScore however
|
rc-web@42
|
73 alows much more complex media to be incorporated in the instructions
|
rc-web@42
|
74 as well as facilitating networked telematic performances in this
|
rc-web@42
|
75 style.
|
rc-web@42
|
76 </p>
|
rc-web@42
|
77
|
rc-web@42
|
78 <h2>How is this achived technically?</h2> NodeScore uses realtime web
|
rc-web@42
|
79 technologies including the node.js server software allowing serverside
|
rc-web@42
|
80 javascript as well as websockets. "Websockets" allows the server to
|
rc-web@42
|
81 push content to the clients without them requesting it first as is
|
rc-web@42
|
82 traditionally the case. <p>This has been possible in the past through a
|
rc-web@42
|
83 technique called "longpolling", though this was quite inefficient
|
rc-web@42
|
84 compatered to websockets which allow a persistant live connection
|
rc-web@42
|
85 between server and client. Through this connection the server can push
|
rc-web@42
|
86 content to the client in realtime for instant displayed in their
|
rc-web@42
|
87 browser.</p>
|
rc-web@42
|
88
|
rc-web@42
|
89 <h2>Code</h2>
|
rc-web@42
|
90
|
rc-web@42
|
91 <a href="https://gitorious.org/nodescore">https://gitorious.org/nodescore</a>
|
rc-web@42
|
92
|
rc-web@42
|
93
|
rc-web@42
|
94 <h2>Browser Compatability:</h2> This project uses some bleeding
|
rc-web@42
|
95 edge network technologies his means it will not currently work in all
|
rc-web@42
|
96 browsers, some versions of Firefox have disabled websockets for
|
rc-web@42
|
97 security reasons, also different browsers deal with CSS scaling in
|
rc-web@42
|
98 different ways for example. Recent versions of Chromium, Google Chrome or
|
rc-web@42
|
99 Firefox are recomended.
|
rc-web@42
|
100
|
rc-web@42
|
101 </div>
|
rc-web@42
|
102
|
rc-web@42
|
103 <br/>
|
rc-web@42
|
104
|
rc-web@42
|
105
|
rc-web@42
|
106 <br/>
|
rc-web@42
|
107 <script type="text/javascript" src="/js/footer.js"> </script>
|
rc-web@42
|
108
|
rc-web@42
|
109 </body>
|
rc-web@42
|
110
|
rc-web@42
|
111 </html>
|