Building Kushview Element

Posted

As a poor university kid who has an interest in the audio/visual industry, I’m always on the lookout for cool (and free) software that I could possibly use.

One that caught my eye was Element by Kushview.

It’s an audio plugin host and router - which is able to host VSTs and other audio effects in real-time; making Element great for live performances where you don’t want to fire up an entire DAW.
The de-facto live performance DAW is Ableton Live, and that’s like $200.

Before I knew of Element, it seemed that the software was sold as a commercial product.
It’s now free and open source due to the lack of commercial success.

However that’s a win in my eyes - FOSS means that more people can contribute and develop the project!


Element is cross-platform, being available for Windows, Mac OS X and Linux.

Obviously, for audio purposes - this software performs the best on Macs, due to the amazing performance of Core Audio.

The third-party ASIO drivers and tools for Windows (ASIO4ALL, SAR, ASIO Link Pro) are okay - but they’re still not great.
Whilst the Steinberg ASIO drivers for my UR44 and UR22 are great - Only one ASIO device can be used at a time on Windows. This makes it very very very difficult to route channels in a live setting.

Linux? I’ve no clue - but driver support may be an issue…


Given that the best system to run Element is a Mac, it’s also the easiest (alongside Linux) to compile and build. Two commands and you’re done.

But Windows? Oh boy…


Figuring out how to successfully build Element on Windows took me an entire weekend - mainly due to the lack of build instructions. I figured it would be nice to leave some notes here on how to build Element for Windows.


Windows Build Instructions

  1. Clone the source repository
    Also fetch the git submodules.

  2. Download the boost 1.71.0 library.
    You won’t need to run the bootstrap nor compile anything, extracting the library source is enough.
    Extract these files to C:\SDKs\boost_1_71_0

  3. Download the JUCE 5.4.5 framework.
    Note: This is not the latest version (6) - If you use JUCE 6, some files are not correctly linked, failing the compilation.
    Extract these files anywhere, i.e. C:\JUCE

EDIT 26/01/2022: Version 0.46.3 uses JUCE 6.0.8

  1. Optional for VST2 Download the VST2 SDK (version 3.6.6) from Steinberg.
    This particular version contains header files required by Element, that are removed in later releases of the VST SDK.
    Extract the VST3_SDK\pluginterfaces\vst2.x directory into libs\JUCE\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst2.x in the Element source repository

  2. Download the ASIO SDK from Steinberg.
    Extract these files to C:\SDKs\ASIOSDK2.3

  3. No longer needed as of 0.46.0b1 Create a file build\include\GitVersion.h in the Element source repository that contains

// Generated file
#pragma once
#define EL_GIT_VERSION ""
  1. Open the tools\jucer\Standalone\Element.jucer project file in Projucer (C:\JUCE\Projucer.exe)

  2. Export the project as Visual Studio 2017 / 2019

  3. Open the project in Visual Studio 2017 / 2019
    You may need to install a bunch of dependencies, depending if you’ve ever built a C++ program on your machine before


You should now have an Element.exe binary file successfully built!
There’s is a “Made with JUCE” watermark that appears when you open the application.

You can get rid of this in Projucer through the CLI method of generating the build solution (--resave)


More posts

PC Build: cStreamer

I built a computer!

Posted

Site Redesign

Now with 999% more JavaScript

Posted