Sound Encoding API

Control device sounds and create custom tunes for Cloud Display Devices.

Overview

Voodoo Robotics Cloud Display Devices can play custom tunes when the button lights up. This allows you to create distinct audio cues for different types of picks, alerts, or workflows — helping workers quickly identify the type of action required without looking at the display.

Sounds are specified in the sound field when sending commands to devices. You can use pre-built tunes or create your own custom melodies.

Warning

Important Considerations:
  • Volume Limitations: The device speaker is not very loud and may not be audible in noisy warehouse environments, especially with equipment like conveyors, forklifts, or other machinery running. Test thoroughly in your actual environment before relying on sound cues.
  • Battery Impact: Using sound consumes significant battery power and will shorten battery life substantially. For detailed battery life estimates when using sound features, see the Battery Life Calculator.

Sound Encoding Format

Sound encoding follows a simple comma-separated format:

tempo,note,duration,note,duration,...

Components

Tempo (first value)

The first number sets the tempo in milliseconds per beat. Lower values = faster tempo.

  • 15 — Very fast (beep)
  • 140 — Moderate tempo (most tunes)
  • 250 — Slower tempo

Note

Musical note specified as note name + octave number. Add 's' for sharp notes.

  • c5 — Middle C (5th octave)
  • a5s — A sharp in 5th octave
  • g6 — G in 6th octave
  • p — Pause (rest)

Duration

Number of beats to hold the note. Can be any positive integer.

  • 1 — Short note (one beat)
  • 2 — Two beats
  • 4 — Four beats (whole note)
  • 400 — Very long (for constant tones)

Simple Example

140,c5,2,d5,2,e5,2,f5,2,g5,2

This plays a C major scale at 140ms per beat, with each note held for 2 beats.

Available Notes

Notes range from the 5th to 7th octave. Sharp notes are indicated by adding 's' after the note name.

c5
c5s
d5
d5s
e5
f5
f5s
g5
g5s
a5
a5s
b5
c6
c6s
d6
d6s
e6
f6
f6s
g6
g6s
a6
a6s
b6
c7
p (pause)

Pre-Built Tunes

Use these ready-made tunes by copying the encoding string into the sound field:

Note

For tunes that span multiple lines below, remove all carriage returns and spaces when using them in your API calls.
Tune NameEncoding
Regular Beep15,c5,4
Macaroon250,c5,1,e5,1,g5,1,c6,1,g5,1,e5,1,c5,1
Marshmallow200,d5,3,d5,1,f5,2,f5,1,g5,1,f5,2
Meringue250,c6,1,a5,1,b5,1,g5,1,f5,1
Milkshake300,a5,1,g5s,1,f5s,1,d5,1
Mousse160,e5,3,e5,1,g5s,2,b5,2,a5,2
Muffin250,a5,1,c6,1,e6,1,c6,1,e6,1,c6,1,e6,1,c6,1,a5,1
Charge140,c5,2,f5,2,a5,2,c6,3,a5,1,c6,3
Charge2140,c5,2,f5,2,a5,2,g5,2,e5,2,f5,2,g5,2
Twilight140,g5s,2,a5,2,g5s,2,e5,2,g5s,2,a5,2,g5s,2,e5,2
Waterfall140,a5s,2,g5s,2,f5s,2,d5s,2,c5s,2,d5s,2,f5s,2
Skip Along140,f5,2,f5,2,d5,2,f5,2,e5,2,d5,2,c5,2
Yankee Doodle140,f5,2,f5,2,g5,2,a5,2,f5,2,a5,2,g5,2
Scale140,c5,2,d5,2,e5,2,f5,2,g5,2,f5,2,e5,2,d5,2,c5,2
Scale–Reverse140,c6,2,b5,2,a5,2,g5,2,f5,2,g5,2,a5,2,b5,2,c6,2
Day is Done140,c5,1,c5,1,f5,3,p,2,c5,1,f5,1,a5,3
Ta-Da140,e5,1,e5,3,g5,1,g5,3,c5,1,c5,3
Dreidel-Dreidel200,g5,1,c6,1,c6,1,d6,1,d6,1,e6,1,c6,2,e6,1,g6,1,g6,1,f6,1,e6,1,d6,3,a5,1,d6,1,d6,1,e6,1,e6,1,f6,1,d6,2,g6,1,g6,1,f6,1,e6,1,d6,1,c6,3,g5,1,g6,1,f6,1,e6,1,d6,1,c6,2
Taps250,g5,2,g5,1,c6,6,g5,2,c6,1,e6,6,g5,1,c6,1,e6,2,g5,1,c6,1,e6,2,g5,1,c6,1,e6,6,c6,2,e6,1,g6,5,e6,2,c6,1,g5,6,g5,2,g5,1,c6,6
Sakura200,a6,2,a6,2,b6,4,a6,2,a6,2,b6,4,a6,2,b6,2,c7,2,b6,2,a6,2,b6,1,a6,1,f6,4,e6,2,c6,2,e6,2,f6,2,e6,2,e6,1,c6,1,b5,4,a6,2,b6,2,c7,2,b6,2,a6,2,b6,1,a6,1,f6,4,e6,2,c6,2,e6,2,f6,2,e6,2,e6,1,c6,1,b5,4,a6,2,a6,2,b6,4,a6,2,a6,2,b6,4,e6,2,f6,2,b6,1,a6,1,f6,2,e6,4
Constant15,c5,400

Usage Examples

Using Pre-Built Tunes

import requests

# Simple beep
response = requests.post(
    "https://www.voodoodevices.com/api/devices/",
    headers={"API-KEY": "your_api_key_here"},
    json={
        "deviceid": "ABC123:DEF456",
        "command": "flash",
        "line1": "Pick Item A",
        "color": "blue",
        "sound": "15,c5,4",  # Regular beep
        "seconds": 600
    }
)

# Different tune for different pick type
response = requests.post(
    "https://www.voodoodevices.com/api/devices/",
    headers={"API-KEY": "your_api_key_here"},
    json={
        "deviceid": "ABC123:DEF456",
        "command": "flash",
        "line1": "Pick Priority Item",
        "color": "red",
        "sound": "140,c5,2,f5,2,a5,2,c6,3,a5,1,c6,3",  # Charge
        "seconds": 600
    }
)

Creating Custom Tunes

Build your own tune by combining tempo, notes, and durations:

# Create a simple "success" jingle
success_sound = "180,c5,1,e5,1,g5,2"

# Create an "alert" sound with pauses
alert_sound = "100,g6,1,p,1,g6,1,p,1,g6,1"

# Create a longer melody
melody = "150,c5,2,d5,2,e5,2,f5,2,g5,4,p,2,g5,2,f5,2,e5,2,d5,2,c5,4"

response = requests.post(
    "https://www.voodoodevices.com/api/devices/",
    headers={"API-KEY": "your_api_key_here"},
    json={
        "deviceid": "ABC123:DEF456",
        "command": "display",
        "line1": "Task Complete!",
        "color": "green",
        "sound": success_sound,
        "seconds": 300
    }
)

Common Use Cases

Pick Type Differentiation

Use different tunes to distinguish pick types without looking:

  • Regular pick: Simple beep (15,c5,4)
  • Priority pick: Charge tune (140,c5,2,f5,2,a5,2,c6,3,a5,1,c6,3)
  • Multi-quantity pick: Muffin tune (250,a5,1,c6,1,e6,1,c6,1,e6,1,c6,1,e6,1,c6,1,a5,1)

Zone Identification

Assign unique tunes to different zones or areas:

  • Zone A: Macaroon (ascending arpeggio)
  • Zone B: Waterfall (descending melody)
  • Zone C: Skip Along (bouncy pattern)

Alerts vs. Normal Operations

Distinguish alerts from routine picks:

  • Normal picks: Short, pleasant tunes
  • Alerts/Errors: Repetitive or urgent patterns with rapid tempo
  • Completion: Ta-Da or success jingle

Tip

Test different tunes in your actual warehouse environment to ensure they're audible above ambient noise levels. Be aware that the speaker may not be loud enough in environments with conveyors, forklifts, or other machinery. Also remember that using sound significantly reduces battery life — consider worker feedback when deciding whether sound cues are necessary for your workflows.

Tips for Creating Custom Tunes

  • Keep it short: Most effective tunes are 1-3 seconds. Longer tunes may delay worker response and consume more battery power.
  • Minimize sound usage: Playing sounds significantly reduces battery life. Use sound sparingly and only when necessary for critical alerts or differentiation.
  • Use pauses strategically: Pauses (p) can create rhythmic patterns that are more distinctive.
  • Test tempo: Faster tempos (100-140) work well for alerts; slower tempos (200-300) for confirmations.
  • Octave matters: Higher octaves (6th, 7th) are more attention-grabbing; 5th octave is more pleasant for routine use.
  • Repetition helps recognition: Repeating a short pattern makes it easier for workers to learn and recognize.
  • Avoid complexity: Simple melodies are more recognizable in noisy warehouse environments.
  • Test in real conditions: The speaker volume may not be sufficient in loud environments with conveyors or other machinery. Always test in actual working conditions.