Distributed Notation in the Browser, an Overview

Distributed Notation in the Browser, an Overview

DISTRIBUTED NOTATION IN THE BROWSER, AN OVERVIEW Jonathan Bell Aix Marseille Univ, CNRS, PRISM Perception, Representations, Image, Sound, Music Marseille, France [email protected] ABSTRACT nying the motets of the ars nova. 1 To paraphrase Vickery, animated notation simplifies the synchronization of human This paper endeavours to discuss a few available technolo- performers to multimedia, as well as the display of gen- gies for musical notation, from a user’s point of view, fo- erative or interactive scores in which the work can render cusing on “distributed notation”: musical notation rendered a different content each time [5], or adapt to the perfor- in real time to multiple devices simultaneously. The rapid mance of the performer [6]. Among these technologies, evolution of browsers and the cheaper cost of heteroge- three frameworks allow for real-time score display in the neous (cross-platform) systems inclines us to narrow down browser. the scope to browser-based solutions. The overview recalls a few key concepts of the JavaScript ecosystem, typically • INScore, which was operational as early as 2012 [7], addressed to composers with little background in web de- releases in 2020 its web version (INScoreWeb). velopment. The survey then compares three frameworks: • DRAWSOCKET [8, 9], which elaborates on its au- INScore (INScoreWeb), DRAWSOCKET, and SmartVox, fo- thors’ former (albeit still actively developed) nota- cusing on their respective approach to software architec- tional projects [10, 11, 12, 13] ture/implementation, as well as their “higher” user level. After highlighting the convergence points between INScore • SmartVox, best described as a web-based distributed and DRAWSOCKET - but also their own specificity, such as media player [14]. INScore’s time model, or DRAWSOCKET’s API, the paper concludes with a case study: the Tenor 21 choral concert. Whilst SmartVox is dedicated to a very specific task (the display and synchronisation of mp4 video files), INScore and DRAWSOCKET - which also both supports videos - 1. INTRODUCTION: MUSICAL NOTATION IN share with the Decibel Score Player (see [15], 2. The Can- THE DIGITAL AGE vas scoring mode) the ability to render in real time SVG 2 drawing commands via Open Sound Control (OSC) [16] 1.1 Animated Notation messaging in distributed setups (i.e. on multiple devices). Numerous Australian composers/academics have composed 1.2 Web-Based cases with and written about digital forms of notation: Vickery sees in animated screen-based notation ‘an important solu- The present study strictly observes browser based solutions tion to visualising a range of musical phenomena and tech- which is why the landmark Decibel Score Player [15], a na- niques including continuous parametrical changes, syn- tive iOS application, is not discussed here. Network com- chronisation with prerecorded audio or live processing, and munication is evidently simplified by web/browser-based nonlinear formal organisation’ [1]. Hope, citing Winkler, technologies, however the Decibel Score Player and a few sees animated notation as ‘a third way between improvi- other projects fully support this key feature of distributed sation and fixed scores’ [2]. In such settings, Wyatt ques- notation, such as: Pedro Louzeiro’s Comprovisador, which tions the role of the conductor [3] when for instance the distributes notation in real-time to several clients using bach timing is dictated by the advancement of a cursor on the [17] in Max/MSP, communicating through UDP (see sec- page. Kim-Boyle, finally, pioneers research at the inter- tion 2.1.3), or Slavko Zagorac’s ZScore [18], which is built section between notation and immersive augmented reality on the top of the native version of INScore [7]. technologies [4] (see section 4.1.1). After a brief overview of the web technologies most com- These approaches to notation present a drastic change in monly used by these notational systems, the paper intro- the organisation of musical time, which otherwise still fol- duces an non-exhaustive list of recent frameworks/pieces lows today principles inherited from the theory accompa- involving browser-based musical notation (Section 3.1), in order to compare a few of their general characteristics (Sec- tion 3.2). The paper then mainly focuses on DRAWSOCKET, Copyright: c 2021 Jonathan Bell et al. This is an open-access article distributed under the terms of the Creative Commons Attribution 3.0 Unported License, which 1 Attributed to Philippe de Vitry, the division of large temporal units tempus prolatio permits unrestricted use, distribution, and reproduction in any medium, provided ( ) into smaller one ( ), roughly corresponds to today’s time signatures, see for instance: https://en.wikipedia.org/wiki/Prolation the original author and source are credited. 2 https://en.wikipedia.org/wiki/Scalable Vector Graphics INScore and SmartVox, which are best known by the au- 2.2.2 Node.js thor. Node.js is an open-source, cross-platform, back-end Java- Script runtime environment that runs on the V8 engine and 2. OVERVIEW OF ASSOCIATED executes JavaScript code outside a web browser. Node.js TECHNOLOGIES owes its success to its module exchange platform NPM 4 , as well as to the convenience of writing the client and the 2.1 Communication Protocols server in the same language. 2.1.1 HTTP 2.2.3 Node for Max Hypertext Transfer Protocol (HTTP) is an application-layer The release of Max 8 in 2018 featured a new Javascript protocol for transmitting hypermedia documents, such as support with Node for Max. The Max API module helps HTML. Riding on the top of TCP, it was designed for com- interaction and communication with Max from within the munication between web browsers and web servers. Node context. 5 2.1.2 WebSocket 2.2.4 Frameworks WebSocket is distinct from HTTP. WebSocket is a com- Node.js is low level, which is why most applications use munications protocol that provides full-duplex communi- frameworks to deal with common server features. Routing, cation channels over a single TCP connection. It has be- most importantly, is used to divert users to different parts come the de facto standard for real-time interaction with of the web applications based on the request made. The the browser. Express framework has emerged as one of the most popu- 2.1.3 TCP-UDP lar framework among Electron, koa, meteor and vue.js to name a few. TCP is a connection oriented protocol. UDP is a connec- tion less protocol. As TCP provides error checking sup- 2.2.5 WebAssembly port and also guarantees delivery of data to the destination WebAssembly (abbreviated Wasm) is a new type of code router this make it more reliable as compared to UDP. On that can be run in modern web browsers. Providing lan- other hand UDP is faster and more efficient than TCP. guages such as C/C++, C# and Rust with a compilation target so that they can run on the web, the main goal of 2.1.4 OSC WebAssembly is to enable high-performance applications OSC [16] is a content format developed at CNMAT by on web pages designed to run alongside JavaScript. Adrian Freed and Matt Wright. Typically intended for sharing music performance data (gestures, parameters and 3. AN OVERVIEW OF WEB TECHNOLOGIES note sequences) between musical instruments either via FOR DISTRIBUTED NOTATION UDP (most common scenario) or TCP. ‘Distributing Music Scores to Mobile Platforms and to the 2.1.5 odot Internet’ [20], an idea idea expressed by Fober in 2015, en- joys a growing interest today, as exemplified by two major OSC developments at CNMAT later led to odot [19] which frameworks (see table 1) as well as multiple independent allows to label data with human readable text (associative initiatives by individual composers/developers (see table arrays). 3 Although discussed in greater detail in later sec- 2), all briefly described in the list below. tions, Figure 2 shows the translation operated by DRAW- SOCKET, from an OSC bundle (odot) into JSON. 3.1 Description 2.2 JavaScript 3.1.1 INScore Javascript is commonly referred to as the language of the INScore [7] is an environment for the design of augmented web. Originally client-side, Javascript engines are now em- interactive music scores, open to unconventional uses of bedded in some servers, usually via node.js. The most music notation and representation, including real-time sym- comprehensive documentation about the language can be bolic notation capabilities. It can be controlled in real- found at developer.mozilla.org. time using Open Sound Control [OSC] messages as well as using an OSC based scripting language, that allows de- 2.2.1 JSON signing scores in a modular and incremental way. INScore JavaScript’s native format, JSON - JavaScript Object Nota- supports extended music scores, combining symbolic no- tion - has eclipsed XML and thus became the most ubiqui- tation with arbitrary graphic objects. All the elements of tous data exchange format for any publicly available web a score (including purely graphical elements) have a tem- service. JSON supports associative arrays as well as or- poral dimension (date, duration and tempo) and can be dered lists of values (arrays). manipulated both in the graphic and time space. The IN- Score engine is based on a MVC architecture. The abstract 3 An associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each 4 https://www.npmjs.com/ possible key appears at most once in the collection. 5 https://docs.cycling74.com/nodeformax/api/module-max-api.html clients. As shown in Figure 2, the top level router sends the bundle to a specific client (here the violin). Replacing /vio- lon by /* would send the bundle to all. Then each keyword (/key or ”key” in Figure 2) obeys a slightly different - al- though consistent - syntax : “svg” will draw an svg on the page, “tween” will animate the svg according to its target /id value (in figure 2 the target svg’s id is “bob”), “pdf”, “sound” and “file” will load the corresponding files (e.g.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us