R-Pi USB 96kHz 8-ch DAC+ADC+SPDIF-I/O on sale!

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
This is a heads up on a USB audio interface that I have been using with the Raspberry-Pi for audio I/O. It's a Behringer FCA610:
BEHRINGER FCA610 6 In/10 Out FireWire/USB Audio/MIDI Studio Recording Interface | eBay

I have bought several products from this vendor, which I believe is the US Behringer distributor. The FCA610s are refurbished, but other refurb items I have bought from this seller appeared to be like new.

This is a great deal on an audio interface that gives you:
2 dedicated line inputs
2 front panel combo mix/line inputs
SPDIF digital input and output (both coax and toslink)
8 analog line outputs
24 bit audio (send it 32 bit audio from the Pi)
44.1, 48, 96 kHz sampling rates

The FCA610 is recognized under Raspbian as a class-compliant audio device. Sound quality is good (awesome for the price you pay!), noise floor is low, there are no USB bus power interference problems (it comes with its own 12V PS), and it has 1.95Vrms max output voltage. The analog line inputs and outputs use TRS connectors, but you can buy RCA-->TRS adapters for under $1 each and use consumer RCA interconnects.

If you are thinking of using your Pi as a crossover box for active loudspeakers, this would make a great multichannel audio DAC/interface.
 
Do you have any internal pics to share of this? I'm curious how the USB interface is handled to give 8 channels and also I wonder if its possible to upgrade it to having more 'audiophile' grade DACs. A picture of the PCB would help a lot in that regard.

Nope. Never opened one up to look. I don't know what ICs are used for the USB interface. You might check Google images to see if anyone has posted a pic. It seems to be able to be operated in asynchronous mode (using its internal clocksource) or USB adaptive modes. Under Raspbian the user can set this using alsamixer.

There are actually a total of 10 output channels (including the SPDIF channels), not 8. On a Raspberry Pi I can use ecasound to take 2 channel audio and put it into the first 2 channels of 10 output channels at 96kHz that are sent over USB to the FCA610. I do not experience any audible glitches or noises whatsoever, nor are there any under or over runs.

After discovering that these work with the Pi so well, I don't bother with trying to use multiple stereo DACs, or the USB-powered multichannel units. The cost for the FCA610 new is only US$200 and I find them on Ebay for under $150 used. It's really a great deal, and together with some software on the Pi it makes a really nice audio DSP unit.
 
I already checked Yahoo for internal images and also Taobao, no dice in either place. Plenty of external pics and Taobao has one for 1000rmb so similar price to US. However its too long a shot to buy one without some indication/confidence they can be hacked in the manner I'm wanting.
 
I already checked Yahoo for internal images and also Taobao, no dice in either place. Plenty of external pics and Taobao has one for 1000rmb so similar price to US. However its too long a shot to buy one without some indication/confidence they can be hacked in the manner I'm wanting.

Well, I know that you love to hack up and mod stuff, but that was not what I was suggesting.

This works great, right out of the box with the Pi. I have been using one in a stereo 4-way open baffle system for several months.
 
Charlie -

I purchased a FC610 per your recommendation above for experimentation in conjunction with a Raspberry PI3. I hope to stream wirelessly from Logitech Squeezecenter (which runs on my network) to the PI3 running a squeezebox client feeding ecasound performing digital XO into the FC610 to drive 2x4 active speakers.

However, Richard Taylor's HOWTO document (linked on your website) mentions that "...the Pi has a usb bottleneck that prevents using a digital/analog input at the same time as multi-channel output, at least on the usb soundcards I’ve tried.". Additionally, he states "I did get a xo running on a Pi. The cpu can handle the processing in real-time; unfortunately the usb bottleneck on the Pi prevents getting 4- or 6-channel out to the soundcard without stuttering.".

Questions:

1. Have these PI3 deficiencies been resolved since the time of Richard's comments?
2. Is the Ubuntu Mate OS sufficient for this endeavor?
3. Does this approach seem viable? If necessary, a second PI running piCorePlayer could feed the FC610 SPDIF inputs, relegating the PI3 to XO duty only.
 
Charlie -

I purchased a FC610 per your recommendation above for experimentation in conjunction with a Raspberry PI3. I hope to stream wirelessly from Logitech Squeezecenter (which runs on my network) to the PI3 running a squeezebox client feeding ecasound performing digital XO into the FC610 to drive 2x4 active speakers.

However, Richard Taylor's HOWTO document (linked on your website) mentions that "...the Pi has a usb bottleneck that prevents using a digital/analog input at the same time as multi-channel output, at least on the usb soundcards I’ve tried.". Additionally, he states "I did get a xo running on a Pi. The cpu can handle the processing in real-time; unfortunately the usb bottleneck on the Pi prevents getting 4- or 6-channel out to the soundcard without stuttering.".

Questions:

1. Have these PI3 deficiencies been resolved since the time of Richard's comments?
2. Is the Ubuntu Mate OS sufficient for this endeavor?
3. Does this approach seem viable? If necessary, a second PI running piCorePlayer could feed the FC610 SPDIF inputs, relegating the PI3 to XO duty only.

I just tested the FCA610 on a Pi 3 so that I could affirmatively answer your questions. I am running the Pixel desktop under Raspbian. Most of this testing was done from the single user command line (e.g. I exited the desktop completely) but should also work if run in a command window in the desktop environment.

After setting the FCA610 to use the USB bus input (instead of Firewire, see the manual for more info) I set up the FCA610 by choosing the USB bus as the clock source. You do this using alsamixer, press F6, select the FCA610 from the menu, and then use the up/down arrow key to choose 'USB Bus (SOF)' from the only available control called 'clock selector'. You can also select the internal clock with this control, but I got periodical quiet clicks or pops on that setting.

I then connected the analog outputs from a CD player to the line inputs on the back. This is input channels 3 and 4, so you need at least 4 input channels. When you try that, you get the message that 4 is an invalid number of input channels, so you must select 6 input channels or use the (slightly inferior) front inputs, which are channels 1 and 2.

Then I set up audio to go to all possible outputs (10 output channels). I move the audio coming in on the input channels to output channels 1 and 2, since these are easy to monitor using headphones via the front panel.

I was able to get 24 bits at 44.1k, 48k, and 96k sample rates working well using 6 input and 10 output channels. I did this using my go-to audio processing tool, ecasound. With the FCA610 as card 2 under ALSA, I issue the command via the command line:
Code:
 ecasound -B:rt -f:32,6,48000 -i:alsahw,2,0 -chmove:3,1 -chmove:4,2 -f:32,10,48000 -o:alsahw,2,0
The above uses a sample rate of 48kHz.

Next up, I tried SPDIF input via a toslink cable. To do this, I set the clock source to SPDIF using alsamixer, connected my CD player's toslink output to the toslink spdif input on the back of the FCA610, and made sure that "OPT" was selected as the spdif input on the front panel of the FCA610 (far right). Then I ran the ecasound command:
Code:
 ecasound -B:rt -f:32,6,44100 -i:alsahw,2,0 -chmove:5,1 -chmove:6,2 -f:32,10,44100 -o:alsahw,2,0
Note that I had to MANUALLY set the sample rate to 44.1k in ecasound in the format (-f) command. The input SPDIF can be up to 96k.

SPDIF input works fine, however, because the audio has to bass through the computer you may get occasionally soft clicks. This may be a result of different clock rates on the Pi and the SPDIF clock source (in this case, my CD player). The same thing can occur when you use the FCA610 internal clock and run audio through the computer. When the USB bus is used as clocksource and audio is supplied via the analog inputs or played directly off of the Pi (e.g. from file or internet streaming) there does not seem to be any of these artifacts.

I did try to get audio playing directly from the VLC player out to the FCA610, however, I was unable to get that to work when VLC tried to send the audio directly to the FCA610. I tried lots of different output modes but I think the problem stems from the fact that there is no 10 channel output mode listed. Instead, if I sent stereo audio first to an ALSA loopback (snd-aloop) from VLC and then used ecasound to route it on to the FCA610 as 10 channels of audio it worked perfectly. Just a heads up if you are trying to debug or test out your hardware.

I would not run Ubuntu Mate on the Pi for this application. On another Linux box I own (totally different CPU, etc.) that runs Ubuntu I was not able to get the FCA to work properly. I gave up after some time. It was surprising, because I knew I had the FCA610 working from a Pi system already. I am not sure what about Ubuntu might be the problem. In general, Ubuntu is a bit too much for the Pi, even the Pi 3, in my opinion.

You can install ecasound and try the commands I show, above. First, check which card number the FCA610 is assigned in ALSA. Yours might be CARD 1. A convenient way to find out is to issue the command:
Code:
aplay -l
Note that is a lower case "L" above. The FCA will be listed last. If the card is not #2, replace the '2' in all the 'alsahw:2,0' commands with the card number for the FCA610.

Finally, sometimes when you start using the FCA610, e.g. by issuing a new ecasound command, there may be a pretty strong "pop" on the outputs. I usually try to turn the amps on after doing that. I use a shell script for this purpose - the script toggles a GPIO pin that triggers a relay that turns on the amps. I reverse these steps when I want to turn everything off.

I hope that answers your questions.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.