Skip to content

Commit f05f558

Browse files
committed
0.30.1
1 parent 9add673 commit f05f558

File tree

102 files changed

+21857
-6826
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+21857
-6826
lines changed

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@
1717
!README.md
1818
!LICENSE*
1919
!*.cmake
20-
!cross-compile.sh
21-
!linux-dependencies.sh
20+
!linux-*.sh
21+
!tests/
22+
!tests/**
23+
!docs/
24+
!docs/**
2225

2326
!/lib
2427
!.vscode

CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ endif()
1212
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
1313

1414
option(ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" ON)
15+
option(BUILD_TESTS "Build unit tests" OFF)
1516

1617
include(compilerconfig)
1718
include(defaults)
@@ -101,6 +102,7 @@ set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES CXX_STANDARD 23)
101102

102103
add_subdirectory(lib/atkaudio)
103104

105+
104106
string(JSON PLUGIN_DISPLAY_NAME GET ${buildspec} displayName)
105107
string(JSON PLUGIN_AUTHOR GET ${buildspec} author)
106108
string(JSON PLUGIN_OBS_VERSION_REQUIRED GET ${buildspec} dependencies obs-studio version)
@@ -111,6 +113,13 @@ configure_file(src/config.h.in config.h @ONLY)
111113

112114
include(./lib/atkaudio/cmake/cpack.cmake)
113115

116+
# Enable testing and add tests subdirectory
117+
if(BUILD_TESTS)
118+
enable_testing()
119+
add_subdirectory(tests)
120+
message(STATUS "Building tests: Enabled")
121+
endif()
122+
114123
# Automatically run install after build (skip in CI or when installing to system directories without permissions)
115124
if(NOT DEFINED ENV{CI} OR NOT CMAKE_INSTALL_PREFIX MATCHES "^/usr")
116125
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
@@ -136,3 +145,4 @@ if(NOT DEFINED ENV{CI} AND UNIX AND NOT APPLE)
136145
VERBATIM
137146
)
138147
endif()
148+

CMakePresets.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
"displayName": "Windows x64 CI build",
106106
"description": "Build for Windows x64 on CI",
107107
"cacheVariables": {
108-
"CMAKE_COMPILE_WARNING_AS_ERROR": true
108+
"CMAKE_COMPILE_WARNING_AS_ERROR": false
109109
}
110110
},
111111
{
@@ -139,7 +139,7 @@
139139
"displayName": "Windows ARM64 CI build",
140140
"description": "Build for Windows ARM64 on CI",
141141
"cacheVariables": {
142-
"CMAKE_COMPILE_WARNING_AS_ERROR": true
142+
"CMAKE_COMPILE_WARNING_AS_ERROR": false
143143
}
144144
},
145145
{
@@ -220,7 +220,7 @@
220220
"configurePreset": "windows-arm64",
221221
"displayName": "Windows ARM64",
222222
"description": "Windows build for ARM64",
223-
"configuration": "Debug"
223+
"configuration": "RelWithDebInfo"
224224
},
225225
{
226226
"name": "windows-arm64-release",
File renamed without changes.

LICENSE-GPL2

Lines changed: 0 additions & 338 deletions
This file was deleted.

LICENSE-GPL3

Lines changed: 0 additions & 674 deletions
This file was deleted.

LICENSE.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,25 @@
1010

1111
## Plugin Host2
1212

13-
- Includes features of regular Plugin Host plus:
14-
- Build filter graphs (plugin chains/network) with multiple VST3 plugin instances
13+
- Includes all features of regular Plugin Host plus:
14+
- MIDI, e.g. for using MIDI keyboard and a sampler plugin as soundboard
15+
- Direct interfacing with audio and MIDI hardware devices
16+
- Use multiple plugins to create complex audio processing chains and graphs from OBS sources and audio devices
17+
- Multicore parallel audio processing for improved performance
1518
- Saving and loading of graphs as files
16-
- MIDI support (e.g. for using MIDI keyboard and a sampler plugin as soundboard)
1719
- Route audio and MIDI between plugins and hardware (ASIO/CoreAudio included)
20+
- Sample rate converting and drift compensating internal buffering for seamless audio between OBS sources and audio devices
1821
- etc
1922

2023
Plugin Host2 can interface directly with audio and MIDI hardware, OBS audio sources, and output audio as new OBS sources, allowing for complex audio processing setups. E.g. use ASIO interface as audio device, take additional audio from OBS sources, route monitoring to ASIO outputs and/or different audio drivers/hardware, use plugins and create final mix, and output the processed audio as a new OBS source for recording and streaming. Or just create a simple soundboard with a sampler plugin and a MIDI keyboard.
2124

22-
Develop your own audio processing plugins and integrate them into `Plugin Host2` using the [JUCE framework](https://juce.com/) AudioProcessor class. See `InternalPlugins.cpp` how `GainPlugin` is loaded. See `GainPlugin.h` for implementation. Optionally include OBS headers to use the [OBS API](https://docs.obsproject.com/) for more advanced integration with [OBS Studio](https://obsproject.com/)
23-
2425
## Device I/O
2526

2627
- Send and receive audio directly into and from audio devices
2728
- "Anything from/to anywhere" device routing
2829
- ASIO, CoreAudio and Windows Audio devices
29-
- Resampling and drift correction
30+
31+
Develop your own audio processing plugins and integrate them into `Plugin Host2` using the [JUCE framework](https://juce.com/) AudioProcessor class. See `InternalPlugins.cpp` how `GainPlugin` is loaded. See `GainPlugin.h` for implementation. Optionally include OBS headers to use the [OBS API](https://docs.obsproject.com/) for more advanced integration with [OBS Studio](https://obsproject.com/)
3032

3133
## Audio Source Mixer (OBS Source)
3234

@@ -50,6 +52,10 @@ cmake --build --preset ubuntu-x86_64
5052
Find `atkaudio-pluginforobs.so` and copy it to OBS plugins directory.
5153
See `CMakePresets.json` for Windows, macOS and other build presets.
5254

55+
### Linux Realtime Thread Support
56+
57+
For optimal performance on Linux, see [LINUX_REALTIME.md](LINUX_REALTIME.md) for information about enabling realtime thread scheduling. The plugin works without this configuration but may have better performance with it enabled.
58+
5359
## Donation
5460

5561
[![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=ERBKC76F55HZW)

buildspec.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,6 @@
4747
"uuids": {
4848
"windowsApp": "ad885c58-5ca9-44de-8f4f-1c12676626a9"
4949
},
50-
"version": "0.27.1",
50+
"version": "0.30.1",
5151
"website": "https://www.atkaudio.com"
5252
}

cmake-toolchain-arm64.cmake

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)