Development update: 6.0-rc1 tagged

It’s been a productive 3 weeks since we tagged the current code as “6.0-pre1”. Roughly 400 or so commits (changes) later, we’re now marking the current code as “6.0-rc1”, which means:

  1. no more translatable string changes before release (i.e. no major user-visible changes). Translators can now finish their work with high confidence that if they complete a translation, there will be no need to revisit it before 6.0 is released.

  2. No substantial changes between now and the release of 6.0

We welcome bug reports and feature requests on tracker.ardour.org as always.

Two notable “newish” features that have landed since pre1 are

  • Ardour now supports web interfaces via a websocket and JSON protocol. Luciano Iam was responsible for this work, and has already added a couple of demo “web pages” to show browser control of Ardour. We imagine/hope that this new “control surface” support will expand significantly during the post-6.0 development process. Start Ardour, enable websocket surface support, and point your browser at http://localhost:3818/ … then get busy with some HTML/CSS/JS. It must be stressed that this all preliminary work, and is not considered “finished”. However, it is open for significant contributions by non-C++ developers now.

  • MIDI editing keybindings (shift notes in time and pitch, change velocities etc. etc.) are now all user-definable rather than hard-coded. The key editor now provides a handy reference for keyboard shortcuts when editing MIDI notes.

14 Likes

Hello, I don’t understand the web interface feature so I have a few questions.
What’s the web interface used for? Who does it cater to? In essence why would anybody use this over the regular native interface? Can you share any screenshots of the current web interface implementation? What are the potential capabilities of this?

I’m asking this as a web dev so that I can start thinking about all of the possibilities this brings in.

How does one ‘enable’ websocket surface support ?
I don’t see it listed in Edit > Preferences > Control Surfaces

Thanks
Regards

Not instead of the native interface, but in addition to.

A typical example might be a drummer behind his drumkit using a phone to remote control Ardour’s transport for recording. Another example would be a live-mixing engineer using a tablet to tweak Ardour’s mixer.

A previous HTML/JS control surface for that was made with open-stage-control (but that used OSC):

The current demo that is bundled with Ardour is pretty much bare-bones, still (but comes with a handy debug console):

Which OS is that, and which CPU architecture?

I have done a quick check of 64bit nightlies, and it’s included in all of them.

Ubuntu 18.04
Linux 4.15.0-96-lowlatency #97-Ubuntu SMP PREEMPT Wed Apr 1 04:10:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

I compile Ardour locally, git pull is up to date.

Maybe you don’t have all the compile-time dependencies? https://libwebsockets.org/ in particular.
Compare to the nightly build and config log, line 80: Checking for 'libwebsockets' >= 2.0.0.

1 Like

Thank you, that fixed it.

This makes me wonder how hard it would to make it so that various components of Ardour could compile to both native code as well as web assembly. Would be wild if the native UI and browser control UI were built from the same code source.

The editor is unlikely to ever be able to run inside a web-browser. Web-tech is perhaps 10-20 years behind in being able to manage the complexity for Ardour’s UI.

GTK+3’s Broadway backend offers means to display a native UI in a browser, but it’s not useful in this case either.

As for other components: The big issues will be plugins. Apart from a few FAUST ones, you won’t find anything. Certainly not any professional DSP. Last but not least, you cannot get fixed latency I/O, recording overdubs likely won’t work. Buffered Disk I/O for hundreds of tracks likewise won’t fly, and with browsers adding more and more sandboxing it’s also unlikely to get better.

You can make cool stuff with webasm, HTML & JS, and certainly awesome basic sequencers. But nothing even close to the 1000+ audio tracks realtime FX processing that modern DAWs are capable of.

I am trying this in a nightly Linux 64bit demo and all I get is 404
This was with Ardour 6.0.rc1.13 Optimized as well as with rc1.2

My webb browser connects and Ardour enables the websocket but I have not managed to get anything useful.
In my console I can see
[2020/04/20 23:27:28:4737] NOTICE: Creating Vhost ‘default’ port 3818, 1 protocols, IPv6 off

This is with a session I did create a while back.

Do I have to create a new session to get websocket features working ?

Oops. Looks like the web-socket frontend (html/js) was not included with Linux and Mac binaries. Fixed just now (6.0-rc1-32).

Ok. Thanks.
I Will test again tomorrow.

Back with a fresh Ardour 6.0.rc1.34
Still only getting 404
Have refreshed Browser cache and there is no change AFAI Can See

Do I have to use a Debug version or Full version or whats the secret ?

hmm

Ok, I saw build 41 might fix this…
Let’s hope

Hi, so I gave Ardour-6.0-rc1 a try.
One thing I noticed so far is that GUI elements are smaller.

Ardour 5.12 screenshot:

Ardour 6.0-rc1:

Both are set to 100% gui scaling on a 1920x1080 display.
Is it supposed to be like this?

Edit: Found another difference now that I look at the screenshots again. This is the same project opened. But the in Ardour 6.0-rc1 the recorded tracks are displayed as if they were louder than in Ardour 5.12.
Is the volume visualized normalized now?

The default waveform scale in Ardour6 is Logarithmic. (you can change it back to Linear in Preferences > Appearance > Editor

As for the GUI size. Something is definitely wrong there. Neither A5 nor A6 look like I’d expect. Although Ardour6 layout significantly better. I don’t have an explanation for that. Perhaps translation?

For comparison:

Most notable difference is the vari-speed slider’s size.

Okay thanks.

Yes I see.
(However I have to say that I like the sizes of texts, menus and buttons of Ardour 5 on my system. Most of it is tiny now with Ardour 6.0-rc1.)
Do you have any idea how to find out what is wrong with it on my side?

I’m using Manjaro with KDE Plasma.
Ardour is self compiled from git tag 6.0-rc1.

Edit:
Just for testing, I did reset my ardour6 config (deleted ~/.config/ardour6). But this didn’t change anything.
Even the starting window has tiny font compared to Ardour 5.12 and other programs.

Edit 2:

Did want to try that. But I can’t disable them. I unchecked the ‘use translations’ checkbox in Ardours settings and restarted Ardour. However, it is still in german. (Probably another bug?)

It seems that the web sockets control surface requires a websockets library that is compiled with the LWS_WITH_EXTERNAL_POLL build option. Unfortunately, this build option has been set to OFF by default by the developers, and even has a “not recommended” note on it.
As a result, this option is not, or will not, be available on some platforms and Ardour will not be able to provide its web interface on these platforms.
This is the case with Fedora and libwebsockets version 3.2.1, YMMV.