Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate RtAudio #43

Merged
merged 9 commits into from
Mar 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/vst_host_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ jobs:
python -m pip install --upgrade pip
pip install -r ${{github.workspace}}/VstHost_Python/requirements.txt
sudo apt-get install libsndfile1-dev
sudo apt-get install libasound2-dev

- name: Install Doxygen
run: |
Expand Down Expand Up @@ -118,6 +119,7 @@ jobs:
.*argparser.hpp*
.*json.hpp*
.*vst3sdk*
.*rtaudio*
fail-under-line: 80
coveralls-send: true
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
Expand Down Expand Up @@ -228,6 +230,10 @@ jobs:
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.x'

- name: Install Audio Drivers
run: |
sudo apt-get install libasound2-dev

- name: Use cmake
run: cmake --version
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@
path = VstHost_VisualC++/modules/AudioProcessing/filter-c
url = [email protected]:RinoReyns/filter-c.git

[submodule "VstHost_VisualC++/external_modules/RtAudio/rtaudio"]
path = VstHost_VisualC++/external_modules/RtAudio/rtaudio
url = https://github.com/thestk/rtaudio.git
24 changes: 7 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ is why this repository was created. I know that it will take a lot of work but i
3. Android
```
NOTE:
Following instraction is made for Linux enviroment. However, steps for any OS should be similar.
Following instruction is made for Linux enviroment. However, steps for any OS should be similar.
1. Download Android NDK and unzip in the chosen location. (https://developer.android.com/ndk/downloads).

2. Set environmental variable for Android NDK as foloow:
Expand Down Expand Up @@ -122,28 +122,17 @@ is why this repository was created. I know that it will take a lot of work but i
- [x] Generate Documentation
- [x] AudioProcessing Class that can wrap different non-vst algorithms
- [x] Clean up code in vst host lib
- [x] Cross-Platform Audio Endpoint Render-Capture
- TODO:
- [ ] Add more advanced python-based Vst Host Lib utilization
- [ ] Add more UT for python and Android
- [ ] Integrate better wave reader
- [ ] Build solution for ARM
- [ ] Create Render/Capture manager class. Its design should allow to use it for any OS.
- [ ] Work on Render and Capture implementation for Windows
- [ ] Handle different audio formats e.g. sampling rate, bit depth etc.
- [ ] Create and pass config for AudioProcessing Class.
- [ ] Enable streaming processing (one frame in, one frame out).

1. Windows OS

- Implemented:
- [x] Basic code for Audio Endpoint Reader
- TODO:
- [ ] Clean up audio endpoint reader and utilize it in code (add queue, use it for processing with vst plugin etc)

1. Linux & Mac OS

- TODO:
- [ ] Add endpoint reader
- [ ] Create and pass config for AudioProcessing Class
- [ ] Enable streaming processing (one frame in, one frame out)
- [ ] Clean up Endpoint Manager Class


1. Android

Expand All @@ -161,6 +150,7 @@ is why this repository was created. I know that it will take a lot of work but i
1. [C ++ Json Handler](https://github.com/nlohmann/json)
1. [Windows Endpoint Reader](https://github.com/mofo7777/Stackoverflow/tree/master/WasapiCapture)
1. [Implementation of audio filters in C](https://github.com/adis300/filter-c)
1. [Real Timie Audio Render and Capture](https://github.com/thestk/rtaudio)

VST is a trademark held by Steinberg Media Technologies, GMBH.

Expand Down
1 change: 1 addition & 0 deletions VstHost_VisualC++/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ add_subdirectory(vst3sdk/base)
add_subdirectory(vst3sdk/public.sdk)
add_subdirectory(vst3sdk/public.sdk/samples/vst/adelay)
add_subdirectory(modules)
add_subdirectory(external_modules)

if (NOT ${ANDROID_BUILD})
set_target_properties(gtest PROPERTIES ${UNIT_TESTS_FOLDER})
Expand Down
22 changes: 22 additions & 0 deletions VstHost_VisualC++/external_modules/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
if (MSVC)
add_compile_options(/W1 /WX)
add_link_options(/WX)
include(SMTG_AddSubDirectories)
smtg_add_subdirectories()
elseif (UNIX AND !${ANDROID_BUILD})
add_compile_options(-Werror -Wextra)
elseif(LINUX)
find_program(GCOV_PATH gcov)
if(NOT GCOV_PATH)
message(${GCOV_PATH})
message("[WARNING] Code coverage analysis requires gcov!")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0")
message("[MESSAGE] Code coverage analysis found gcov!")
endif()
include(SMTG_AddSubDirectories)
smtg_add_subdirectories()
endif()



Loading
Loading