ok...
for now I can record and playback succesfully with a 48k buffer 128 (jack cadence and lowlatency 5.3.0-28)
I have independent sound from headphones when I route sound to the outputs 3-4. And if I want monitoring every input with the headphones I have to route every input to 3&4 outputs (in my old Edirol UA25ex I had a direct analog monitoring).
I'm waiting for driver for use the rest of funcionalities...
If I can do it something just tell me.
Thanks!
I've a Focusrite Scarlett 2i2 Gen 3 due to be arriving on Thursday.
Happy to help out testing any code on my (Arch) linux machine. Alas I have no virtual Windows install on this machine, so can't grab the commands that the Focusrite software sends.
Also happy to reviewing code before sending a patch into mainline, know how hard that can be at times (I've done device tree for some arm machines on mainline kernel).
As I note you used in in the first two generation linux drivers. I know this device can be controlled by buttons, but would be good to control by software as well.
I've just bought a 3rd Gen 18i8. Audio works out of the box. It doesn't show up as a MIDI interface, presumably because it's still in 'MSD Mode'. Holding down the 48V switch didn't seem to take it out of MSD Mode, so I'll have to do that next time I have a Windows machine with Focusrite Control.
Keen to help geoffey's noble efforts if I can, or just contribute to a beer fund! Unfortunately I don't know how to compile a kernel. @geoffrey, where are you based?
Did i get i right that the Focusrite Scarlett Solo 3rd Gen is woring under linux? Im using Manjaro 4.14.
I want to use the Focusrite Scarlett Solo 3rd Gen with 2x Tannoy Reveal 402.
summers wrote: ↑Tue Mar 03, 2020 8:49 pm
Happy to help out testing any code on my (Arch) linux machine. Alas I have no virtual Windows install on this machine, so can't grab the commands that the Focusrite software sends.
FYI, for those who would use a windows virtual machine if they could, Microsoft offers development virtual machines for free which is set with a time limit. They keep updating the VM image with a newer time limit:
Excited to find this thread. Thanks for all of the hard work here!
I wanted to provide some info on my new 8i6 and also see if anyone had a suggestion on a problem I'm having.
I've use a gen2 2i2 and 6i6 with absolutely no problems in Linux. Just got a gen3 8i6, and I'm getting a lot of popping on the output. Jack is recognizing it fine, and I'm getting no XRUNs. Any ideas?
Here is the 'lsusb' info. Glad to help/test anything. THANKS!
triiif wrote: ↑Fri Apr 10, 2020 7:57 am
@jsh
hehe look at my post here : viewtopic.php?p=116413#p116413
you have to build your kernel with this patch.
Ah; thanks! Do you mind explaining what's going on here? (I am a programmer, but I'm not familiar with this code, and there's not much context.) Thanks!
jsh wrote: ↑Fri Apr 10, 2020 5:05 pm
Ah; thanks! Do you mind explaining what's going on here? (I am a programmer, but I'm not familiar with this code, and there's not much context.) Thanks!
USB audio devices that works in asynchronous mode must provide feedback to the host. This is because devices' internal clock is completely independent and the host needs some sort of feedback to adjust its data packet rate. Otherwise device buffer will periodically overflow or underflow. There are two types of feedback: explicit and implicit. Most of the UAC2 devices have dedicated explicit feedback endpoint and this configuration is perfectly supported by the snd-usb-audio driver. But some newer devices like Focusrite Scarlett Gen3 and MOTU M2/M4 doesn't provide explicit feedback endpoint. The driver should use the number of captured sample frames to construct packets for the playback stream. So the capture endpoint also acts as an implicit feedback endpoint. You can see this in USB descriptors (capture endpoint has type "Implicit feedback Data"):
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x03e8 1x 1000 bytes
bInterval 1
There are two problems with implicit feedback:
- the driver currently doesn't support autodetection of implicit feedback;
- when implicit feedback is enabled, full duplex mode works only with jack.
Recently I've found that Focusrite implemented multiple channel support for Windows (WDM) and now you can see all your outputs and inputs in the same way you configured them in the Focusrite Control.
That's what I'm missing in Linux/PulseAudio now.
Not sure if it can help but if it is, then you can try Focusrite_USB_4.64.15.598_Installer_611.exe from beta.focusrite.com.
Changes since last release (4.63.24):
- Fixed an issue that caused some DAWs (namely Studio One, Reason and Sibelius) to expose buffer sizes that we don't support
- Added multichannel WDM support (surround sound)
- Added multiple WDM inputs and outputs
- Fixed an issue with older AMD processors that could cause glitching
- Numerous stability and performance improvements
Also if you need some help with testing new kernel patches or something like that, I could probably help to gather data for 18i20 gen3 on my machine.
Last edited by skobkin on Mon Apr 13, 2020 7:12 pm, edited 1 time in total.
jsh wrote: ↑Fri Apr 10, 2020 5:05 pm
Ah; thanks! Do you mind explaining what's going on here? (I am a programmer, but I'm not familiar with this code, and there's not much context.) Thanks!
USB audio devices that works in asynchronous mode must provide feedback to the host. This is because devices' internal clock is completely independent and the host needs some sort of feedback to adjust its data packet rate. Otherwise device buffer will periodically overflow or underflow. There are two types of feedback: explicit and implicit. Most of the UAC2 devices have dedicated explicit feedback endpoint and this configuration is perfectly supported by the snd-usb-audio driver. But some newer devices like Focusrite Scarlett Gen3 and MOTU M2/M4 doesn't provide explicit feedback endpoint. The driver should use the number of captured sample frames to construct packets for the playback stream. So the capture endpoint also acts as an implicit feedback endpoint. You can see this in USB descriptors (capture endpoint has type "Implicit feedback Data"):
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x03e8 1x 1000 bytes
bInterval 1
There are two problems with implicit feedback:
- the driver currently doesn't support autodetection of implicit feedback;
- when implicit feedback is enabled, full duplex mode works only with jack.
Hmm... I have a 2i4 2nd gen that works perfectly with jackd without tweaks and "lsusb -v" mentions implicit feedback.
4i4gen2.txt
You do not have the required permissions to view the files attached to this post.
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4