Skip to content

Commit a84b28b

Browse files
committed
Add AAX support
1 parent ba6a1d0 commit a84b28b

3 files changed

Lines changed: 51 additions & 11 deletions

File tree

.github/scripts/package-Windows.sh

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,14 @@ cat > ./plugdata.wxs <<-EOL
4646
<ReserveCost Id="STANDALONE_COST" RunFromSource="43200000" RunLocal="43200000"></ReserveCost>
4747
</Component>
4848
<Component Id="BINARYDATA_PRIMARY" Guid="a1b2c3d4-e5f6-7890-abcd-ef1234567890" Win64="\$(var.Win64)">
49-
<RemoveFile Id="BINARYDATA_DLL_REMOVE" Name="plugdata-resources.bin" On="both"/>
50-
<File Id="BINARYDATA_DLL" Source="Plugins\Standalone\plugdata-resources.bin" Name="plugdata-resources.bin"/>
51-
<CopyFile Id="BINARYDATA_TO_VST3" FileId="BINARYDATA_DLL" DestinationDirectory="VST3_ARCH" DestinationName="plugdata-resources.bin"/>
52-
<CopyFile Id="BINARYDATA_TO_VST3_FX" FileId="BINARYDATA_DLL" DestinationDirectory="VST3_FX_ARCH" DestinationName="plugdata-resources.bin"/>
53-
<CopyFile Id="BINARYDATA_TO_LV2" FileId="BINARYDATA_DLL" DestinationDirectory="LV2_PLUGIN_DIR" DestinationName="plugdata-resources.bin"/>
54-
<CopyFile Id="BINARYDATA_TO_LV2_FX" FileId="BINARYDATA_DLL" DestinationDirectory="LV2_FX_PLUGIN_DIR" DestinationName="plugdata-resources.bin"/>
55-
<CopyFile Id="BINARYDATA_TO_CLAP" FileId="BINARYDATA_DLL" DestinationDirectory="CLAP_INSTALL_DIR" DestinationName="plugdata-resources.bin"/>
49+
<RemoveFile Id="BINARYDATA_BIN_REMOVE" Name="plugdata-resources.bin" On="both"/>
50+
<File Id="BINARYDATA_BIN" Source="Plugins\Standalone\plugdata-resources.bin" Name="plugdata-resources.bin"/>
51+
<CopyFile Id="BINARYDATA_TO_VST3" FileId="BINARYDATA_BIN" DestinationDirectory="VST3_ARCH" DestinationName="plugdata-resources.bin"/>
52+
<CopyFile Id="BINARYDATA_TO_VST3_FX" FileId="BINARYDATA_BIN" DestinationDirectory="VST3_FX_ARCH" DestinationName="plugdata-resources.bin"/>
53+
<CopyFile Id="BINARYDATA_TO_LV2" FileId="BINARYDATA_BIN" DestinationDirectory="LV2_PLUGIN_DIR" DestinationName="plugdata-resources.bin"/>
54+
<CopyFile Id="BINARYDATA_TO_LV2_FX" FileId="BINARYDATA_BIN" DestinationDirectory="LV2_FX_PLUGIN_DIR" DestinationName="plugdata-resources.bin"/>
55+
<CopyFile Id="BINARYDATA_TO_CLAP" FileId="BINARYDATA_BIN" DestinationDirectory="CLAP_INSTALL_DIR" DestinationName="plugdata-resources.bin"/>
56+
<CopyFile Id="BINARYDATA_TO_AAX" FileId="BINARYDATA_BIN" DestinationDirectory="AAX_INSTALL_DIR" DestinationName="plugdata-resources.bin"/>
5657
</Component>
5758
</Directory>
5859
</Directory>
@@ -145,6 +146,20 @@ cat > ./plugdata.wxs <<-EOL
145146
<File Id="CLAP_FX_PLUGIN" Source="Plugins\CLAP\plugdata-fx.clap"/>
146147
</Component>
147148
</Directory>
149+
<Directory Id="AVID_DIR" Name="Avid">
150+
<Directory Id="AVID_AUDIO_DIR" Name="Audio">
151+
<Directory Id="AVID_AUDIO_PLUGINS_DIR" Name="Plug-Ins">
152+
<Component Id="AAX_FILES" Guid="8673b528-83c1-4697-a8cb-773e30e47f50" Win64="\$(var.Win64)">
153+
<RemoveFile Id="AAX_PLUGIN" Name="plugdata.aaxplugin" On="both"/>
154+
<File Id="AAX_PLUGIN" Source="Plugins\AAX\plugdata.aaxplugin"/>
155+
</Component>
156+
<Component Id="AAX_FX_FILES" Guid="1e0ef2de-2e50-4490-a5fc-0c12bb8f29b9" Win64="\$(var.Win64)">
157+
<RemoveFile Id="AAX_FX_PLUGIN" Name="plugdata-fx.aaxplugin" On="both"/>
158+
<File Id="AAX_FX_PLUGIN" Source="Plugins\AAX\plugdata-fx.aaxplugin"/>
159+
</Component>
160+
</Directory>
161+
</Directory>
162+
</Directory>
148163
</Directory>
149164
</Directory>
150165
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
@@ -166,10 +181,14 @@ cat > ./plugdata.wxs <<-EOL
166181
<ComponentRef Id="LV2_FILES"/>
167182
<ComponentRef Id="LV2_FX_FILES"/>
168183
</Feature>
169-
<Feature Id="CLAP" Level="1" Title="CLAP Plugin">
184+
<Feature Id="CLAP" Level="1" Title="CLAP Plugin">
170185
<ComponentRef Id="CLAP_FILES"/>
171186
<ComponentRef Id="CLAP_FX_FILES"/>
172187
</Feature>
188+
<Feature Id="AAX" Level="1" Title="AAX Plugin">
189+
<ComponentRef Id="AAX_FILES"/>
190+
<ComponentRef Id="AAX_FX_FILES"/>
191+
</Feature>
173192
<!-- define powershell script as base64 that will remove registry entries for old plugdata versions -->
174193
<Property Id="reg_clean">powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -e JABkAGkAcwBwAGwAYQB5AE4AYQBtAGUAIAA9ACAAIgBwAGwAdQBnAGQAYQB0AGEAIgAKACQAcAB1AGIAbABpAHMAaABlAHIAIAA9ACAAIgBUAGkAbQBvAHQAaAB5ACAAUwBjAGgAbwBlAG4AIgAKACQAcgBlAGcAaQBzAHQAcgB5AFAAYQB0AGgAIAA9ACAAIgBIAEsATABNADoAXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABVAG4AaQBuAHMAdABhAGwAbAAiAAoAJABzAHUAYgBLAGUAeQBzACAAPQAgAEcAZQB0AC0AQwBoAGkAbABkAEkAdABlAG0AIAAtAFAAYQB0AGgAIAAkAHIAZQBnAGkAcwB0AHIAeQBQAGEAdABoAAoACgBmAG8AcgBlAGEAYwBoACAAKAAkAHMAdQBiAEsAZQB5ACAAaQBuACAAJABzAHUAYgBLAGUAeQBzACkAIAB7AAoAIAAgACAAIAAkAGMAdQByAHIAZQBuAHQASwBlAHkAIAA9ACAARwBlAHQALQBJAHQAZQBtAFAAcgBvAHAAZQByAHQAeQAgAC0AUABhAHQAaAAgACQAcwB1AGIASwBlAHkALgBQAFMAUABhAHQAaAAKACAAIAAgACAAaQBmACAAKAAkAGMAdQByAHIAZQBuAHQASwBlAHkALgBEAGkAcwBwAGwAYQB5AE4AYQBtAGUAIAAtAGUAcQAgACQAZABpAHMAcABsAGEAeQBOAGEAbQBlACAALQBhAG4AZAAgACQAYwB1AHIAcgBlAG4AdABLAGUAeQAuAFAAdQBiAGwAaQBzAGgAZQByACAALQBlAHEAIAAkAHAAdQBiAGwAaQBzAGgAZQByACkAIAB7AAoAIAAgACAAIAAgACAAIAAgAFIAZQBtAG8AdgBlAC0ASQB0AGUAbQAgAC0AUABhAHQAaAAgACQAcwB1AGIASwBlAHkALgBQAFMAUABhAHQAaAAgAC0AUgBlAGMAdQByAHMAZQAgAC0ARgBvAHIAYwBlAAoAIAAgACAAIAAgACAAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFIAZQBnAGkAcwB0AHIAeQAgAGUAbgB0AHIAeQAgAHIAZQBtAG8AdgBlAGQAOgAgACQAKAAkAHMAdQBiAEsAZQB5AC4AUABTAFAAYQB0AGgAKQAiAAoAIAAgACAAIAB9AAoAfQA=
175194
</Property>

.github/scripts/package-macOS.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ DYLIB="/tmp/plugdata_shared/plugdata-resources.bin"
8484
LOCATIONS=(
8585
"/Library/Audio/Plug-Ins/VST3/plugdata.vst3/Contents/Resources/"
8686
"/Library/Audio/Plug-Ins/VST3/plugdata-fx.vst3/Contents/Resources/"
87+
"/Library/Audio/Plug-Ins/AAX/plugdata.aaxplugin/Contents/Resources/"
88+
"/Library/Audio/Plug-Ins/AAX/plugdata-fx.aaxplugin/Contents/Resources/"
8789
"/Library/Audio/Plug-Ins/Components/plugdata.component/Contents/Resources/"
8890
"/Library/Audio/Plug-Ins/Components/plugdata-fx.component/Contents/Resources/"
8991
"/Library/Audio/Plug-Ins/Components/plugdata-midi.component/Contents/Resources/"
@@ -149,6 +151,11 @@ if [[ -d $CLAP ]]; then
149151
build_flavor "CLAP" $CLAP "com.plugdata.clap.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/CLAP" "$MIN_OS_VERSION"
150152
fi
151153

154+
# try to build AAX package
155+
if [[ -d $AAX ]]; then
156+
build_flavor "CLAP" $CLAP "com.plugdata.aax.pkg.${PRODUCT_NAME}" "/Library/Application Support/Avid/Audio/Plug-Ins" "$MIN_OS_VERSION"
157+
fi
158+
152159
# try to build App package
153160
if [[ -d $APP ]]; then
154161
build_flavor "APP" $APP "com.plugdata.app.pkg.${PRODUCT_NAME}" "/Applications" "$MIN_OS_VERSION"
@@ -178,6 +185,11 @@ if [[ -d $CLAP ]]; then
178185
CLAP_CHOICE="<line choice=\"com.plugdata.clap.pkg.${PRODUCT_NAME}\"/>"
179186
CLAP_CHOICE_DEF="<choice id=\"com.plugdata.clap.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"CLAP Plug-in\"><pkg-ref id=\"com.plugdata.clap.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.plugdata.clap.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_CLAP.pkg</pkg-ref>"
180187
fi
188+
if [[ -d $AAX ]]; then
189+
AAX_PKG_REF="<pkg-ref id=\"com.plugdata.aax.pkg.${PRODUCT_NAME}\"/>"
190+
AAX_CHOICE="<line choice=\"com.plugdata.aax.pkg.${PRODUCT_NAME}\"/>"
191+
AAX_CHOICE_DEF="<choice id=\"com.plugdata.aax.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"false\" title=\"AAX Plug-in\"><pkg-ref id=\"com.plugdata.aax.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.plugdata.aax.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_AAX.pkg</pkg-ref>"
192+
fi
181193
if [[ -d $APP ]]; then
182194
APP_PKG_REF="<pkg-ref id=\"com.plugdata.app.pkg.${PRODUCT_NAME}\"/>"
183195
APP_CHOICE="<line choice=\"com.plugdata.app.pkg.${PRODUCT_NAME}\"/>"
@@ -196,6 +208,7 @@ cat > ${TARGET_DIR}/distribution.xml << XMLEND
196208
${AU_PKG_REF}
197209
${LV2_PKG_REF}
198210
${CLAP_PKG_REF}
211+
${AAX_PKG_REF}
199212
${APP_PKG_REF}
200213
<options require-scripts="false" customize="always" />
201214
<options hostArchitectures="arm64,x86_64" />
@@ -205,13 +218,15 @@ cat > ${TARGET_DIR}/distribution.xml << XMLEND
205218
${AU_CHOICE}
206219
${LV2_CHOICE}
207220
${CLAP_CHOICE}
221+
${AAX_CHOICE}
208222
${APP_CHOICE}
209223
</choices-outline>
210224
${SHARED_CHOICE_DEF}
211225
${VST3_CHOICE_DEF}
212226
${AU_CHOICE_DEF}
213227
${LV2_CHOICE_DEF}
214228
${CLAP_CHOICE_DEF}
229+
${AAX_CHOICE_DEF}
215230
${APP_CHOICE_DEF}
216231
</installer-gui-script>
217232
XMLEND

CMakeLists.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ juce_add_plugin(plugdata
610610
COPY_PLUGIN_AFTER_BUILD FALSE
611611
PLUGIN_MANUFACTURER_CODE PlDt
612612
PLUGIN_CODE PdIn
613-
FORMATS AU AUv3 VST3 LV2 CLAP
613+
FORMATS AU AUv3 VST3 LV2 CLAP AAX
614614
LV2URI https://github.com/timothyschoen/plugdata
615615
PRODUCT_NAME ${INSTRUMENT_NAME}
616616
BUNDLE_ID com.plugdata.plugdata.instrument
@@ -641,7 +641,7 @@ juce_add_plugin(plugdata_fx
641641
COPY_PLUGIN_AFTER_BUILD FALSE
642642
PLUGIN_MANUFACTURER_CODE PlDt
643643
PLUGIN_CODE PdFx
644-
FORMATS AU AUv3 VST3 LV2 CLAP
644+
FORMATS AU AUv3 VST3 LV2 CLAP AAX
645645
LV2URI https://github.com/timothyschoen/plugdata-fx
646646
PRODUCT_NAME "plugdata-fx"
647647
BUNDLE_ID com.plugdata.plugdata.fx
@@ -741,6 +741,8 @@ else()
741741
copy_binarydata(plugdata_standalone)
742742
copy_binarydata(plugdata_VST3)
743743
copy_binarydata(plugdata_fx_VST3)
744+
copy_binarydata(plugdata_AAX)
745+
copy_binarydata(plugdata_fx_AAX)
744746
copy_binarydata(plugdata_CLAP)
745747
copy_binarydata(plugdata_fx_CLAP)
746748
copy_binarydata(plugdata_LV2)
@@ -790,7 +792,7 @@ if(APPLE)
790792
endif()
791793

792794
# Organize JUCE-generated plugin format targets
793-
foreach(format AU AUv3 VST3 LV2 CLAP Standalone All)
795+
foreach(format AU AUv3 VST3 LV2 CLAP AAX Standalone All)
794796
if(TARGET plugdata_${format})
795797
set_target_properties(plugdata_${format} PROPERTIES FOLDER "Plugins/Instrument")
796798
endif()
@@ -893,6 +895,8 @@ endif()
893895
if(APPLE)
894896
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/VST3/plugdata.vst3 DESTINATION "/Library/Audio/Plug-ins/VST3")
895897
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/VST3/plugdata-fx.vst3 DESTINATION "/Library/Audio/Plug-ins/VST3")
898+
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/AAX/plugdata.aaxplugin DESTINATION "/Library/Application Support/Avid/Audio/Plug-Ins")
899+
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/AAX/plugdata-fx.aaxplugin DESTINATION "/Library/Application Support/Avid/Audio/Plug-Ins")
896900
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/LV2/plugdata.lv2 DESTINATION "/Library/Audio/Plug-ins/LV2")
897901
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/LV2/plugdata-fx.lv2 DESTINATION "/Library/Audio/Plug-ins/LV2")
898902
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/CLAP/plugdata.clap DESTINATION "/Library/Audio/Plug-ins/CLAP")
@@ -904,6 +908,8 @@ if(APPLE)
904908
elseif(WIN32)
905909
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/VST3/plugdata.vst3 DESTINATION "$ENV{PROGRAMFILES}/Common Files/VST3")
906910
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/VST3/plugdata-fx.vst3 DESTINATION "$ENV{PROGRAMFILES}/Common Files/VST3")
911+
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/AAX/plugdata.aaxplugin DESTINATION "$ENV{PROGRAMFILES}/Common Files/Avid/Audio/Plug-Ins")
912+
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/AAX/plugdata-fx.aaxplugin DESTINATION "$ENV{PROGRAMFILES}/Common Files/Avid/Audio/Plug-Ins")
907913
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/LV2/plugdata.lv2 DESTINATION "$ENV{PROGRAMFILES}/Common Files/LV2")
908914
install(DIRECTORY ${PLUGDATA_PLUGINS_LOCATION}/LV2/plugdata-fx.lv2 DESTINATION "$ENV{PROGRAMFILES}/Common Files/LV2")
909915
install(FILES ${PLUGDATA_PLUGINS_LOCATION}/CLAP/plugdata.clap DESTINATION "$ENV{PROGRAMFILES}/Common Files/CLAP")

0 commit comments

Comments
 (0)