Simplified Expressive Mobile Development with Nexusui

Simplified Expressive Mobile Development with Nexusui

Proceedings of the International Conference on New Interfaces for Musical Expression Simplified Expressive Mobile Development with NexusUI, NexusUp and NexusDrop Ben Taylor Jesse Allison Will Conlin Louisiana State University Louisiana State University Louisiana State University 1065 Digital Media Center 1065 Digital Media Center 1065 Digital Media Center Baton Rouge, Louisiana Baton Rouge, Louisiana Baton Rouge, Louisiana [email protected] [email protected] [email protected] Yemin Oh Danny Holmes Louisiana State University Louisiana State University 1065 Digital Media Center 1065 Digital Media Center Baton Rouge, Louisiana Baton Rouge, Louisiana [email protected] [email protected] ABSTRACT projects have explored the terrain of desktop-to-mobile in- terface libraries, including massMobile for distributed per- Developing for mobile and multimodal platforms is more 3 important now than ever, as smartphones and tablets pro- formance [13] and Interface.js for Gibber [9]. liferate and mobile device orchestras become commonplace. While the aforementioned toolkits should be explored, we We detail NexusUI, a JavaScript framework that enables present NexusUI as an alternative that expands on the sim- rapid prototyping and development of expressive multitouch plicity of TouchOSC but that retains the depth and flexibil- electronic instrument interfaces within a browser. ity of a mobile interface development platform. [2] Benefits Extensions of this project assist in easily creating dy- of NexusUI including ease-of-code, novel and non-standard namic user interfaces. NexusUI contains several novel en- musical interface elements, and two paradigms for graphi- capsulations of creative interface objects, each accessible cally creating interfaces { NexusUp and NexusDrop { which with one line of code. NexusUp assists in one-button du- allow for rapid prototyping and development of interfaces plication of Max interfaces into mobile-friendly web pages by non-programmers. that transmit to Max automatically via Open Sound Con- As Atau Tanaka notes, the nature of an instrument is trol [14]. NexusDrop enables drag-and-drop interface build- both self-sufficient and open-ended [10]. Nexus continues ing and allows users to save and recall interfaces. the reimagining of what open-ended could be: open to ges- Finally, we provide an overview of several projects made ture and touch, but also open to the audience, to other with NexusUI, including mobile instruments, art installa- phones, to the World Wide Web and its data. tions, sound diffusion tools, and iOS games, and describe Whether a musician turns to mobile instrument-making Nexus' possibilities as an architecture for our future Mobile for portability, gesturability, distributability, or accessibil- App Orchestra. ity, NexusUI and its extensions attempt to remove the bar- riers for that musician to develop her mobile NIME. Keywords 2. NEXUS USER INTERFACE mobile music, web interface, multimodal, NIME, Web Au- In NEXUS: Collaborative Performance for the Masses, Han- dio API, OSC, mobile games, mobile apps, websockets dling Instrument Interface Distribution through the Web, we exposited a distributed performance platform using web 1. INTRODUCTION applications, called Nexus. [3] The user interface portion of that project, NexusUI [1], has become a robust and easy- Mobile music performance is a growing community [7], driven to-use toolkit for quickly building flexible multimodal inter- by development platforms for musical apps [5, 6] as well as 1 2 faces on mobile devices. commercial controllers like TouchOSC and Mira . As a UI toolkit, NexusUI can simplify development of The web browser is established as a desirable platform many existing digital instrument forms, including iOS apps for single-build, multi-platform NIMEs that are compat- using libPD [4], remote gestural controllers of Max patches ible across desktop and mobile devices, and that can be with mobile devices, and self-contained Web Audio projects easily distributed [13]. Advantages for building browser- in the browser. based interfaces have been enumerated [8, 9], and several 2.1 Implementation 1http://hexler.net/software/touchosc 2 At its core, NexusUI is a JavaScript library of interfaces http://cycling74.com/products/mira drawn on HTML5 <canvas> elements. A central JavaScript framework, nexusUI.js, provides interface initialization, uni- fied design templates, transmission protocols, multimodal Permission to make digital or hard copies of all or part of this work for event listening, web interaction, and a library of common personal or classroom use is granted without fee provided that copies are functions that can be drawn upon within individual user not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to interface objects. 4 republish, to post on servers or to redistribute to lists, requires prior specific NexusUI makes use of the jQuery framework , which should permission and/or a fee. 3http://www.charlie-roberts.com/interface/ NIME’14, June 30 – July 03, 2014, Goldsmiths, University of London, UK. 4 Copyright remains with the author(s). http://www.jquery.com/ 257 Proceedings of the International Conference on New Interfaces for Musical Expression NexusUI objects, using the video camera's incoming pixel matrix as a touch field, and letting incoming audio data be utilized as part of your Nexus interface through the web. 2.2.1 Making an Interface To make the library as accessible as possible, creating a Nexus NIME has been kept as simple as possible. Interface objects are created by adding a custom nx attribute to any HTML5 <canvas> element to specify which NexusUI object to load. The HTML code for invoking a single NexusUI button is: <canvas nx="button"></canvas> This button, by default, is of an average size (100 pix- els), is accessible in JavaScript with the variable button1, is both click and touch-compatible, and will transmit its interaction data as an AJAX request to the hosting server. These default settings can be customized upon initialization or updated at any point afterward. The following five lines of code show the complete body of an HTML document with Nexus multitouch, tilt sensor, and toggle, resulting in ten points of continuous touch control, three axes of continuous motion control, and a toggle that could turn audio on and off. <body> Figure 1: A NexusUI interface on a mobile phone. <canvas nx="multitouch"></canvas> <canvas nx="tilt"></canvas> <canvas nx="toggle"></canvas> be loaded prior to loading nexusUI.js. Linking to jquery.js </body> and nexusUI.js constitutes a full initialization of NexusUI. 2.1.1 Nexus Manager In developing Nexus, several methods are provided for creating objects, including JavaScript and HTML paradigms, Upon loading NexusUI, the core manager is instantiated as however, the nx HTML attribute has been the method most the JavaScript object nx. It catalogs all Nexus objects on commonly chosen technique by users. the page, controls a central animation timer, and provides the shared methods and properties for all objects in the 2.2.2 Configuring Objects library. For example, the styling of Nexus is centralized NexusUI is designed with a convention over configuration so that nx.colorize() can modify the color scheme of the approach, meaning objects are given logical and functional entire UI, or nx.lineWidth can change the default thickness default settings wherever possible, but are also customiz- of drawn lines throughout the UI. able to retain flexibility of development. This is evidenced above in the default OSC name assigned to the button, /but- 2.2 Interface Objects ton1, which could be changed in JavaScript (.oscName) or NexusUI includes standard audio interaction modes such as in HTML with an ID attribute to be something more de- button, toggle, dial, slider, multislider, 2-dimensional scriptive like /volume: position slider, matrix with variable amplitudes for each matrix point, number, message, keyboard, item select, <canvas nx="button" id="volume" style="width:200px"> and comment. </canvas> Focusing specifically on mobile paradigms, a multitouch version of the 2-dimensional slider is included which offers This code would also overwrite the default width of the five touchpoints that each output x/y data, resulting in con- object, with the GUI adjusting automatically to its new tinuous control over ten points of data. Also included is an size. accelerometer tilt object which functions on iOS and An- Many objects have configurable interaction modes. For droid devices, and the Google Chrome browser. The tilt example, Nexus multitouch can operate in normal (contin- object accesses x and y tilt, and \z" vertical force. uous) mode, or matrix (discrete or \snap-to-grid" motion) Several novel, non-standard music interaction paradigms mode. A Nexus button has three modes of interaction: are also included. The colors interface provides RGB data from a chosen pixel of a colorwheel in response to touch. • impulse transmits 1 on touch, nothing on release Joints outputs the connections of one node to any nearby node, and relative distance between each node. Metroball • toggle transmits 1 on touch, 0 on release lets users add bouncing balls into the interface and control them with tilt motion, outputting data on a ball each time • node transmits [1,X,Y] on touch/move, [0,X,Y] on it collides with an edge. Finally, pixels, is a matrix that release you can draw into (in draw mode) or use as a sequencer (in sequence mode). Animation

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 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