BeatMohan’s Symphony: Designing a Game Environment to Scaffold Pattern-Based Musical Organization

Noel Alben, and Jason Freeman

Proceedings of the International Conference on New Interfaces for Musical Expression

Abstract

BeatMohan’s Symphony is a 2D musical game environment designed to scaffold pattern-based music organization through live coding. The work is grounded in a tradition established by Jeanne Bamberger, whose music pedagogy techniques emphasize active engagement with musical structures to support the development and refinement of learners' mental models for music making. We translate this experience design learning framework into a goal-directed musical game in which pattern-based live coding functions as both the primary musical interaction and the core gameplay mechanic. The 2D character, BeatMohan, visually anchors the musical events. Learners modify code to guide the character’s movement in response to spatial and rhythmic constraints presented at each level. The game's modular architecture is intended to allow educators to foreground specific aspects of pattern-based music organization. This paper presents the design rationale and implementation of BeatMohan’s Symphony. We report on a preliminary qualitative analysis of user feedback, examining whether learner interactions align with the intended pedagogical framing. Through gameplay observations and post-activity interviews, we analyzed how participants interacted with the environment, interpreted constraints, and responded to in-game feedback when organizing rhythmic patterns through code. Our analysis suggests that the system provides a context for eliciting and observing the development of musicality within a short gameplay session.

Citation

Noel Alben, and Jason Freeman. 2026. BeatMohan’s Symphony: Designing a Game Environment to Scaffold Pattern-Based Musical Organization. Proceedings of the International Conference on New Interfaces for Musical Expression. DOI: 10.5281/zenodo.20784453 [PDF]

BibTeX Entry

@inproceedings{nime2026_149,
 abstract = {BeatMohan’s Symphony is a 2D musical game environment designed to scaffold pattern-based music organization through live coding. The work is grounded in a tradition established by Jeanne Bamberger, whose music pedagogy techniques emphasize active engagement with musical structures to support the development and refinement of learners' mental models for music making. We translate this experience design learning framework into a goal-directed musical game in which pattern-based live coding functions as both the primary musical interaction and the core gameplay mechanic. The 2D character, BeatMohan, visually anchors the musical events. Learners modify code to guide the character’s movement in response to spatial and rhythmic constraints presented at each level. The game's modular architecture is intended to allow educators to foreground specific aspects of pattern-based music organization. This paper presents the design rationale and implementation of BeatMohan’s Symphony. We report on a preliminary qualitative analysis of user feedback, examining whether learner interactions align with the intended pedagogical framing. Through gameplay observations and post-activity interviews, we analyzed how participants interacted with the environment, interpreted constraints, and responded to in-game feedback when organizing rhythmic patterns through code. Our analysis suggests that the system provides a context for eliciting and observing the development of musicality within a short gameplay session.},
 address = {London, United Kingdom},
 articleno = {149},
 author = {Noel Alben and Jason Freeman},
 booktitle = {Proceedings of the International Conference on New Interfaces for Musical Expression},
 doi = {10.5281/zenodo.20784453},
 editor = {Benedict Gaster and João Tragtenberg and Anna Xambó and Tom Mitchell},
 issn = {2220-4806},
 month = {June},
 note = {},
 numpages = {9},
 pages = {1211--1219},
 title = {BeatMohan’s Symphony: Designing a Game Environment to Scaffold Pattern-Based Musical Organization},
 track = {paper},
 url = {http://nime.org/proceedings/2026/nime2026_149.pdf},
 year = {2026}
}