Skip to content

History

Janata Lab edited this page Mar 25, 2022 · 3 revisions

Original concept and proposal

The Groove Enhancement Machine (GEM) was conceived during a National Academies Keck Futures Initiative (NAKFI) conference in November, 2015, building off of earlier work by Petr Janata and colleagues using single-person adaptive metronomes. The core question to be explored was whether synchrony in tapping behavior among individuals might be enhanced using a multi-person adaptive metronome. A proposal to fund the creation and testing of the GEM was submitted to NAKFI in January/February 2016 by Petr Janata (PI, University of California, Davis), Jonathan Berger (Stanford University), Kiju Lee (Case Western University), Scott Auerbach (University of Massachusetts, Amherst), and Andre Thomas (Texas Tech University), and funded shortly thereafter.

Initial development

Petr Janata, Johnathan Berger, Scott Auerbach, along with students Lauren Fink (UC Davis), Wisam Reid (Stanford), and David Miranda (Case Western) met at CCRMA at Stanford, July 15-17, 2016, to start work on the design of the original prototype. Wisam, Lauren, and David continued work on the project at CCRMA in August 2016.

Architecture

The mechanism for having an Arduino respond to taps on a force-sensitive-resistor (FSR) was derived from the Tap Arduino project of Schultz & van Vogt (2016).

Schultz, B. G., & van Vugt, F. T. (2016). Tap Arduino: An Arduino microcontroller for low-latency auditory feedback in sensorimotor synchronization experiments. Behavior Research Methods, 48(4), 1591–1607. https://doi.org/10.3758/s13428-015-0671-3

The communication architecture between the master (metronome) and slave (tapper) Arduinos was conceived by Petr Janata during the July 2016 session, with the decision for the tapper Arduinos to trigger interrupts on the metronome Arduino via the digital pins in order to reduce latencies as much as possible and to allow the requisite tap-time registering subroutine on the metronome Arduino to execute in response to the interrupt. Non-timing-critical communications between the metronome and tapper Arduinos were to be accomplished on the I2C bus.

Code

The identification of the requisite communication and audio playback libraries and writing of the metronome and tapper code sketches was accomplished by Petr Janata during the July 2016 meeting. The code was further developed by Wisam Reid and David Miranda in August 2016, with input from Lauren Fink and Petr Janata, and a rudimentary 4-person GEM was operational in September 2016.

Refinement

Making the GEM system experiment-ready required additional work. First, the Arduino sketches had to be refactored, which Petr Janata did in March/April of 2017 resulting in the first commits to this repository. Lauren Fink and Scottie Alexander further optimized and made more robust the Arduino sketches, and implemented communications with a front-end Python script, a data saving mechanism, and also developed a Python GUI for running experiments.

Testing

The initial set of experiments performed using the GEM are described in a separate repository: https://github.com/janatalab/GEM-Experiments-POC