---
pageClass: is-wide-page
---
# TuneControl (UORB message)
This message is used to control the tunes, when the tune_id is set to CUSTOM. then the frequency, duration are used otherwise those values are ignored.
**TOPICS:** tune_control
## Fields
| Name | Type | Unit [Frame] | Range/Enum | Description |
| ------------- | -------- | ------------ | ---------- | --------------------------------------------------------------------------------- |
| timestamp | `uint64` | | | time since system start (microseconds) |
| tune_id | `uint8` | | | tune_id corresponding to TuneID::\* from the tune_defaults.h in the tunes library |
| tune_override | `bool` | | | if true the tune which is playing will be stopped and the new started |
| frequency | `uint16` | | | in Hz |
| duration | `uint32` | | | in us |
| silence | `uint32` | | | in us |
| volume | `uint8` | | | value between 0-100 if supported by backend |
## Constants
| Name | Type | Value | Description |
| ----------------------------------------------------------------------- | ------- | ----- | ----------- |
| TUNE_ID_STOP | `uint8` | 0 |
| TUNE_ID_STARTUP | `uint8` | 1 |
| TUNE_ID_ERROR | `uint8` | 2 |
| TUNE_ID_NOTIFY_POSITIVE | `uint8` | 3 |
| TUNE_ID_NOTIFY_NEUTRAL | `uint8` | 4 |
| TUNE_ID_NOTIFY_NEGATIVE | `uint8` | 5 |
| TUNE_ID_ARMING_WARNING | `uint8` | 6 |
| TUNE_ID_BATTERY_WARNING_SLOW | `uint8` | 7 |
| TUNE_ID_BATTERY_WARNING_FAST | `uint8` | 8 |
| TUNE_ID_GPS_WARNING | `uint8` | 9 |
| TUNE_ID_ARMING_FAILURE | `uint8` | 10 |
| TUNE_ID_PARACHUTE_RELEASE | `uint8` | 11 |
| TUNE_ID_SINGLE_BEEP | `uint8` | 12 |
| TUNE_ID_HOME_SET | `uint8` | 13 |
| TUNE_ID_SD_INIT | `uint8` | 14 |
| TUNE_ID_SD_ERROR | `uint8` | 15 |
| TUNE_ID_PROG_PX4IO | `uint8` | 16 |
| TUNE_ID_PROG_PX4IO_OK | `uint8` | 17 |
| TUNE_ID_PROG_PX4IO_ERR | `uint8` | 18 |
| TUNE_ID_POWER_OFF | `uint8` | 19 |
| NUMBER_OF_TUNES | `uint8` | 20 |
| VOLUME_LEVEL_MIN | `uint8` | 0 |
| VOLUME_LEVEL_DEFAULT | `uint8` | 20 |
| VOLUME_LEVEL_MAX | `uint8` | 100 |
| ORB_QUEUE_LENGTH | `uint8` | 4 |
## Source Message
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/TuneControl.msg)
::: details Click here to see original file
```c
# This message is used to control the tunes, when the tune_id is set to CUSTOM
# then the frequency, duration are used otherwise those values are ignored.
uint64 timestamp # time since system start (microseconds)
uint8 TUNE_ID_STOP = 0
uint8 TUNE_ID_STARTUP = 1
uint8 TUNE_ID_ERROR = 2
uint8 TUNE_ID_NOTIFY_POSITIVE = 3
uint8 TUNE_ID_NOTIFY_NEUTRAL = 4
uint8 TUNE_ID_NOTIFY_NEGATIVE = 5
uint8 TUNE_ID_ARMING_WARNING = 6
uint8 TUNE_ID_BATTERY_WARNING_SLOW = 7
uint8 TUNE_ID_BATTERY_WARNING_FAST = 8
uint8 TUNE_ID_GPS_WARNING = 9
uint8 TUNE_ID_ARMING_FAILURE = 10
uint8 TUNE_ID_PARACHUTE_RELEASE = 11
uint8 TUNE_ID_SINGLE_BEEP = 12
uint8 TUNE_ID_HOME_SET = 13
uint8 TUNE_ID_SD_INIT = 14
uint8 TUNE_ID_SD_ERROR = 15
uint8 TUNE_ID_PROG_PX4IO = 16
uint8 TUNE_ID_PROG_PX4IO_OK = 17
uint8 TUNE_ID_PROG_PX4IO_ERR = 18
uint8 TUNE_ID_POWER_OFF = 19
uint8 NUMBER_OF_TUNES = 20
uint8 tune_id # tune_id corresponding to TuneID::* from the tune_defaults.h in the tunes library
bool tune_override # if true the tune which is playing will be stopped and the new started
uint16 frequency # in Hz
uint32 duration # in us
uint32 silence # in us
uint8 volume # value between 0-100 if supported by backend
uint8 VOLUME_LEVEL_MIN = 0
uint8 VOLUME_LEVEL_DEFAULT = 20
uint8 VOLUME_LEVEL_MAX = 100
uint8 ORB_QUEUE_LENGTH = 4
```
:::