Skip to content

Commit

Permalink
deploy: fd2f3f0
Browse files Browse the repository at this point in the history
  • Loading branch information
ygrabit committed Jul 26, 2024
1 parent b0dfbbf commit a52f670
Show file tree
Hide file tree
Showing 192 changed files with 3,738 additions and 1,377 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ project(advanced-techniques-tutorial
# Version number symbols usable in C++ can be found in
# source/version.h and ${PROJECT_BINARY_DIR}/projectversion.h.
VERSION 1.0.0.0
DESCRIPTION "advanced-techniques-tutorial VST 3 Plug-in"
DESCRIPTION "advanced-techniques-tutorial VST 3 plug-in"
)

set(SMTG_ENABLE_VST3_HOSTING_EXAMPLES 0)
Expand Down
1 change: 1 addition & 0 deletions .vst3_tutorials/audiounit-tutorial/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/
114 changes: 114 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
cmake_minimum_required(VERSION 3.14.0)

option(SMTG_ENABLE_VST3_PLUGIN_EXAMPLES "Enable VST 3 Plug-in Examples" OFF)
option(SMTG_ENABLE_VST3_HOSTING_EXAMPLES "Enable VST 3 Hosting Examples" OFF)

set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13 CACHE STRING "")

set(vst3sdk_SOURCE_DIR "../../")
if(NOT vst3sdk_SOURCE_DIR)
message(FATAL_ERROR "Path to VST3 SDK is empty!")
endif()

project(VST3_AU_PlugIn
# This is your plug-in version number. Change it here only.
# Version number symbols usable in C++ can be found in
# source/version.h and ${PROJECT_BINARY_DIR}/projectversion.h.
VERSION 1.2.1.8
DESCRIPTION "VST3_AU_PlugIn VST 3 Plug-in"
)

# -- AudioUnitSDK --
include(FetchContent)
FetchContent_Declare(
AudioUnitSDK
GIT_REPOSITORY https://github.com/apple/AudioUnitSDK.git
GIT_TAG HEAD
)
FetchContent_MakeAvailable(AudioUnitSDK)
FetchContent_GetProperties(
AudioUnitSDK
SOURCE_DIR SMTG_AUDIOUNIT_SDK_PATH
)
# -------------------

set(SMTG_VSTGUI_ROOT "${vst3sdk_SOURCE_DIR}")

add_subdirectory(${vst3sdk_SOURCE_DIR} ${PROJECT_BINARY_DIR}/vst3sdk)
smtg_enable_vst3_sdk()

smtg_add_vst3plugin(VST3_AU_PlugIn
source/version.h
source/cids.h
source/processor.h
source/processor.cpp
source/controller.h
source/controller.cpp
source/entry.cpp
)

#- VSTGUI Wanted ----
if(SMTG_ENABLE_VSTGUI_SUPPORT)
target_sources(VST3_AU_PlugIn
PRIVATE
resource/editor.uidesc
)
target_link_libraries(VST3_AU_PlugIn
PRIVATE
vstgui_support
)
smtg_target_add_plugin_resources(VST3_AU_PlugIn
RESOURCES
"resource/editor.uidesc"
)
endif(SMTG_ENABLE_VSTGUI_SUPPORT)
# -------------------

smtg_target_add_plugin_snapshots (VST3_AU_PlugIn
RESOURCES
resource/301DF339AFA3533FB5053B1B41367137_snapshot.png
resource/301DF339AFA3533FB5053B1B41367137_snapshot_2.0x.png
)

target_link_libraries(VST3_AU_PlugIn
PRIVATE
sdk
)

smtg_target_configure_version_file(VST3_AU_PlugIn)

if(SMTG_MAC)
smtg_target_set_bundle(VST3_AU_PlugIn
BUNDLE_IDENTIFIER com.steinberg.vst3sdk.audiounit-tutorial
COMPANY_NAME "Steinberg Media Technologies"
)
smtg_target_set_debug_executable(VST3_AU_PlugIn
"/Applications/VST3PluginTestHost.app"
"--pluginfolder;$(BUILT_PRODUCTS_DIR)"
)
elseif(SMTG_WIN)
target_sources(VST3_AU_PlugIn PRIVATE
resource/win32resource.rc
)
if(MSVC)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT VST3_AU_PlugIn)

smtg_target_set_debug_executable(VST3_AU_PlugIn
"$(ProgramW6432)/Steinberg/VST3PluginTestHost/VST3PluginTestHost.exe"
"--pluginfolder \"$(OutDir)/\""
)
endif()
endif(SMTG_MAC)

# -- Add the AUv2 target
if (SMTG_MAC AND XCODE AND SMTG_ENABLE_AUV2_BUILDS)
list(APPEND CMAKE_MODULE_PATH "${vst3sdk_SOURCE_DIR}/cmake/modules")
include(SMTG_AddVST3AuV2)
smtg_target_add_auv2(VST3_AU_PlugIn_AU
BUNDLE_NAME audiounit_tutorial
BUNDLE_IDENTIFIER com.steinberg.vst3sdk.audiounit_tutorial.audiounit
INFO_PLIST_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/resource/au-info.plist
VST3_PLUGIN_TARGET VST3_AU_PlugIn)
smtg_target_set_debug_executable(VST3_AU_PlugIn_AU "/Applications/Reaper.app")
endif(SMTG_MAC AND XCODE AND SMTG_ENABLE_AUV2_BUILDS)

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 64 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/resource/au-info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<string>yes</string>
<key>AudioComponents</key>
<array>
<dict>
<key>factoryFunction</key>
<string>AUWrapperFactory</string>
<key>description</key>
<string>AudioUnit Tutorial</string>
<key>manufacturer</key>
<string>Stgb</string>
<key>name</key>
<string>Steinberg: AudioUnit Tutorial</string>
<key>subtype</key>
<string>0002</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>1</integer>
</dict>
</array>
<key>AudioUnit SupportedNumChannels</key>
<array>
<dict>
<key>Outputs</key>
<string>2</string>
<key>Inputs</key>
<string>2</string>
</dict>
<dict>
<key>Outputs</key>
<string>2</string>
<key>Inputs</key>
<string>1</string>
</dict>
<dict>
<key>Outputs</key>
<string>1</string>
<key>Inputs</key>
<string>1</string>
</dict>
</array>
</dict>
</plist>
9 changes: 9 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/resource/editor.uidesc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<vstgui-ui-description version="1">
<fonts>
</fonts>
<colors>
</colors>
<template background-color="~ BlackCColor" background-color-draw-style="filled and stroked" class="CViewContainer" mouse-enabled="true" name="view" opacity="1" origin="0, 0" size="300, 300" transparent="false" wants-focus="false"/>
<bitmaps/>
</vstgui-ui-description>
44 changes: 44 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/resource/win32resource.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#include <windows.h>
#include "../source/version.h"

#define APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Version
/////////////////////////////////////////////////////////////////////////////
VS_VERSION_INFO VERSIONINFO
FILEVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
PRODUCTVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004e4"
BEGIN
VALUE "FileVersion", FULL_VERSION_STR"\0"
VALUE "ProductVersion", FULL_VERSION_STR"\0"
VALUE "OriginalFilename", stringOriginalFilename"\0"
VALUE "FileDescription", stringFileDescription"\0"
VALUE "InternalName", stringFileDescription"\0"
VALUE "ProductName", stringFileDescription"\0"
VALUE "CompanyName", stringCompanyName"\0"
VALUE "LegalCopyright", stringLegalCopyright"\0"
VALUE "LegalTrademarks", stringLegalTrademarks"\0"
//VALUE "PrivateBuild", " \0"
//VALUE "SpecialBuild", " \0"
//VALUE "Comments", " \0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1252
END
END
18 changes: 18 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/source/cids.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//------------------------------------------------------------------------
// Copyright(c) 2024 Steinberg Media Technologies.
//------------------------------------------------------------------------

#pragma once

#include "pluginterfaces/base/funknown.h"
#include "pluginterfaces/vst/vsttypes.h"

namespace Steinberg::Vst {
//------------------------------------------------------------------------
static const Steinberg::FUID kVST3AUPlugInProcessorUID (0x301DF339, 0xAFA3533F, 0xB5053B1B, 0x41367137);
static const Steinberg::FUID kVST3AUPlugInControllerUID (0x473E512F, 0x68875B49, 0xB2EEFB2D, 0x886C33C6);

#define VST3AUPlugInVST3Category "Fx"

//------------------------------------------------------------------------
} // namespace Steinberg::Vst
82 changes: 82 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/source/controller.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
//------------------------------------------------------------------------
// Copyright(c) 2024 Steinberg Media Technologies.
//------------------------------------------------------------------------

#include "controller.h"
#include "cids.h"
#include "vstgui/plugin-bindings/vst3editor.h"

using namespace Steinberg;

namespace Steinberg::Vst {

//------------------------------------------------------------------------
// VST3AUPlugInController Implementation
//------------------------------------------------------------------------
tresult PLUGIN_API VST3AUPlugInController::initialize (FUnknown* context)
{
// Here the Plug-in will be instantiated

//---do not forget to call parent ------
tresult result = EditControllerEx1::initialize (context);
if (result != kResultOk)
{
return result;
}

// Here you could register some parameters

return result;
}

//------------------------------------------------------------------------
tresult PLUGIN_API VST3AUPlugInController::terminate ()
{
// Here the Plug-in will be de-instantiated, last possibility to remove some memory!

//---do not forget to call parent ------
return EditControllerEx1::terminate ();
}

//------------------------------------------------------------------------
tresult PLUGIN_API VST3AUPlugInController::setComponentState (IBStream* state)
{
// Here you get the state of the component (Processor part)
if (!state)
return kResultFalse;

return kResultOk;
}

//------------------------------------------------------------------------
tresult PLUGIN_API VST3AUPlugInController::setState (IBStream* state)
{
// Here you get the state of the controller

return kResultTrue;
}

//------------------------------------------------------------------------
tresult PLUGIN_API VST3AUPlugInController::getState (IBStream* state)
{
// Here you are asked to deliver the state of the controller (if needed)
// Note: the real state of your plug-in is saved in the processor

return kResultTrue;
}

//------------------------------------------------------------------------
IPlugView* PLUGIN_API VST3AUPlugInController::createView (FIDString name)
{
// Here the Host wants to open your editor (if you have one)
if (FIDStringsEqual (name, Vst::ViewType::kEditor))
{
// create your editor here and return a IPlugView ptr of it
auto* view = new VSTGUI::VST3Editor (this, "view", "editor.uidesc");
return view;
}
return nullptr;
}

//------------------------------------------------------------------------
} // namespace Steinberg::Vst
49 changes: 49 additions & 0 deletions .vst3_tutorials/audiounit-tutorial/source/controller.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//------------------------------------------------------------------------
// Copyright(c) 2024 Steinberg Media Technologies.
//------------------------------------------------------------------------

#pragma once

#include "public.sdk/source/vst/vsteditcontroller.h"

namespace Steinberg::Vst {

//------------------------------------------------------------------------
// VST3AUPlugInController
//------------------------------------------------------------------------
class VST3AUPlugInController : public Steinberg::Vst::EditControllerEx1
{
public:
//------------------------------------------------------------------------
VST3AUPlugInController () = default;
~VST3AUPlugInController () SMTG_OVERRIDE = default;

// Create function
static Steinberg::FUnknown* createInstance (void* /*context*/)
{
return (Steinberg::Vst::IEditController*)new VST3AUPlugInController;
}

//--- from IPluginBase -----------------------------------------------
Steinberg::tresult PLUGIN_API initialize (Steinberg::FUnknown* context) SMTG_OVERRIDE;
Steinberg::tresult PLUGIN_API terminate () SMTG_OVERRIDE;

//--- from EditController --------------------------------------------
Steinberg::tresult PLUGIN_API setComponentState (Steinberg::IBStream* state) SMTG_OVERRIDE;
Steinberg::IPlugView* PLUGIN_API createView (Steinberg::FIDString name) SMTG_OVERRIDE;
Steinberg::tresult PLUGIN_API setState (Steinberg::IBStream* state) SMTG_OVERRIDE;
Steinberg::tresult PLUGIN_API getState (Steinberg::IBStream* state) SMTG_OVERRIDE;

//---Interface---------
DEFINE_INTERFACES
// Here you can add more supported VST3 interfaces
// DEF_INTERFACE (Vst::IXXX)
END_DEFINE_INTERFACES (EditController)
DELEGATE_REFCOUNT (EditController)

//------------------------------------------------------------------------
protected:
};

//------------------------------------------------------------------------
} // namespace Steinberg::Vst
Loading

0 comments on commit a52f670

Please sign in to comment.