Overview

This document describes the procedure to use the VST3.X AudioworX Plugin. VST3.x AudioworX Plugin is generated by linking the plugin source code, VST3 SDK, with Win64 xAF Libraries.

References

Folder Structure

To work out of the box, the VST3 AudioworX needs to be organized according to a specific folder structure. Therefore, extract the zip file into an arbitrary workspace folder (e.g. C:AWX_dev) and make sure it matches the structure below and that there are no spaces in the names.

extendable-audio-framework

external

  • inc: Folder to place the included files for the External AudioObject.
  • src: Folder to place the source files to build the External AudioObject.
  • vst3: VST3 wrapper files
  • vstProject: Satisfies interface dependencies
  • Build.bat: Script to build VirtualAmp.dll, required for GTT Toolbox.
  • Build_VST3.bat: Script to build VST3 plugin.
  • clean.bat: Script to clean the VST2 build artifacts.

Public

  • include:  xAF HeaderFiles
  • lib:  AudioworX libraries for Win32 and Win64.

Steinbergsdk

The Steinberg sdk is not part of the AWX package and needs to be downloaded manually. Please refer to option 1 or option 2 mentioned below.

VST3    (all files and folders inside this folder are part of the Steinberg SDK)

 vst3sdk: VST3 sdk files and build scripts

There are two options to get the VST3 sdk.

  • Option 1 (External): Download directly from the Steinberg official page [1]:

With the download, you are accepting the license agreement from Steinberg.

Extract the zip file according to above mentioned folder names

  • Option 2 (Harman internal only): git clone ssh://git@bitbucket-munich.harman.com:7999/bitbucket/lsacca/steinbergsdk.git

Make sure the branch: “master” is checked out. No need to adjust any folder names.

Run VST3 Plugin

The VST3 plugins can be run with any tool that is compatible with 64bit VST3 SDK (Examples: Reaper, Bidule, etc.).
The two mentioned hosts are tested by the AWX team.

The current VST3 plugin version does not support multiple instances, because of an internal hard coding of the socket server port (25001).
This port is used by Amp2Srv to communicate with the Harman Global Tuning Tool when sending the signal flow or tuning the object.

Bidule

The Bidule is a 3rd party host developed by Plogue. This tool supports unequal numbers for input and output channels and can retrieve the configured number of channels automatically. Using the VST3 plugin without a sent signal flow, the plugin will start with 2 input and 2 output channels. Once you have sent the signal flow and re-added it into the patcher of the tool, the number of inputs/outputs will be updated correctly.

Bidule Patcher

Reaper

This section explains the steps to run the VST3 AudioworX Plugin in Reaper.

  1. Open the tool (Reaper).
  2. Go to Option, set the VST Plugin path to C:Program FilesCommon FilesVST3.
    It can also be set to any custom path where the VST3. AudioworX Plugin, ‘virtualAmpVST3.vst3’ is located.

    VST Plugin settings
  3. Click on Re-scan and select clear cache and re-scan.
    Adding VST3 plugin
  4. Click on Insert. New Track to insert a new track (or Press Ctrl + T).

    Insert Track
  • The Audio configuration is stereo by default in Reaper.
    To support Multichannel Signal Flows, click on the Route Button in the Track and select the number of channels in the Track channels drop-down.
    This number has to be equal to or bigger than the max value from your Device inputs and outputs configured in GTT.

    • Example: 3 Inputs, 7 outputs -> Track channels need to be set to 8
      Selection to set channel Configuration
      Selecting the Number of Channels
    • Click on the FX Button to add the AudioworX VST 3 Plugin. The plugin can be selected from the tab VST3. Search for the entry AudioEffectAWX.
      Selecting AudioworX VST Plugin

If the plugin addition is successful, the default UI for the plugin comes up. You should be able to see it.

Harman AudioworX VST3 Plugin Display

The UI controls for this GUI can be ignored for now. This engineering release drop does not support any GUI.

Controls

  1. Click on Insertà MediaFile to add an audio file to the track.
  2. Click on the play button to start audio playback.
Starting audio playback

Global Tuning Tool (GTT)

  1. Use the Global Tuning Tool (S Release version).
  2. Load the GTT DLL from the /Harman/HarmanAudioworX/AudioFrameworkDLLs/ folder.

    Select GTT Dll
  3.  Open GTT and enter port number 25001 in the AmpSrv settings to connect the device to GTT,
  4. Configure the signal flow as required and click SendSignalFlow to send the signal flow files to the VST3 device.
    Sending Signal Flow From GTT

Generate VST3.x Plugin

Refer below topics to generate the VST3.x plugin with an external audio object.

  1. Steps to add source code for external audio objects.
  2. Steps to generate the VST3 plugin.

Steps to add source code for external audio objects

Steps to add source code for external audio objects

  1. Place the source code for the new audio object under external src.
  2. Place the header file under the external.
  3. The audio object header file name should be similar to the audio object class name. For example, if the audio object name is CTemplate, the header file name should be Template.h
  4. Update externalincAudioIds.h with the pre-processor macro definition for the new audio object.

      AudioIds.h
  5. The name of the pre-processor definition should be OBJ_“header file name“.
    For example, if the name of the class is CGain, the header file name should be Gain.h and the pre-processor definition in AudioIds.h should be #define OBJ_GAIN 9002.
  6. Once the steps above are complete, proceed to generate the VST3 plugin following the steps in the next section.

Steps to generate the VST3 plugin

Pre-Requisites:

    • Python 2.7
    • Cmake version 3.21+, 3.5 confirmed NOT to work
    • Microsoft Visual Studio 2017 or later

Steps to generate the VST3 plugin

  1. Open the command prompt in Administrator mode.
  2. Browse to the external folder and run bat to clean up any previous build artifacts.
  3. Run the batch file bat.
    Once the build is successful, the library with the external audio object, the VST3 plugin, and the corresponding DLL will be copied to the path: public/lib/win64
  4. The VST3 plugin will also be generated in C: Program FilesCommon FilesVST3.
    VST3 Plugin name: vst3.
    If you are building in non-administrator mode, you might see a warning that starts like this.

    Warning when opened in Non-Admin mode

    But this can be ignored. This is a post-build script that gets executed after the Plugin and DLL are generated.

It is recommended not to have long folder names for the build path. CMAKE does not allow the total directory path name to exceed 264 characters.