igorski / MWEngine

Audio engine and DSP library for Android, written in C++ providing low latency performance within a musical context, while providing a Java/Kotlin API. Supports both OpenSL and AAudio.
MIT License
259 stars 45 forks source link

proper inital set up for use as library #124

Closed scar20 closed 3 years ago

scar20 commented 3 years ago

Last year, I've hacked up the example in MWEngine to see its capability. Now I want to properly use the engine as a library for my project. I got a fresh new clone of MWEngine from GitHub and a made a small project to link with just for the purpose of figuring out the right way to do it. I did File->New->Import Module... and pointed to the fresh clone. At first, it seem to had worked but trying to build give error due to the presence of the example app. And deleting it just made chain reactions of others errors. Now a mess... I'm not familiar with configuration stuff so some advice to help me jumps start will be appreciated. I did read the doc, but I'm a bit overwhelmed by all the options. Do I need to do a AAR?

Ideally, I want to have a pure MWEngine on which I could make branch for modifications and use the modification branch as a library in my main project. I have latest Android Studio API 30 and latest NDK installed on Windows10

Thanks

igorski commented 3 years ago

Hi, good question and reminder as this was a development that was on the backlog for too long...

I have created a branch aar which contains an updated setup that separates the example activity from the core code, the latter which will be built as a library, packaged inside an AAR. The README file is also updated to describe how to include this AAR within a custom project.

Your workflow would then be that instead of cloning this repository and changing files accordingly, you have a checkout of the repository which creates the .AAR file. This file you can import in your custom project either manually or via an automation process that moves the assembled .AAR to the target project.

Perhaps you can give this a test drive and see if it works for your purposes ?

scar20 commented 3 years ago

Here what i've done: fresh start:

Get from Version Control https://github.com/igorski/MWEngine.git checkout arr new branch scarr I was not sure if I should comment out include 'mwengine_example' in settings.gradle so I leaved it as is.

Open Gradle tool form View->Tool Windows->Gradle Unfold MWEngine->Task->build right-click assemble -> Run 'MWEngine [assemble]' then:

FAILURE: Build failed with an exception.

  • Where: Build file 'C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\build.gradle' line: 1

  • What went wrong: A problem occurred evaluating project ':mwengine'.

    Failed to apply plugin [id 'com.android.internal.version-check'] Minimum supported Gradle version is 6.5. Current version is 6.1.1. If using the gradle wrapper, try editing the distributionUrl in C:\Users\Sylvain\AndroidStudioProjects\MWEngine\gradle\wrapper\gradle-wrapper.properties to gradle-6.5-all.zip

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

changed gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

and run again mwengine:assemble from the gradle tool

few warnings: many SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. and a few Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. but it finished with: BUILD SUCCESSFUL in 3m 39s 111 actionable tasks: 111 executed 1:13:46 PM: Task execution finished 'assemble'.

So it look cool... Now i'll try to import in a new project, not sure yet on how do do, so I'll try first from New Module or Import Module, if that fail, i'll install manually and see hoe far I can go.

Below is the complete log from the build in case there is some tweak to do:

1:08:35 PM: Executing task 'assemble'...

Executing tasks: [assemble] in project C:\Users\Sylvain\AndroidStudioProjects\MWEngine

Download https://services.gradle.org/distributions/gradle-6.5-all.zip (145.77 MB) Download https://services.gradle.org/distributions/gradle-6.5-all.zip finished succeeded, took 8 s 219 ms

Task :mwengine:preBuild UP-TO-DATE Task :mwengine:preDebugBuild UP-TO-DATE Task :mwengine:compileDebugAidl NO-SOURCE

Task :mwengine:generateJsonModelDebug C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|arm64-v8a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|arm64-v8a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|x86_64 : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ debug|x86_64 : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

Task :mwengine:externalNativeBuildDebug Build mwengine_wrapped_armeabi-v7a ninja: Entering directory C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\.cxx\cmake\debug\armeabi-v7a' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [7/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [9/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [11/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [13/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libmwengine_wrapped.so Build mwengine_wrapped_arm64-v8a ninja: Entering directoryC:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine.cxx\cmake\debug\arm64-v8a' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [7/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [9/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [11/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [13/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ........\build\intermediates\cmake\debug\obj\arm64-v8a\libmwengine_wrapped.so Build mwengine_wrapped_x86_64 ninja: Entering directory `C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine.cxx\cmake\debug\x86_64' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [7/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [9/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [11/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [13/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ........\build\intermediates\cmake\debug\obj\x86_64\libmwengine_wrapped.so

Task :mwengine:mergeDebugJniLibFolders Task :mwengine:compileDebugRenderscript NO-SOURCE Task :mwengine:generateDebugBuildConfig Task :mwengine:generateDebugResValues Task :mwengine:generateDebugResources Task :mwengine:packageDebugResources Task :mwengine:mergeDebugNativeLibs Task :mwengine:parseDebugLocalResources Task :mwengine:stripDebugDebugSymbols Task :mwengine:copyDebugJniLibsProjectAndLocalJars Task :mwengine:javaPreCompileDebug Task :mwengine:mergeDebugShaders Task :mwengine:compileDebugShaders NO-SOURCE Task :mwengine:generateDebugAssets UP-TO-DATE Task :mwengine:packageDebugAssets Task :mwengine:packageDebugRenderscript NO-SOURCE Task :mwengine:prepareLintJarForPublish Task :mwengine:processDebugJavaRes NO-SOURCE Task :mwengine:preReleaseBuild UP-TO-DATE Task :mwengine:compileReleaseAidl NO-SOURCE Task :mwengine:writeDebugAarMetadata Task :mwengine:mergeDebugJavaResource Task :mwengine:processDebugManifest

Task :mwengine:generateJsonModelRelease C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|armeabi-v7a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|armeabi-v7a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|arm64-v8a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|arm64-v8a : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|x86_64 : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\CMakeLists.txt : C/C++ release|x86_64 : CMake Deprecation Warning at C:/Users/Sylvain/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/UseSWIG.cmake:231 (message): SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead. Call Stack (most recent call first): CMakeLists.txt:176 (swig_add_module)

Task :mwengine:generateDebugRFile

Task :mwengine:externalNativeBuildRelease Build mwengine_wrapped_armeabi-v7a ninja: Entering directory C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\.cxx\cmake\release\armeabi-v7a' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [7/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [9/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [11/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [13/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ..\..\..\..\build\intermediates\cmake\release\obj\armeabi-v7a\libmwengine_wrapped.so Build mwengine_wrapped_arm64-v8a ninja: Entering directoryC:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine.cxx\cmake\release\arm64-v8a' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [7/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [9/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [11/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [13/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ........\build\intermediates\cmake\release\obj\arm64-v8a\libmwengine_wrapped.so Build mwengine_wrapped_x86_64 ninja: Entering directory `C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine.cxx\cmake\release\x86_64' [1/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/libraries.cpp.o [2/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/global.cpp.o [3/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/ringbuffer.cpp.o [4/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processingchain.cpp.o [5/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/adapter.cpp.o [6/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/wavetable.cpp.o [7/75] Building C object CMakeFiles/mwengine.dir/src/main/cpp/drivers/opensl_io.c.o [8/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiochannel.cpp.o [9/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/channelgroup.cpp.o [10/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencer.cpp.o [11/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/sequencercontroller.cpp.o [12/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/observer.cpp.o [13/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/envelopegenerator.cpp.o [14/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drivers/aaudio_io.cpp.o [15/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/wavegenerator.cpp.o [16/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/sampleevent.cpp.o [17/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/services/library_loader.cpp.o [18/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basecacheableaudioevent.cpp.o [19/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/baseaudioevent.cpp.o [20/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/sampledinstrument.cpp.o [21/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audiobuffer.cpp.o [22/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/baseinstrument.cpp.o [23/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/messaging/notifier.cpp.o [24/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/envelopefollower.cpp.o [25/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/routeableoscillator.cpp.o [26/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/baseprocessor.cpp.o [27/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/levelutility.cpp.o [28/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/lfo.cpp.o [29/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/fastmath.cpp.o [30/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/audioengine.cpp.o [31/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/debug.cpp.o [32/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bulkcacher.cpp.o [33/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavereader.cpp.o [34/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/utils.cpp.o [35/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/samplemanager.cpp.o [36/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferpool.cpp.o [37/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/bufferutility.cpp.o [38/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/tablepool.cpp.o [39/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/basesynthevent.cpp.o [40/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/synthevent.cpp.o [41/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/definitions/pitch.cpp.o [42/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/diskwriter.cpp.o [43/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/dcoffsetfilter.cpp.o [44/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/delay.cpp.o [45/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/arpeggiator.cpp.o [46/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/decimator.cpp.o [47/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/bitcrusher.cpp.o [48/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/oscillatorproperties.cpp.o [49/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/generators/synthesizer.cpp.o [50/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/utilities/wavewriter.cpp.o [51/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/synthinstrument.cpp.o [52/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/modules/adsr.cpp.o [53/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/filter.cpp.o [54/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/phaser.cpp.o [55/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/fm.cpp.o [56/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/pitchshifter.cpp.o [57/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/limiter.cpp.o [58/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/glitcher.cpp.o [59/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverb.cpp.o [60/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lowpassfilter.cpp.o [61/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/lpfhpfilter.cpp.o [62/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/flanger.cpp.o [63/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/formantfilter.cpp.o [64/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/reverbsm.cpp.o [65/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/waveshaper.cpp.o [66/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/processors/tremolo.cpp.o [67/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javabridge.cpp.o [68/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/events/drumevent.cpp.o [69/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/drumpattern.cpp.o [70/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/instruments/druminstrument.cpp.o [71/75] Building CXX object CMakeFiles/mwengine.dir/src/main/cpp/jni/javautilities.cpp.o [72/75] Linking CXX static library libmwengine.a [73/75] Swig source C:\Users\Sylvain\AndroidStudioProjects\MWEngine\mwengine\src\main\cpp\processors\fm.h(32) : Warning 813: Warning for MWEngine::FrequencyModulator, base MWEngine::LFO ignored. Multiple inheritance is not supported in Java. [74/75] Building CXX object CMakeFiles/mwengine_wrapped.dir/src/main/java/nl/igorski/mwengine/core/mwengineJAVA_wrap.cxx.o [75/75] Linking CXX shared module ........\build\intermediates\cmake\release\obj\x86_64\libmwengine_wrapped.so

Task :mwengine:mergeReleaseJniLibFolders Task :mwengine:compileReleaseRenderscript NO-SOURCE Task :mwengine:mergeReleaseNativeLibs Task :mwengine:compileDebugJavaWithJavac Task :mwengine:extractDebugAnnotations Task :mwengine:mergeDebugGeneratedProguardFiles Task :mwengine:mergeDebugConsumerProguardFiles Task :mwengine:syncDebugLibJars Task :mwengine:bundleDebugAar Task :mwengine:compileDebugSources Task :mwengine:assembleDebug Task :mwengine:stripReleaseDebugSymbols Task :mwengine:copyReleaseJniLibsProjectAndLocalJars Task :mwengine:generateReleaseBuildConfig Task :mwengine:generateReleaseResValues Task :mwengine:generateReleaseResources Task :mwengine:packageReleaseResources Task :mwengine:parseReleaseLocalResources Task :mwengine:javaPreCompileRelease Task :mwengine:mergeReleaseShaders Task :mwengine:compileReleaseShaders NO-SOURCE Task :mwengine:generateReleaseAssets UP-TO-DATE Task :mwengine:processReleaseManifest Task :mwengine:packageReleaseAssets Task :mwengine:packageReleaseRenderscript NO-SOURCE Task :mwengine:processReleaseJavaRes NO-SOURCE Task :mwengine:generateReleaseRFile Task :mwengine:writeReleaseAarMetadata Task :mwengine:mergeReleaseJavaResource Task :mwengine:mergeReleaseResources Task :mwengine:compileReleaseJavaWithJavac Task :mwengine:extractReleaseAnnotations Task :mwengine:mergeReleaseGeneratedProguardFiles Task :mwengine:mergeReleaseConsumerProguardFiles Task :mwengine:syncReleaseLibJars Task :mwengine:compileReleaseSources Task :mwengine_example:preBuild UP-TO-DATE Task :mwengine_example:preDebugBuild UP-TO-DATE Task :mwengine_example:compileDebugAidl NO-SOURCE Task :mwengine_example:compileDebugRenderscript NO-SOURCE Task :mwengine_example:generateDebugBuildConfig Task :mwengine_example:javaPreCompileDebug Task :mwengine:compileDebugLibraryResources Task :mwengine_example:checkDebugAarMetadata Task :mwengine_example:generateDebugResValues Task :mwengine_example:generateDebugResources Task :mwengine:bundleLibCompileToJarDebug Task :mwengine_example:mergeDebugResources Task :mwengine:verifyReleaseResources Task :mwengine:bundleReleaseAar Task :mwengine:assembleRelease Task :mwengine:assemble Task :mwengine_example:createDebugCompatibleScreenManifests Task :mwengine:extractDeepLinksDebug Task :mwengine_example:extractDeepLinksDebug Task :mwengine_example:processDebugMainManifest Task :mwengine_example:processDebugManifest Task :mwengine_example:mergeDebugNativeDebugMetadata NO-SOURCE Task :mwengine_example:mergeDebugShaders Task :mwengine_example:compileDebugShaders NO-SOURCE Task :mwengine_example:generateDebugAssets UP-TO-DATE Task :mwengine_example:mergeDebugAssets Task :mwengine:bundleLibResDebug NO-SOURCE Task :mwengine_example:processDebugJavaRes NO-SOURCE Task :mwengine_example:compressDebugAssets Task :mwengine_example:mergeDebugJavaResource Task :mwengine_example:checkDebugDuplicateClasses Task :mwengine:bundleLibRuntimeToJarDebug Task :mwengine:copyDebugJniLibsProjectOnly Task :mwengine_example:mergeExtDexDebug Task :mwengine_example:mergeDebugJniLibFolders Task :mwengine_example:validateSigningDebug Task :mwengine_example:preReleaseBuild UP-TO-DATE Task :mwengine_example:compileReleaseAidl NO-SOURCE Task :mwengine_example:compileReleaseRenderscript NO-SOURCE Task :mwengine_example:generateReleaseBuildConfig Task :mwengine_example:mergeDebugNativeLibs Task :mwengine_example:javaPreCompileRelease Task :mwengine:bundleLibCompileToJarRelease Task :mwengine_example:stripDebugDebugSymbols Task :mwengine:compileReleaseLibraryResources Task :mwengine_example:checkReleaseAarMetadata Task :mwengine_example:generateReleaseResValues Task :mwengine_example:generateReleaseResources Task :mwengine_example:createReleaseCompatibleScreenManifests Task :mwengine:extractDeepLinksRelease Task :mwengine_example:extractDeepLinksRelease Task :mwengine_example:processReleaseMainManifest Task :mwengine_example:processReleaseManifest Task :mwengine_example:mergeReleaseResources Task :mwengine_example:mergeReleaseNativeDebugMetadata NO-SOURCE Task :mwengine_example:mergeReleaseShaders Task :mwengine_example:compileReleaseShaders NO-SOURCE Task :mwengine_example:generateReleaseAssets UP-TO-DATE Task :mwengine_example:mergeReleaseAssets Task :mwengine_example:processDebugManifestForPackage Task :mwengine_example:compressReleaseAssets Task :mwengine_example:processDebugResources Task :mwengine_example:compileDebugJavaWithJavac Task :mwengine_example:compileDebugSources Task :mwengine_example:dexBuilderDebug Task :mwengine_example:checkReleaseDuplicateClasses Task :mwengine:bundleLibResRelease NO-SOURCE Task :mwengine_example:mergeExtDexRelease Task :mwengine_example:processReleaseJavaRes NO-SOURCE Task :mwengine_example:mergeReleaseJavaResource Task :mwengine:bundleLibRuntimeToJarRelease Task :mwengine_example:collectReleaseDependencies Task :mwengine_example:sdkReleaseDependencyData Task :mwengine:copyReleaseJniLibsProjectOnly Task :mwengine_example:mergeReleaseJniLibFolders Task :mwengine_example:processReleaseManifestForPackage Task :mwengine_example:mergeReleaseNativeLibs Task :mwengine_example:processReleaseResources Task :mwengine_example:mergeDexDebug Task :mwengine_example:compileReleaseJavaWithJavac Task :mwengine_example:compileReleaseSources Task :mwengine_example:lintVitalRelease Task :mwengine_example:dexBuilderRelease Task :mwengine_example:stripReleaseDebugSymbols Task :mwengine_example:mergeDexRelease Task :mwengine_example:packageDebug Task :mwengine_example:assembleDebug Task :mwengine_example:packageRelease Task :mwengine_example:assembleRelease Task :mwengine_example:assemble

BUILD SUCCESSFUL in 3m 39s 111 actionable tasks: 111 executed 1:13:46 PM: Task execution finished 'assemble'.

Hi, good question and reminder as this was a development that was on the backlog for too long...

I have created a branch aar which contains an updated setup that separates the example activity from the core code, the latter which will be built as a library, packaged inside an AAR. The README file is also updated to describe how to include this AAR within a custom project.

Your workflow would then be that instead of cloning this repository and changing files accordingly, you have a checkout of the repository which creates the .AAR file. This file you can import in your custom project either manually or via an automation process that moves the assembled .AAR to the target project.

Perhaps you can give this a test drive and see if it works for your purposes ?

scar20 commented 3 years ago

OK, I imported the aar according to https://developer.android.com/studio/projects/android-library: File->New->New Module Import .JAR/.AAR Package Pointed to the produced arr file mwengine-debug it correctly generated the artefact in build.gradle(:mwengine-debug):

configurations.maybeCreate("default") artifacts.add("default", file('mwengine-debug.aar'))

idem for settings-gradle:

include ':mwengine-debug' include ':app' rootProject.name='AudioWithLib'

and then added this line in the dependency section of build.gradle(:app) implementation project(":mwengine-debug")

Then sync and I got this warning

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings

But in main (which is a modified MWEngineActivity) everything was in red. I right-click the library -> Load/Unload Modules... and load the module

Now most of main been resolved but for: BUFFER_SIZE = DevicePropertyCalculator.getRecommendedBufferSize( getApplicationContext() ); SAMPLE_RATE = DevicePropertyCalculator.getRecommendedSampleRate( getApplicationContext() ); Those two do not seem to come from core.

I tried also as you suggest in the readme and moved(refactor) the arr in .libs and add the dirs "libs" line in the "allprojects" section and the ndk line in the defaultConfig section of the build.gradle(:app). But it didnt work. It seem i'm close though.

scar20 commented 3 years ago

Stupid me... It didnt compile because my main was from a modified MWEngineActivity from last year.... So BUFFER_SIZE = DevicePropertyCalculator.getRecommendedBufferSize( getApplicationContext() ); SAMPLE_RATE = DevicePropertyCalculator.getRecommendedSampleRate( getApplicationContext() ) have now been replaced to BUFFER_SIZE = MWEngine.getRecommendedBufferSize( getApplicationContext() ); SAMPLE_RATE = MWEngine.getRecommendedSampleRate( getApplicationContext() ); Now everything is fine, it compile and run. Although I could not reproduce it in the way indicated in the readme by copying in the libs directory. I could only make it happen with Android Studio New Module pointing to the aar without a libs directory. The only line I had to add was the implementation project(":mwengine-debug") dependency.

igorski commented 3 years ago

Glad to hear its working! :)

I shall update the README with your findings, thanks for the test drive and elaborate info!

scar20 commented 3 years ago

Here is the minimal steps you need to install MWEngine as a lib:

1 - First get the aar branch of the library https://github.com/igorski/MWEngine/tree/aar either cloning or download the zip - if you clone, make sure you checkout the aar branch on bottom right of Android Studio.

2 - Open the gradle command tool: View->Tool Windows->Gradle and right-click on mwengine->Tasks->build->assemble image

image

You can find the resulting aar's in MWEngine->mwengine->build->outputs->aar

3a - In your project, import the library with New->New Module... and select Import .JAR/.AAR Package image

and 3b - browse to the location of the aar you want (you can only import one at a time), select and click finish. image

4 - In the build.gradle(:app) add these lines to the defaultConfig section:

ndk {
    // these values must match the abi's defined in mwengine/build.gradle
    // to prevent UnsatisfiedLinkError when this app tries to serve an unsupported architecture
    abiFilters "armeabi-v7a", "arm64-v8a", "x86_64"
}

and this line to the dependency section: implementation project(":mwengine-debug") or :mwengine-release depending on which one you selected

That's it

igorski commented 3 years ago

Thanks! 🎉

I added your instructions to the README and have merged the branch into master. From this day forth, MWEngine will out of the box build its core library as a shareable module.