Input Patch
When switching between Inputs, there are multiple approaches valid:
Changing the Input Patch itself
Example Configuration for CH1, CH2, CH4, CH7, switch between Dante Input 1-4 and Dante Input 21-24
HTTP Put a full json object containing all affected Channels into the http://${IP}/rest-api/settings/channel/ path
Advantage: Using the bulk endpoint
/settings/channel/allows you to patch multiple channels in a single HTTP call, which is more efficient than making individual calls for each channel. This reduces network overhead and ensures all channels are updated atomically.
To determine the source_id of the desired Interfaces, perform an HTTP OPTION call to http://${IP}/rest-api/settings/channel/1/dsp/patch' to get a list of available interfaces.
[
{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 1
}
]
}
},
{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 2
}
]
}
},
{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 3
}
]
}
},
{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 4
}
]
}
}
]
[
{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 21,
"gain": 0.0,
"mute": false
}
]
}
},
{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 22,
"gain": 0.0,
"mute": false
}
]
}
},
{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 23,
"gain": 0.0,
"mute": false
}
]
}
},
{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 24,
"gain": 0.0,
"mute": false
}
]
}
}
]Patching Channels Individually
Alternatively, you can patch each channel individually by making separate HTTP PUT calls to each channel’s endpoint: http://${IP}/rest-api/settings/channel/{channel_id}/
This approach allows you to update channels one at a time, which can be useful when you need to patch channels conditionally or handle errors per channel.
curl -X 'PUT' http://${IP}/rest-api/settings/channel/1/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 1
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/2/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 2
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/4/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 3
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/7/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 4
}
]
}
}'
curl -X 'PUT' http://${IP}/rest-api/settings/channel/1/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 21,
"gain": 0.0,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/2/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 22,
"gain": 0.0,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/4/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 23,
"gain": 0.0,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/7/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"source_id": 4,
"channel": 24,
"gain": 0.0,
"mute": false
}
]
}
}'Toggle Mute between channels
Assuming we’ve already patched our desired Inputs for each channel on Slot 1 and 2 
When inputs are already patched, you can toggle the mute state between different patch slots (e.g., Slot 1 and Slot 2) by only updating the mute flag in the patch object. This is more efficient than repatching the entire input configuration.
HTTP Put a JSON object containing all affected Channels into the http://${IP}/rest-api/settings/channel/ path, specifying only the patch_id and mute flag for each patch slot.
[
{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
},
{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
},
{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
},
{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
}
]
[
{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": false
},
{
"patch_id": 2,
"mute": true
}
]
}
},
{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": false
},
{
"patch_id": 2,
"mute": true
}
]
}
},
{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": false
},
{
"patch_id": 2,
"mute": true
}
]
}
},
{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": false
},
{
"patch_id": 2,
"mute": true
}
]
}
}
]
Toggling Mute on Individual Channels
You can also toggle mute on individual channels by making separate HTTP PUT calls to each channel’s endpoint: http://${IP}/rest-api/settings/channel/{channel_id}/
curl -X 'PUT' http://${IP}/rest-api/settings/channel/1/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 1,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/2/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 2,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/4/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 4,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
}'curl -X 'PUT' http://${IP}/rest-api/settings/channel/7/ \
-H 'Content-Type: application/json' \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '{
"channel_id": 7,
"dsp": {
"patch": [
{
"patch_id": 1,
"mute": true
},
{
"patch_id": 2,
"mute": false
}
]
}
}'