JamMo - Jamming mobile game for kids.


Main Images/videos Get It Play It Extend It Share Developing History

For developers

Bug tracker
Project page on gitorious

(Old project page on garage)


JamMo is written with C, using several libraries: GLib, Clutter Toolkit, Gstreamer, Tangle, Peerhood...

Pre-requirements: Tools

sudo apt-get install git-core automake gtk-doc-tools 
sudo zypper install git-core automake gtk-doc 

Pre-requirements: Libraries

Pre-requirements: Mandatory Libraries

SNDFILE          -loading raw-audio files
GLIB             -framework (removing this affects library below this)
 GSTREAMER       -audio
 JSON_GLIB       -reading text-files e.g. handling config files
     CLUTTER     -visual
         TANGLE  -visual
sudo apt-get install libsndfile1-dev \
     libglib2.0-dev \
     libgstreamer0.10-dev  \
     libjson-glib-dev \
sudo zypper install libsndfile-devel \
     glib2-devel \
     json-glib-devel \
     mesa-libGL-devel  \
     libXi-devel libX11-devel libXcomposite-devel libXext-devel libXdamage-devel cairo-devel pango-devel atk-devel
Clutter and Tangle must be compiled from source.

Compiling clutter

#STEP: compile and install Clutter (1.4.2).
#It can be installed paraller with clutter-1.0, it contains some essential fixes (and/or backports from upstream 1.6)
git clone git://gitorious.org/clutter-for-maemo/clutter14
cd clutter14
./configure  --disable-gtk-doc \
             --disable-introspection \
             --with-flavour=glx \
             --enable-debug=no  \
             --enable-cogl-debug=no \
autoreconf -i --force
./configure  --disable-gtk-doc \
             --disable-introspection \
             --with-flavour=glx \
             --enable-debug=no  \
             --enable-cogl-debug=no \
             --with-json=internal \
make sudo make install sudo ldconfig
Needed on MeeGo
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

Compiling Tangle

git clone git://gitorious.org/tangle/tangle.git
cd tangle
sudo make install
sudo ldconfig

Pre-requirements: Optional Libraries

LIBOSSO       -N900 prevent dimming. N900 context (prevent starting multiple jammo etc)
DBUS_GLIB     -N900 slide mutes mentor
PEERHOOD      -networking. Pair and group games.
  +OPENSSL    -Secure networking (if peerhood used, this is then mandatory) (this is useless without peerhood)
  GTK         -teacher server (this is useless without peerhood)
sudo apt-get install libgtk2.0-dev \
  libssl-dev \
Peerhood must be compiled from source.

Compiling Peerhood

#READ MORE: http://gitorious.org/jammo/pages/JamMoAndPeerHood
sudo apt-get install subversion
svn checkout https://www2.it.lut.fi/svn/public/peerhood/trunk/PeerHood_core/
cd PeerHood_core
sudo make install
sudo ldconfig


Get source code

git clone http://git.gitorious.org/jammo/jammo.git


cd jammo
No need to install, you can run it with './jammo' but you need data files installed

Get data files

#Note 1: Data files are installed for your computer under direcory '/opt/jammo/'
#Note 2: JamMo will not find data files in any other directory
git clone http://git.gitorious.org/jammo/jammo-data.git

Install data files to '/opt/jammo/'

cd jammo-data
sudo make install

Starting JamMo


For Maemo developers

This instruction suppose you are using Scratchbox2 (sb2).

Read how to install Scratchbox2 crosscompiling environment.
(This will continue just where step4 ended in 'install crosscompiling environment')

This instruction doesn't suppose you have compiled JamMo for PC. If you have done same step you do not need do it again (e.g download source codes)


If you already have compiled JamMo for PC, these are installed.
sudo apt-get install git-core automake pkg-config gtk-doc-tools

Step: Dependencies

You need these, even you have installed these on your Ubuntu.
You need enable extras-devel for crosscompiler.
echo 'deb http://repository.maemo.org/extras-devel/ fremantle free non-free' >> ~/.maemo-sdk/rootstraps/armel/fremantle5.0minimal_armel/etc/apt/sources.list
Then you need Nokias closed source part for developing 3D accelerated applications.
This has steps, which can't be automated, just follow steps.
Go to page http://tablets-dev.nokia.com/eula/index.php
Type given number to field and press 'ACCEPT'

Then it gives you line like that: deb http://repository.maemo.org/ fremantle/USE_YOUR_OWN_CRYPTIC_CODE nokia-binaries

Add this to sources.lst: (NOTE:You really must change USE_YOUR_OWN_CRYPTIC_CODE!)
echo 'deb http://repository.maemo.org/ fremantle/USE_YOUR_OWN_CRYPTIC_CODE nokia-binaries' >> ~/.maemo-sdk/rootstraps/armel/fremantle5.0minimal_armel/etc/apt/sources.list
Update packages
sb2 -eR apt-get update
#It might say some warning about 'GPG error', you can still continue.

#Install dependencies
sb2 -eR apt-get install libgtk2.0-dev libgstreamer0.10-dev  \
  libjson-glib-dev libsndfile-dev libssl-dev \
  libbluetooth-dev libdbus-glib-1-dev \
  mce-dev libosso-dev \
  libclutter-1.4-dev libtangle-0-dev libpeerhood-0-dev

Step : Download JamMo source codes

git clone http://git.gitorious.org/jammo/jammo.git

Step : compile JamMo

cd jammo
sb2 -e ./configure N900=yes
sb2 -e make

Step : AUDIO to device

You can install some of application-packages on N900, named 'jammo3-6-fi', 'jammo7-12-en'... This can take same time. You can fetch audio data (and automatically convert them) to computer:
cd jammo
git clone git@gitorious.org:jammo/jammo-loader.git
cd jammo-loader/
sudo ./install_all_jammo_data.sh
And then copy /opt/jammo to MyDocs/jammo_data on N900.

Step : IMAGES to device

cd ..
git clone http://git.gitorious.org/jammo/jammo-data.git
cd jammo-data/data
Copy subfolders from jammo7-12_data and jammo3-6_data to /opt/jammo on N900.

Development documentation

Modularity of code

Current modules:
  • CHUM is heart of JamMo logic
  • CEM is handling logging (and mentor someday)
  • MEAM is for playing sounds and handling sequencer