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