<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>SnAIR Drum: A Gesture Interface for Rhythm Practice.</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Federico Cau</string-name>
          <email>zima@hotmail.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fabio Sorrentino</string-name>
          <email>fabio.sorrentino@unica.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessandro Carcangiu</string-name>
          <email>alessandro.carcangiu@diee.unica.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lucio Davide Spano</string-name>
          <email>davide.spano@unica.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Author Keywords</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. Electric and Electronic, Engineering, University of Cagliari</institution>
          ,
          <addr-line>Via Marengo 2, 09123, Cagliari</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dept. Mathematics and</institution>
          ,
          <addr-line>Computer Science</addr-line>
          ,
          <institution>University of Cagliari</institution>
          ,
          <addr-line>Via Ospedale 72, 09124, Cagliari</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Gesture Interface; Music; Rhythm practice; Drums; Leap</institution>
          ,
          <addr-line>Motion; 3D User Interface; WebGL;</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The availability of standard devices for gestural interaction supports the distribution on the web of interactive teaching material for learning music. In this paper, we focus on rhythm practice, introducing an exercise platform that exploits gestural interaction for tracking the user's movements and a web-based environment for loading exercises and checking his/her performance. We discuss the design and the technical implementation of the solution.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Copyright is held by the authors/owner(s).
CHItaly ’17, September 18-20, 2017, Cagliari, Italy.</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>The rhythm or groove in music is an intuitive concept that is
really hard to put into practice without a good level of
exercise. It consists of the skills needed by a player for using a
rhythm sequence that is repeated inside the song temporal
flow, maintaining the coherence in the sound progression.
All musicians must learn or develop these skills since it is
required for mastering an instrument.</p>
      <p>Usually, these skills are developed through self-study and
occasional lessons with a music teacher. Therefore, in most
of the time spent in practising the student is alone and this
leads to situations where mistakes are not noticed by
students.</p>
      <p>The evolution of interaction modalities that are currently
supported by the web opens this environment to more
advanced applications for learning music theory. In this work,
we introduce SnAIR Drum, a gestural interface combined
with score visualisation for practising the drums. The
application interface supports the user in learning how to follow
the specified rhythm, how to read the score relying on the
body coordination.</p>
    </sec>
    <sec id="sec-3">
      <title>Related work</title>
      <p>
        The idea of applying gestural interaction for recognising
movements related to the percussive instruments has been
widely investigated in the literature. The recognition
technology has a huge impact on the effectiveness of these
interfaces since the precision and the latency has a key role
in their usability. Tindale et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] discuss different
tracking techniques and provide an evaluation of their pros and
cons. Bott et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] used a general purpose gesture input
device such as the Nintendo WiiMote for controlling playing
a drum game, studying the spatial positioning of the
interactive elements for remotes. A similar attempt with a different
gestural device (Microsoft Kinect) is discussed in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The
designed interface allows the collaboration of more than
one musician.
      </p>
      <p>
        Commercial applications for playing the drums through
gestural interaction exist in the market. In particular, we can
mention here AirBeats [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], a Leap Motion-based
application that allows users to create rhythms with different styles:
Hip-Hop, Dubstep, Trance etc. AirBeats allows using fingers
and sticks for playing virtual pads with mid-air movements.
In this work we set a different objective for the interface: we
do not focus on the expressiveness of the musician, but on
the exploitation of the gestural input for teaching purposes,
including score reading.
      </p>
    </sec>
    <sec id="sec-4">
      <title>User Interface</title>
      <p>SnAIR Drum is a web application that on relies on gestural
input for completing percussion exercises. It combines both
a simulation of the spatial positioning of the different parts,
together with the visualisation of the score and a support for
reading it during the exercise.</p>
      <p>The SnAIR drum interface is shown in Figure 2. In the left
part, it visualises the different drum pieces, while the right
part shows the score for the exercise. The user plays the
virtual drum with his/her fingertips: the movements are
shown in Figure 1. In order to support the coordination
between the hand movements and the effects on the
virtual pads, the interface shows a stylised representation of
the user’s hands (see Figure 2). The drum parts
positioning tries to balance two different needs: the first is the
correspondence between the positioning of a piece in a real
drum set and in the virtual environment. The second is the
gestural tracking device limitation, that provides information
only on the hand movements. Therefore, we cannot rely on
legs for controlling e.g., the kick and the hit-hat.</p>
      <p>We positioned the drum pieces in three concentric circles
(see Figure 2, left part): in the inner one, we positioned
those controlled with feet and the snare, in the middle one
the toms, while cymbals are in the outer circle. The
interaction with the pieces is very simple: each one is contained in
a box. When one of the fingertips touches one these boxes,
the application emits the corresponding piece sound and
changes the colour of the corresponding bounding box.</p>
      <p>The exercise support works as follows. The user loads
through a menu the audio file containing the exercise
musical base and the score of the drum part in the song. When
the user pushes the play button (Figure 2 top part), the
application plays the exercise base and the score
representation highlights the current note that should be played by the
user. According to the user’s input, the tool shows a green
feedback when if the user played the right piece at the right
time, while it shows a red icon otherwise. In Figure 2 we
show an example of error feedback.</p>
      <p>The adherence of the user to the score is computed
automatically by the application defining time buffers around the
note duration. The scheme is shown in Figure 3: according
to the note duration and to the song tempo, the application
creates a buffer around the note duration, in order to be
tolerant to small imperfections in the user’s performance. If
the user beats the correct piece in the green interval, the
application considers the execution correct, and wrong
otherwise. It is worth pointing out that there may be differences
between the time when the user performs the movement
and the instant sensed by the application due to input and
elaboration latency, as we discuss in the following section.
A demo of the application is available at the following URL:
https://youtu.be/P9Gm5CEAvI4.</p>
    </sec>
    <sec id="sec-5">
      <title>Implementation</title>
      <p>
        The implementation consists of four main components,
which control the main elements of the interface.
The first is the gestural input component, based on the
Leap Motion SDK [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It supports the hand tracking,
providing a hand-skeleton abstraction. The SDK input stream
updates the position and orientation of the on-screen stylised
representation of the user’s hands.
      </p>
      <p>
        The 3D elements in the user interface rely on Three.JS [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
a high-level Javascript library for managing WebGL [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
contents inside HTML pages. This component draws the hand
representation, the cubes related to the drum kit parts,
detecting the collision with the fingertips.
      </p>
      <p>
        The music score and playing component controls the on
screen score visualisation, the execution feedback, the
base and the drum playing. The visualization exploits the
Abcweb.js library [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. It is able to read the XML definition of
the score and to synchronise it with a musical base, moving
a cursor on the different notes according to song tempo.
From the same score description, the application derives
a queue of events corresponding to the correct execution
of the song, which is the temporal distribution of the green
areas in Figure 3. This event queue, together with the ones
raised by the input device, is used for checking the user’s
performance.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we introduced SnAIR Drum, a web-based
application for supporting rhythm exercises through gestural
interaction. It is built on top of standard web technologies
and it is easy to distribute as teaching material, for
complementing existing text, video and audio files.</p>
      <p>The application is designed for supporting a proper music
training, including means for enhancing the physical
coordination and the user’s ability to read and understand the
score. In addition, it supports an automated performance
checking that provides feedback to the learner.</p>
      <p>In future work, we aim at refining the platform, adding the
content authoring part. Complementing this part of the
application would enable the creation of an exercise sharing
platform for promoting the instrument learning. Finally, we
are planning to evaluate the exercise platform with different
user tests with both student and music teachers.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Jared</surname>
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Bott</surname>
          </string-name>
          , James G. Crowley, and
          <string-name>
            <surname>Joseph J. LaViola</surname>
          </string-name>
          , Jr.
          <year>2009</year>
          .
          <article-title>Exploring 3D Gestural Interfaces for Music Creation in Video Games</article-title>
          .
          <source>In Proceedings of FDG '09. ACM</source>
          , New York, NY, USA,
          <fpage>18</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Josep</surname>
            <given-names>M Comajuncosas</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Alex</given-names>
            <surname>Barrachina</surname>
          </string-name>
          ,
          <string-name>
            <surname>John O'Connell</surname>
            ,
            <given-names>and Enric</given-names>
          </string-name>
          <string-name>
            <surname>Guaus</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Nuvolet: 3D Gesture-driven Collaborative Audio Mosaicing.</article-title>
          .
          <source>In NIME</source>
          .
          <volume>252</volume>
          -
          <fpage>255</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Handwavy</surname>
          </string-name>
          .
          <year>2017</year>
          . AirBeats. https://gallery.leapmotion. com/airbeats/. (
          <year>2017</year>
          ). Accessed:
          <fpage>2017</fpage>
          -07-16.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Kronos</given-names>
            <surname>Group</surname>
          </string-name>
          .
          <source>WebGL 2</source>
          .0 Specification. https: //www.khronos.org/registry/webgl/specs/latest/2.0/. (????).
          <source>Accessed: 2017-07-16.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Leap</given-names>
            <surname>Motion</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Leap Motion Developer</article-title>
          . https: //developer.leapmotion.com/. (
          <year>2017</year>
          ). Accessed:
          <fpage>2017</fpage>
          - 07-16.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Three</surname>
            <given-names>JS</given-names>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Three JS documentation</article-title>
          . https:// threejs.org/. (
          <year>2017</year>
          ). Accessed:
          <fpage>2017</fpage>
          -07-16.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Adam</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Tindale</surname>
            , Ajay Kapur, George Tzanetakis,
            <given-names>Peter</given-names>
          </string-name>
          <string-name>
            <surname>Driessen</surname>
            , and
            <given-names>Andrew</given-names>
          </string-name>
          <string-name>
            <surname>Schloss</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>A Comparison of Sensor Strategies for Capturing Percussive Gestures</article-title>
          .
          <source>In Proceedings of NIME '05</source>
          . National University of Singapore, Singapore, Singapore,
          <fpage>200</fpage>
          -
          <lpage>203</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Wim</surname>
          </string-name>
          , Vree.
          <year>2017</year>
          .
          <article-title>Abcweb.js library</article-title>
          . https://wim.vree. org/js/index.html. (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>