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