Musical Engineering in JamMo Mikko Gynther Lappeenranta University of Technology P.O.Box 20, 53851 Lappeenranta, Finland mikko.gynther@lut.fi Henrik Hedberg Department of information Processing Science, University of Oulu P.O.Box 3000, 90014 University of Oulu, Finland henrik.hedberg@oulu.fi Abstract This paper discusses implementation of musical engineering components in the UMSIC project. The implemented components are parts of JamMo, an open source musical learning and collaboration software tool for children. JamMo is targeted at Maemo operating system and Nokia N900 mobile device. In the implementation GStreamer streaming media framework, known from media players for Linux, was utilized. Available GStreamer elements were used when applicable and more were created to meet the requirements for JamMo. All GStreamer elements were controlled and accessed through implemented classes. The implemented elements consisted of virtual instruments, a metronome and a pitch detector. These elements utilized sound synthesis and analysis. GStreamer framework was found effective in creating complex audio pipelines and suitable for creating new kinds of audio elements beyond its most common context. Index Terms: UMSIC, JamMo, Maemo, Nokia N900, GStreamer, sound synthesis, sound analysis I. INTRODUCTION UMSIC is a multidisciplinary and transnational science and technology project that started in 2008 in will end in 2011. It aims at measuring and increasing social inclusion of children by the means of musical collaboration. In the UMSIC project software called JamMo is developed. JamMo is a music collaboration and learning tool intended at children aged from 3 to 12. Children aged from 3 to 6 can play a singing game and a simple loop composition game. Children aged from 7 to 12 can also play instruments and use recorded singing or playing with instrument performances as parts of compositions. The JamMo application is targeted at Maemo [8] operating system and Nokia N900 [11] mobile device. Thus, a suitable musical engineering framework for mobile use had to be implemented. It was decided to be built upon existing multimedia libraries to reduce the amount of work, and because Maemo platform has them available. The specific needs of multi-track sequencer, unique instruments and simultaneous audio playing and recording were implemented during the project. This paper answers to the question what is the most suitable way to implement a sequencer framework based on existing libraries in mobile environment. It is based on the experiences we got during the project. II. BACKGROUND JamMo is written in C language and released under GPL 2 license. Some of its modules utilize GObject [2] model from GLib [1] which is a cross-platform software utility library. Although, JamMo is targeted at Nokia N900 [11] and Maemo [8] operating system it can easily be built and run on other Linux distributions as well [6]. JamMo source code can be downloaded at Gitorious project hosting service and compiled binaries are available for Maemo and Ubuntu Linux [5]. __________________8TH CONFERENCE OF FINNISH-RUSSIAN UNIVERSITY COOPERATION IN TELECOMMUNICATIONS ---------------------------------------------------------------------- 58 ----------------------------------------------------------------------