Skip to content

About

A music ear-training game built for Reachy Mini robot

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

title Chord Guessing Game
emoji 🎵
colorFrom purple
colorTo blue
sdk static
pinned false
tags
reachy_mini
reachy_mini_python_app
music
education

Chord Guessing Game for Reachy Mini

A music education game built on the Reachy Mini Conversation App. Reachy Mini becomes a conversational game host that plays musical sounds and challenges kids to guess what they heard — in any language!

Architecture

The game runs as a conversation app profile. The LLM (via OpenAI's Realtime API) acts as the game host, calling game tools to play challenges, evaluate answers, and manage scoring. No custom voice pipeline or state machine needed — the LLM drives the game flow conversationally.

reachy_mini_conversation_app (runtime)
  ├── OpenAI Realtime API (voice I/O, multilingual)
  ├── Movement Manager (dances, emotions)
  └── Game Tools (profile: chord_game)
        ├── play_challenge   — synthesize & play audio
        ├── check_answer     — evaluate the kid's response
        ├── get_hint         — return a hint
        ├── get_score        — return score/level info
        └── replay_challenge — replay current audio

Features

  • 5 progressive levels: Single notes, note sequences, chords, chord progressions, and musical modes
  • Conversational: Reachy speaks, listens, and responds naturally in any language
  • Robot celebrations: Dances and emotions for correct answers
  • Star scoring: Earn 1-3 stars per challenge with streak bonuses
  • Level unlocking: Earn enough stars to unlock harder levels

Requirements

  • Reachy Mini robot
  • Python 3.10+
  • OpenAI API key

Installation

pip install .

Piano audio (optional but recommended)

The game uses SoundFont samples for realistic piano sound via FluidSynth. If the native library is not found, it falls back to basic sine wave synthesis.

To enable piano audio, install the FluidSynth library for your platform:

Platform Command
macOS brew install fluidsynth
Ubuntu/Debian sudo apt install libfluidsynth3
Fedora sudo dnf install fluidsynth-libs

No extra Python packages needed — pyfluidsynth is installed automatically with the game.

Configuration

Copy .env.example to .env and set your OpenAI API key:

cp .env.example .env
# Edit .env with your API key

Usage

# Run directly
chord-guessing-game

# Or as a module
python -m chord_game.main

The game connects to your Reachy Mini and starts a conversation. The robot will introduce itself and begin playing challenges.

How to Play

  1. Reachy Mini introduces the game and plays a musical sound
  2. Listen carefully and say your answer out loud (in any language!)
  3. Reachy tells you if you're right and celebrates with a dance
  4. Earn stars based on how quickly you answer correctly
  5. Build streaks for bonus stars and unlock new levels

Levels

Level Name Description Stars to Unlock
1 Single Notes Identify individual notes (C, D, E...) 0
2 Note Sequences Identify sequences of 2-4 notes 8
3 Chords Name chord types (major, minor...) 20
4 Chord Progressions Identify sequences of chords 35
5 Modes Identify musical modes (dorian, mixolydian...) 50

About

A music ear-training game built for Reachy Mini robot

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages