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
- 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:
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 octaveg6— G in 6th octavep— Pause (rest)
Duration
Number of beats to hold the note. Can be any positive integer.
1— Short note (one beat)2— Two beats4— Four beats (whole note)400— Very long (for constant tones)
Simple Example
140,c5,2,d5,2,e5,2,f5,2,g5,2This 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.
Pre-Built Tunes
Use these ready-made tunes by copying the encoding string into the sound field:
Note
| Tune Name | Encoding |
|---|---|
| Regular Beep | 15,c5,4 |
| Macaroon | 250,c5,1,e5,1,g5,1,c6,1,g5,1,e5,1,c5,1 |
| Marshmallow | 200,d5,3,d5,1,f5,2,f5,1,g5,1,f5,2 |
| Meringue | 250,c6,1,a5,1,b5,1,g5,1,f5,1 |
| Milkshake | 300,a5,1,g5s,1,f5s,1,d5,1 |
| Mousse | 160,e5,3,e5,1,g5s,2,b5,2,a5,2 |
| Muffin | 250,a5,1,c6,1,e6,1,c6,1,e6,1,c6,1,e6,1,c6,1,a5,1 |
| Charge | 140,c5,2,f5,2,a5,2,c6,3,a5,1,c6,3 |
| Charge2 | 140,c5,2,f5,2,a5,2,g5,2,e5,2,f5,2,g5,2 |
| Twilight | 140,g5s,2,a5,2,g5s,2,e5,2,g5s,2,a5,2,g5s,2,e5,2 |
| Waterfall | 140,a5s,2,g5s,2,f5s,2,d5s,2,c5s,2,d5s,2,f5s,2 |
| Skip Along | 140,f5,2,f5,2,d5,2,f5,2,e5,2,d5,2,c5,2 |
| Yankee Doodle | 140,f5,2,f5,2,g5,2,a5,2,f5,2,a5,2,g5,2 |
| Scale | 140,c5,2,d5,2,e5,2,f5,2,g5,2,f5,2,e5,2,d5,2,c5,2 |
| Scale–Reverse | 140,c6,2,b5,2,a5,2,g5,2,f5,2,g5,2,a5,2,b5,2,c6,2 |
| Day is Done | 140,c5,1,c5,1,f5,3,p,2,c5,1,f5,1,a5,3 |
| Ta-Da | 140,e5,1,e5,3,g5,1,g5,3,c5,1,c5,3 |
| Dreidel-Dreidel | 200,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 |
| Taps | 250,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 |
| Sakura | 200,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 |
| Constant | 15,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
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.
