Skip to content

Commit

Permalink
Added Audio Unit support
Browse files Browse the repository at this point in the history
  • Loading branch information
ypujante committed Jan 4, 2021
1 parent f68c2ad commit e2fc35b
Show file tree
Hide file tree
Showing 26 changed files with 148 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.17)
option(JAMBA_ENABLE_VST2 "Use VST2" ON)

# build Audio Unit?
option(JAMBA_ENABLE_AUDIO_UNIT "Enable Audio Unit" OFF)
option(JAMBA_ENABLE_AUDIO_UNIT "Enable Audio Unit" ON)

# Download VST SDK if not installed?
option(JAMBA_DOWNLOAD_VSTSDK "Download VST SDK if not installed" ON)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This project is connected to the [VST Development Notes](https://www.pongasoft.c
------------------------------------
* Use of [jamba](https://github.com/pongasoft/jamba) framework and VST SDK 3.7.0
* Use of `ParamImageView` for LED status lights
* Added support for Audio Unit
* Added support for Apple Chipset / universal build on macOS

2018-06-19 - Status for tag `v1.1.2`
Expand Down
109 changes: 109 additions & 0 deletions audio-unit/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
//-----------------------------------------------------------------------------
// LICENSE
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
//-----------------------------------------------------------------------------
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * Neither the name of the Steinberg Media Technologies nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
//-----------------------------------------------------------------------------

#include "audiounitconfig.h"

<?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>kAudioUnitBundleIdentifier</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>

/*
The "AudioUnit SupportedNumChannels" key is only necessary if you build an effect not an instrument.
You should describe all supported channel configurations.
This example says that it supports Stereo/Stereo or Mono/Mono.
*/

<key>AudioUnit SupportedNumChannels</key>
<array>
<dict>
<key>Outputs</key>
<string>2</string>
<key>Inputs</key>
<string>2</string>
</dict>
<dict>
<key>Outputs</key>
<string>0</string>
<key>Inputs</key>
<string>1</string>
</dict>
<dict>
<key>Outputs</key>
<string>1</string>
<key>Inputs</key>
<string>1</string>
</dict>
</array>

<key>AudioUnit Version</key>
<string>kAudioUnitVersion</string>

/*
Support for the new AUPlugIn model in Mac OS X 10.7
*/
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>kAUPluginDescription</string>
<key>factoryFunction</key>
<string>AUWrapperFactory</string>
<key>manufacturer</key>
<string>kAUPluginManufacturer</string>
<key>name</key>
<string>kAUPluginName</string>
<key>subtype</key>
<string>kAUPluginSubType</string>
<key>type</key>
<string>kAUPluginType</string>
<key>version</key>
<integer>kAudioUnitVersion</integer>
</dict>
</array>

</dict>
</plist>
37 changes: 37 additions & 0 deletions audio-unit/audiounitconfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include "version.h"

// Check https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/AudioUnit.html for various types

/* Bundle Identifier */
#define kAudioUnitBundleIdentifier org.pongasoft.vst.ABSwitch.audiounit

/* Version Number (computed in version.h from version in CMakeLists.txt) */
#define kAudioUnitVersion AU_VERSION_INT

/* Company Name + Effect Name */
#define kAUPluginName pongasoft: A/B Switch

/* A product name for the audio unit, such as TremoloUnit */
#define kAUPluginDescription A/B Switch

/*
The specific variant of the Audio Unit. The four possible types and their values are:
Effect (aufx), Generator (augn), Instrument (aumu), and Music Effect (aufm).
*/
#define kAUPluginType aufx

/* A subtype code for the audio unit, such as tmlo. This value must be exactly 4 alphanumeric characters. */
#define kAUPluginSubType util

/* A manufacturer code for the audio unit, such as Aaud. This value must be exactly 4 alphanumeric characters.
* Manufacturer OSType should have at least one non-lower case character */
#define kAUPluginManufacturer ABSw

// Definitions for the resource file
#define kAudioUnitName "pongasoft: A/B Switch" // same as kAUPluginName
#define kAudioUnitDescription "A/B Switch" // same as kAUPluginDescription
#define kAudioUnitType 'aufx' // same as kAUPluginType
#define kAudioUnitComponentSubType 'util' // same as kAUPluginSubType
#define kAudioUnitComponentManuf 'Psft' // same as kAUPluginManufacturer

#define kAudioUnitCarbonView 1 // if 0 no Carbon view support will be added
Binary file added design/Background_2x.pxd/QuickLook/Icon.tiff
Binary file not shown.
Binary file added design/Background_2x.pxd/QuickLook/Thumbnail.tiff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added design/Background_2x.pxd/metadata.info
Binary file not shown.
Binary file removed design/Background_2x.pxm
Binary file not shown.
Binary file modified resource/Background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resource/Background_2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e2fc35b

Please sign in to comment.