From 52f8c7ab8cf89104dbb1e64b3d83a4e06c712e4f Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 17 Mar 2022 17:06:19 +1030 Subject: [PATCH 01/34] Fix format-security warning in error.c gtk_message_dialog_new() takes a format string which should be "%s" in this case, not the string to display. Reported by Sebastian. --- src/error.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/error.c b/src/error.c index 70b2371..b8d5c56 100644 --- a/src/error.c +++ b/src/error.c @@ -14,6 +14,7 @@ void show_error(GtkWindow *w, char *s) { GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, + "%s", s ); gtk_widget_show(dialog); From 961c41760351e014d3fa1e6bf83c58118a52ccbe Mon Sep 17 00:00:00 2001 From: Sebastian Kaminski Date: Sat, 19 Mar 2022 20:58:09 +0100 Subject: [PATCH 02/34] Fixed typo for 18i20 Gen 3 Mic/Line 3-8 --- INTERFACES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INTERFACES.md b/INTERFACES.md index 0eefa09..88fd3aa 100644 --- a/INTERFACES.md +++ b/INTERFACES.md @@ -355,7 +355,7 @@ driver hides this from you. - 19× Hardware Inputs - Analogue 1–2: Mic/Line/Inst In 1–2 (Air, Pad) - - Analogue 3–8: Mic/Line In 3–4 (Air, Pad) + - Analogue 3–8: Mic/Line In 3–8 (Air, Pad) - Analogue 9: Talkback Mic - S/PDIF 1–2 - ADAT 1–8 From b9f0b64d180384de041642608d22c6a0c8ccd7eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szabolcs=20Sz=C5=91ke?= Date: Sat, 26 Mar 2022 20:44:23 +0100 Subject: [PATCH 03/34] Make routing sources and destinations the same width Fixes #4. --- src/alsa-scarlett-gui.css | 2 ++ src/window-routing.c | 40 ++++++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/alsa-scarlett-gui.css b/src/alsa-scarlett-gui.css index 1095484..1fe1b18 100644 --- a/src/alsa-scarlett-gui.css +++ b/src/alsa-scarlett-gui.css @@ -1,9 +1,11 @@ .route-label { font-size: smaller; + border-radius: 3px; } .route-label:hover { background: @theme_selected_bg_color; + outline: 2px solid @theme_selected_bg_color; } .route-label:drop(active) { diff --git a/src/window-routing.c b/src/window-routing.c index 8acd1e7..7878944 100644 --- a/src/window-routing.c +++ b/src/window-routing.c @@ -107,8 +107,9 @@ static void get_routing_dsts(struct alsa_card *card) { assert(j == count); } -static void routing_grid_label(char *s, GtkGrid *g) { +static void routing_grid_label(char *s, GtkGrid *g, GtkAlign align) { GtkWidget *l = gtk_label_new(s); + gtk_widget_set_halign(l, align); gtk_grid_attach(g, l, 0, 0, 1, 1); } @@ -301,16 +302,16 @@ static void create_routing_grid(struct alsa_card *card) { gtk_widget_set_hexpand(card->routing_mixer_in_grid, TRUE); gtk_widget_set_hexpand(card->routing_mixer_out_grid, TRUE); gtk_widget_set_align( - card->routing_hw_in_grid, GTK_ALIGN_END, GTK_ALIGN_CENTER + card->routing_hw_in_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER ); gtk_widget_set_align( - card->routing_pcm_in_grid, GTK_ALIGN_END, GTK_ALIGN_CENTER + card->routing_pcm_in_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER ); gtk_widget_set_align( - card->routing_hw_out_grid, GTK_ALIGN_START, GTK_ALIGN_CENTER + card->routing_hw_out_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER ); gtk_widget_set_align( - card->routing_pcm_out_grid, GTK_ALIGN_START, GTK_ALIGN_CENTER + card->routing_pcm_out_grid, GTK_ALIGN_FILL, GTK_ALIGN_CENTER ); gtk_widget_set_align( card->routing_mixer_in_grid, GTK_ALIGN_CENTER, GTK_ALIGN_END @@ -319,10 +320,18 @@ static void create_routing_grid(struct alsa_card *card) { card->routing_mixer_out_grid, GTK_ALIGN_CENTER, GTK_ALIGN_START ); - routing_grid_label("Hardware Inputs", GTK_GRID(card->routing_hw_in_grid)); - routing_grid_label("Hardware Outputs", GTK_GRID(card->routing_hw_out_grid)); - routing_grid_label("PCM Outputs", GTK_GRID(card->routing_pcm_in_grid)); - routing_grid_label("PCM Inputs", GTK_GRID(card->routing_pcm_out_grid)); + routing_grid_label( + "Hardware Inputs", GTK_GRID(card->routing_hw_in_grid), GTK_ALIGN_END + ); + routing_grid_label( + "Hardware Outputs", GTK_GRID(card->routing_hw_out_grid), GTK_ALIGN_START + ); + routing_grid_label( + "PCM Outputs", GTK_GRID(card->routing_pcm_in_grid), GTK_ALIGN_END + ); + routing_grid_label( + "PCM Inputs", GTK_GRID(card->routing_pcm_out_grid), GTK_ALIGN_START + ); GtkWidget *src_label = gtk_label_new("↑\nSources →"); gtk_label_set_justify(GTK_LABEL(src_label), GTK_JUSTIFY_CENTER); @@ -645,11 +654,17 @@ static void make_src_routing_widget( GtkWidget *label = gtk_label_new(name); gtk_box_append(GTK_BOX(box), label); gtk_widget_add_class(box, "route-label"); + + if (orientation == GTK_ORIENTATION_HORIZONTAL) { + gtk_widget_set_halign(label, GTK_ALIGN_END); + gtk_widget_set_hexpand(label, TRUE); + } } if (orientation == GTK_ORIENTATION_HORIZONTAL) { gtk_box_append(GTK_BOX(box), socket); - gtk_widget_set_halign(box, GTK_ALIGN_END); + gtk_widget_set_halign(box, GTK_ALIGN_FILL); + gtk_widget_set_hexpand(box, TRUE); } else { gtk_box_prepend(GTK_BOX(box), socket); gtk_widget_set_margin_start(box, 5); @@ -703,7 +718,10 @@ static void make_dst_routing_widget( gtk_widget_set_margin_end(box, 5); } else { gtk_box_prepend(GTK_BOX(box), socket); - gtk_widget_set_halign(box, GTK_ALIGN_START); + gtk_widget_set_halign(box, GTK_ALIGN_FILL); + gtk_widget_set_hexpand(box, TRUE); + gtk_widget_set_hexpand(label, TRUE); + gtk_widget_set_halign(label, GTK_ALIGN_START); } // handle clicks on the box From c175afbad7bb529b61ee517664fd64b062b94158 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 1 Apr 2022 17:39:14 +1030 Subject: [PATCH 04/34] Clarify comments and variable names in choose_line_colour() --- src/routing-lines.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/routing-lines.c b/src/routing-lines.c index b4eb54f..1460e6e 100644 --- a/src/routing-lines.c +++ b/src/routing-lines.c @@ -17,37 +17,55 @@ static void choose_line_colour( double *g, double *b ) { - int odd_in = r_src->lr_num & 1; - int odd_out = r_dst->elem->lr_num & 1; - int in2 = ((r_src->lr_num - 1) / 2 & 1); - int out2 = ((r_dst->elem->lr_num - 1) / 2 & 1); + // left channels have odd numbers + // right channels have even numbers + int odd_src = r_src->lr_num & 1; + int odd_dst = r_dst->elem->lr_num & 1; - if (odd_in && odd_out) { + // for colouring, pair channels up + // 0 for odd pairs, 1 for even pairs + int src2 = ((r_src->lr_num - 1) / 2 & 1); + int dst2 = ((r_dst->elem->lr_num - 1) / 2 & 1); + + // left -> left, black + if (odd_src && odd_dst) { *r = 0; *g = 0; *b = 0; - } else if (!odd_in && !odd_out) { + + // right -> right, red + } else if (!odd_src && !odd_dst) { *r = 1; *g = 0; *b = 0; - } else if (odd_in) { + + // left -> right, dark green + } else if (odd_src) { *r = 0; *g = 0.25; *b = 0; + + // right -> left, dark brown/olive } else { *r = 0.25; *g = 0.25; *b = 0; } + + // mix <-> non-mix, add blue if ((r_src->port_category == PC_MIX) != (r_dst->port_category == PC_MIX)) { *b = 0.5; } - if (in2) { + + // even input pairs, lighten red and green components + if (src2) { *r = (*r + 1) / 2; *g = (*g + 1) / 2; } - if (out2) { + + // even output pairs, lighten blue component + if (dst2) { *b = (*b + 1) / 2; } } From 50b7531dd2755875c829be3bced52624099dc6f8 Mon Sep 17 00:00:00 2001 From: Sebastian Kaminski Date: Fri, 1 Apr 2022 22:19:24 +0200 Subject: [PATCH 05/34] Prevent the boolean widget from changing size when toggled When the label of the button for the boolean widget changes, the size of the button was also changing. This commit sets the minimum size of the widget so that it will accommodate both labels. --- src/widget-boolean.c | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/widget-boolean.c b/src/widget-boolean.c index e971c5a..7fa26dc 100644 --- a/src/widget-boolean.c +++ b/src/widget-boolean.c @@ -9,6 +9,18 @@ static void button_clicked(GtkWidget *widget, struct alsa_elem *elem) { alsa_set_elem_value(elem, value); } +static void toggle_button_set_text(struct alsa_elem *elem, const char *text) { + if (!text) + return; + + if (*text == '*') { + GtkWidget *icon = gtk_image_new_from_icon_name(text + 1); + gtk_button_set_child(GTK_BUTTON(elem->widget), icon); + } else { + gtk_button_set_label(GTK_BUTTON(elem->widget), text); + } +} + static void toggle_button_updated(struct alsa_elem *elem) { int is_writable = alsa_get_elem_writable(elem); gtk_widget_set_sensitive(elem->widget, is_writable); @@ -16,17 +28,7 @@ static void toggle_button_updated(struct alsa_elem *elem) { int value = alsa_get_elem_value(elem); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(elem->widget), value); - const char *text = elem->bool_text[value]; - if (text) { - if (*text == '*') { - GtkWidget *icon = gtk_image_new_from_icon_name(text + 1); - gtk_button_set_child(GTK_BUTTON(elem->widget), icon); - } else { - gtk_button_set_label( - GTK_BUTTON(elem->widget), elem->bool_text[value] - ); - } - } + toggle_button_set_text(elem, elem->bool_text[value]); } GtkWidget *make_boolean_alsa_elem( @@ -44,6 +46,24 @@ GtkWidget *make_boolean_alsa_elem( elem->bool_text[0] = disabled_text; elem->bool_text[1] = enabled_text; + // find the maximum width and height of both possible labels + int max_width = 0, max_height = 0; + for (int i = 0; i < 2; i++) { + toggle_button_set_text(elem, elem->bool_text[i]); + + GtkRequisition *size = gtk_requisition_new(); + gtk_widget_get_preferred_size(button, size, NULL); + + if (size->width > max_width) + max_width = size->width; + if (size->height > max_height) + max_height = size->height; + } + + // set the widget minimum size to the maximum label size so that the + // widget doesn't change size when the label changes + gtk_widget_set_size_request(button, max_width, max_height); + toggle_button_updated(elem); return button; From be3f126f92d301a1d0893aff4402e2c38ab5e3d1 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sun, 24 Apr 2022 00:09:40 +1200 Subject: [PATCH 06/34] Add Ubuntu install and git download instructions --- USAGE.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/USAGE.md b/USAGE.md index 9395176..bb27685 100644 --- a/USAGE.md +++ b/USAGE.md @@ -58,6 +58,19 @@ installed: sudo dnf -y install alsa-lib-devel gtk4-devel ``` +On Ubuntu 22.04: + +``` +sudo apt -y install git make gcc libgtk-4-dev libasound2-dev +``` + +To download from github: + +``` +git clone https://github.com/geoffreybennett/alsa-scarlett-gui +cd alsa-scarlett-gui +``` + To build: ``` From 65c0f6aa432501355803a823be1d3f8aafe907a8 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 12 Aug 2022 01:32:09 +0930 Subject: [PATCH 07/34] Add Clarett support --- README.md | 27 +- USAGE.md | 24 +- demo/Clarett Plus 8Pre.state | 6455 ++++++++++++++++++++++++++++++++++ src/alsa.c | 3 +- 4 files changed, 6486 insertions(+), 23 deletions(-) create mode 100644 demo/Clarett Plus 8Pre.state diff --git a/README.md b/README.md index 9681b79..255bf43 100644 --- a/README.md +++ b/README.md @@ -7,24 +7,25 @@ the Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver. -The Focusrite Scarlett interfaces are class compliant USB audio -interfaces meaning that they work “out of the box” on Linux as audio -and MIDI interfaces (although on Gen 3 you need to disable MSD mode -first). However, the Gen 2 6i6+ and Gen 3 4i4+ interfaces have a bunch -of proprietary functionality that required a kernel driver to be -written specifically for those devices. +The Focusrite Scarlett (and Clarett+) interfaces are class compliant +USB audio interfaces meaning that they work “out of the box” on Linux +as audio and MIDI interfaces (although on Gen 3 you need to disable +MSD mode first). However, the Gen 2 6i6+, Gen 3 4i4+, and Clarett+ +interfaces have a bunch of proprietary functionality that required a +kernel driver to be written specifically for those devices. Linux kernel support (“ALSA Focusrite Scarlett Gen 2/3 Mixer Driver”) for the proprietary functionality of Gen 2 devices was first added in -5.4 and Gen 3 devices in 5.14. +5.4, Gen 3 devices in 5.14, and Clarett+ 8Pre is coming in 6.1. -Unfortunately, actually using this functionality was quite awful. The -existing applications like `alsamixer` and `qasmixer` become -completely user-hostile with the hundreds of controls presented for -the Gen 3 18i20. Even the smallest Gen 3 4i4 interface at last count -had 84 ALSA controls. +Unfortunately, actually using this functionality used to be quite an +awful experience. The existing applications like `alsamixer` and +`qasmixer` become completely user-hostile with the hundreds of +controls presented for the Gen 3 18i20. Even the smallest Gen 3 4i4 +interface at last count had 84 ALSA controls. -Announcing the ALSA Scarlett Gen 2/3 Control Panel! +Announcing the ALSA Scarlett Gen 2/3 (and Clarett+ 8Pre!) Control +Panel! ![Demonstration](img/demo.gif) diff --git a/USAGE.md b/USAGE.md index bb27685..4d75ad6 100644 --- a/USAGE.md +++ b/USAGE.md @@ -4,20 +4,22 @@ Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 -support. +support. For Clarett+ 8Pre support, wait for 6.1 or see +https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 +for kernel patches. -As of Linux 5.17, the driver is still disabled by default and needs to +As of Linux 6.0, the driver is still disabled by default and needs to be enabled at module load time with the `device_setup=1` option to insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf containing the appropriate line for your device: -Gen 2: +Scarlett Gen 2: - 6i6: `options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1` - 18i8: `options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1` - 18i20: `options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1` -Gen 3: +Scarlett Gen 3: - Solo: `options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1` - 2i2: `options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1` @@ -26,6 +28,10 @@ Gen 3: - 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1` - 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1` +Clarett+: + +- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` + Or you can use a sledgehammer: ``` options snd_usb_audio device_setup=1,1,1,1 @@ -138,7 +144,7 @@ The one control not accessible from the front panel is “Phantom Power Persistence” (menu option View → Startup) which controls the Phantom Power state when the interface is powered on. -## Gen 2 6i6+ and Gen 3 4i4+ Interfaces +## Gen 2 6i6+, Gen 3 4i4+, and Clarett+ Interfaces The Gen 2 6i6+ and Gen 3 4i4+ interfaces have many controls available. The controls are split between 4 windows, 3 of which are by default @@ -236,7 +242,7 @@ level/impedance. When plugging in microphones or line-level equipment to the input, set it to “Line”. The “Inst” setting is for instrument with pickups such as guitars. -#### Air (Gen 3 only) +#### Air (Gen 3 and Clarett+ only) Enabling Air will transform your recordings and inspire you while making music. @@ -342,9 +348,9 @@ configuration: #### Loopback -Gen 2 interfaces have as many PCM Inputs as Hardware Inputs. Gen 3 -interfaces have two more PCM Inputs which the proprietary driver -restricts to being “Loopback” inputs. +Gen 2 and Clarett+ interfaces have as many PCM Inputs as Hardware +Inputs. Gen 3 interfaces have two more PCM Inputs which the +proprietary driver restricts to being “Loopback” inputs. The “Loopback” feature advertised for Gen 3 devices is actually a limitation of the propretary Focusrite Control software. Both Gen 2 diff --git a/demo/Clarett Plus 8Pre.state b/demo/Clarett Plus 8Pre.state new file mode 100644 index 0000000..9323782 --- /dev/null +++ b/demo/Clarett Plus 8Pre.state @@ -0,0 +1,6455 @@ +state.USB { + control.1 { + iface CARD + name 'Internal Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.2 { + iface CARD + name 'S/PDIF Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.3 { + iface CARD + name 'ADAT Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.4 { + iface MIXER + name 'Clock Source Clock Source' + value Internal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Internal + item.1 S/PDIF + item.2 ADAT + } + } + control.5 { + iface MIXER + name 'Master HW Playback Volume' + value 85 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -4200 + } + } + control.6 { + iface MIXER + name 'Line 01 (Monitor L) Playback Volume' + value 85 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -4200 + } + } + control.7 { + iface MIXER + name 'Line 01 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.8 { + iface MIXER + name 'Line Out 01 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.9 { + iface MIXER + name 'Line 02 (Monitor R) Playback Volume' + value 85 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -4200 + } + } + control.10 { + iface MIXER + name 'Line 02 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.11 { + iface MIXER + name 'Line Out 02 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.12 { + iface MIXER + name 'Line 03 Playback Volume' + value 81 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -4600 + } + } + control.13 { + iface MIXER + name 'Line 03 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'Line Out 03 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.15 { + iface MIXER + name 'Line 04 Playback Volume' + value 81 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -4600 + } + } + control.16 { + iface MIXER + name 'Line 04 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'Line Out 04 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.18 { + iface MIXER + name 'Line 05 Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.19 { + iface MIXER + name 'Line 05 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.20 { + iface MIXER + name 'Line Out 05 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.21 { + iface MIXER + name 'Line 06 Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.22 { + iface MIXER + name 'Line 06 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'Line Out 06 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.24 { + iface MIXER + name 'Line 07 (Headphones 1 L) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.25 { + iface MIXER + name 'Line 07 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'Line Out 07 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.27 { + iface MIXER + name 'Line 08 (Headphones 1 R) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.28 { + iface MIXER + name 'Line 08 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'Line Out 08 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.30 { + iface MIXER + name 'Line 09 (Headphones 2 L) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.31 { + iface MIXER + name 'Line 09 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Line Out 09 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.33 { + iface MIXER + name 'Line 10 (Headphones 2 R) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.34 { + iface MIXER + name 'Line 10 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'Line Out 10 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.36 { + iface MIXER + name 'Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'Dim Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.38 { + iface MIXER + name 'Line In 1 Level Capture Enum' + value Line + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.39 { + iface MIXER + name 'Line In 2 Level Capture Enum' + value Line + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.40 { + iface MIXER + name 'Line In 1 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Line In 2 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Line In 3 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Line In 4 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Line In 5 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Line In 6 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Line In 7 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Line In 8 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Analogue Output 01 Playback Enum' + value 'Mix A' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.49 { + iface MIXER + name 'Analogue Output 02 Playback Enum' + value 'Mix B' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.50 { + iface MIXER + name 'Analogue Output 03 Playback Enum' + value 'PCM 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.51 { + iface MIXER + name 'Analogue Output 04 Playback Enum' + value 'PCM 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.52 { + iface MIXER + name 'Analogue Output 05 Playback Enum' + value 'PCM 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.53 { + iface MIXER + name 'Analogue Output 06 Playback Enum' + value 'PCM 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.54 { + iface MIXER + name 'Analogue Output 07 Playback Enum' + value 'Mix C' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.55 { + iface MIXER + name 'Analogue Output 08 Playback Enum' + value 'Mix D' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.56 { + iface MIXER + name 'Analogue Output 09 Playback Enum' + value 'Mix E' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.57 { + iface MIXER + name 'Analogue Output 10 Playback Enum' + value 'Mix F' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.58 { + iface MIXER + name 'S/PDIF Output 1 Playback Enum' + value 'PCM 11' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.59 { + iface MIXER + name 'S/PDIF Output 2 Playback Enum' + value 'PCM 12' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.60 { + iface MIXER + name 'ADAT Output 1 Playback Enum' + value 'PCM 13' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.61 { + iface MIXER + name 'ADAT Output 2 Playback Enum' + value 'PCM 14' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.62 { + iface MIXER + name 'ADAT Output 3 Playback Enum' + value 'PCM 15' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.63 { + iface MIXER + name 'ADAT Output 4 Playback Enum' + value 'PCM 16' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.64 { + iface MIXER + name 'ADAT Output 5 Playback Enum' + value 'PCM 17' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.65 { + iface MIXER + name 'ADAT Output 6 Playback Enum' + value 'PCM 18' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.66 { + iface MIXER + name 'ADAT Output 7 Playback Enum' + value 'PCM 19' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.67 { + iface MIXER + name 'ADAT Output 8 Playback Enum' + value 'PCM 20' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.68 { + iface MIXER + name 'Mixer Input 01 Capture Enum' + value 'S/PDIF 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.69 { + iface MIXER + name 'Mixer Input 02 Capture Enum' + value 'S/PDIF 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.70 { + iface MIXER + name 'Mixer Input 03 Capture Enum' + value 'Analogue 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.71 { + iface MIXER + name 'Mixer Input 04 Capture Enum' + value 'Analogue 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.72 { + iface MIXER + name 'Mixer Input 05 Capture Enum' + value 'Analogue 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.73 { + iface MIXER + name 'Mixer Input 06 Capture Enum' + value 'Analogue 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.74 { + iface MIXER + name 'Mixer Input 07 Capture Enum' + value 'Analogue 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.75 { + iface MIXER + name 'Mixer Input 08 Capture Enum' + value 'Analogue 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.76 { + iface MIXER + name 'Mixer Input 09 Capture Enum' + value 'Analogue 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.77 { + iface MIXER + name 'Mixer Input 10 Capture Enum' + value 'Analogue 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.78 { + iface MIXER + name 'Mixer Input 11 Capture Enum' + value 'ADAT 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.79 { + iface MIXER + name 'Mixer Input 12 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.80 { + iface MIXER + name 'Mixer Input 13 Capture Enum' + value 'ADAT 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.81 { + iface MIXER + name 'Mixer Input 14 Capture Enum' + value 'ADAT 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.82 { + iface MIXER + name 'Mixer Input 15 Capture Enum' + value 'ADAT 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.83 { + iface MIXER + name 'Mixer Input 16 Capture Enum' + value 'ADAT 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.84 { + iface MIXER + name 'Mixer Input 17 Capture Enum' + value 'PCM 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.85 { + iface MIXER + name 'Mixer Input 18 Capture Enum' + value 'PCM 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.86 { + iface MIXER + name 'PCM 01 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.87 { + iface MIXER + name 'PCM 02 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.88 { + iface MIXER + name 'PCM 03 Capture Enum' + value 'Analogue 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.89 { + iface MIXER + name 'PCM 04 Capture Enum' + value 'Analogue 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.90 { + iface MIXER + name 'PCM 05 Capture Enum' + value 'Analogue 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.91 { + iface MIXER + name 'PCM 06 Capture Enum' + value 'Analogue 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.92 { + iface MIXER + name 'PCM 07 Capture Enum' + value 'Analogue 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.93 { + iface MIXER + name 'PCM 08 Capture Enum' + value 'Analogue 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.94 { + iface MIXER + name 'PCM 09 Capture Enum' + value 'ADAT 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.95 { + iface MIXER + name 'PCM 10 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.96 { + iface MIXER + name 'PCM 11 Capture Enum' + value 'ADAT 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.97 { + iface MIXER + name 'PCM 12 Capture Enum' + value 'ADAT 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.98 { + iface MIXER + name 'PCM 13 Capture Enum' + value 'ADAT 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.99 { + iface MIXER + name 'PCM 14 Capture Enum' + value 'ADAT 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.100 { + iface MIXER + name 'PCM 15 Capture Enum' + value 'ADAT 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.101 { + iface MIXER + name 'PCM 16 Capture Enum' + value 'ADAT 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.102 { + iface MIXER + name 'PCM 17 Capture Enum' + value 'Analogue 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.103 { + iface MIXER + name 'PCM 18 Capture Enum' + value 'Analogue 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + item.37 'PCM 9' + item.38 'PCM 10' + item.39 'PCM 11' + item.40 'PCM 12' + item.41 'PCM 13' + item.42 'PCM 14' + item.43 'PCM 15' + item.44 'PCM 16' + item.45 'PCM 17' + item.46 'PCM 18' + item.47 'PCM 19' + item.48 'PCM 20' + } + } + control.104 { + iface MIXER + name 'Mix A Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.105 { + iface MIXER + name 'Mix A Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.106 { + iface MIXER + name 'Mix A Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.107 { + iface MIXER + name 'Mix A Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.108 { + iface MIXER + name 'Mix A Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.109 { + iface MIXER + name 'Mix A Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.110 { + iface MIXER + name 'Mix A Input 07 Playback Volume' + value 161 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 50 + } + } + control.111 { + iface MIXER + name 'Mix A Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.112 { + iface MIXER + name 'Mix A Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.113 { + iface MIXER + name 'Mix A Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.114 { + iface MIXER + name 'Mix A Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.115 { + iface MIXER + name 'Mix A Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.116 { + iface MIXER + name 'Mix A Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.117 { + iface MIXER + name 'Mix A Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.118 { + iface MIXER + name 'Mix A Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.119 { + iface MIXER + name 'Mix A Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.120 { + iface MIXER + name 'Mix A Input 17 Playback Volume' + value 161 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 50 + } + } + control.121 { + iface MIXER + name 'Mix A Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.122 { + iface MIXER + name 'Mix B Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.123 { + iface MIXER + name 'Mix B Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.124 { + iface MIXER + name 'Mix B Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.125 { + iface MIXER + name 'Mix B Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.126 { + iface MIXER + name 'Mix B Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.127 { + iface MIXER + name 'Mix B Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.128 { + iface MIXER + name 'Mix B Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.129 { + iface MIXER + name 'Mix B Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.130 { + iface MIXER + name 'Mix B Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.131 { + iface MIXER + name 'Mix B Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.132 { + iface MIXER + name 'Mix B Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.133 { + iface MIXER + name 'Mix B Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.134 { + iface MIXER + name 'Mix B Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.135 { + iface MIXER + name 'Mix B Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.136 { + iface MIXER + name 'Mix B Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.137 { + iface MIXER + name 'Mix B Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.138 { + iface MIXER + name 'Mix B Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.139 { + iface MIXER + name 'Mix B Input 18 Playback Volume' + value 161 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 50 + } + } + control.140 { + iface MIXER + name 'Mix C Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.141 { + iface MIXER + name 'Mix C Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.142 { + iface MIXER + name 'Mix C Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.143 { + iface MIXER + name 'Mix C Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.144 { + iface MIXER + name 'Mix C Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.145 { + iface MIXER + name 'Mix C Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.146 { + iface MIXER + name 'Mix C Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.147 { + iface MIXER + name 'Mix C Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.148 { + iface MIXER + name 'Mix C Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.149 { + iface MIXER + name 'Mix C Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.150 { + iface MIXER + name 'Mix C Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.151 { + iface MIXER + name 'Mix C Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.152 { + iface MIXER + name 'Mix C Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.153 { + iface MIXER + name 'Mix C Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.154 { + iface MIXER + name 'Mix C Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.155 { + iface MIXER + name 'Mix C Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.156 { + iface MIXER + name 'Mix C Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.157 { + iface MIXER + name 'Mix C Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.158 { + iface MIXER + name 'Mix D Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.159 { + iface MIXER + name 'Mix D Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.160 { + iface MIXER + name 'Mix D Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.161 { + iface MIXER + name 'Mix D Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.162 { + iface MIXER + name 'Mix D Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.163 { + iface MIXER + name 'Mix D Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.164 { + iface MIXER + name 'Mix D Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.165 { + iface MIXER + name 'Mix D Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.166 { + iface MIXER + name 'Mix D Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.167 { + iface MIXER + name 'Mix D Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.168 { + iface MIXER + name 'Mix D Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.169 { + iface MIXER + name 'Mix D Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.170 { + iface MIXER + name 'Mix D Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.171 { + iface MIXER + name 'Mix D Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.172 { + iface MIXER + name 'Mix D Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.173 { + iface MIXER + name 'Mix D Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.174 { + iface MIXER + name 'Mix D Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.175 { + iface MIXER + name 'Mix D Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.176 { + iface MIXER + name 'Mix E Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.177 { + iface MIXER + name 'Mix E Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.178 { + iface MIXER + name 'Mix E Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.179 { + iface MIXER + name 'Mix E Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.180 { + iface MIXER + name 'Mix E Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.181 { + iface MIXER + name 'Mix E Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.182 { + iface MIXER + name 'Mix E Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.183 { + iface MIXER + name 'Mix E Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.184 { + iface MIXER + name 'Mix E Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.185 { + iface MIXER + name 'Mix E Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.186 { + iface MIXER + name 'Mix E Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.187 { + iface MIXER + name 'Mix E Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.188 { + iface MIXER + name 'Mix E Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.189 { + iface MIXER + name 'Mix E Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.190 { + iface MIXER + name 'Mix E Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.191 { + iface MIXER + name 'Mix E Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.192 { + iface MIXER + name 'Mix E Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.193 { + iface MIXER + name 'Mix E Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.194 { + iface MIXER + name 'Mix F Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.195 { + iface MIXER + name 'Mix F Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.196 { + iface MIXER + name 'Mix F Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.197 { + iface MIXER + name 'Mix F Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.198 { + iface MIXER + name 'Mix F Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.199 { + iface MIXER + name 'Mix F Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.200 { + iface MIXER + name 'Mix F Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.201 { + iface MIXER + name 'Mix F Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.202 { + iface MIXER + name 'Mix F Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.203 { + iface MIXER + name 'Mix F Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.204 { + iface MIXER + name 'Mix F Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.205 { + iface MIXER + name 'Mix F Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.206 { + iface MIXER + name 'Mix F Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.207 { + iface MIXER + name 'Mix F Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.208 { + iface MIXER + name 'Mix F Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.209 { + iface MIXER + name 'Mix F Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.210 { + iface MIXER + name 'Mix F Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.211 { + iface MIXER + name 'Mix F Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.212 { + iface MIXER + name 'Mix G Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.213 { + iface MIXER + name 'Mix G Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.214 { + iface MIXER + name 'Mix G Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.215 { + iface MIXER + name 'Mix G Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.216 { + iface MIXER + name 'Mix G Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.217 { + iface MIXER + name 'Mix G Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.218 { + iface MIXER + name 'Mix G Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.219 { + iface MIXER + name 'Mix G Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.220 { + iface MIXER + name 'Mix G Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.221 { + iface MIXER + name 'Mix G Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.222 { + iface MIXER + name 'Mix G Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.223 { + iface MIXER + name 'Mix G Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.224 { + iface MIXER + name 'Mix G Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.225 { + iface MIXER + name 'Mix G Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.226 { + iface MIXER + name 'Mix G Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.227 { + iface MIXER + name 'Mix G Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.228 { + iface MIXER + name 'Mix G Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.229 { + iface MIXER + name 'Mix G Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.230 { + iface MIXER + name 'Mix H Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.231 { + iface MIXER + name 'Mix H Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.232 { + iface MIXER + name 'Mix H Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.233 { + iface MIXER + name 'Mix H Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.234 { + iface MIXER + name 'Mix H Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.235 { + iface MIXER + name 'Mix H Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.236 { + iface MIXER + name 'Mix H Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.237 { + iface MIXER + name 'Mix H Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.238 { + iface MIXER + name 'Mix H Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.239 { + iface MIXER + name 'Mix H Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.240 { + iface MIXER + name 'Mix H Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.241 { + iface MIXER + name 'Mix H Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.242 { + iface MIXER + name 'Mix H Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.243 { + iface MIXER + name 'Mix H Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.244 { + iface MIXER + name 'Mix H Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.245 { + iface MIXER + name 'Mix H Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.246 { + iface MIXER + name 'Mix H Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.247 { + iface MIXER + name 'Mix H Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.248 { + iface MIXER + name 'Mix I Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.249 { + iface MIXER + name 'Mix I Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.250 { + iface MIXER + name 'Mix I Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.251 { + iface MIXER + name 'Mix I Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.252 { + iface MIXER + name 'Mix I Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.253 { + iface MIXER + name 'Mix I Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.254 { + iface MIXER + name 'Mix I Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.255 { + iface MIXER + name 'Mix I Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.256 { + iface MIXER + name 'Mix I Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.257 { + iface MIXER + name 'Mix I Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.258 { + iface MIXER + name 'Mix I Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.259 { + iface MIXER + name 'Mix I Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.260 { + iface MIXER + name 'Mix I Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.261 { + iface MIXER + name 'Mix I Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.262 { + iface MIXER + name 'Mix I Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.263 { + iface MIXER + name 'Mix I Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.264 { + iface MIXER + name 'Mix I Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.265 { + iface MIXER + name 'Mix I Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.266 { + iface MIXER + name 'Mix J Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.267 { + iface MIXER + name 'Mix J Input 02 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.268 { + iface MIXER + name 'Mix J Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.269 { + iface MIXER + name 'Mix J Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.270 { + iface MIXER + name 'Mix J Input 05 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.271 { + iface MIXER + name 'Mix J Input 06 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.272 { + iface MIXER + name 'Mix J Input 07 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.273 { + iface MIXER + name 'Mix J Input 08 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.274 { + iface MIXER + name 'Mix J Input 09 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.275 { + iface MIXER + name 'Mix J Input 10 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.276 { + iface MIXER + name 'Mix J Input 11 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.277 { + iface MIXER + name 'Mix J Input 12 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.278 { + iface MIXER + name 'Mix J Input 13 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.279 { + iface MIXER + name 'Mix J Input 14 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.280 { + iface MIXER + name 'Mix J Input 15 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.281 { + iface MIXER + name 'Mix J Input 16 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.282 { + iface MIXER + name 'Mix J Input 17 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.283 { + iface MIXER + name 'Mix J Input 18 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.284 { + iface PCM + name 'Level Meter' + value.0 0 + value.1 0 + value.2 4090 + value.3 897 + value.4 4095 + value.5 512 + value.6 4094 + value.7 384 + value.8 1 + value.9 0 + value.10 16 + value.11 0 + value.12 3 + value.13 3 + value.14 2 + value.15 2 + value.16 0 + value.17 0 + value.18 4095 + value.19 4095 + value.20 0 + value.21 0 + value.22 0 + value.23 0 + value.24 0 + value.25 0 + value.26 4095 + value.27 4095 + value.28 0 + value.29 0 + value.30 0 + value.31 0 + value.32 0 + value.33 0 + value.34 0 + value.35 0 + value.36 0 + value.37 0 + value.38 0 + value.39 0 + value.40 4095 + value.41 512 + value.42 0 + value.43 16 + value.44 0 + value.45 0 + value.46 0 + value.47 0 + value.48 0 + value.49 0 + value.50 3 + value.51 0 + value.52 0 + value.53 1 + value.54 4095 + value.55 4095 + comment { + access 'read volatile' + type INTEGER + count 56 + range '0 - 4095 (step 1)' + } + } + control.285 { + iface MIXER + name 'Sync Status' + value Locked + comment { + access read + type ENUMERATED + count 1 + item.0 Unlocked + item.1 Locked + } + } + control.286 { + iface MIXER + name 'Standalone Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/src/alsa.c b/src/alsa.c index 057d32a..67c616b 100644 --- a/src/alsa.c +++ b/src/alsa.c @@ -505,7 +505,8 @@ void alsa_scan_cards(void) { if (err < 0) goto next; - if (strncmp(snd_ctl_card_info_get_name(info), "Scarlett", 8) != 0) + if (strncmp(snd_ctl_card_info_get_name(info), "Scarlett", 8) != 0 && + strncmp(snd_ctl_card_info_get_name(info), "Clarett", 7) != 0) goto next; // is there already an entry for this card in alsa_cards? From 59716b958547a97ab2a44dab8b931f4ede9a82ed Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 7 Sep 2023 02:04:22 +0930 Subject: [PATCH 08/34] Fix typos in USAGE.md --- USAGE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/USAGE.md b/USAGE.md index 4d75ad6..72e288b 100644 --- a/USAGE.md +++ b/USAGE.md @@ -269,7 +269,7 @@ configuration (menu option View → Startup). ### Analogue Output Controls The analogue output controls let you set the output volume (gain) on -the analogue line out and headphones outputs. All interfaces support +the analogue line out and headphone outputs. All interfaces support setting the gain and muting individual channels. Click and drag up/down to change the volume, or use your mouse scroll @@ -291,7 +291,7 @@ channels are disabled. There are “mute” and “dim” (reduce volume) buttons below the “HW” dial which affect only the outputs with “HW” control enabled. The Gen 3 18i8 doesn’t have physical buttons or indicator lights for these -control, but the 18i20 devices do. +controls, but the 18i20 devices do. On the other (smaller) interfaces, the big volume knob on the front of the interface controls the volume of the Line 1 and 2 outputs. This is @@ -353,7 +353,7 @@ Inputs. Gen 3 interfaces have two more PCM Inputs which the proprietary driver restricts to being “Loopback” inputs. The “Loopback” feature advertised for Gen 3 devices is actually a -limitation of the propretary Focusrite Control software. Both Gen 2 +limitation of the proprietary Focusrite Control software. Both Gen 2 and Gen 3 devices support full reassignment of the PCM Inputs, so you can have any PCM Input as a “Loopback” or assigned to any other source. @@ -370,7 +370,7 @@ to a PCM Input. If you use the Routing window to connect Sources to Mixer Inputs and Mixer Outputs to Destinations, then you can use the Mixer window to set the amount of each Mixer Input that is sent to each Mixer Output -using a matrix of controls. +using a matrix of controls: ![Mixer Window](img/window-mixer.png) From fb9ccfed49af503b57aa47df80505d12332710d2 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 7 Sep 2023 02:10:48 +0930 Subject: [PATCH 09/34] Fix building with Gtk 4.10 Add -Wno-error=deprecated-declarations to the Makefile so that it can build when using Gtk 4.10. --- src/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Makefile b/src/Makefile index 32e87de..c74fa3a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -10,6 +10,7 @@ DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.d CFLAGS := -Wall -Werror -ggdb -fno-omit-frame-pointer -O2 -D_FORTIFY_SOURCE=2 CFLAGS += -DVERSION=\"$(VERSION)\" +CFLAGS += -Wno-error=deprecated-declarations PKG_CONFIG=pkg-config From 10fb7160faaf663160c6da137e54764c66e3b69b Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 7 Sep 2023 02:21:12 +0930 Subject: [PATCH 10/34] Update README.md and USAGE.md with current driver information Kernel 6.1 added Clarett+ 8Pre support. Clarett 8Pre USB is supported now, works the same as Clarett+ 8Pre, just has a different USB ID. --- README.md | 12 +++++++----- USAGE.md | 27 ++++++++++++++++----------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 255bf43..2d40fbc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # ALSA Scarlett Gen 2/3 Control Panel (`alsa-scarlett-gui`) `alsa-scarlett-gui` is a Gtk4 GUI for the ALSA controls presented by -the Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver. +the Linux kernel Focusrite Scarlett Gen 2/3/Clarett USB/Clarett+ Mixer +Driver. ## About @@ -16,7 +17,8 @@ kernel driver to be written specifically for those devices. Linux kernel support (“ALSA Focusrite Scarlett Gen 2/3 Mixer Driver”) for the proprietary functionality of Gen 2 devices was first added in -5.4, Gen 3 devices in 5.14, and Clarett+ 8Pre is coming in 6.1. +5.4, Gen 3 devices in 5.14, Clarett+ 8Pre in 6.1, and Clarett 8Pre USB +coming soon. Unfortunately, actually using this functionality used to be quite an awful experience. The existing applications like `alsamixer` and @@ -24,8 +26,8 @@ awful experience. The existing applications like `alsamixer` and controls presented for the Gen 3 18i20. Even the smallest Gen 3 4i4 interface at last count had 84 ALSA controls. -Announcing the ALSA Scarlett Gen 2/3 (and Clarett+ 8Pre!) Control -Panel! +Announcing the ALSA Scarlett Gen 2/3 (and Clarett 8Pre USB/Clarett+ +8Pre!) Control Panel! ![Demonstration](img/demo.gif) @@ -55,7 +57,7 @@ Thank you! ## License -Copyright 2022 Geoffrey D. Bennett +Copyright 2022-2023 Geoffrey D. Bennett This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/USAGE.md b/USAGE.md index 72e288b..1a9a975 100644 --- a/USAGE.md +++ b/USAGE.md @@ -4,11 +4,12 @@ Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 -support. For Clarett+ 8Pre support, wait for 6.1 or see +support. For Clarett+ 8Pre support, you need 6.1, and for Clarett 8Pre +USB see https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 for kernel patches. -As of Linux 6.0, the driver is still disabled by default and needs to +As of Linux 6.5, the driver is still disabled by default and needs to be enabled at module load time with the `device_setup=1` option to insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf containing the appropriate line for your device: @@ -28,6 +29,10 @@ Scarlett Gen 3: - 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1` - 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1` +Clarett USB: + +- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x8208 device_setup=1` + Clarett+: - 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` @@ -144,11 +149,11 @@ The one control not accessible from the front panel is “Phantom Power Persistence” (menu option View → Startup) which controls the Phantom Power state when the interface is powered on. -## Gen 2 6i6+, Gen 3 4i4+, and Clarett+ Interfaces +## Gen 2 6i6+, Gen 3 4i4+, Clarett USB, and Clarett+ Interfaces -The Gen 2 6i6+ and Gen 3 4i4+ interfaces have many controls available. -The controls are split between 4 windows, 3 of which are by default -hidden. +The Gen 2 6i6+, Gen 3 4i4+, and Clarett interfaces have many controls +available. The controls are split between 4 windows, 3 of which are by +default hidden. The main window has: - Global Controls @@ -242,7 +247,7 @@ level/impedance. When plugging in microphones or line-level equipment to the input, set it to “Line”. The “Inst” setting is for instrument with pickups such as guitars. -#### Air (Gen 3 and Clarett+ only) +#### Air (Gen 3, Clarett USB, and Clarett+ only) Enabling Air will transform your recordings and inspire you while making music. @@ -348,13 +353,13 @@ configuration: #### Loopback -Gen 2 and Clarett+ interfaces have as many PCM Inputs as Hardware -Inputs. Gen 3 interfaces have two more PCM Inputs which the +Gen 2, Clarett USB, and Clarett+ interfaces have as many PCM Inputs as +Hardware Inputs. Gen 3 interfaces have two more PCM Inputs which the proprietary driver restricts to being “Loopback” inputs. The “Loopback” feature advertised for Gen 3 devices is actually a -limitation of the proprietary Focusrite Control software. Both Gen 2 -and Gen 3 devices support full reassignment of the PCM Inputs, so you +limitation of the proprietary Focusrite Control software. All devices +(except Solo/2i2) support full reassignment of the PCM Inputs, so you can have any PCM Input as a “Loopback” or assigned to any other source. From cf7d2b2b9d14e68e4da4b7ac5f8f122d6291c523 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 7 Sep 2023 02:26:58 +0930 Subject: [PATCH 11/34] Add link to fundraiser for adding Scarlett Gen 4 support --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 2d40fbc..0d88445 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,13 @@ Any donation is appreciated. - https://liberapay.com/gdb - https://paypal.me/gdbau +## Scarlett Gen 4 Support + +Focusrite recently released 3 new "Generation 4" interfaces: Solo, +2i2, and 4i4. I have created a fundraiser to specifically request +assistance purchasing one of each so I can add support for them as +well: https://gofund.me/ae997781 + Thank you! ## License From 7c9ec68d7ce799a0464596ec7959244eeb365d39 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Wed, 20 Sep 2023 03:36:53 +0930 Subject: [PATCH 12/34] Fix input counting for Clarett+ series The Clarett+ series don't have a pad function, so can't rely on that for creating input controls. Look for "Line ... Capture Switch" rather than "Line ... Pad Capture Switch". --- src/iface-mixer.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/iface-mixer.c b/src/iface-mixer.c index 13556f3..d94b09f 100644 --- a/src/iface-mixer.c +++ b/src/iface-mixer.c @@ -155,9 +155,8 @@ static void create_input_controls( ) { GArray *elems = card->elems; - // there's consistently a pad capture for each analogue input that - // has a control - int input_count = get_max_elem_by_name(elems, "Line", "Pad Capture Switch"); + // find how many inputs have switches + int input_count = get_max_elem_by_name(elems, "Line", "Capture Switch"); // Only the 18i20 Gen 2 has no input controls if (!input_count) From 7436008f1b66eaccf2cf8c81ac734e9ff4d7dc03 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Wed, 20 Sep 2023 03:52:11 +0930 Subject: [PATCH 13/34] Update README and USAGE files with new Clarett info Clarett+ 4Pre support is coming soon. --- README.md | 28 ++++++++++++++++------------ USAGE.md | 10 ++++++---- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 0d88445..69f92bf 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,18 @@ Driver. The Focusrite Scarlett (and Clarett+) interfaces are class compliant USB audio interfaces meaning that they work “out of the box” on Linux as audio and MIDI interfaces (although on Gen 3 you need to disable -MSD mode first). However, the Gen 2 6i6+, Gen 3 4i4+, and Clarett+ -interfaces have a bunch of proprietary functionality that required a -kernel driver to be written specifically for those devices. +MSD mode first). However, the Gen 2 6i6+, Gen 3 4i4+, Clarett USB, and +Clarett+ interfaces have a bunch of proprietary functionality that +required a kernel driver to be written specifically for those devices. Linux kernel support (“ALSA Focusrite Scarlett Gen 2/3 Mixer Driver”) -for the proprietary functionality of Gen 2 devices was first added in -5.4, Gen 3 devices in 5.14, Clarett+ 8Pre in 6.1, and Clarett 8Pre USB -coming soon. +for the proprietary functionality was first added in: +- Gen 2: Linux 5.4 +- Gen 3: Linux 5.14 +- Clarett+ 8Pre: Linux 6.1 +- Clarett 8Pre USB and Clarett+ 4Pre: coming soon +- Clarett 2Pre USB, Clarett+ 2Pre, and Clarett 4Pre USB: contact me + you have one of these Unfortunately, actually using this functionality used to be quite an awful experience. The existing applications like `alsamixer` and @@ -26,8 +30,8 @@ awful experience. The existing applications like `alsamixer` and controls presented for the Gen 3 18i20. Even the smallest Gen 3 4i4 interface at last count had 84 ALSA controls. -Announcing the ALSA Scarlett Gen 2/3 (and Clarett 8Pre USB/Clarett+ -8Pre!) Control Panel! +Announcing the ALSA Scarlett Gen 2/3 (and Clarett USB/Clarett+!) +Control Panel! ![Demonstration](img/demo.gif) @@ -81,7 +85,7 @@ along with this program. If not, see . ## Disclaimer Third Parties -Focusrite and Scarlett are trademarks or registered trademarks of -Focusrite Audio Engineering Limited in England, USA, and/or other -countries. Use of these trademarks does not imply any affiliation or -endorsement of this software. +Focusrite, Scarlett, and Clarett are trademarks or registered +trademarks of Focusrite Audio Engineering Limited in England, USA, +and/or other countries. Use of these trademarks does not imply any +affiliation or endorsement of this software. diff --git a/USAGE.md b/USAGE.md index 1a9a975..bce01f5 100644 --- a/USAGE.md +++ b/USAGE.md @@ -7,7 +7,8 @@ version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 support. For Clarett+ 8Pre support, you need 6.1, and for Clarett 8Pre USB see https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 -for kernel patches. +for kernel patches. Clarett+ 4Pre is coming soon. For support for +other Clarett devices, please contact me. As of Linux 6.5, the driver is still disabled by default and needs to be enabled at module load time with the `device_setup=1` option to @@ -35,6 +36,7 @@ Clarett USB: Clarett+: +- 4Pre: `options snd_usb_audio vid=0x1235 pid=0x820b device_setup=1` - 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` Or you can use a sledgehammer: @@ -44,7 +46,7 @@ options snd_usb_audio device_setup=1,1,1,1 to pass that option to the first 4 USB audio devices. To see if the driver is present and enabled: `dmesg | grep -i -A 5 -B -5 scarlett` should display information like: +5 focusrite` should display information like: ``` New USB device found, idVendor=1235, idProduct=8215, bcdDevice= 6.0b @@ -354,8 +356,8 @@ configuration: #### Loopback Gen 2, Clarett USB, and Clarett+ interfaces have as many PCM Inputs as -Hardware Inputs. Gen 3 interfaces have two more PCM Inputs which the -proprietary driver restricts to being “Loopback” inputs. +Hardware Inputs. Gen 3 interfaces have two more PCM Inputs which +Focusrite Control uses as “Loopback” inputs. The “Loopback” feature advertised for Gen 3 devices is actually a limitation of the proprietary Focusrite Control software. All devices From 94646665ed22a039d4c976221210e6792e8aab02 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sun, 1 Oct 2023 00:02:29 +0930 Subject: [PATCH 14/34] Split USAGE.md into INSTALL.md and USAGE.md --- INSTALL.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 ++- USAGE.md | 111 ++------------------------------------------------- 3 files changed, 121 insertions(+), 110 deletions(-) create mode 100644 INSTALL.md diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..c89329f --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,114 @@ +# ALSA Scarlett Gen 2/3 Control Panel Installation + +## Prerequisites + +Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least +version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 +support. For Clarett+ 8Pre support, you need 6.1, and for Clarett 8Pre +USB see +https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 +for kernel patches. Clarett+ 4Pre is coming soon. For support for +other Clarett devices, please contact me. + +As of Linux 6.5, the driver is still disabled by default and needs to +be enabled at module load time with the `device_setup=1` option to +insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf +containing the appropriate line for your device: + +Scarlett Gen 2: + +- 6i6: `options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1` +- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1` +- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1` + +Scarlett Gen 3: + +- Solo: `options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1` +- 2i2: `options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1` +- 4i4: `options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1` +- 8i6: `options snd_usb_audio vid=0x1235 pid=0x8213 device_setup=1` +- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1` +- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1` + +Clarett USB: + +- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x8208 device_setup=1` + +Clarett+: + +- 4Pre: `options snd_usb_audio vid=0x1235 pid=0x820b device_setup=1` +- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` + +Or you can use a sledgehammer: +``` +options snd_usb_audio device_setup=1,1,1,1 +``` +to pass that option to the first 4 USB audio devices. + +To see if the driver is present and enabled: `dmesg | grep -i -A 5 -B +5 focusrite` should display information like: + +``` +New USB device found, idVendor=1235, idProduct=8215, bcdDevice= 6.0b +Product: Scarlett 18i20 USB +Focusrite Scarlett Gen 2/3 Mixer Driver enabled pid=0x8215 +``` + +If the driver is disabled you’ll see a message like: + +``` +Focusrite Scarlett Gen 2/3 Mixer Driver disabled; use options +snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1 to enable and +report any issues to g@b4.vu", +``` + +## Building and Running + +On Fedora, the packages `alsa-lib-devel` and `gtk4-devel` need to be +installed: + +``` +sudo dnf -y install alsa-lib-devel gtk4-devel +``` + +On Ubuntu 22.04: + +``` +sudo apt -y install git make gcc libgtk-4-dev libasound2-dev +``` + +To download from github: + +``` +git clone https://github.com/geoffreybennett/alsa-scarlett-gui +cd alsa-scarlett-gui +``` + +To build: + +``` +cd src +make -j4 +``` + +To run: + +``` +./alsa-scarlett-gui +``` + +You can install it into `/usr/local` (binary, desktop file, and icon) +with: + +``` +sudo make install +``` + +And uninstall with: + +``` +sudo make uninstall +``` + +Continue on to reading [USAGE.md](USAGE.md) for usage information and +known issues. diff --git a/README.md b/README.md index 69f92bf..5ba995e 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,10 @@ report a bug). ## Documentation -Refer to [USAGE.md](USAGE.md) for prerequisites, instructions, usage -information, and known issues. +Refer to [INSTALL.md](INSTALL.md) for prerequisites, how to build, +install, and run. + +Refer to [USAGE.md](USAGE.md) for usage information and known issues. ## Donations diff --git a/USAGE.md b/USAGE.md index bce01f5..1994368 100644 --- a/USAGE.md +++ b/USAGE.md @@ -1,114 +1,9 @@ # ALSA Scarlett Gen 2/3 Control Panel Usage -## Prerequisites +Refer to [INSTALL.md](INSTALL.md) for prerequisites, how to build, +install, and run. -Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least -version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 -support. For Clarett+ 8Pre support, you need 6.1, and for Clarett 8Pre -USB see -https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 -for kernel patches. Clarett+ 4Pre is coming soon. For support for -other Clarett devices, please contact me. - -As of Linux 6.5, the driver is still disabled by default and needs to -be enabled at module load time with the `device_setup=1` option to -insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf -containing the appropriate line for your device: - -Scarlett Gen 2: - -- 6i6: `options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1` -- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1` -- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1` - -Scarlett Gen 3: - -- Solo: `options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1` -- 2i2: `options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1` -- 4i4: `options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1` -- 8i6: `options snd_usb_audio vid=0x1235 pid=0x8213 device_setup=1` -- 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1` -- 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1` - -Clarett USB: - -- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x8208 device_setup=1` - -Clarett+: - -- 4Pre: `options snd_usb_audio vid=0x1235 pid=0x820b device_setup=1` -- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` - -Or you can use a sledgehammer: -``` -options snd_usb_audio device_setup=1,1,1,1 -``` -to pass that option to the first 4 USB audio devices. - -To see if the driver is present and enabled: `dmesg | grep -i -A 5 -B -5 focusrite` should display information like: - -``` -New USB device found, idVendor=1235, idProduct=8215, bcdDevice= 6.0b -Product: Scarlett 18i20 USB -Focusrite Scarlett Gen 2/3 Mixer Driver enabled pid=0x8215 -``` - -If the driver is disabled you’ll see a message like: - -``` -Focusrite Scarlett Gen 2/3 Mixer Driver disabled; use options -snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1 to enable and -report any issues to g@b4.vu", -``` - -## Building and Running - -On Fedora, the packages `alsa-lib-devel` and `gtk4-devel` need to be -installed: - -``` -sudo dnf -y install alsa-lib-devel gtk4-devel -``` - -On Ubuntu 22.04: - -``` -sudo apt -y install git make gcc libgtk-4-dev libasound2-dev -``` - -To download from github: - -``` -git clone https://github.com/geoffreybennett/alsa-scarlett-gui -cd alsa-scarlett-gui -``` - -To build: - -``` -cd src -make -j4 -``` - -To run: - -``` -./alsa-scarlett-gui -``` - -You can install it into `/usr/local` (binary, desktop file, and icon) -with: - -``` -sudo make install -``` - -And uninstall with: - -``` -sudo make uninstall -``` +For usage instructions, read on... ## No interface connected From 0c92b7cad87b7128eaad7dd958e63fbe0973b14d Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sat, 30 Sep 2023 23:57:11 +0930 Subject: [PATCH 15/34] Add Clarett Plus 2Pre and 4Pre demo files --- demo/Clarett Plus 2Pre.state | 4147 ++++++++++++++++++++++++++++ demo/Clarett Plus 4Pre.state | 5041 ++++++++++++++++++++++++++++++++++ 2 files changed, 9188 insertions(+) create mode 100644 demo/Clarett Plus 2Pre.state create mode 100644 demo/Clarett Plus 4Pre.state diff --git a/demo/Clarett Plus 2Pre.state b/demo/Clarett Plus 2Pre.state new file mode 100644 index 0000000..37dc97b --- /dev/null +++ b/demo/Clarett Plus 2Pre.state @@ -0,0 +1,4147 @@ +state.C2Pre { + control.1 { + iface PCM + name 'Playback Channel Map' + value.0 0 + value.1 0 + value.2 0 + value.3 0 + comment { + access read + type INTEGER + count 4 + range '0 - 36' + } + } + control.2 { + iface PCM + name 'Capture Channel Map' + value.0 0 + value.1 0 + value.2 0 + value.3 0 + value.4 0 + value.5 0 + value.6 0 + value.7 0 + value.8 0 + value.9 0 + value.10 0 + value.11 0 + comment { + access read + type INTEGER + count 12 + range '0 - 36' + } + } + control.3 { + iface CARD + name 'Internal Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.4 { + iface CARD + name 'S/PDIF Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.5 { + iface CARD + name 'ADAT Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.6 { + iface MIXER + name 'Clock Source Clock Source' + value Internal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Internal + item.1 S/PDIF + item.2 ADAT + } + } + control.7 { + iface MIXER + name 'Master HW Playback Volume' + value 127 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.8 { + iface MIXER + name 'Line 01 (Monitor L) Playback Volume' + value 127 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.9 { + iface MIXER + name 'Line 01 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.10 { + iface MIXER + name 'Line Out 01 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.11 { + iface MIXER + name 'Line 02 (Monitor R) Playback Volume' + value 127 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.12 { + iface MIXER + name 'Line 02 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.13 { + iface MIXER + name 'Line Out 02 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.14 { + iface MIXER + name 'Line 03 (Headphones 1 L) Playback Volume' + value 127 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'Line 03 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'Line Out 03 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.17 { + iface MIXER + name 'Line 04 (Headphones 1 R) Playback Volume' + value 127 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.18 { + iface MIXER + name 'Line 04 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.19 { + iface MIXER + name 'Line Out 04 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.20 { + iface MIXER + name 'Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'Dim Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.22 { + iface MIXER + name 'Line In 1 Level Capture Enum' + value Line + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.23 { + iface MIXER + name 'Line In 2 Level Capture Enum' + value Inst + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.24 { + iface MIXER + name 'Line In 1 Air Capture Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'Line In 2 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'Analogue Output 01 Playback Enum' + value 'Analogue 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.27 { + iface MIXER + name 'Analogue Output 02 Playback Enum' + value 'Analogue 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.28 { + iface MIXER + name 'Analogue Output 03 Playback Enum' + value 'S/PDIF 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.29 { + iface MIXER + name 'Analogue Output 04 Playback Enum' + value 'S/PDIF 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.30 { + iface MIXER + name 'Mixer Input 01 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.31 { + iface MIXER + name 'Mixer Input 02 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.32 { + iface MIXER + name 'Mixer Input 03 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.33 { + iface MIXER + name 'Mixer Input 04 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.34 { + iface MIXER + name 'Mixer Input 05 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.35 { + iface MIXER + name 'Mixer Input 06 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.36 { + iface MIXER + name 'Mixer Input 07 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.37 { + iface MIXER + name 'Mixer Input 08 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.38 { + iface MIXER + name 'Mixer Input 09 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.39 { + iface MIXER + name 'Mixer Input 10 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.40 { + iface MIXER + name 'Mixer Input 11 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.41 { + iface MIXER + name 'Mixer Input 12 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.42 { + iface MIXER + name 'Mixer Input 13 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.43 { + iface MIXER + name 'Mixer Input 14 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.44 { + iface MIXER + name 'Mixer Input 15 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.45 { + iface MIXER + name 'Mixer Input 16 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.46 { + iface MIXER + name 'Mixer Input 17 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.47 { + iface MIXER + name 'Mixer Input 18 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.48 { + iface MIXER + name 'PCM 01 Capture Enum' + value 'Analogue 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.49 { + iface MIXER + name 'PCM 02 Capture Enum' + value 'Analogue 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.50 { + iface MIXER + name 'PCM 03 Capture Enum' + value 'S/PDIF 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.51 { + iface MIXER + name 'PCM 04 Capture Enum' + value 'S/PDIF 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.52 { + iface MIXER + name 'PCM 05 Capture Enum' + value 'ADAT 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.53 { + iface MIXER + name 'PCM 06 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.54 { + iface MIXER + name 'PCM 07 Capture Enum' + value 'ADAT 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.55 { + iface MIXER + name 'PCM 08 Capture Enum' + value 'ADAT 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.56 { + iface MIXER + name 'PCM 09 Capture Enum' + value 'ADAT 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.57 { + iface MIXER + name 'PCM 10 Capture Enum' + value 'ADAT 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.58 { + iface MIXER + name 'PCM 11 Capture Enum' + value 'ADAT 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.59 { + iface MIXER + name 'PCM 12 Capture Enum' + value 'ADAT 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'S/PDIF 1' + item.4 'S/PDIF 2' + item.5 'ADAT 1' + item.6 'ADAT 2' + item.7 'ADAT 3' + item.8 'ADAT 4' + item.9 'ADAT 5' + item.10 'ADAT 6' + item.11 'ADAT 7' + item.12 'ADAT 8' + item.13 'Mix A' + item.14 'Mix B' + item.15 'Mix C' + item.16 'Mix D' + item.17 'Mix E' + item.18 'Mix F' + item.19 'Mix G' + item.20 'Mix H' + item.21 'Mix I' + item.22 'Mix J' + item.23 'PCM 1' + item.24 'PCM 2' + item.25 'PCM 3' + item.26 'PCM 4' + } + } + control.60 { + iface MIXER + name 'Mix A Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.61 { + iface MIXER + name 'Mix A Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.62 { + iface MIXER + name 'Mix A Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.63 { + iface MIXER + name 'Mix A Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.64 { + iface MIXER + name 'Mix A Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.65 { + iface MIXER + name 'Mix A Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.66 { + iface MIXER + name 'Mix A Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.67 { + iface MIXER + name 'Mix A Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.68 { + iface MIXER + name 'Mix A Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.69 { + iface MIXER + name 'Mix A Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.70 { + iface MIXER + name 'Mix A Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.71 { + iface MIXER + name 'Mix A Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.72 { + iface MIXER + name 'Mix A Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.73 { + iface MIXER + name 'Mix A Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.74 { + iface MIXER + name 'Mix A Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.75 { + iface MIXER + name 'Mix A Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.76 { + iface MIXER + name 'Mix A Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.77 { + iface MIXER + name 'Mix A Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.78 { + iface MIXER + name 'Mix B Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.79 { + iface MIXER + name 'Mix B Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.80 { + iface MIXER + name 'Mix B Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.81 { + iface MIXER + name 'Mix B Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.82 { + iface MIXER + name 'Mix B Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.83 { + iface MIXER + name 'Mix B Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.84 { + iface MIXER + name 'Mix B Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.85 { + iface MIXER + name 'Mix B Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.86 { + iface MIXER + name 'Mix B Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.87 { + iface MIXER + name 'Mix B Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.88 { + iface MIXER + name 'Mix B Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.89 { + iface MIXER + name 'Mix B Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.90 { + iface MIXER + name 'Mix B Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.91 { + iface MIXER + name 'Mix B Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.92 { + iface MIXER + name 'Mix B Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.93 { + iface MIXER + name 'Mix B Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.94 { + iface MIXER + name 'Mix B Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.95 { + iface MIXER + name 'Mix B Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.96 { + iface MIXER + name 'Mix C Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.97 { + iface MIXER + name 'Mix C Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.98 { + iface MIXER + name 'Mix C Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.99 { + iface MIXER + name 'Mix C Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.100 { + iface MIXER + name 'Mix C Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.101 { + iface MIXER + name 'Mix C Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.102 { + iface MIXER + name 'Mix C Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.103 { + iface MIXER + name 'Mix C Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.104 { + iface MIXER + name 'Mix C Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.105 { + iface MIXER + name 'Mix C Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.106 { + iface MIXER + name 'Mix C Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.107 { + iface MIXER + name 'Mix C Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.108 { + iface MIXER + name 'Mix C Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.109 { + iface MIXER + name 'Mix C Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.110 { + iface MIXER + name 'Mix C Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.111 { + iface MIXER + name 'Mix C Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.112 { + iface MIXER + name 'Mix C Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.113 { + iface MIXER + name 'Mix C Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.114 { + iface MIXER + name 'Mix D Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.115 { + iface MIXER + name 'Mix D Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.116 { + iface MIXER + name 'Mix D Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.117 { + iface MIXER + name 'Mix D Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.118 { + iface MIXER + name 'Mix D Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.119 { + iface MIXER + name 'Mix D Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.120 { + iface MIXER + name 'Mix D Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.121 { + iface MIXER + name 'Mix D Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.122 { + iface MIXER + name 'Mix D Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.123 { + iface MIXER + name 'Mix D Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.124 { + iface MIXER + name 'Mix D Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.125 { + iface MIXER + name 'Mix D Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.126 { + iface MIXER + name 'Mix D Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.127 { + iface MIXER + name 'Mix D Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.128 { + iface MIXER + name 'Mix D Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.129 { + iface MIXER + name 'Mix D Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.130 { + iface MIXER + name 'Mix D Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.131 { + iface MIXER + name 'Mix D Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.132 { + iface MIXER + name 'Mix E Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.133 { + iface MIXER + name 'Mix E Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.134 { + iface MIXER + name 'Mix E Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.135 { + iface MIXER + name 'Mix E Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.136 { + iface MIXER + name 'Mix E Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.137 { + iface MIXER + name 'Mix E Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.138 { + iface MIXER + name 'Mix E Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.139 { + iface MIXER + name 'Mix E Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.140 { + iface MIXER + name 'Mix E Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.141 { + iface MIXER + name 'Mix E Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.142 { + iface MIXER + name 'Mix E Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.143 { + iface MIXER + name 'Mix E Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.144 { + iface MIXER + name 'Mix E Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.145 { + iface MIXER + name 'Mix E Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.146 { + iface MIXER + name 'Mix E Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.147 { + iface MIXER + name 'Mix E Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.148 { + iface MIXER + name 'Mix E Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.149 { + iface MIXER + name 'Mix E Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.150 { + iface MIXER + name 'Mix F Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.151 { + iface MIXER + name 'Mix F Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.152 { + iface MIXER + name 'Mix F Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.153 { + iface MIXER + name 'Mix F Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.154 { + iface MIXER + name 'Mix F Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.155 { + iface MIXER + name 'Mix F Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.156 { + iface MIXER + name 'Mix F Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.157 { + iface MIXER + name 'Mix F Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.158 { + iface MIXER + name 'Mix F Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.159 { + iface MIXER + name 'Mix F Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.160 { + iface MIXER + name 'Mix F Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.161 { + iface MIXER + name 'Mix F Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.162 { + iface MIXER + name 'Mix F Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.163 { + iface MIXER + name 'Mix F Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.164 { + iface MIXER + name 'Mix F Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.165 { + iface MIXER + name 'Mix F Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.166 { + iface MIXER + name 'Mix F Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.167 { + iface MIXER + name 'Mix F Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.168 { + iface MIXER + name 'Mix G Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.169 { + iface MIXER + name 'Mix G Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.170 { + iface MIXER + name 'Mix G Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.171 { + iface MIXER + name 'Mix G Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.172 { + iface MIXER + name 'Mix G Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.173 { + iface MIXER + name 'Mix G Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.174 { + iface MIXER + name 'Mix G Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.175 { + iface MIXER + name 'Mix G Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.176 { + iface MIXER + name 'Mix G Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.177 { + iface MIXER + name 'Mix G Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.178 { + iface MIXER + name 'Mix G Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.179 { + iface MIXER + name 'Mix G Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.180 { + iface MIXER + name 'Mix G Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.181 { + iface MIXER + name 'Mix G Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.182 { + iface MIXER + name 'Mix G Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.183 { + iface MIXER + name 'Mix G Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.184 { + iface MIXER + name 'Mix G Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.185 { + iface MIXER + name 'Mix G Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.186 { + iface MIXER + name 'Mix H Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.187 { + iface MIXER + name 'Mix H Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.188 { + iface MIXER + name 'Mix H Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.189 { + iface MIXER + name 'Mix H Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.190 { + iface MIXER + name 'Mix H Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.191 { + iface MIXER + name 'Mix H Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.192 { + iface MIXER + name 'Mix H Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.193 { + iface MIXER + name 'Mix H Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.194 { + iface MIXER + name 'Mix H Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.195 { + iface MIXER + name 'Mix H Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.196 { + iface MIXER + name 'Mix H Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.197 { + iface MIXER + name 'Mix H Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.198 { + iface MIXER + name 'Mix H Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.199 { + iface MIXER + name 'Mix H Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.200 { + iface MIXER + name 'Mix H Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.201 { + iface MIXER + name 'Mix H Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.202 { + iface MIXER + name 'Mix H Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.203 { + iface MIXER + name 'Mix H Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.204 { + iface MIXER + name 'Mix I Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.205 { + iface MIXER + name 'Mix I Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.206 { + iface MIXER + name 'Mix I Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.207 { + iface MIXER + name 'Mix I Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.208 { + iface MIXER + name 'Mix I Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.209 { + iface MIXER + name 'Mix I Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.210 { + iface MIXER + name 'Mix I Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.211 { + iface MIXER + name 'Mix I Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.212 { + iface MIXER + name 'Mix I Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.213 { + iface MIXER + name 'Mix I Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.214 { + iface MIXER + name 'Mix I Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.215 { + iface MIXER + name 'Mix I Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.216 { + iface MIXER + name 'Mix I Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.217 { + iface MIXER + name 'Mix I Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.218 { + iface MIXER + name 'Mix I Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.219 { + iface MIXER + name 'Mix I Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.220 { + iface MIXER + name 'Mix I Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.221 { + iface MIXER + name 'Mix I Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.222 { + iface MIXER + name 'Mix J Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.223 { + iface MIXER + name 'Mix J Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.224 { + iface MIXER + name 'Mix J Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.225 { + iface MIXER + name 'Mix J Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.226 { + iface MIXER + name 'Mix J Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.227 { + iface MIXER + name 'Mix J Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.228 { + iface MIXER + name 'Mix J Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.229 { + iface MIXER + name 'Mix J Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.230 { + iface MIXER + name 'Mix J Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.231 { + iface MIXER + name 'Mix J Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.232 { + iface MIXER + name 'Mix J Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.233 { + iface MIXER + name 'Mix J Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.234 { + iface MIXER + name 'Mix J Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.235 { + iface MIXER + name 'Mix J Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.236 { + iface MIXER + name 'Mix J Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.237 { + iface MIXER + name 'Mix J Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.238 { + iface MIXER + name 'Mix J Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.239 { + iface MIXER + name 'Mix J Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.240 { + iface PCM + name 'Level Meter' + value.0 0 + value.1 0 + value.2 0 + value.3 0 + value.4 0 + value.5 0 + value.6 0 + value.7 0 + value.8 0 + value.9 0 + value.10 0 + value.11 0 + value.12 0 + value.13 0 + value.14 0 + value.15 0 + value.16 0 + value.17 0 + value.18 0 + value.19 0 + value.20 0 + value.21 0 + value.22 0 + value.23 0 + value.24 0 + value.25 0 + value.26 0 + value.27 0 + value.28 0 + value.29 0 + value.30 0 + value.31 0 + value.32 0 + value.33 0 + comment { + access 'read volatile' + type INTEGER + count 34 + range '0 - 4095 (step 1)' + } + } + control.241 { + iface MIXER + name 'Sync Status' + value Locked + comment { + access read + type ENUMERATED + count 1 + item.0 Unlocked + item.1 Locked + } + } + control.242 { + iface MIXER + name 'Standalone Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/demo/Clarett Plus 4Pre.state b/demo/Clarett Plus 4Pre.state new file mode 100644 index 0000000..cbdcfa3 --- /dev/null +++ b/demo/Clarett Plus 4Pre.state @@ -0,0 +1,5041 @@ +state.C4Pre { + control.1 { + iface PCM + name 'Playback Channel Map' + value.0 3 + value.1 4 + value.2 7 + value.3 8 + value.4 5 + value.5 6 + value.6 12 + value.7 13 + comment { + access read + type INTEGER + count 8 + range '0 - 36' + } + } + control.2 { + iface CARD + name 'Internal Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.3 { + iface CARD + name 'S/PDIF Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.4 { + iface CARD + name 'ADAT Validity' + value true + comment { + access read + type BOOLEAN + count 1 + } + } + control.5 { + iface MIXER + name 'Clock Source Clock Source' + value Internal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Internal + item.1 S/PDIF + item.2 ADAT + } + } + control.6 { + iface MIXER + name 'Master HW Playback Volume' + value 70 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -5700 + } + } + control.7 { + iface MIXER + name 'Line 01 (Monitor L) Playback Volume' + value 70 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -5700 + } + } + control.8 { + iface MIXER + name 'Line 01 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.9 { + iface MIXER + name 'Line Out 01 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.10 { + iface MIXER + name 'Line 02 (Monitor R) Playback Volume' + value 70 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -5700 + } + } + control.11 { + iface MIXER + name 'Line 02 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'Line Out 02 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.13 { + iface MIXER + name 'Line 03 (Headphones 1 L) Playback Volume' + value 70 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -5700 + } + } + control.14 { + iface MIXER + name 'Line 03 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.15 { + iface MIXER + name 'Line Out 03 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.16 { + iface MIXER + name 'Line 04 (Headphones 1 R) Playback Volume' + value 70 + comment { + access read + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 -5700 + } + } + control.17 { + iface MIXER + name 'Line 04 Mute Playback Switch' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'Line Out 04 Volume Control Playback Enum' + value HW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.19 { + iface MIXER + name 'Line 05 (Headphones 2 L) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.20 { + iface MIXER + name 'Line 05 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.21 { + iface MIXER + name 'Line Out 05 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.22 { + iface MIXER + name 'Line 06 (Headphones 2 R) Playback Volume' + value 127 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 127 (step 1)' + dbmin -12700 + dbmax 0 + dbvalue.0 0 + } + } + control.23 { + iface MIXER + name 'Line 06 Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'Line Out 06 Volume Control Playback Enum' + value SW + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 SW + item.1 HW + } + } + control.25 { + iface MIXER + name 'Mute Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'Dim Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Line In 1 Level Capture Enum' + value Line + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.28 { + iface MIXER + name 'Line In 2 Level Capture Enum' + value Inst + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Line + item.1 Inst + } + } + control.29 { + iface MIXER + name 'Line In 1 Air Capture Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.30 { + iface MIXER + name 'Line In 2 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.31 { + iface MIXER + name 'Line In 3 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Line In 4 Air Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.33 { + iface MIXER + name 'Analogue Output 01 Playback Enum' + value 'PCM 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.34 { + iface MIXER + name 'Analogue Output 02 Playback Enum' + value 'PCM 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.35 { + iface MIXER + name 'Analogue Output 03 Playback Enum' + value 'PCM 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.36 { + iface MIXER + name 'Analogue Output 04 Playback Enum' + value 'PCM 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.37 { + iface MIXER + name 'Analogue Output 05 Playback Enum' + value 'Mix A' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.38 { + iface MIXER + name 'Analogue Output 06 Playback Enum' + value 'Mix B' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.39 { + iface MIXER + name 'S/PDIF Output 1 Playback Enum' + value 'PCM 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.40 { + iface MIXER + name 'S/PDIF Output 2 Playback Enum' + value 'PCM 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.41 { + iface MIXER + name 'Mixer Input 01 Capture Enum' + value 'Analogue 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.42 { + iface MIXER + name 'Mixer Input 02 Capture Enum' + value 'Analogue 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.43 { + iface MIXER + name 'Mixer Input 03 Capture Enum' + value 'PCM 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.44 { + iface MIXER + name 'Mixer Input 04 Capture Enum' + value 'PCM 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.45 { + iface MIXER + name 'Mixer Input 05 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.46 { + iface MIXER + name 'Mixer Input 06 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.47 { + iface MIXER + name 'Mixer Input 07 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.48 { + iface MIXER + name 'Mixer Input 08 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.49 { + iface MIXER + name 'Mixer Input 09 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.50 { + iface MIXER + name 'Mixer Input 10 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.51 { + iface MIXER + name 'Mixer Input 11 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.52 { + iface MIXER + name 'Mixer Input 12 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.53 { + iface MIXER + name 'Mixer Input 13 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.54 { + iface MIXER + name 'Mixer Input 14 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.55 { + iface MIXER + name 'Mixer Input 15 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.56 { + iface MIXER + name 'Mixer Input 16 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.57 { + iface MIXER + name 'Mixer Input 17 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.58 { + iface MIXER + name 'Mixer Input 18 Capture Enum' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.59 { + iface MIXER + name 'PCM 01 Capture Enum' + value 'Analogue 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.60 { + iface MIXER + name 'PCM 02 Capture Enum' + value 'Analogue 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.61 { + iface MIXER + name 'PCM 03 Capture Enum' + value 'Analogue 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.62 { + iface MIXER + name 'PCM 04 Capture Enum' + value 'Analogue 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.63 { + iface MIXER + name 'PCM 05 Capture Enum' + value 'Analogue 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.64 { + iface MIXER + name 'PCM 06 Capture Enum' + value 'Analogue 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.65 { + iface MIXER + name 'PCM 07 Capture Enum' + value 'Analogue 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.66 { + iface MIXER + name 'PCM 08 Capture Enum' + value 'Analogue 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.67 { + iface MIXER + name 'PCM 09 Capture Enum' + value 'S/PDIF 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.68 { + iface MIXER + name 'PCM 10 Capture Enum' + value 'S/PDIF 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.69 { + iface MIXER + name 'PCM 11 Capture Enum' + value 'ADAT 1' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.70 { + iface MIXER + name 'PCM 12 Capture Enum' + value 'ADAT 2' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.71 { + iface MIXER + name 'PCM 13 Capture Enum' + value 'ADAT 3' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.72 { + iface MIXER + name 'PCM 14 Capture Enum' + value 'ADAT 4' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.73 { + iface MIXER + name 'PCM 15 Capture Enum' + value 'ADAT 5' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.74 { + iface MIXER + name 'PCM 16 Capture Enum' + value 'ADAT 6' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.75 { + iface MIXER + name 'PCM 17 Capture Enum' + value 'ADAT 7' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.76 { + iface MIXER + name 'PCM 18 Capture Enum' + value 'ADAT 8' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 'Analogue 1' + item.2 'Analogue 2' + item.3 'Analogue 3' + item.4 'Analogue 4' + item.5 'Analogue 5' + item.6 'Analogue 6' + item.7 'Analogue 7' + item.8 'Analogue 8' + item.9 'S/PDIF 1' + item.10 'S/PDIF 2' + item.11 'ADAT 1' + item.12 'ADAT 2' + item.13 'ADAT 3' + item.14 'ADAT 4' + item.15 'ADAT 5' + item.16 'ADAT 6' + item.17 'ADAT 7' + item.18 'ADAT 8' + item.19 'Mix A' + item.20 'Mix B' + item.21 'Mix C' + item.22 'Mix D' + item.23 'Mix E' + item.24 'Mix F' + item.25 'Mix G' + item.26 'Mix H' + item.27 'Mix I' + item.28 'Mix J' + item.29 'PCM 1' + item.30 'PCM 2' + item.31 'PCM 3' + item.32 'PCM 4' + item.33 'PCM 5' + item.34 'PCM 6' + item.35 'PCM 7' + item.36 'PCM 8' + } + } + control.77 { + iface MIXER + name 'Mix A Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.78 { + iface MIXER + name 'Mix A Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.79 { + iface MIXER + name 'Mix A Input 03 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.80 { + iface MIXER + name 'Mix A Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.81 { + iface MIXER + name 'Mix A Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.82 { + iface MIXER + name 'Mix A Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.83 { + iface MIXER + name 'Mix A Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.84 { + iface MIXER + name 'Mix A Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.85 { + iface MIXER + name 'Mix A Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.86 { + iface MIXER + name 'Mix A Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.87 { + iface MIXER + name 'Mix A Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.88 { + iface MIXER + name 'Mix A Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.89 { + iface MIXER + name 'Mix A Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.90 { + iface MIXER + name 'Mix A Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.91 { + iface MIXER + name 'Mix A Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.92 { + iface MIXER + name 'Mix A Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.93 { + iface MIXER + name 'Mix A Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.94 { + iface MIXER + name 'Mix A Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.95 { + iface MIXER + name 'Mix B Input 01 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.96 { + iface MIXER + name 'Mix B Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.97 { + iface MIXER + name 'Mix B Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.98 { + iface MIXER + name 'Mix B Input 04 Playback Volume' + value 160 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 0 + } + } + control.99 { + iface MIXER + name 'Mix B Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.100 { + iface MIXER + name 'Mix B Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.101 { + iface MIXER + name 'Mix B Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.102 { + iface MIXER + name 'Mix B Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.103 { + iface MIXER + name 'Mix B Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.104 { + iface MIXER + name 'Mix B Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.105 { + iface MIXER + name 'Mix B Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.106 { + iface MIXER + name 'Mix B Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.107 { + iface MIXER + name 'Mix B Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.108 { + iface MIXER + name 'Mix B Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.109 { + iface MIXER + name 'Mix B Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.110 { + iface MIXER + name 'Mix B Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.111 { + iface MIXER + name 'Mix B Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.112 { + iface MIXER + name 'Mix B Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.113 { + iface MIXER + name 'Mix C Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.114 { + iface MIXER + name 'Mix C Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.115 { + iface MIXER + name 'Mix C Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.116 { + iface MIXER + name 'Mix C Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.117 { + iface MIXER + name 'Mix C Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.118 { + iface MIXER + name 'Mix C Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.119 { + iface MIXER + name 'Mix C Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.120 { + iface MIXER + name 'Mix C Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.121 { + iface MIXER + name 'Mix C Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.122 { + iface MIXER + name 'Mix C Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.123 { + iface MIXER + name 'Mix C Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.124 { + iface MIXER + name 'Mix C Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.125 { + iface MIXER + name 'Mix C Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.126 { + iface MIXER + name 'Mix C Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.127 { + iface MIXER + name 'Mix C Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.128 { + iface MIXER + name 'Mix C Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.129 { + iface MIXER + name 'Mix C Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.130 { + iface MIXER + name 'Mix C Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.131 { + iface MIXER + name 'Mix D Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.132 { + iface MIXER + name 'Mix D Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.133 { + iface MIXER + name 'Mix D Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.134 { + iface MIXER + name 'Mix D Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.135 { + iface MIXER + name 'Mix D Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.136 { + iface MIXER + name 'Mix D Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.137 { + iface MIXER + name 'Mix D Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.138 { + iface MIXER + name 'Mix D Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.139 { + iface MIXER + name 'Mix D Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.140 { + iface MIXER + name 'Mix D Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.141 { + iface MIXER + name 'Mix D Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.142 { + iface MIXER + name 'Mix D Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.143 { + iface MIXER + name 'Mix D Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.144 { + iface MIXER + name 'Mix D Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.145 { + iface MIXER + name 'Mix D Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.146 { + iface MIXER + name 'Mix D Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.147 { + iface MIXER + name 'Mix D Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.148 { + iface MIXER + name 'Mix D Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.149 { + iface MIXER + name 'Mix E Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.150 { + iface MIXER + name 'Mix E Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.151 { + iface MIXER + name 'Mix E Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.152 { + iface MIXER + name 'Mix E Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.153 { + iface MIXER + name 'Mix E Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.154 { + iface MIXER + name 'Mix E Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.155 { + iface MIXER + name 'Mix E Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.156 { + iface MIXER + name 'Mix E Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.157 { + iface MIXER + name 'Mix E Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.158 { + iface MIXER + name 'Mix E Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.159 { + iface MIXER + name 'Mix E Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.160 { + iface MIXER + name 'Mix E Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.161 { + iface MIXER + name 'Mix E Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.162 { + iface MIXER + name 'Mix E Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.163 { + iface MIXER + name 'Mix E Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.164 { + iface MIXER + name 'Mix E Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.165 { + iface MIXER + name 'Mix E Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.166 { + iface MIXER + name 'Mix E Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.167 { + iface MIXER + name 'Mix F Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.168 { + iface MIXER + name 'Mix F Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.169 { + iface MIXER + name 'Mix F Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.170 { + iface MIXER + name 'Mix F Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.171 { + iface MIXER + name 'Mix F Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.172 { + iface MIXER + name 'Mix F Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.173 { + iface MIXER + name 'Mix F Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.174 { + iface MIXER + name 'Mix F Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.175 { + iface MIXER + name 'Mix F Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.176 { + iface MIXER + name 'Mix F Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.177 { + iface MIXER + name 'Mix F Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.178 { + iface MIXER + name 'Mix F Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.179 { + iface MIXER + name 'Mix F Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.180 { + iface MIXER + name 'Mix F Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.181 { + iface MIXER + name 'Mix F Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.182 { + iface MIXER + name 'Mix F Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.183 { + iface MIXER + name 'Mix F Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.184 { + iface MIXER + name 'Mix F Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.185 { + iface MIXER + name 'Mix G Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.186 { + iface MIXER + name 'Mix G Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.187 { + iface MIXER + name 'Mix G Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.188 { + iface MIXER + name 'Mix G Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.189 { + iface MIXER + name 'Mix G Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.190 { + iface MIXER + name 'Mix G Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.191 { + iface MIXER + name 'Mix G Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.192 { + iface MIXER + name 'Mix G Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.193 { + iface MIXER + name 'Mix G Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.194 { + iface MIXER + name 'Mix G Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.195 { + iface MIXER + name 'Mix G Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.196 { + iface MIXER + name 'Mix G Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.197 { + iface MIXER + name 'Mix G Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.198 { + iface MIXER + name 'Mix G Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.199 { + iface MIXER + name 'Mix G Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.200 { + iface MIXER + name 'Mix G Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.201 { + iface MIXER + name 'Mix G Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.202 { + iface MIXER + name 'Mix G Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.203 { + iface MIXER + name 'Mix H Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.204 { + iface MIXER + name 'Mix H Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.205 { + iface MIXER + name 'Mix H Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.206 { + iface MIXER + name 'Mix H Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.207 { + iface MIXER + name 'Mix H Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.208 { + iface MIXER + name 'Mix H Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.209 { + iface MIXER + name 'Mix H Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.210 { + iface MIXER + name 'Mix H Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.211 { + iface MIXER + name 'Mix H Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.212 { + iface MIXER + name 'Mix H Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.213 { + iface MIXER + name 'Mix H Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.214 { + iface MIXER + name 'Mix H Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.215 { + iface MIXER + name 'Mix H Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.216 { + iface MIXER + name 'Mix H Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.217 { + iface MIXER + name 'Mix H Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.218 { + iface MIXER + name 'Mix H Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.219 { + iface MIXER + name 'Mix H Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.220 { + iface MIXER + name 'Mix H Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.221 { + iface MIXER + name 'Mix I Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.222 { + iface MIXER + name 'Mix I Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.223 { + iface MIXER + name 'Mix I Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.224 { + iface MIXER + name 'Mix I Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.225 { + iface MIXER + name 'Mix I Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.226 { + iface MIXER + name 'Mix I Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.227 { + iface MIXER + name 'Mix I Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.228 { + iface MIXER + name 'Mix I Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.229 { + iface MIXER + name 'Mix I Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.230 { + iface MIXER + name 'Mix I Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.231 { + iface MIXER + name 'Mix I Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.232 { + iface MIXER + name 'Mix I Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.233 { + iface MIXER + name 'Mix I Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.234 { + iface MIXER + name 'Mix I Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.235 { + iface MIXER + name 'Mix I Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.236 { + iface MIXER + name 'Mix I Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.237 { + iface MIXER + name 'Mix I Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.238 { + iface MIXER + name 'Mix I Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.239 { + iface MIXER + name 'Mix J Input 01 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.240 { + iface MIXER + name 'Mix J Input 02 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.241 { + iface MIXER + name 'Mix J Input 03 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.242 { + iface MIXER + name 'Mix J Input 04 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.243 { + iface MIXER + name 'Mix J Input 05 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.244 { + iface MIXER + name 'Mix J Input 06 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.245 { + iface MIXER + name 'Mix J Input 07 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.246 { + iface MIXER + name 'Mix J Input 08 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.247 { + iface MIXER + name 'Mix J Input 09 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.248 { + iface MIXER + name 'Mix J Input 10 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.249 { + iface MIXER + name 'Mix J Input 11 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.250 { + iface MIXER + name 'Mix J Input 12 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.251 { + iface MIXER + name 'Mix J Input 13 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.252 { + iface MIXER + name 'Mix J Input 14 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.253 { + iface MIXER + name 'Mix J Input 15 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.254 { + iface MIXER + name 'Mix J Input 16 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.255 { + iface MIXER + name 'Mix J Input 17 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.256 { + iface MIXER + name 'Mix J Input 18 Playback Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 172 (step 1)' + dbmin -8000 + dbmax 600 + dbvalue.0 -8000 + } + } + control.257 { + iface PCM + name 'Level Meter' + value.0 0 + value.1 0 + value.2 0 + value.3 0 + value.4 0 + value.5 0 + value.6 0 + value.7 0 + value.8 0 + value.9 0 + value.10 0 + value.11 0 + value.12 0 + value.13 0 + value.14 0 + value.15 0 + value.16 0 + value.17 0 + value.18 0 + value.19 0 + value.20 0 + value.21 0 + value.22 0 + value.23 0 + value.24 0 + value.25 0 + value.26 0 + value.27 0 + value.28 0 + value.29 0 + value.30 0 + value.31 0 + value.32 0 + value.33 0 + value.34 0 + value.35 0 + value.36 0 + value.37 0 + value.38 0 + value.39 0 + value.40 0 + value.41 0 + value.42 0 + value.43 0 + comment { + access 'read volatile' + type INTEGER + count 44 + range '0 - 4095 (step 1)' + } + } + control.258 { + iface MIXER + name 'Sync Status' + value Locked + comment { + access read + type ENUMERATED + count 1 + item.0 Unlocked + item.1 Locked + } + } + control.259 { + iface MIXER + name 'Standalone Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} From 3fa5803476c7e59df2f56c914c08e631fb4fbee1 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sat, 30 Sep 2023 23:58:28 +0930 Subject: [PATCH 16/34] Update Clarett USB and Clarett+ status --- INSTALL.md | 15 +++++---------- README.md | 4 +--- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index c89329f..64409f3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -4,11 +4,11 @@ Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 -support. For Clarett+ 8Pre support, you need 6.1, and for Clarett 8Pre -USB see -https://github.com/geoffreybennett/scarlett-gen2/commits/scarlett-gen3 -for kernel patches. Clarett+ 4Pre is coming soon. For support for -other Clarett devices, please contact me. +support. For Clarett+ 8Pre support, you need 6.1. + +For the other Clarett USB and Clarett+ models, see +https://github.com/geoffreybennett/scarlett-gen2/commits/clarett-4pre +for kernel patches. As of Linux 6.5, the driver is still disabled by default and needs to be enabled at module load time with the `device_setup=1` option to @@ -30,13 +30,8 @@ Scarlett Gen 3: - 18i8: `options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1` - 18i20: `options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1` -Clarett USB: - -- 8Pre: `options snd_usb_audio vid=0x1235 pid=0x8208 device_setup=1` - Clarett+: -- 4Pre: `options snd_usb_audio vid=0x1235 pid=0x820b device_setup=1` - 8Pre: `options snd_usb_audio vid=0x1235 pid=0x820c device_setup=1` Or you can use a sledgehammer: diff --git a/README.md b/README.md index 5ba995e..490bb85 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,7 @@ for the proprietary functionality was first added in: - Gen 2: Linux 5.4 - Gen 3: Linux 5.14 - Clarett+ 8Pre: Linux 6.1 -- Clarett 8Pre USB and Clarett+ 4Pre: coming soon -- Clarett 2Pre USB, Clarett+ 2Pre, and Clarett 4Pre USB: contact me - you have one of these +- Clarett 2Pre/4Pre/8Pre USB, Clarett+ 2Pre/4Pre: coming soon Unfortunately, actually using this functionality used to be quite an awful experience. The existing applications like `alsamixer` and From ea920d63439a97d9e1593dcf075ba0b2bd3f2b85 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sun, 1 Oct 2023 00:05:26 +0930 Subject: [PATCH 17/34] Apply correction curve to the dials Display the volume levels on the dials with a correction curve that resembles what the volume knob on the hardware does. --- src/gtkdial.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gtkdial.c b/src/gtkdial.c index 21cd2e1..ce06515 100644 --- a/src/gtkdial.c +++ b/src/gtkdial.c @@ -141,7 +141,19 @@ static void dial_measure(GtkWidget *widget, static inline double calc_valp(double val, double mn, double mx) { - return (val - mn)/(mx-mn); + if (val <= mn) + return 0.0; + if (val >= mx) + return 1.0; + + // convert val from mn..mx to 0..1 + val = (val - mn)/(mx-mn); + + // 10^(val - 1) converts it to 0.1..1 with a nice curve + val = pow(10, val - 1); + + // convert to 0..1 again + return (val - 0.1) / 0.9; } static inline double calc_val(double valp, double mn, double mx) From a2bbac248a22771607d0ee756d0cc23273503bd2 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Mon, 9 Oct 2023 02:23:50 +1030 Subject: [PATCH 18/34] Update README with Gen 4 and Vocaster info --- README.md | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 490bb85..ba5a754 100644 --- a/README.md +++ b/README.md @@ -8,17 +8,17 @@ Driver. -The Focusrite Scarlett (and Clarett+) interfaces are class compliant -USB audio interfaces meaning that they work “out of the box” on Linux -as audio and MIDI interfaces (although on Gen 3 you need to disable -MSD mode first). However, the Gen 2 6i6+, Gen 3 4i4+, Clarett USB, and -Clarett+ interfaces have a bunch of proprietary functionality that -required a kernel driver to be written specifically for those devices. +The Focusrite USB audio interfaces are class compliant meaning that +they work “out of the box” on Linux as audio and MIDI interfaces +(although on Gen 3 you need to disable MSD mode first for full +functionality). However, except for some of the smallest models, they +have a bunch of proprietary functionality that required a kernel +driver to be written specifically for those devices. Linux kernel support (“ALSA Focusrite Scarlett Gen 2/3 Mixer Driver”) for the proprietary functionality was first added in: -- Gen 2: Linux 5.4 -- Gen 3: Linux 5.14 +- Scarlett Gen 2: Linux 5.4 (bugs fixed in Linux 5.14) +- Scarlett Gen 3: Linux 5.14 - Clarett+ 8Pre: Linux 6.1 - Clarett 2Pre/4Pre/8Pre USB, Clarett+ 2Pre/4Pre: coming soon @@ -50,9 +50,9 @@ over hundreds of hours. Focusrite did not support the development of the driver or this control panel in any way. Thanks to Laurent Debricon who got me started on the Gen 3 drivers by donating a 4i4. -If you like it, please consider a donation to say thank you as it was -expensive to purchase one of each model for development and testing! -Any donation is appreciated. +If you like this software, please consider a donation to say thank you +as it was expensive to purchase one of each model for development and +testing! Any donation is appreciated. - https://liberapay.com/gdb - https://paypal.me/gdbau @@ -60,11 +60,15 @@ Any donation is appreciated. ## Scarlett Gen 4 Support Focusrite recently released 3 new "Generation 4" interfaces: Solo, -2i2, and 4i4. I have created a fundraiser to specifically request -assistance purchasing one of each so I can add support for them as -well: https://gofund.me/ae997781 +2i2, and 4i4. Thanks to all the Linux Musicians who donated so I could +purchase one of each Gen 4 interface: https://gofund.me/ae997781, +support for these is coming soon. -Thank you! +## Vocaster Support + +I will be getting a Vocaster One and a Vocaster Two soon. Once the +Scarlett Gen 4 support is complete, I'll start working on support for +those. ## License @@ -85,7 +89,7 @@ along with this program. If not, see . ## Disclaimer Third Parties -Focusrite, Scarlett, and Clarett are trademarks or registered -trademarks of Focusrite Audio Engineering Limited in England, USA, -and/or other countries. Use of these trademarks does not imply any -affiliation or endorsement of this software. +Focusrite, Scarlett, Clarett, and Vocaster are trademarks or +registered trademarks of Focusrite Audio Engineering Limited in +England, USA, and/or other countries. Use of these trademarks does not +imply any affiliation or endorsement of this software. From 1839c18671c62ff3f5ba0055a3e7640249b7fadd Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Thu, 19 Oct 2023 02:08:58 +1030 Subject: [PATCH 19/34] Specify full path to alsactl Debian doesn't include /usr/sbin in $PATH so alsactl isn't found. Hopefully it's in /usr/sbin for everyone. Fixes #65. --- src/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/file.c b/src/file.c index e468629..a37d945 100644 --- a/src/file.c +++ b/src/file.c @@ -15,7 +15,7 @@ static void run_alsactl( GtkWindow *w = GTK_WINDOW(card->window_main); gchar *argv[] = { - "alsactl", cmd, card->device, "-f", fn, NULL + "/usr/sbin/alsactl", cmd, card->device, "-f", fn, NULL }; gchar *stdout; gchar *stderr; From e176fad933ac152ebf9acc7c3e987794ee4f1c5e Mon Sep 17 00:00:00 2001 From: David Cooper Date: Mon, 12 Dec 2022 23:00:48 -0500 Subject: [PATCH 20/34] Add keyword to desktop file --- src/vu.b4.alsa-scarlett-gui.desktop.template | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vu.b4.alsa-scarlett-gui.desktop.template b/src/vu.b4.alsa-scarlett-gui.desktop.template index 5aeb414..9791a4f 100644 --- a/src/vu.b4.alsa-scarlett-gui.desktop.template +++ b/src/vu.b4.alsa-scarlett-gui.desktop.template @@ -7,3 +7,4 @@ Name=ALSA Scarlett Gen 2/3 Control Panel Icon=alsa-scarlett-gui Exec=PREFIX/bin/alsa-scarlett-gui Categories=GTK;AudioVideo;Audio;Mixer; +Keywords=focusrite; From 5637e411d45c5c7c5d796884f2ca431d74248039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Dom=C3=ADnguez?= Date: Mon, 14 Nov 2022 12:44:13 +0100 Subject: [PATCH 21/34] Change icon file name It's a good idea to use the new FreeDesktop conventions for file names. It adapts better to stuff like Flatpak. --- alsa-scarlett-gui.spec.template | 2 +- src/Makefile | 8 +++++--- src/img/vu.b4.alsa-scarlett-gui.png | Bin 0 -> 62648 bytes src/vu.b4.alsa-scarlett-gui.desktop.template | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 src/img/vu.b4.alsa-scarlett-gui.png diff --git a/alsa-scarlett-gui.spec.template b/alsa-scarlett-gui.spec.template index 8d9754d..11f4737 100644 --- a/alsa-scarlett-gui.spec.template +++ b/alsa-scarlett-gui.spec.template @@ -30,4 +30,4 @@ cp demo/* $DOCDIR/demo %doc /usr/share/doc/%{name}-%{version} /usr/bin/alsa-scarlett-gui /usr/share/applications/vu.b4.alsa-scarlett-gui.desktop -/usr/share/icons/hicolor/256x256/apps/alsa-scarlett-gui.png +/usr/share/icons/hicolor/256x256/apps/vu.b4.alsa-scarlett-gui.png diff --git a/src/Makefile b/src/Makefile index c74fa3a..e5564f8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -38,7 +38,9 @@ XML_OBJ := $(patsubst %.xml,%.c,$(XML_SRC)) SRCS := $(sort $(wildcard *.c) $(XML_OBJ)) OBJS := $(patsubst %.c,%.o,$(SRCS)) TARGET := alsa-scarlett-gui -DESKTOP_FILE := vu.b4.$(TARGET).desktop +DOMAIN_PREFIX := vu.b4 +DESKTOP_FILE := $(DOMAIN_PREFIX).$(TARGET).desktop +ICON_FILE := $(DOMAIN_PREFIX).$(TARGET).png GLIB_COMPILE_RESOURCES := $(shell $(PKG_CONFIG) --variable=glib_compile_resources gio-2.0) @@ -76,13 +78,13 @@ install: all install -d $(BINDIR) install -m 755 $(TARGET) $(BINDIR) install -d $(ICONDIR) - install -m 644 img/$(TARGET).png $(ICONDIR) + install -m 644 img/$(ICON_FILE) $(ICONDIR) install -d $(DESKTOPDIR) install -m 644 $(DESKTOP_FILE) $(DESKTOPDIR) uninstall: rm -f $(BINDIR)/$(TARGET) - rm -f $(ICONDIR)/$(TARGET).png + rm -f $(ICONDIR)/$(ICON_FILE) rm -f $(DESKTOPDIR)/$(DESKTOP_FILE) help: diff --git a/src/img/vu.b4.alsa-scarlett-gui.png b/src/img/vu.b4.alsa-scarlett-gui.png new file mode 100644 index 0000000000000000000000000000000000000000..1f64aecde9a7ebf791ea20651f718a786e7befa7 GIT binary patch literal 62648 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 S?ksqN_$bP%$y5SOL;nu~rw%Is literal 0 HcmV?d00001 diff --git a/src/vu.b4.alsa-scarlett-gui.desktop.template b/src/vu.b4.alsa-scarlett-gui.desktop.template index 9791a4f..618de63 100644 --- a/src/vu.b4.alsa-scarlett-gui.desktop.template +++ b/src/vu.b4.alsa-scarlett-gui.desktop.template @@ -4,7 +4,7 @@ Encoding=UTF-8 Value=1.5 Type=Application Name=ALSA Scarlett Gen 2/3 Control Panel -Icon=alsa-scarlett-gui +Icon=vu.b4.alsa-scarlett-gui Exec=PREFIX/bin/alsa-scarlett-gui Categories=GTK;AudioVideo;Audio;Mixer; Keywords=focusrite; From 2ce8450031dd0e5d4bfb7430766b518be43d5747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Dom=C3=ADnguez?= Date: Mon, 14 Nov 2022 12:47:12 +0100 Subject: [PATCH 22/34] Do not use deprecated or non-standard keys in desktop file --- src/vu.b4.alsa-scarlett-gui.desktop.template | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/vu.b4.alsa-scarlett-gui.desktop.template b/src/vu.b4.alsa-scarlett-gui.desktop.template index 618de63..1e0901a 100644 --- a/src/vu.b4.alsa-scarlett-gui.desktop.template +++ b/src/vu.b4.alsa-scarlett-gui.desktop.template @@ -1,7 +1,4 @@ [Desktop Entry] - -Encoding=UTF-8 -Value=1.5 Type=Application Name=ALSA Scarlett Gen 2/3 Control Panel Icon=vu.b4.alsa-scarlett-gui From e899eae6a1e4529f0298b83db9ba285b74fe1683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Dom=C3=ADnguez?= Date: Mon, 14 Nov 2022 12:48:17 +0100 Subject: [PATCH 23/34] Enable Flatpak packaging support --- .gitignore | 2 ++ USAGE.md | 18 ++++++++++++++++++ vu.b4.alsa-scarlett-gui.yml | 27 +++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 vu.b4.alsa-scarlett-gui.yml diff --git a/.gitignore b/.gitignore index 362af8e..5f201e4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ alsa-scarlett-gui alsa-scarlett-gui-resources.c vu.b4.alsa-scarlett-gui.desktop +.flatpak-builder/ +flatpak-build/ diff --git a/USAGE.md b/USAGE.md index 1994368..9d8f63a 100644 --- a/USAGE.md +++ b/USAGE.md @@ -5,6 +5,24 @@ install, and run. For usage instructions, read on... +With Flatpak, in any distro: + +``` +flatpak-builder --user --install --force-clean flatpak-build \ + vu.b4.alsa-scarlett-gui.yml +``` + +Be sure to use `flatpak-build` as the directory where the flatpak is +built or hence you risk bundling the artifacts when comitting! + +If it asks for the SDK, just install it: + +``` +flatpak install org.gnome.Sdk +``` + +And pick the right version. + ## No interface connected If no interface is detected (usually because there isn’t one diff --git a/vu.b4.alsa-scarlett-gui.yml b/vu.b4.alsa-scarlett-gui.yml new file mode 100644 index 0000000..212850e --- /dev/null +++ b/vu.b4.alsa-scarlett-gui.yml @@ -0,0 +1,27 @@ +app-id: vu.b4.alsa-scarlett-gui +runtime: org.gnome.Platform +runtime-version: "43" +sdk: org.gnome.Sdk +command: alsa-scarlett-gui +# If publishing to Flathub, this option is required for version (tag) 0.2 +rename-icon: alsa-scarlett-gui +finish-args: + # X11 + XShm access + - --share=ipc + - --socket=fallback-x11 + # Wayland access + - --socket=wayland + # Needs access to ALSA device nodes: + - --device=all +modules: + - name: alsa-scarlett-gui + buildsystem: simple + build-commands: + - make install PREFIX=$FLATPAK_DEST + sources: + - type: dir + path: ./src + # Use the following and remove the above for Flathub publishing + # - type: git + # url: https://github.com/geoffreybennett/alsa-scarlett-gui.git + # tag: "0.2" From 5a68e64c4f75051e49394421d9b8ec1134ef0bb0 Mon Sep 17 00:00:00 2001 From: Guillaume <1017720+gwilherm@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:40:32 +0200 Subject: [PATCH 24/34] Fix Error: icon alsa-scarlett-gui not found below... --- vu.b4.alsa-scarlett-gui.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vu.b4.alsa-scarlett-gui.yml b/vu.b4.alsa-scarlett-gui.yml index 212850e..231b374 100644 --- a/vu.b4.alsa-scarlett-gui.yml +++ b/vu.b4.alsa-scarlett-gui.yml @@ -4,7 +4,7 @@ runtime-version: "43" sdk: org.gnome.Sdk command: alsa-scarlett-gui # If publishing to Flathub, this option is required for version (tag) 0.2 -rename-icon: alsa-scarlett-gui +# rename-icon: alsa-scarlett-gui finish-args: # X11 + XShm access - --share=ipc From c8ecaeb15c03c5900561261bf97072919e04b8a9 Mon Sep 17 00:00:00 2001 From: Guillaume <1017720+gwilherm@users.noreply.github.com> Date: Thu, 19 Oct 2023 23:04:29 +0200 Subject: [PATCH 25/34] Remove commented rename-icon property --- vu.b4.alsa-scarlett-gui.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/vu.b4.alsa-scarlett-gui.yml b/vu.b4.alsa-scarlett-gui.yml index 231b374..75bc360 100644 --- a/vu.b4.alsa-scarlett-gui.yml +++ b/vu.b4.alsa-scarlett-gui.yml @@ -3,8 +3,6 @@ runtime: org.gnome.Platform runtime-version: "43" sdk: org.gnome.Sdk command: alsa-scarlett-gui -# If publishing to Flathub, this option is required for version (tag) 0.2 -# rename-icon: alsa-scarlett-gui finish-args: # X11 + XShm access - --share=ipc From 492c87638e901477408b1a1ff0da85d55a768c41 Mon Sep 17 00:00:00 2001 From: Guillaume <1017720+gwilherm@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:29:38 +0200 Subject: [PATCH 26/34] Using github.com/flatpak/flatpak-github-actions --- .github/workflows/build-flatpak-package.yml | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/build-flatpak-package.yml diff --git a/.github/workflows/build-flatpak-package.yml b/.github/workflows/build-flatpak-package.yml new file mode 100644 index 0000000..56782d2 --- /dev/null +++ b/.github/workflows/build-flatpak-package.yml @@ -0,0 +1,37 @@ +name: Build flatpak package + +on: + release: + branches: '*' + types: [published] + +env: + APP_NAME: alsa-scarlett-gui + APP_VERSION: ${{ github.event.release.tag_name }} + +jobs: + flatpak: + name: "Flatpak" + runs-on: ubuntu-latest + container: + image: bilelmoussaoui/flatpak-github-actions:gnome-44 + options: --privileged + steps: + - uses: actions/checkout@v4 + + - name: Build flatpak package + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 + with: + bundle: ${{ env.APP_NAME }}.flatpak + manifest-path: vu.b4.alsa-scarlett-gui.yml + cache-key: flatpak-builder-${{ github.sha }} + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./${{ env.APP_NAME }}.flatpak + asset_name: ${{ env.APP_NAME }}_${{ env.APP_VERSION }}.flatpak + asset_content_type: application/octet-stream From cb11f8170e2a457cfc00d0d8a9c58d5e34d23ad8 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 20 Oct 2023 14:54:10 +1030 Subject: [PATCH 27/34] Fix iface-none.png image description --- USAGE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/USAGE.md b/USAGE.md index 9d8f63a..7cd40df 100644 --- a/USAGE.md +++ b/USAGE.md @@ -28,7 +28,7 @@ And pick the right version. If no interface is detected (usually because there isn’t one connected!) you’ll see this window: -![MSD Mode](img/iface-none.png) +![No Interface Connected](img/iface-none.png) Plug in an interface or select the menu option File → Interface Simulation and load a demo file to make more interesting things From 48d4ea5ce561efffec8743db4f20975e9ee7dfba Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 20 Oct 2023 14:55:39 +1030 Subject: [PATCH 28/34] Move flatpak instructions to INSTALL.md --- INSTALL.md | 20 ++++++++++++++++++++ USAGE.md | 18 ------------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 64409f3..c4aed9a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -107,3 +107,23 @@ sudo make uninstall Continue on to reading [USAGE.md](USAGE.md) for usage information and known issues. + +## Flatpak + +With Flatpak, in any distro: + +``` +flatpak-builder --user --install --force-clean flatpak-build \ + vu.b4.alsa-scarlett-gui.yml +``` + +Be sure to use `flatpak-build` as the directory where the flatpak is +built or hence you risk bundling the artifacts when comitting! + +If it asks for the SDK, just install it: + +``` +flatpak install org.gnome.Sdk +``` + +And pick the right version. diff --git a/USAGE.md b/USAGE.md index 7cd40df..8c99dfb 100644 --- a/USAGE.md +++ b/USAGE.md @@ -5,24 +5,6 @@ install, and run. For usage instructions, read on... -With Flatpak, in any distro: - -``` -flatpak-builder --user --install --force-clean flatpak-build \ - vu.b4.alsa-scarlett-gui.yml -``` - -Be sure to use `flatpak-build` as the directory where the flatpak is -built or hence you risk bundling the artifacts when comitting! - -If it asks for the SDK, just install it: - -``` -flatpak install org.gnome.Sdk -``` - -And pick the right version. - ## No interface connected If no interface is detected (usually because there isn’t one From 2e197248d8f86d9d4230b7a4124cd37cd16d6f8c Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 20 Oct 2023 15:02:51 +1030 Subject: [PATCH 29/34] Update flatpak to gnome 45 --- .github/workflows/build-flatpak-package.yml | 2 +- vu.b4.alsa-scarlett-gui.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-flatpak-package.yml b/.github/workflows/build-flatpak-package.yml index 56782d2..412a81d 100644 --- a/.github/workflows/build-flatpak-package.yml +++ b/.github/workflows/build-flatpak-package.yml @@ -14,7 +14,7 @@ jobs: name: "Flatpak" runs-on: ubuntu-latest container: - image: bilelmoussaoui/flatpak-github-actions:gnome-44 + image: bilelmoussaoui/flatpak-github-actions:gnome-45 options: --privileged steps: - uses: actions/checkout@v4 diff --git a/vu.b4.alsa-scarlett-gui.yml b/vu.b4.alsa-scarlett-gui.yml index 75bc360..02a0ef4 100644 --- a/vu.b4.alsa-scarlett-gui.yml +++ b/vu.b4.alsa-scarlett-gui.yml @@ -1,6 +1,6 @@ app-id: vu.b4.alsa-scarlett-gui runtime: org.gnome.Platform -runtime-version: "43" +runtime-version: "45" sdk: org.gnome.Sdk command: alsa-scarlett-gui finish-args: From e225cdc58a391abd7da7c7448be7fec59ee23c25 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Fri, 20 Oct 2023 15:03:45 +1030 Subject: [PATCH 30/34] Add org.gnome.Platform and flathub to flatpak instructions --- INSTALL.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index c4aed9a..77ba3f2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -120,10 +120,29 @@ flatpak-builder --user --install --force-clean flatpak-build \ Be sure to use `flatpak-build` as the directory where the flatpak is built or hence you risk bundling the artifacts when comitting! -If it asks for the SDK, just install it: +If you get messages like these: + +``` +Failed to init: Unable to find sdk org.gnome.Sdk version 45 +Failed to init: Unable to find runtime org.gnome.Platform version 45 +``` + +Then install them: ``` flatpak install org.gnome.Sdk +flatpak install org.gnome.Platform ``` -And pick the right version. +If you get: + +``` +Looking for matches… +error: No remote refs found for ‘org.gnome.Sdk’ +``` + +Then: + +``` +flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +``` From 3b424664f09b471cc3abde52ab0452ae415eccb6 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Sat, 11 Nov 2023 02:20:47 +1030 Subject: [PATCH 31/34] Update INSTALL and README with Linux 6.7 info --- INSTALL.md | 20 ++++++++++++-------- README.md | 18 ++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 77ba3f2..415c0b6 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,16 +2,20 @@ ## Prerequisites -Linux Kernel with the ALSA Scarlett Gen 2/3 mixer driver. Use at least -version 5.14 for Scarlett Gen 3 support and bug fixes for the Gen 2 -support. For Clarett+ 8Pre support, you need 6.1. +Linux Kernel with the ALSA Scarlett2 Protocol Driver. -For the other Clarett USB and Clarett+ models, see -https://github.com/geoffreybennett/scarlett-gen2/commits/clarett-4pre -for kernel patches. +- Use at least version 5.14 for Scarlett Gen 3 support and bug fixes + for the Gen 2 support. +- For Clarett+ 8Pre support, you need 6.1. +- For the other Clarett USB and Clarett+ models, you need 6.7. -As of Linux 6.5, the driver is still disabled by default and needs to -be enabled at module load time with the `device_setup=1` option to +## Enabling the Driver + +As of Linux 6.7 the driver is enabled by default and you can skip this +section. + +If you're running a kernel before 6.7, the driver needs to be enabled +at module load time with the `device_setup=1` option to insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf containing the appropriate line for your device: diff --git a/README.md b/README.md index ba5a754..79ef35f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Driver. The Focusrite USB audio interfaces are class compliant meaning that they work “out of the box” on Linux as audio and MIDI interfaces -(although on Gen 3 you need to disable MSD mode first for full +(although on Gen 3/4 you need to disable MSD mode first for full functionality). However, except for some of the smallest models, they have a bunch of proprietary functionality that required a kernel driver to be written specifically for those devices. @@ -20,7 +20,7 @@ for the proprietary functionality was first added in: - Scarlett Gen 2: Linux 5.4 (bugs fixed in Linux 5.14) - Scarlett Gen 3: Linux 5.14 - Clarett+ 8Pre: Linux 6.1 -- Clarett 2Pre/4Pre/8Pre USB, Clarett+ 2Pre/4Pre: coming soon +- Clarett 2Pre/4Pre/8Pre USB, Clarett+ 2Pre/4Pre: Linux 6.7 Unfortunately, actually using this functionality used to be quite an awful experience. The existing applications like `alsamixer` and @@ -46,9 +46,7 @@ Refer to [USAGE.md](USAGE.md) for usage information and known issues. ## Donations This program is Free Software, developed using my personal resources, -over hundreds of hours. Focusrite did not support the development of -the driver or this control panel in any way. Thanks to Laurent -Debricon who got me started on the Gen 3 drivers by donating a 4i4. +over hundreds of hours. If you like this software, please consider a donation to say thank you as it was expensive to purchase one of each model for development and @@ -64,11 +62,15 @@ Focusrite recently released 3 new "Generation 4" interfaces: Solo, purchase one of each Gen 4 interface: https://gofund.me/ae997781, support for these is coming soon. +The overwhelming response to the GoFundMe also got the attention of +Focusrite. They offered to send me any devices that I didn't already +have, and also said that for any future product releases, they will do +their utmost to send me devices in advance. + ## Vocaster Support -I will be getting a Vocaster One and a Vocaster Two soon. Once the -Scarlett Gen 4 support is complete, I'll start working on support for -those. +Vocaster One and Two support will be coming once I've completed the +Scarlett 4th Gen support. ## License From 38edefb93ef6afabf169b9e9e4db3a3e7cf89fa8 Mon Sep 17 00:00:00 2001 From: sporksnail <65871831+sporksnail@users.noreply.github.com> Date: Sun, 12 Nov 2023 13:02:52 +0000 Subject: [PATCH 32/34] window-startup.c: fix typo Fix a minor typo in window-startup.c --- src/window-startup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window-startup.c b/src/window-startup.c index 0f862bf..69d4ab8 100644 --- a/src/window-startup.c +++ b/src/window-startup.c @@ -86,7 +86,7 @@ static void add_phantom_persistence_control( GtkWidget *w; - w = small_label("Phantom Power Persistance"); + w = small_label("Phantom Power Persistence"); gtk_grid_attach(GTK_GRID(grid), w, 0, *grid_y, 1, 1); w = make_boolean_alsa_elem(phantom, "Disabled", "Enabled"); From d96ced2b458f78ae75ab2eaca47f1cc05e4b5420 Mon Sep 17 00:00:00 2001 From: "Geoffrey D. Bennett" Date: Tue, 9 Aug 2022 01:23:31 +0930 Subject: [PATCH 33/34] Add meter/level display --- INSTALL.md | 6 ++++++ USAGE.md | 4 ++-- src/menu.c | 2 +- src/window-levels.c | 14 ++++++++++++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 415c0b6..8d06eac 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,6 +8,12 @@ Linux Kernel with the ALSA Scarlett2 Protocol Driver. for the Gen 2 support. - For Clarett+ 8Pre support, you need 6.1. - For the other Clarett USB and Clarett+ models, you need 6.7. +- For the level meters to work, you need 6.7. + +If you don't have 6.7, you can get the driver from here and build it +for your current kernel: + +https://github.com/geoffreybennett/scarlett-gen2/releases/tag/v6.5.11c1 ## Enabling the Driver diff --git a/USAGE.md b/USAGE.md index 8c99dfb..e24992a 100644 --- a/USAGE.md +++ b/USAGE.md @@ -354,8 +354,8 @@ menu option File → Interface Simulation to load. - Can’t select (focus) the gain/volume controls or use a keyboard to adjust them. -- Level (monitoring) doesn’t work yet and is disabled (needs kernel - driver update). +- Level meters don’t work if you're not running the driver from Linux + 6.7. - Load/Save uses `alsactl` which will be confused if the ALSA interface name (e.g. `USB`) changes. diff --git a/src/menu.c b/src/menu.c index f4ba6ec..baa38ff 100644 --- a/src/menu.c +++ b/src/menu.c @@ -125,7 +125,7 @@ GMenu *create_app_menu(GtkApplication *app) { g_menu_append_submenu(menu, "_View", G_MENU_MODEL(view_menu)); g_menu_append(view_menu, "_Routing", "win.routing"); g_menu_append(view_menu, "_Mixer", "win.mixer"); -//g_menu_append(view_menu, "_Levels", "win.levels"); + g_menu_append(view_menu, "_Levels", "win.levels"); g_menu_append(view_menu, "_Startup", "win.startup"); GMenu *help_menu = g_menu_new(); diff --git a/src/window-levels.c b/src/window-levels.c index 45640fd..558b3e3 100644 --- a/src/window-levels.c +++ b/src/window-levels.c @@ -24,7 +24,17 @@ static int update_levels_controls(void *user_data) { // go through the ports in that category for (int j = 0; j < card->routing_out_count[i]; j++) { GtkWidget *meter = card->meters[meter_num]; - gtk_dial_set_value(GTK_DIAL(meter), values[meter_num]); + double value = 20 * log10(values[meter_num] / 4095.0); + + int int_value; + if (value < -80) + int_value = -80; + else if (value > 0) + int_value = 0; + else + int_value = round(value); + + gtk_dial_set_value(GTK_DIAL(meter), int_value); meter_num++; } } @@ -93,7 +103,7 @@ GtkWidget *create_levels_controls(struct alsa_card *card) { count_labels[j] = add_count_label(grid, j); // create the meter widget and attach to the grid - GtkWidget *meter = gtk_dial_new_with_range(0, 4096, 1); + GtkWidget *meter = gtk_dial_new_with_range(-80, 0, 1); card->meters[meter_num++] = meter; gtk_grid_attach(GTK_GRID(grid), meter, j + 1, i + 1, 1, 1); } From 06a8c2be328f357363b3c58718dae4d3bf8a3faa Mon Sep 17 00:00:00 2001 From: Guillaume <1017720+gwilherm@users.noreply.github.com> Date: Fri, 27 May 2022 02:05:24 +0200 Subject: [PATCH 34/34] Github action to build debian package on release --- .github/workflows/build-debian-package.yml | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/build-debian-package.yml diff --git a/.github/workflows/build-debian-package.yml b/.github/workflows/build-debian-package.yml new file mode 100644 index 0000000..336d281 --- /dev/null +++ b/.github/workflows/build-debian-package.yml @@ -0,0 +1,56 @@ +name: Build debian package + +on: + release: + branches: '*' + types: [published] + +env: + APP_NAME: alsa-scarlett-gui + APP_VERSION: ${{ github.event.release.tag_name }} + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v3 + + - name: Install build dependencies + run: | + sudo apt -y update + sudo apt -y install git make gcc libgtk-4-dev libasound2-dev + + - name: Build from sources + run: | + make -C src -j4 PREFIX=/usr + + - name: Prepare package workspace + run: | + mkdir -p ${{ github.workspace }}/deb-workspace/usr/bin \ + ${{ github.workspace }}/deb-workspace/usr/share/applications \ + ${{ github.workspace }}/deb-workspace/usr/share/icons/hicolor/256x256/apps \ + ${{ github.workspace }}/deb-workspace/usr/share/doc/${{ env.APP_NAME }}-${{ env.APP_VERSION }} + cp src/alsa-scarlett-gui ${{ github.workspace }}/deb-workspace/usr/bin/ + cp src/vu.b4.alsa-scarlett-gui.desktop ${{ github.workspace }}/deb-workspace/usr/share/applications/ + cp src/img/alsa-scarlett-gui.png ${{ github.workspace }}/deb-workspace/usr/share/icons/hicolor/256x256/apps/ + cp -r *.md img demo ${{ github.workspace }}/deb-workspace/usr/share/doc/${{ env.APP_NAME }}-${{ env.APP_VERSION }}/ + + - name: Build debian package + uses: jiro4989/build-deb-action@v2 + with: + package: ${{ env.APP_NAME }} + package_root: ${{ github.workspace }}/deb-workspace + maintainer: geoffreybennett + version: ${{ env.APP_VERSION }} + desc: ${{ env.APP_NAME }} is a Gtk4 GUI for the ALSA controls presented by the Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver. + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./${{ env.APP_NAME }}_${{ env.APP_VERSION }}_amd64.deb + asset_name: ${{ env.APP_NAME }}_${{ env.APP_VERSION }}_amd64.deb + asset_content_type: application/vnd.debian.binary-package