All WiFi playback requests are executed live against:
https://api.getmelody.io"
Authenticated requests must include:
1. Playback Protocol (Read / Write)
Select the active playback protocol before issuing any control commands.| Field | Type | Values |
|---|---|---|
playbackProtocol | enum | HDC, HSC, HPS, HLC |
๐ฐ Playback Source (Read)
Indicates the current origin of device control.| Field | Type | Values |
|---|---|---|
playbackSource | enum | IDLE, MANUAL, WIFI, BLE |
๐ต HSC โ Haptics Script Control
Transport: WiFi onlyBehavior: Script playback from a remote
.funscript file via URL. The server orchestrates timeline playback.
โถ Start Playback (Write)
| Field | Type | Description |
|---|---|---|
time | uint32 | Start time in milliseconds |
scriptUrl | string | Public URL of the funscript file |
scriptSize | uint32 | Script size in bytes |
โน Stop Playback (Write)
Interrupt and stop script playback.๐ Script Status (Read)
| Field | Type | Description |
|---|---|---|
playing | bool | Whether script playback is active |
currentScriptTime | uint32 | Current playback time (ms) |
currentScriptIndex | uint32 | Current script frame index |
playbackRate | float | Playback speed multiplier (configurable in settings) |
๐ HDC โ Haptics Direct Control
Transport: WiFi, BLEBehavior: Immediate position control. Every new command interrupts active movement.
๐ฏ Motion Command (Write)
| Field | Type | Range | Description |
|---|---|---|---|
position | uint32 | 0 โ 10000 | Target position (0.01% resolution) |
time | uint32 | ms | Movement duration in milliseconds |
๐ Motion Status (Read)
| Field | Type | Description |
|---|---|---|
playing | bool | Whether movement is active |
destinationPosition | uint32 | Last issued target position |
๐ HPS โ Haptics Points Stream
Transport: WiFi, BLEBehavior: Stream sequential position + timestamp points. The device calculates velocity using timeโdelta differences between points. Requirements:
- Minimum 2 points required for velocity calculation
- Maximum 64 points per message
โ Add Points (Write)
| Field | Type | Range | Description |
|---|---|---|---|
time | uint64 | ms | Timestamp in the senderโs timescale |
pos | uint32 | 0 โ 10000 | Position (0.01% resolution) |
Note: If time delta between points is negative, the previous point timestamp is treated as 0.
โถ Play Stream (Write)
Starts stream playback using buffered points.โธ Pause Stream (Write)
Pauses without clearing the buffer.๐งน Flush Stream (Write)
Clears the buffered point queue.๐ Stream Status (Read)
| Field | Type | Description |
|---|---|---|
playing | bool | Whether point stream is active |
currentStreamTime | uint32 | Current playback time (ms) |
pointsLeft | uint32 | Remaining points in the buffer |
๐ HLC โ Haptics Loop Control
Transport: WiFi, BLEBehavior: Automatic, repeating up/down stroking loop inside a defined percentage range.
โ Set Loop Parameters (Write)
| Field | Type | Range | Description |
|---|---|---|---|
velocity | uint32 | 0 โ 100% | Percent of max velocity |
lowLimit | uint32 | 0โ99% | Loop low position, must be < highLimit |
highLimit | uint32 | 1โ100% | Loop high position, must be > lowLimit |
โถ Start Loop (Write)
Begins automatic haptic loop.โธ Stop Loop (Write โ โPauseโ command)
Stops loop playback safely and clears active loop state.๐ Loop Status (Read)
| Field | Type | Description |
|---|---|---|
playing | bool | Whether loop is active |
velocity | uint32 | Current loop velocity (%) |
lowLimit | uint32 | Active low loop position (%) |
highLimit | uint32 | Active high loop position (%) |
Summary
| Protocol | Interruptible | Transport | Timing Model |
|---|---|---|---|
| HSC | โ | WiFi only | Script timeline |
| HDC | โ | WiFi, BLE | Client duration |
| HPS | โ | WiFi, BLE | Timeโdelta velocity |
| HLC | โ | WiFi, BLE | Firmware autoโloop |