Page 1 of 7

Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Fri Aug 10, 2018 2:38 pm
by geoffrey
Hi all,

I'm working on a Focusrite Scarlett 18i20 2nd Gen mixer driver (update to the snd-usb-audio kernel module). So far I can:
- set analogue output volumes
- switch between analogue output volumes controlled by software or the hardware front panel knob
- set the volumes of the 18 inputs for each of the 10 mixes (180 faders!)
- set the sources for the 20 analogue outputs
- set the sources for the 18 PCM inputs
- set the sources for the 18 mixer inputs

Currently lacking at least:
- load/save of mixer state
- reading of current state (volume knob, mute and dim buttons, levels)

If there's anyone with one of these devices (must be an 18i20 2nd gen, USB ID 1235:8201) who is comfortable with make, rmmod, and insmod and wants to try this (alpha-quality) driver out and give me feedback, please send me a PM. Even better if you are familiar with kernel USB and/or ALSA development (I'm not, and I have some questions!).

Thanks,
Geoffrey.

Screenshot from 2018-08-11 00-01-25.png

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Sat Aug 25, 2018 4:06 am
by trrichard
Looks like I can't send PM's yet, I have and 18i8 and I'd be happy to help. Should be pretty similar with limited dimensionality on the output matrix.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Wed Aug 29, 2018 12:32 am
by geoffrey
trrichard wrote:Looks like I can't send PM's yet, I have and 18i8 and I'd be happy to help.

Here's my current code: https://nofile.io/f/v7e9Vxf6GbO/scarlett-gen2.tar.gz
Inside you'll find a tiny patch to a few files in sound/usb plus a new file to go in the same directory. What is working for me to build and test it is:
- make M=sound/usb
- "autospawn = no" in .config/pulse/client.conf
- pulseaudio -k
- killall pulseaudio alsactl
- rmmod snd_usb_audio
- insmod sound/usb/snd-usb-audio.ko

trrichard wrote:Should be pretty similar with limited dimensionality on the output matrix.

Yes, hopefully! There's changes that'd need to be made for the front panel buttons too, e.g. inst/pad are software controlled on the 18i8 vs. hardware buttons on the 18i20.

Since my previous post, I added support for reading the current state (volume knob, mute and dim buttons, levels) from the interface. Feedback from people who manage to get it working would be appreciated.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Sun Sep 02, 2018 7:24 pm
by trrichard
Looks like this is a fork of the Gen 1 code too.

Two questions:
1) Are you trying to keep backwards compatibility?
2) Can you give me a feeling for the major changes between v1 and v2?

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Mon Sep 03, 2018 12:51 am
by trrichard
Looks like it's missing a .h file from the tarball.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Mon Sep 03, 2018 1:10 am
by trrichard
I'm assuming the .h file has just the single snd_scarlett_gen2_controls_create function for now.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Mon Sep 03, 2018 1:18 am
by trrichard
Also, I did get it building against my 4.4 kernel. I have not started testing or probing it just yet

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Tue Oct 02, 2018 2:23 pm
by cornicis
Somehow I can't send you PMs geoffrey, but I have also a Scarlett 18i20 2nd Gen and some experience in software development (no kernel/alsa stuff but am motivated to dig deeper in it).

Unfortunately the link to your code from Aug 29th doesn't work anymore so I can't test it. Maybe you can upload it again?

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Fri Oct 26, 2018 8:23 pm
by ciolansteen
I'd also like to help. I have a 18i8 2nd Gen. So refreshing the download link would be amazing. Thanks :)

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Wed Nov 07, 2018 6:28 pm
by Andre
I have a 18i20 2nd Generation, running on Linux (Debian stretch, kernel 4.9.47). I've patched the kernel, so the 18i20 is recognized.
Can you give me a link to the patch from august-29. ?
If you need more testing to be done, i'm willing to participate.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Mon Dec 17, 2018 9:40 pm
by porfyros
Another one with Focusrite Scarlett 18i20 2nd Gen willing to participate and test!

I think brand new members cannot send PMs, so if possible an update to the patch would be great!

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Wed Jan 16, 2019 9:44 pm
by jth
I've just purchased a 2nd generation 6i6 and would love to help (assuming the 2nd generation 6i6 behaves similarly to the 2nd generation 18i20). I've got a fair amount of Linux kernel experience (but never in ALSA) as well as access to a USB analyzer.

It appears the link to the source above is broken. Would it be possible to get an updated link?

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Wed Feb 27, 2019 3:32 am
by Philotomy
I just bought and hooked up an 18i8 2nd gen (used a Mac to run the Focusrite mixer/config software), so I was really pleased to find this discussion. Is this driver still under development and is the source available?

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Tue Mar 12, 2019 12:43 am
by geoffrey
Hi all, I'm so sorry for the delay! I thought no-one was interested because I logged in LinuxMusicians occasionally and there was never a notification that someone had posted to the thread. Is there a better platform that we can do this on?

I added the missing .h file to the tar and uploaded it to: https://nofile.io/f/huGXeK5h6ra/scarlett-gen2.tar.gz for anyone who wants to try it out now.

I've been using it for the past few months, to configure the zero-latency monitoring and it's also neat to be able to control the capture mux which I don't think the Focusrite Control software lets you do. This means that the ALSA PCM inputs can be assigned to the internal mixer outputs so then you can do a mix in hardware and the ALSA application only has to capture 2 channels.

I should mention that I have a problem where my interface stops outputting audio after long time of inactivity (like if I leave it on overnight). Not sure if that's a hardware fault, a Linux USB audio fault, or a fault caused by my patch. I haven't been motivated enough to investigate it yet, as it hasn't stopped working when I've actually been using it.

Re: Focusrite Scarlett 18i20 2nd Gen mixer driver

Posted: Tue Mar 12, 2019 3:23 am
by tseaver
@geoffrey:

Is there a better platform that we can do this on?


Since you will be doing collaboartive software development, you could create a Github repository for[1] those files (along with a LICENSE, README, etc.) Folks who want to collaborate with you on the drive can then create their own forks, submit pull requests to you, etc. Folks who just want the latest-and-greatest can download the zipfile from Github, along with downloading zipfiles for any tagged releases you make[2].

[1] https://help.github.com/en/articles/create-a-repo
[2] https://help.github.com/en/articles/about-releases