O-Hands User Guide

Control synthesizers and creative software using natural hand gestures

Getting Started

Quick Start (5 Minutes)

  1. Launch O-Hands and allow camera access when prompted
  2. Select your webcam from the dropdown in the header
  3. Position your hand in front of the camera — you should see a skeleton overlay
  4. Select a MIDI device in Settings → MIDI
  5. Create a mapping: Click + Add in the Mappings panel
  6. Choose a feature (e.g., Palm Y) and a MIDI CC number
  7. Move your hand — your DAW should respond!

System Requirements

Requirement Details
Camera Any webcam (built-in or external)
MIDI Virtual MIDI driver or hardware MIDI interface
Lighting Moderate room lighting (video enhancement available for low-light)

Interface Overview

Main Window Layout

┌─────────────────────────────────────────────────────────┐
│  O-Hands          [Camera ▼] [Refresh]     [⚙ Settings] │
├─────────────────────────────────────────────────────────┤
│                                        │                │
│                                        │   SETTINGS     │
│         HAND TRACKING AREA             │    PANEL       │
│      (Camera + Hand Skeleton)          │                │
│                                        ├────────────────┤
│                                        │                │
│                                        │   PRESETS      │
│                                        │    PANEL       │
├────────────────────────────────────────┴────────────────┤
│                    MAPPINGS PANEL                       │
│         Direct Mappings    |    Gesture Mappings        │
└─────────────────────────────────────────────────────────┘

Panel Overview

Panel Purpose
Hand Tracking Shows camera feed and hand skeleton overlay
Settings Configure camera, MIDI, appearance, and license
Presets Save and load mapping configurations
Mappings Create and manage hand-to-output connections

Camera Setup

Selecting a Camera

  1. Click the camera dropdown in the header
  2. Select your webcam from the list
  3. Click Refresh if your camera doesn't appear

Optimizing Tracking

For best results:

Settings for Better Tracking

Setting Location Purpose
Smoothing Settings → General Reduce jitter (higher = smoother, slower)
Video Enhancement Settings → General Improves low-light tracking
Mirror View Settings → General Flip display for intuitive control

Creating Direct Mappings

Direct mappings connect a single hand feature to a MIDI/OSC output.

Creating a Mapping

  1. Click + Add in the Direct Mappings section
  2. Select Left or Right hand
  3. Choose a Feature from the dropdown
  4. Select an Output Type (CC, Note, Pitch Bend, Aftertouch, or OSC)
  5. Configure the output settings
  6. Click Save

Available Features

Palm Position

Feature Description
Palm X Hand position left ↔ right
Palm Y Hand position down ↔ up
Palm Z Hand distance from camera

Finger Curl (0 = straight, 1 = curled)

Feature Description
Thumb Curl Thumb bend amount
Index Curl Index finger bend
Middle Curl Middle finger bend
Ring Curl Ring finger bend
Pinky Curl Pinky finger bend

Hand State

Feature Description
Hand Openness Overall hand spread (opposite of curl average)
Pinch Distance Distance between thumb and index fingertips

Rotation

Feature Description
Roll Wrist rotation (tilting hand left/right)
Pitch Hand tilting forward/backward
Yaw Hand rotating around vertical axis

Velocity

Feature Description
Velocity X Horizontal movement speed
Velocity Y Vertical movement speed
Velocity Z Forward/backward movement speed

Output Types

CC (Control Change)

Standard MIDI continuous controller messages.

MIDI Learn: Click the MIDI Learn button, then move a knob on your controller to auto-assign the CC number.

Note

Trigger MIDI notes based on hand position.

Pitch Bend

14-bit pitch bend messages for smooth pitch control.

Aftertouch

Channel pressure messages for expressive control.

OSC

Send Open Sound Control messages over UDP.

Response Curves

Curve Best For
Linear 1:1 response, equal sensitivity throughout
Exponential Filter cutoff, volume — slow start, fast end
Logarithmic Pitch, frequency — fast start, slow end
S-Curve Crossfaders — gentle at extremes, responsive in middle

Tracking Loss Behavior

Configure what happens when your hand leaves the camera view:

Behavior Description
Hold Keep the last value until hand returns
Fade to Center Gradually return to center value (64 for CC)
Fade to Custom Fade to a specific value you choose

Settings:

Creating Gesture Mappings

Gesture mappings let you capture specific hand poses and interpolate between them for expressive control.

How It Works

  1. Capture 2-10 hand poses (called "anchors")
  2. Assign output values to each anchor
  3. Perform: O-Hands smoothly interpolates between anchors based on your current hand position

Creating a Gesture Mapping

  1. Click + Add in the Gesture Mappings section
  2. Select Left or Right hand
  3. Click Capture Pose
  4. Hold your hand steady during the 3-second countdown
  5. Repeat for each pose you want to capture
  6. Click Add Output to define what this gesture controls
  7. Set target values for each anchor
  8. Click Save

Anchor Management

Gesture Settings

Setting Description
Smoothing How smoothly to transition between anchors (0-1)
Dead Zone Snap to nearest anchor when very close (0-1)
Nearest Count How many anchors to blend (2 or 3)

Example: Filter Control with Hand Open/Closed

  1. Capture Pose 1: Hand fully open → Set filter cutoff to 127
  2. Capture Pose 2: Hand closed (fist) → Set filter cutoff to 0
  3. Capture Pose 3: Half-open hand → Set filter cutoff to 64
  4. Move your hand between poses — the filter smoothly follows!

MIDI Configuration

Selecting a MIDI Device

  1. Open Settings (gear icon)
  2. Find the MIDI section
  3. Select your MIDI output from the dropdown
  4. The status shows "Connected to: [device name]"

Testing MIDI Output

Click Test CC to send a test message (CC#1, value 64, Channel 1). If your DAW receives it, MIDI is working.

Virtual MIDI Drivers

If you don't have a hardware MIDI interface, use a virtual MIDI driver:

Platform Recommended Driver
macOS IAC Driver (built-in) — Enable in Audio MIDI Setup
Windows loopMIDI (free)
Linux ALSA virtual ports

Refreshing MIDI Devices

Click the refresh button next to the MIDI dropdown if you connect a new device while O-Hands is running.

OSC Configuration

O-Hands can send OSC messages to creative applications like:

Setting Up OSC

  1. Create a mapping with OSC output type
  2. Set the Address (e.g., /hand/x)
  3. Set the Target IP (use 127.0.0.1 for same computer)
  4. Set the Port (must match your receiving app)
  5. Choose Value Type (float or integer)

Common OSC Ports

Application Default Port
Max/MSP 9000
TouchDesigner 9000
SuperCollider 57120
Pure Data 9000

Presets

Presets save all your mappings so you can switch between configurations.

Saving a Preset

  1. Configure your mappings
  2. Click Save As in the Presets panel
  3. Enter a name
  4. Click Save

Loading a Preset

Click any preset in the list to load it. If you have unsaved changes, you'll be asked to confirm.

Managing Presets

Action How
Save changes Click Save (overwrites current preset)
Save copy Click Save As (creates new preset)
Delete Hover over preset, click the delete button
Export Click Export to save as JSON file
Import Click Import to load from file
Export All Click Export All for ZIP backup

Performance Mode

O-Hands offers three view modes for different situations:

Full UI (Cmd/Ctrl+1)

All panels visible — for setup and configuration.

Performance Mode (Cmd/Ctrl+2)

Minimal interface — for live performance.

Toggle what's visible:

Blackout Mode (Cmd/Ctrl+3)

App hidden — mappings continue running. Perfect for live shows where you don't want the app visible.

Overlay Mode (Cmd/Ctrl+Shift+O)

Combines fullscreen + transparency + click-through. The app floats over other windows and clicks pass through — great for overlaying on video or other apps.

Customizing the Display

Background Color

Choose from preset colors or pick a custom color:

  1. Open SettingsAppearance
  2. Click a color swatch, or
  3. Click the color picker for custom colors
  4. Recent colors are saved automatically

Skeleton Appearance

Customize the hand visualization:

Setting Description
Show Lines Toggle skeleton lines on/off
Line Color Color of the skeleton lines
Line Width Thickness (1-8px)
Line Glow Add glow effect to lines
Show Nodes Toggle joint dots on/off
Node Size Size of joint dots (2-12px)
Node Color Color of joint dots
Node Glow Add glow effect to nodes

Transparency Mode

Make the app window see-through:

  1. Enable Transparency in Settings → Appearance
  2. Use Cmd/Ctrl+Shift+T to toggle on/off
  3. Enable Click-through to let mouse clicks pass to apps behind

Fullscreen

Keyboard Shortcuts

Global Shortcuts

Shortcut Action
Cmd/Ctrl+1 Full UI mode
Cmd/Ctrl+2 Performance mode
Cmd/Ctrl+3 Blackout mode
Cmd/Ctrl+Shift+F Toggle fullscreen
Cmd/Ctrl+Shift+T Toggle transparency
Cmd/Ctrl+Shift+O Toggle overlay mode
Escape Exit fullscreen

Performance Mode

Shortcut Action
Cmd+C Toggle camera visibility
Cmd+H Toggle hand skeleton
Cmd+M Toggle mappings panel

Troubleshooting

Camera Issues

Camera not detected

Poor tracking

Jittery output

MIDI Issues

No MIDI output

Wrong values

OSC Issues

App not receiving OSC

Performance Issues

Low frame rate

License Issues

License won't activate

Offline activation

Need more help?

[email protected] · oaudio.io

← Back to O-Hands Product Page