Anyone Using UMC1820 & ADA8200 successfully?

Anyone Using UMC1820 & ADA8200 successfully?

I posted this in Linuxmusicians also but get no answer yet, so I thought I will ask here.
(* I checked my hardware setup in windows with Ardour and I could get sound from every mic channel from 1-8 on UMC1812 and ADAT1-8 with Ardour on Win8.1 *)

So something is up with Linux/Alsa or can the ADA8200 not work with Linux ?

With Ardour and mixbus on Linux I get only sound from Mic Inputs 7&8 (ADAT7&8) on the ADA8200, so the problem is not with the daws or the hardware setup - all works in windows.

Here is a copy of my post:
Hope someone can help here on Ardour.

I have been using UMC1820 for a year now and it is absolutely spectacular.
However, the ADA8200 is troublesome.

Upon receiving the ADA18200, I ran into immediate problems.
Only channels 7&8 of the ADA8200 passes sound to Mixbus

My setup is as follows

1) I connected the ADA8200 Optical out to the UMC1820 
    optical in
2) I set optical on front panel of UMC1820 to ADAT.
3) On the back of the ADA9200 I set the clock to have the 
   ADA9200 as master.
This should be the safest as the master clock runs then 
from ADA9200 and is sync'd to by UMC1820.
4) the indicators on the front of the ADA8200 shows it 
   syncs and is master.
5) In mixbus I connect the ADA8200 to channels 11-18 
    and activate them.

At this stage I encounter a problem.
Only channels 7&8 of the ADA8200 passes sound to Mixbus although the channels 1-6 are all connected same way in mixbus as 7-8.

6) Using Patchage I can see that there are 18 capture 
    inputs made available by alsa and they are all 
    connected to Mixbus.
7) Curiously though in alsamixer, selecting F6 and 
     UMC1820 as sound card, and viewing the inputs, 
     I only see 10 inputs!
 8) Either Alsa interface is archaic (wont hold my breath) 
      or alsa blocks the remaining inputs as there are no 
      volume controls except for 10.
9) The clock in alsa was set to ADAT.

So how did you guys get to use all 16 mic inputs of the UMC1820&ADA8200 combination ?
I seem to end at a dead door with only 10 usable inputs 8 from the UMC1820 and 2 from the ADA8200 (the last two 7&8 works)

Are you using the USB out of the UMC1820 to run all the audio into the computer or do you have a dedicated ADAT card?

USB out of the UMC1820

That may very well be the issue - ADAT support on Linux is a little iffy, and I don’t know if daisy-chained ADAT devices are supported through the USB bus. You, quite honestly, may be the first person to try it with Linux.

I use my audio interface together with the ADA8200 and it works perfectly. I have not set anything special either. After connecting and setting the master clock, it worked immediately. In Ardour, inputs 1 to 12 are the direct inputs from the audio interface and inputs 13 to 20 are the inputs from the ADA8200. Maybe the difference is that I am using Jack?

My setup:

  • Ubuntu 20.4 with the Ubuntu Studio Installer
  • Jack
  • Audio Interface: Tascam US-20x20 connected to my PC via USB
  • Behringer ADA8200 connected to the Tascam US-20x20 via ADAT and Clock

I checked again: I have the Tascam US-20x20 as master and the ADA8200 as slave. On my ADA8200, “Locked” is lit accordingly. But I don’t know if that makes a difference.

To Synthesis:

I am glad that someone actually got the ADA8200 to work as adat in Linux. At least now I know it is possible.
I am using Jack too, but jack will not be the cause of the problem as ALSA handles the interfaces.
It seems there is an Alsa problem with the UMC1820. but I cannot understand why as the UMC1820 is supposed to be USB compliant, and alsa will see all inputs if the device is USB compliant.

It seems to me that either

  1. UMC1820 is only compliant for its own 10 inputs. (8 analog + 2 spdif.) but that it is NOT compliant with ADAT per se.
  2. That is why I get only two inputs from the ADA8200 as the two SPDIF inputs now became two channels on the ADAT. Maybe this is why there is a Behringer driver for the ADA8200 in windows.
  3. The other possibility is that ALSA for some reason misreads ADAt inputs and expect only the 10 inputs from the UMC1820. Maybe it hard sets somewhere as 10 and an edit to 16 will fix things. I havent looked at the config profiles in Alsa yet.

Both possibilities above are plausable.

G’d forbid that be the case !

I suspect 2&3 are both true.

It may be in the kernel config for that card limiting it to that number of I/Os - you can see in [SOLVED] RME AIO Pro - LinuxMusicians where they discuss an RME AIO pro card (PCIe DAC for ADAT interfaces) that there are more than 8 interfaces on the pictures attached, which leads me to believe that the class compliant drivers for that Behringer interface are hard-coded to the amount of I/Os on the card, and that when you attach another interface to ADAT, the Behringer card moves the SPDIF inputs to the end of the input chain (so instead of inputs 9&10, they’re now 17&18) which is why the first two inputs of the ADAT chained mic pre are recognized, as they become inputs 9&10.

Just a hypothesis though.

That mirrors what I described in my second post and is exactly what seems to happen.
But why does it ignore 1-6, but correctly move the original 9&10 spdif on the UMC1820 now to 7&8 on ADA8200.
If it can read sound from the ADA8200 for inputs 7&8 there is no reason it cant read the remaining 1-6. this looks like a hard coded config issue as you said.

At which sample rate are you try to run the interface?

IIRC, ADAT is limited to 48KHz/24bit. If you happen to have Ardour (or Jack) trying to use something else (say 24/96), perhaps ALSA enables only the channels on the 1820, as those are the only ones which can be operated at that setting.

Try again, making sure that Ardour (or Jack) is accessing the 1820 via the “raw” interface (“hw:x,y”), anche verify that the card (and everything else) is actually set to 24/48.

If that’s the case and the problem is still there, I would rather ask on the ALSA official support mailing list (alsa-user): Mailing-lists - AlsaProject to possibly get an autoritative answer from an ALSA developer.

I’ve got an ADA8200 and an RME Fireface, had a Babyface (which has Linux support) before. No problems with the ADA8200. It should be absolutely independent from the OS anyway as long as ADAT coupling is supported by your primary interface.

I use UMC1820 and ADA8200 together in Linux with no problems. I also can record all channels of both devices.

I think your problem might be caused the way you sync the devices. My working setup is:

  • Connect ADA8200 ADAT output to UMC1820 and UMC1820 ADAT output to ADA8200. Both cables are needed for correct sync.
  • Set ADA8200 as the ADAT sync slave. This is important since Ardour / jack forces sample rate through USB to UMC1820 the ADA8200 cannot know the correct sample rate if it is not slaved to UMC1820. If you try to use ADA8200 as the sync master you risk getting glitches in your audio (been there done that).
  • When powering up devices first power up ADA8200 and only after that the UMC1820. This will ensure the UMC1820 will see the ADAT channels and will make them available through the USB to Ardour.

Mikael:
Thats good to hear.
I do everything right according to what you say above, but I will check again
Thanks.
Update: I do as you describe above and it is still no-go:

How many input channels do you see in AlsaMixer ?
Mine shows only 12
See image

I think I might have found the issue.
Since Mikael Hartzell has a working combination and I know what I am doing hardware-wise on Linux it MUST be an Alsa config.
So I went delving into alsa configs.

I noticed this in my asound.state file.

Since two channels works perfectly on the ADA8200, it should be only the levels that need to be adjusted below in the input and output sections and I can leave the clock and such alone.
As you can see the channels I need activated are clearly muted in the file.
I will change the higher values and see if that works.

Alsa REALLY need to update their interface to read and config all the asound.state file.

state.UMC1820 {
	control.1 {
		iface MIXER
		name 'UMC1820 Output Playback Switch'
		value.0 true
		value.1 true
		value.2 true
		value.3 true
		value.4 true
		value.5 true
		value.6 true
		value.7 true
		value.8 true
		value.9 true
		value.10 true
		value.11 true
		value.12 false
		value.13 false
		value.14 false
		value.15 false
		comment {
			access 'read write'
			type BOOLEAN
			count 16
		}
	}
	control.2 {
		iface MIXER
		name 'UMC1820 Output Playback Switch'
		index 1
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.3 {
		iface MIXER
		name 'UMC1820 Output Playback Volume'
		value.0 127
		value.1 127
		value.2 127
		value.3 127
		value.4 127
		value.5 127
		value.6 127
		value.7 127
		value.8 127
		value.9 127
		value.10 127
		value.11 127
		value.12 0
		value.13 0
		value.14 0
		value.15 0
		comment {
			access 'read write'
			type INTEGER
			count 16
			range '0 - 127'
			dbmin -12700
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
			dbvalue.2 0
			dbvalue.3 0
			dbvalue.4 0
			dbvalue.5 0
			dbvalue.6 0
			dbvalue.7 0
			dbvalue.8 0
			dbvalue.9 0
			dbvalue.10 0
			dbvalue.11 0
			dbvalue.12 -12700
			dbvalue.13 -12700
			dbvalue.14 -12700
			dbvalue.15 -12700
		}
	}
	control.4 {
		iface MIXER
		name 'UMC1820 Output Playback Volume'
		index 1
		value 127
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 127'
			dbmin -12700
			dbmax 0
			dbvalue.0 0
		}
	}
	control.5 {
		iface CARD
		name 'Internal Clock Validity'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.6 {
		iface CARD
		name 'Coaxial In SPDIF Validity'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.7 {
		iface CARD
		name 'Optical In ADAT/SMUX Validity'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.8 {
		iface MIXER
		name 'UMC1820 Clock Selector Clock Source'
		value 'Internal Clock'
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 'Internal Clock'
			item.1 'Coaxial In SPDIF'
			item.2 'Optical In ADAT/SMUX'
		}
	}
	control.9 {
		iface MIXER
		name 'Mic Capture Switch'
		value.0 true
		value.1 true
		value.2 true
		value.3 true
		value.4 true
		value.5 true
		value.6 true
		value.7 true
		value.8 true
		value.9 true
		value.10 false
		value.11 false
		value.12 false
		value.13 false
		value.14 false
		value.15 false
		comment {
			access 'read write'
			type BOOLEAN
			count 16
		}
	}
	control.10 {
		iface MIXER
		name 'Mic Capture Switch'
		index 1
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.11 {
		iface MIXER
		name 'Mic Capture Volume'
		value.0 127
		value.1 127
		value.2 127
		value.3 127
		value.4 127
		value.5 127
		value.6 127
		value.7 127
		value.8 0
		value.9 0
		value.10 0
		value.11 0
		value.12 0
		value.13 0
		value.14 0
		value.15 0
		comment {
			access 'read write'
			type INTEGER
			count 16
			range '0 - 127'
			dbmin -12700
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
			dbvalue.2 0
			dbvalue.3 0
			dbvalue.4 0
			dbvalue.5 0
			dbvalue.6 0
			dbvalue.7 0
			dbvalue.8 -12700
			dbvalue.9 -12700
			dbvalue.10 -12700
			dbvalue.11 -12700
			dbvalue.12 -12700
			dbvalue.13 -12700
			dbvalue.14 -12700
			dbvalue.15 -12700
		}
	}
	control.12 {
		iface MIXER
		name 'Mic Capture Volume'
		index 1
		value 127
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 127'
			dbmin -12700
			dbmax 0
			dbvalue.0 0
		}
	}
	control.13 {
		iface CARD
		name 'Keep Interface'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
}
state.XS8 {
	control {
	}
}
state.FIRE {
	control.1 {
		iface CARD
		name 'Keep Interface'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
}

Ok this solved it:

I now get All outputs and Inputs as tested on the ADA8200 interface directly for sound.
DONT use the alsamixer interface as any indication, as the largely inadequate interface still shows only a few inputs out of the 16+spdifs even though they are all now activated. Go figure !!

Here is how:
Side by side changes to asound.state.
Left Original / Right is the new edits that make the config works.

state.UMC1820 { state.UMC1820 {
	control.1 { 	control.1 {
		iface MIXER 		iface MIXER
		name 'UMC1820 Output Playback Switch' 		name 'UMC1820 Output Playback Switch'
		value.0 true 		value.0 true
		value.1 true 		value.1 true
		value.2 true 		value.2 true
		value.3 true 		value.3 true
		value.4 true 		value.4 true
		value.5 true 		value.5 true
		value.6 true 		value.6 true
		value.7 true 		value.7 true
		value.8 true 		value.8 true
		value.9 true 		value.9 true
		value.10 true 		value.10 true
		value.11 true 		value.11 true
		value.12 false 		value.12 true
		value.13 false 		value.13 true
		value.14 false 		value.14 true
		value.15 false 		value.15 true
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 16 			count 16
		} 		}
	} 	}
	control.2 { 	control.2 {
		iface MIXER 		iface MIXER
		name 'UMC1820 Output Playback Switch' 		name 'UMC1820 Output Playback Switch'
		index 1 		index 1
		value true 		value true
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
	control.3 { 	control.3 {
		iface MIXER 		iface MIXER
		name 'UMC1820 Output Playback Volume' 		name 'UMC1820 Output Playback Volume'
		value.0 127 		value.0 127
		value.1 127 		value.1 127
		value.2 127 		value.2 127
		value.3 127 		value.3 127
		value.4 127 		value.4 127
		value.5 127 		value.5 127
		value.6 127 		value.6 127
		value.7 127 		value.7 127
		value.8 127 		value.8 127
		value.9 127 		value.9 127
		value.10 127 		value.10 127
		value.11 127 		value.11 127
		value.12 0 		value.12 127
		value.13 0 		value.13 127
		value.14 0 		value.14 127
		value.15 0 		value.15 127
		comment { 		comment {
			access 'read write' 			access 'read write'
			type INTEGER 			type INTEGER
			count 16 			count 16
			range '0 - 127' 			range '0 - 127'
			dbmin -12700 			dbmin -12700
			dbmax 0 			dbmax 0
			dbvalue.0 0 			dbvalue.0 0
			dbvalue.1 0 			dbvalue.1 0
			dbvalue.2 0 			dbvalue.2 0
			dbvalue.3 0 			dbvalue.3 0
			dbvalue.4 0 			dbvalue.4 0
			dbvalue.5 0 			dbvalue.5 0
			dbvalue.6 0 			dbvalue.6 0
			dbvalue.7 0 			dbvalue.7 0
			dbvalue.8 0 			dbvalue.8 0
			dbvalue.9 0 			dbvalue.9 0
			dbvalue.10 0 			dbvalue.10 0
			dbvalue.11 0 			dbvalue.11 0
			dbvalue.12 -12700 			dbvalue.12 0
			dbvalue.13 -12700 			dbvalue.13 0
			dbvalue.14 -12700 			dbvalue.14 0
			dbvalue.15 -12700 			dbvalue.15 0
		} 		}
	} 	}
	control.4 { 	control.4 {
		iface MIXER 		iface MIXER
		name 'UMC1820 Output Playback Volume' 		name 'UMC1820 Output Playback Volume'
		index 1 		index 1
		value 127 		value 127
		comment { 		comment {
			access 'read write' 			access 'read write'
			type INTEGER 			type INTEGER
			count 1 			count 1
			range '0 - 127' 			range '0 - 127'
			dbmin -12700 			dbmin -12700
			dbmax 0 			dbmax 0
			dbvalue.0 0 			dbvalue.0 0
		} 		}
	} 	}
	control.5 { 	control.5 {
		iface CARD 		iface CARD
		name 'Internal Clock Validity' 		name 'Internal Clock Validity'
		value true 		value true
		comment { 		comment {
			access read 			access read
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
	control.6 { 	control.6 {
		iface CARD 		iface CARD
		name 'Coaxial In SPDIF Validity' 		name 'Coaxial In SPDIF Validity'
		value false 		value false
		comment { 		comment {
			access read 			access read
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
	control.7 { 	control.7 {
		iface CARD 		iface CARD
		name 'Optical In ADAT/SMUX Validity' 		name 'Optical In ADAT/SMUX Validity'
		value false 		value false
		comment { 		comment {
			access read 			access read
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
	control.8 { 	control.8 {
		iface MIXER 		iface MIXER
		name 'UMC1820 Clock Selector Clock Source' 		name 'UMC1820 Clock Selector Clock Source'
		value 'Internal Clock' 		value 'Internal Clock'
		comment { 		comment {
			access 'read write' 			access 'read write'
			type ENUMERATED 			type ENUMERATED
			count 1 			count 1
			item.0 'Internal Clock' 			item.0 'Internal Clock'
			item.1 'Coaxial In SPDIF' 			item.1 'Coaxial In SPDIF'
			item.2 'Optical In ADAT/SMUX' 			item.2 'Optical In ADAT/SMUX'
		} 		}
	} 	}
	control.9 { 	control.9 {
		iface MIXER 		iface MIXER
		name 'Mic Capture Switch' 		name 'Mic Capture Switch'
		value.0 true 		value.0 true
		value.1 true 		value.1 true
		value.2 true 		value.2 true
		value.3 true 		value.3 true
		value.4 true 		value.4 true
		value.5 true 		value.5 true
		value.6 true 		value.6 true
		value.7 true 		value.7 true
		value.8 true 		value.8 true
		value.9 true 		value.9 true
		value.10 false 		value.10 true
		value.11 false 		value.11 true
		value.12 false 		value.12 true
		value.13 false 		value.13 true
		value.14 false 		value.14 true
		value.15 false 		value.15 true
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 16 			count 16
		} 		}
	} 	}
	control.10 { 	control.10 {
		iface MIXER 		iface MIXER
		name 'Mic Capture Switch' 		name 'Mic Capture Switch'
		index 1 		index 1
		value true 		value true
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
	control.11 { 	control.11 {
		iface MIXER 		iface MIXER
		name 'Mic Capture Volume' 		name 'Mic Capture Volume'
		value.0 127 		value.0 127
		value.1 127 		value.1 127
		value.2 127 		value.2 127
		value.3 127 		value.3 127
		value.4 127 		value.4 127
		value.5 127 		value.5 127
		value.6 127 		value.6 127
		value.7 127 		value.7 127
		value.8 0 		value.8 127
		value.9 0 		value.9 127
		value.10 0 		value.10 127
		value.11 0 		value.11 127
		value.12 0 		value.12 127
		value.13 0 		value.13 127
		value.14 0 		value.14 127
		value.15 0 		value.15 127
		comment { 		comment {
			access 'read write' 			access 'read write'
			type INTEGER 			type INTEGER
			count 16 			count 16
			range '0 - 127' 			range '0 - 127'
			dbmin -12700 			dbmin -12700
			dbmax 0 			dbmax 0
			dbvalue.0 0 			dbvalue.0 0
			dbvalue.1 0 			dbvalue.1 0
			dbvalue.2 0 			dbvalue.2 0
			dbvalue.3 0 			dbvalue.3 0
			dbvalue.4 0 			dbvalue.4 0
			dbvalue.5 0 			dbvalue.5 0
			dbvalue.6 0 			dbvalue.6 0
			dbvalue.7 0 			dbvalue.7 0
			dbvalue.8 -12700 			dbvalue.8 0
			dbvalue.9 -12700 			dbvalue.9 0
			dbvalue.10 -12700 			dbvalue.10 0
			dbvalue.11 -12700 			dbvalue.11 0
			dbvalue.12 -12700 			dbvalue.12 0
			dbvalue.13 -12700 			dbvalue.13 0
			dbvalue.14 -12700 			dbvalue.14 0
			dbvalue.15 -12700 			dbvalue.15 0
		} 		}
	} 	}
	control.12 { 	control.12 {
		iface MIXER 		iface MIXER
		name 'Mic Capture Volume' 		name 'Mic Capture Volume'
		index 1 		index 1
		value 127 		value 127
		comment { 		comment {
			access 'read write' 			access 'read write'
			type INTEGER 			type INTEGER
			count 1 			count 1
			range '0 - 127' 			range '0 - 127'
			dbmin -12700 			dbmin -12700
			dbmax 0 			dbmax 0
			dbvalue.0 0 			dbvalue.0 0
		} 		}
	} 	}
	control.13 { 	control.13 {
		iface CARD 		iface CARD
		name 'Keep Interface' 		name 'Keep Interface'
		value false 		value false
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
		} 		}
	} 	}
} }
state.XS8 { state.XS8 {
	control { 	control {
	} 	}
} }
state.FIRE { state.FIRE {
	control.1 { 	control.1 {
		iface CARD 		iface CARD
		name 'Keep Interface' 		name 'Keep Interface'
		value false 		value false
		comment { 		comment {
			access 'read write' 			access 'read write'
			type BOOLEAN 			type BOOLEAN
			count 1 			count 1
1 Like

MODERATORS:

Consider Making this a Sticky for the UMC1820/ADA8200. Too many people (some qualified) battle unnecessarily with the alsa configs.