Overview
CamVocoder uses your computer's camera to convert mouth movements into MIDI Control Change messages in real time. Move your mouth open, wide, diagonally, or change its overall shape — each movement can drive a different synthesizer parameter.
Quick Start
1. Launch CamVocoder. The camera feed appears with a mouth-tracking overlay.
2. Position your face so the binoculars icon appears in the header (if tracking is lost, a NO FACE indicator will appear instead).
3. Open and close your mouth — the Y meter and the default CC mapping should respond immediately.
4. Use the Calibrate menu to set min/max ranges for each axis to match your face.
5. Add more mappings with the + button or A key.
Tracking Axes
CamVocoder tracks five independent mouth dimensions:
- Y-Axis Vertical mouth opening (top lip to bottom lip vs. face height)
- X-Axis Horizontal width (left corner to right corner vs. face width)
- Diagonal 1 Upper-left to lower-right lip diagonal
- Diagonal 2 Upper-right to lower-left lip diagonal
- Circumference Overall mouth opening area — responds to both width and height
Each axis is displayed as a vertical meter bar. The raw value is normalized between the calibrated min and max, then smoothed before being converted to a 0–127 MIDI CC value.
CC Mappings
Each mapping card connects one tracking axis to one MIDI CC number. A mapping has:
Controls
| Field | Description |
|---|---|
| CC | MIDI Control Change number (0–127). Drag the slider, use ←→, or click the CC label to type a number directly. |
| Min / Max | Output range. Lets you invert (Min > Max) or limit the output. |
| Axis | Which tracking axis drives this mapping. Click the chip or press X to cycle. |
| LEARN | Click to enter MIDI Learn mode — the next incoming CC message sets the CC number. |
| ON / OFF | Enable or disable MIDI output for this mapping. |
Adding & Removing
Use the + / − buttons in the panel header to add or remove mappings, or use the per-card buttons in the bottom-right of each mapping card. The per-card + inserts a new mapping directly after that card. Maximum 12 mappings.
Renaming
Click on a mapping's label text or press R to rename it. Type the new name and press Enter or click Save.
Calibration
Calibration sets the min and max raw values for each axis so that your full range of motion maps to 0–127 MIDI output.
How to Calibrate
1. Press C or use Calibrate → Toggle Calibration to open the calibration overlay.
2. The overlay shows the live raw ratio and current range for each axis.
3. Move your mouth to the desired extreme and press the corresponding key to capture that value:
| Keys | Action |
|---|---|
| O / S | Set Y-Axis max (open) / min (shut) |
| W / N | Set X-Axis max (wide) / min (narrow) |
| 1 / 2 | Set Diagonal 1 max / min |
| 3 / 4 | Set Diagonal 2 max / min |
| 5 / 6 | Set Circumference max / min |
4. Press C again to close calibration. Settings are saved automatically.
Menu Bar
CamVocoder installs a native macOS menu bar with the following menus:
CamVocoder
| About CamVocoder | Version and credits |
| User Manual | Opens this document |
| Quit | ⌘Q |
File
| Save Settings | Write current calibration and mappings to disk (⌘S) |
| Reset Defaults | Restore all settings to factory defaults |
Mapping
| Add Mapping | Add a new CC mapping |
| Remove Mapping | Remove the selected mapping |
| Rename Selected | Rename the selected mapping |
| Toggle Enabled | Enable/disable MIDI output |
| MIDI Learn | Learn CC from incoming MIDI |
Calibrate
| Toggle Calibration | Show/hide calibration overlay |
| Set Y Open / Shut | Capture Y-Axis extremes |
| Set X Wide / Narrow | Capture X-Axis extremes |
| Set D1/D2 Max / Min | Capture diagonal extremes |
| Set Circ Max / Min | Capture circumference extremes |
View
| Toggle Shortcuts | Show/hide keyboard shortcut overlay |
Keyboard Shortcuts
| Key | Action |
|---|---|
| Q / Esc | Quit |
| H | Toggle shortcut overlay |
| C | Toggle calibration overlay |
| F | Reset all settings to defaults |
| ↑ / ↓ | Select previous / next mapping |
| ← / → | Decrease / increase CC number |
| [ / ] | Decrease / increase output Min |
| - / = | Decrease / increase output Max |
| A | Add mapping |
| D | Remove selected mapping |
| R | Rename selected mapping |
| M | MIDI Learn |
| X | Cycle axis |
| E | Toggle enabled |
| V | Toggle visual mouth overlay |
MIDI Setup
CamVocoder sends MIDI CC over a virtual port. On macOS it creates an IAC-compatible
virtual port named CamVocoder.
In your DAW or synthesizer, select CamVocoder as a MIDI input device, then use MIDI Learn on the parameter you want to control.
Troubleshooting
Face not detected
Ensure good lighting and that your face is clearly visible. The camera feed shows
NO FACE when tracking is lost.
Axis stuck at 0 or 127
The calibration range for that axis is likely wrong for your face. Open calibration (C) and set new min/max values. Or press F to reset all settings to defaults.
No MIDI output
Check that the mapping is set to ON and that your DAW is
listening on the CamVocoder MIDI port.
Circumference not responding
Circumference responds to the overall mouth opening shape. Calibrate it: press C, close your mouth and press 6, then open wide and press 5.