Focusrite Scarlett Gen 2/3 Control Panel GUI

Talk about your MIDI interfaces, microphones, keyboards...

Moderators: MattKingUSA, khz

geoffrey
Established Member
Posts: 259
Joined: Mon Jul 30, 2018 2:08 am
Has thanked: 34 times
Been thanked: 173 times

Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by geoffrey »

Hi all,

Announcing the (first test version) of the Scarlett Gen 2/3 Control Panel GUI!

It seems I was rather optimistic when I said "it's almost ready to share" back in August last year. My goodness, learning how to program a Gtk4 GUI app sure was not a fun experience. But! The result is looking pretty good, it's way nicer than alsamixer, and my known bugs/issues list is down to only 10^H^H11 items. It's working well enough for me that I can share it with all of you now and cross my fingers that it builds, runs, and works for at least some of you! :D

alsa-scarlett-gui-logo.png
alsa-scarlett-gui-logo.png (94.22 KiB) Viewed 22109 times

To try it out, you'll need to be able to build a Gtk4 app with "make". I've been using Fedora 35 for testing & last I checked only needed to install the alsa-lib-devel and gtk4-devel packages on top of a default desktop install.

I even added a demo/simulation mode so you don't even need a Scarlett interface to try it out!

The routing configuration is my favourite part:

window-routing.png
window-routing.png (114.3 KiB) Viewed 22109 times

Check it out here: https://github.com/geoffreybennett/alsa-scarlett-gui

Have a look at the USAGE.md file for a bunch more screenshots.

As a few people asked about donating, I set up the needful and there's info in the README file if you'd like to say thanks in that way. Between the driver and the GUI, I've spent some hundreds of hours on this, and of course, purchasing one of every model so I could support them all was a very expensive exercise. So, anything that you can contribute, I will be greatly thankful for.

Good luck, and let me know how you go with it!

Regards,
Geoffrey.

Mentioning the people who expressed an interest in the GUI (I hope this is the right thing to do!):
@sysrqer @diuk @bluebell @multani @juki @Linuxmusician01 @mauser @DarkPoubelle @sc3sc3 @solarflight @JamesPeters @kraus @vulkanized @wirenoise @almet @svet-am @szszoke @wvi @wolftune
geoffrey
Established Member
Posts: 259
Joined: Mon Jul 30, 2018 2:08 am
Has thanked: 34 times
Been thanked: 173 times

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by geoffrey »

I found out how to do a screen recording!

Image
szszoke
Established Member
Posts: 10
Joined: Wed Nov 28, 2018 8:04 am
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by szszoke »

Hey!

I tried to use this with my 18i20.

I tested the following:

- change routing
- change mixer settings
- enable/disable phantom power
- change level on channel 1 and 2
- enable/disable talkback

Everything seems to be working.

One cosmetic thing that I noticed is that the round icons for the mixer outputs are enlarged and pixelated:

Image
szszoke
Established Member
Posts: 10
Joined: Wed Nov 28, 2018 8:04 am
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by szszoke »

Thank you for releasing this by the way!
szszoke
Established Member
Posts: 10
Joined: Wed Nov 28, 2018 8:04 am
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by szszoke »

One more cosmetic thing about the Mixer window.

The mixer labels are both on the left and the right side. This is good because there are many knobs for the 18i20.

The mixer input labels only show up on the bottom, but I think it would make it easier to follow the grid if they would also appear on the top.
szszoke
Established Member
Posts: 10
Joined: Wed Nov 28, 2018 8:04 am
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by szszoke »

I will create an issue about the pixelated icons on Github.
geoffrey
Established Member
Posts: 259
Joined: Mon Jul 30, 2018 2:08 am
Has thanked: 34 times
Been thanked: 173 times

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by geoffrey »

Thanks so much @szszoke! Pixelated icons fixed and mixer input labels added to top of mixer window.
User avatar
sysrqer
Established Member
Posts: 2523
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 320 times
Been thanked: 151 times
Contact:

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by sysrqer »

That's fantastic Geoffrey! Builds on Arch easily (just had to install GTK4) and appears to work perfectly. Thank you so much for all the hard work you have done for us with these interfaces.
Kott
Established Member
Posts: 820
Joined: Thu Mar 21, 2013 12:55 am
Location: Vladivostok
Has thanked: 65 times
Been thanked: 124 times

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by Kott »

Cool! My congratulations to Scarlett owners :)
vulkanized
Established Member
Posts: 3
Joined: Sat Mar 12, 2022 6:57 am
Has thanked: 4 times
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by vulkanized »

On Arch Linux, alsa-lib and gtk4 packages were already installed. Cloned, typed make, pressed enter, it built, it ran, it works! Woo!!!
vulkanized
Established Member
Posts: 3
Joined: Sat Mar 12, 2022 6:57 am
Has thanked: 4 times
Been thanked: 1 time

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by vulkanized »

One thing I noticed is the levels window is commented out, I took a look at it and it appears to sort of work using the direct routing preset! the levels for hardware output showed up in mixer input, and pcm input showed up in hardware output, maybe? I also tried it with only routing PCM outputs 1+2 to Analogue outputs 1+2 out on my 6i6 2nd gen, and then all the meters were moving together in groups :shock: I'm not sure what exactly is going on there haha. I imagine this is a work in progress, but I was actually curious about implementing a fancy little level meter, maybe with some pretty colors and everything. So I was wondering about the status of this particular feature.
screen.png
screen.png (72.77 KiB) Viewed 21676 times
sebastian
Posts: 1
Joined: Wed Mar 16, 2022 8:37 pm

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by sebastian »

First of all, thanks a lot @geoffrey for sharing your work on the driver and the mixer gui.

I registered to this forum specifically for expressing my gratitude and to share my experience with compiling the code.

I'm on an Ubuntu Studio 21.10 laptop. I made sure the packages libgtk-4-dev and libasound2-dev were installed.

When running make i get this error message:

Code: Select all

error.c:18:3: error: format not a string literal and no format arguments [-Werror=format-security]
   18 |   );
      |   ^
The solution according to https://stackoverflow.com/questions/308 ... g-while-us was to change the code in error.c to

Code: Select all

  GtkWidget *dialog = gtk_message_dialog_new(
    w,
    GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
    GTK_MESSAGE_ERROR,
    GTK_BUTTONS_CLOSE,
    "%s",
    s
  );
Running make again compiles fine. The linking errors I got yesterday got fixed a few hours ago :)

I know a pull request would be best practice, but I haven't mastered all features of git yet.

Regards
Sebastian
geoffrey
Established Member
Posts: 259
Joined: Mon Jul 30, 2018 2:08 am
Has thanked: 34 times
Been thanked: 173 times

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by geoffrey »

vulkanized wrote: Wed Mar 16, 2022 6:53 pm One thing I noticed is the levels window is commented out, I took a look at it and it appears to sort of work using the direct routing preset! the levels for hardware output showed up in mixer input, and pcm input showed up in hardware output, maybe? I also tried it with only routing PCM outputs 1+2 to Analogue outputs 1+2 out on my 6i6 2nd gen, and then all the meters were moving together in groups :shock: I'm not sure what exactly is going on there haha. I imagine this is a work in progress, but I was actually curious about implementing a fancy little level meter, maybe with some pretty colors and everything. So I was wondering about the status of this particular feature.
Hi Vulkanized!

Thanks for testing!

As you noticed, the code is commented out because it doesn't work right :). The data coming from the kernel (and then displayed on the meters) is a copy of the raw data from the interface, and it needs some tweaking before it gets sent to userspace. I wanted to get that working before releasing the code, but it was proving to be too much work and I didn't want to delay any more. I've created issue #7 in github for this.

Regards,
Geoffrey.
geoffrey
Established Member
Posts: 259
Joined: Mon Jul 30, 2018 2:08 am
Has thanked: 34 times
Been thanked: 173 times

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by geoffrey »

sebastian wrote: Wed Mar 16, 2022 8:58 pm First of all, thanks a lot @geoffrey for sharing your work on the driver and the mixer gui.

I registered to this forum specifically for expressing my gratitude and to share my experience with compiling the code.

I'm on an Ubuntu Studio 21.10 laptop. I made sure the packages libgtk-4-dev and libasound2-dev were installed.

When running make i get this error message:

Code: Select all

error.c:18:3: error: format not a string literal and no format arguments [-Werror=format-security]
   18 |   );
      |   ^
The solution according to https://stackoverflow.com/questions/308 ... g-while-us was to change the code in error.c to

Code: Select all

  GtkWidget *dialog = gtk_message_dialog_new(
    w,
    GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
    GTK_MESSAGE_ERROR,
    GTK_BUTTONS_CLOSE,
    "%s",
    s
  );
Running make again compiles fine. The linking errors I got yesterday got fixed a few hours ago :)

I know a pull request would be best practice, but I haven't mastered all features of git yet.

Regards
Sebastian
Hi Sebastian!

Thanks for your support! I've fixed that problem now and pushed to github, thank you.

Regards,
Geoffrey.
Jyves
Established Member
Posts: 6
Joined: Wed Jan 26, 2022 12:36 am

Re: Focusrite Scarlett Gen 2/3 Control Panel GUI

Post by Jyves »

Thank's for the job accomplish, Sorry English is not my native languish.
I struggle to understand what you'r trying to achieve?
A "kindof" Fucusrite Control tool for Linux : Okay.
Will it support the Other than the Scarlett?
Will the Clarett be supported one day?
Just a question: do not take it bad!
Post Reply