Robotics & Music — Live Adaptive Jazz Ensemble

JazzBot

Machines that do not just play notes —
they listen, respond, and groove.

🥁 Drummer Robot Robot
🎹 Pianist Robot Robot
🎸 Bassist Human
🎺 Trumpet Human
ROBOT DRUMMER  ·  ROBOT PIANIST  ·  HUMAN BASSIST  ·  HUMAN TRUMPETER  ·  JETSON ORIN  ·  ORCA HAND  ·  A1 ARM  ·  ESP32  ·  SWING GROOVE  ·  ADAPTIVE JAZZ  ·  ROBOT DRUMMER  ·  ROBOT PIANIST  ·  HUMAN BASSIST  ·  HUMAN TRUMPETER  ·  JETSON ORIN  ·  ORCA HAND  ·  A1 ARM  ·  ESP32  ·  SWING GROOVE  ·  ADAPTIVE JAZZ  · 

Can robots become
responsive bandmates?

Jazz is built on interaction. A drummer listens to the bassist. A pianist responds to the soloist. A trumpet player shapes phrases based on what the rhythm section gives back.

Most music robots are either pre-programmed machines or mechanical instruments that play fixed tracks. JazzBot is different.

"A robot that can play jazz well must be more than a mechanical sequencer. It needs musical judgment."

Why Jazz?

Jazz is a perfect testbed for musical robotics because it demands:

Timing
Dynamics
Interaction
Improvisation
Listening
Expressiveness
  • 01 Robotic drummer plays a swing groove reliably
  • 02 Robotic pianist plays simple chord voicings and melodies
  • 03 Both robots synchronize to the same master clock
  • 04 Human bass and trumpet can play along
  • 05 Robots listen and adapt to human timing
RoleMusicianPurpose
DrumsRobotSwing feel, fills, support
PianoRobotChords, comping, melody
BassHumanTime feel, harmonic movement
TrumpetHumanMelody, improvisation
Design

One platform,
two instruments.

The drummer and pianist share the same core architecture — Jetson Orin as brain, real-time controllers for actuation, timestamped commands, and shared musical scheduling.

Human musicians ├── bass └── trumpet Microphones / MIDI / sensorsJetson Orin — master brain ├── tempo tracking ├── jazz logic ├── song structure ├── timing scheduler ├── robot pianist planner └── robot drummer planner ↓ Real-time controllers ├── ESP32 / motor controllers for drummer ├── A1/OpenArm controllers for pianist arms └── ORCA hand control stack for fingersPhysical robots ├── robot drummer └── robot pianist
First Milestone

Robot Drummer

Fixed actuator modules for main voices, one movable accent arm for visual presence. Fast to build, validates the entire timing system.

VoiceMechanismPurpose
Ride cymbalFixed actuatorMain swing pattern
Hi-hatFixed / pedalBeats 2 & 4
SnareFixed actuatorBackbeat, fills
KickPedal actuatorLow pulse, groove
CrashFixed / movableSection accents
TomAccent armFills & stage presence

Timeline @ 50h/week

One-pad hit module2–4 days
Basic 4-piece drummer10–14 days
Good jazz drummer demo3 weeks
Polished + accent arm4–6 weeks
Human-following drummer8–12 weeks

Cost Estimate

1-pad prototype$100–$250
Fast 4-piece drummer$600–$1,500
Good jazz drummer demo$1,200–$3,500
Polished + accent arm$3,000–$7,000+
Second Milestone

Robot Pianist

Two 7-DOF A1/OpenArm-style arms with ORCA dexterous hands, controlled by Jetson Orin. Far more complex — but capable of jazz comping.

Jetson Orin
  ├── left A1/OpenArm 7-DOF arm
  │    └── left ORCA hand
  └── right A1/OpenArm 7-DOF arm
        └── right ORCA hand

Timeline @ 50h/week

One ORCA hand presses keys2–4 weeks
One arm + ORCA plays notes4–6 weeks
Two arms play a demo10–12 weeks
Reliable two-hand demo12–16+ weeks
Live jazz adaptive pianist6–12+ months

Purchase Estimate

A1/OpenArm arms (×2)$7,160–$13,000
ORCA hands (×2)several thousand ea.
Jetson AGX Orin 64GB~$2,000
Digital piano$430–$700
Safety, mounts, spares$1,500–$4,000
Starting budget$15k–$35k+

"The arm moves early. The hand presses exactly on the beat."

Code

Simple, modular,
test-driven.

The goal is not a giant AI system first. The goal is to make physical notes and drum hits happen reliably.

jazzbot/

jazzbot/
  config/
    drummer.yaml
    pianist.yaml
    timing_offsets.yaml
  core/
    clock.py
    scheduler.py
    safety.py
  drummer/
    drum_controller.py
    groove_engine.py
    patterns.py
  pianist/
    keyboard_geometry.py
    arm_planner.py
    orca_hand.py
    chord_voicing.py
  music/
    midi_reader.py
    swing.py
    metronome.py
  demos/
    drummer_swing_demo.py
    pianist_two_hand_demo.py
    jazzbot_quartet_demo.py
  firmware/esp32_drummer/
    main.cpp
    actuator.cpp
    scheduler.cpp
drummer_cmd.json
{
  "target":    "ride",
  "start_ms": 12000,
  "velocity": 0.72
}
pianist_cmd.json
{
  "cmd":      "PLAY_CHORD",
  "hand":     "right",
  "start_ms": 20000,
  "hold_ms":  500,
  "notes": [
    {"finger": "thumb",  "key": "C4", "velocity": 65},
    {"finger": "index",  "key": "E4", "velocity": 70},
    {"finger": "middle", "key": "G4", "velocity": 68}
  ]
}
note_timing.json
{
  "note":           "E4",
  "desired_sound_ms": 15000,
  "hand":           "right",
  "finger":         "index",
  "arm_arrive_by_ms":14850,
  "finger_start_ms": 14965,
  "hold_ms":        300,
  "velocity":       70
}
01Drummer single-hit test — one actuator hits one pad repeatedly
02Drummer groove test — four voices play a swing pattern
03ORCA finger test — one finger presses one piano key repeatedly
04Pianist chord test — ORCA plays a 2–3 note chord
05Arm-position test — A1 moves ORCA hand above key groups
06Two-hand pianist test — both hands play a prepared sequence
07 Quartet demo — robot drummer + robot pianist + human bass + human trumpet
Progress Blog

Building in
the open.

Entry 001

Project Concept

The project began with the idea of a robotic jazz band: a robot drummer, a robot pianist, a human bassist, and a human trumpeter. The goal is not simply to automate music, but to create robots that can eventually listen and respond like bandmates.

Robot drummer
Robot pianist
Human bass
Human trumpet
Entry 002

Shared Robot Musician Platform

The project architecture was defined around Jetson Orin as the high-level brain. Jetson handles timing, musical logic, planning, and future AI listening. Lower-level controllers handle real-time actuation.

Jetson Orin
  ↓
real-time controllers
  ↓
actuators → instruments
Entry 003

Pianist Concept: A1 + ORCA + Orin

Two A1/OpenArm-style 7-DOF arms with two ORCA hands. The main risk is not whether the parts can connect — it's whether ORCA fingers can press piano keys cleanly, repeatedly, and with useful timing.

One A1 arm
+ one ORCA hand
+ 5–12 piano keys
+ simple prepared notes
Entry 004

Drummer First Strategy

The drummer is much easier than the pianist because it mainly requires timed strikes instead of precise finger placement. Fixed actuator modules for all main voices became the recommended first milestone.

ride · hi-hat · snare
kick · crash · tom
Entry 005

Human-Like Drummer Upgrade

The drummer can be made more human-like without becoming a full humanoid robot. A hybrid: human-like torso behind the kit, two visible robotic arms, fixed actuator modules for reliability, one movable accent arm.

human-like appearance
+ fixed reliable modules
+ one movable accent arm
+ Jetson/ESP32 timing
Entry 006 — 007

Timelines & Three-Month Pianist

At 50 hours/week, the drummer can reach a jazz demo in 3 weeks. A limited two-arm pianist prototype in three months is possible, but aggressive. Full virtuosity is not a three-month target.

2–4 days: one-pad hit
3 weeks: jazz drummer
12 weeks: two-arm pianist
6–12 months: live improv
Priorities

Current
build order.

  1. Build the fixed-module robot drummer
  2. Add a movable accent arm for crash/tom hits
  3. Create Jetson-to-ESP32 timing control
  4. Build one ORCA-hand piano key test
  5. Mount one ORCA hand on one A1 arm
  6. Expand to two robotic piano hands
  7. Combine drummer, pianist, bass, and trumpet into a first quartet demo
Contact

Let's build
this together.

JazzBot is an experimental robotics and music project exploring live robot-human jazz performance. Collaborators welcome.

Project  JazzBot
Website  jazzbot.org
Email    hello@jazzbot.org

Looking for collaborators in:

Robotics Builders Mechanical Design Embedded Systems Jazz Musicians AI / Audio Research Music Robotics Students