Code Monkey home page Code Monkey logo

janwilczek / audio-plugin-template Goto Github PK

View Code? Open in Web Editor NEW
72.0 2.0 4.0 34 KB

A template repository that you can use for creating audio plugins with the JUCE C++ framework. It is based on CMake, uses CPM package manager, the JUCE C++ framework (obviously), and the GoogleTest framework. All of these are easy to change on demand. You can also base off your new repo off this template because the setup is very simple.

CMake 41.26% C++ 58.74%
cmake juce juce-framework juce-plugin cpp

audio-plugin-template's People

Contributors

janwilczek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

audio-plugin-template's Issues

CMake copy file when plugin is build

Hi Jan,

You could include to your ./CMakeLists.txt e.g.

configure_file("./build/plugin/AudioPlugin_artefacts/Debug/VST3/YourPluginName.vst3/Contents/x86_64-win/YourPluginName.vst3" "C:/Users/[USERNAME]/Desktop/myplugin" COPYONLY)

This way CMake will create a link between the files, and how I understand it, update the plugin in myplugin folder when ever the changes to the plugin is re compiled :)

(And thank you for the template, it saved me a ton of work)

Link to video using the template / workflow ?

Hi Jan,

Have you made a video showing juce audio developing using your template ? :) I'm quite new to juce, and getting some funky compile errors sometimes. It would be great to see you actually use the template :)

Sizeof errors ?

I (on Macos) tried today your (very promising) solution and i have 2 weird errors :

[ 2%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o [ 5%] Linking CXX static library ../../../lib/libgtest.a [ 5%] Built target gtest [ 7%] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o [ 10%] Linking CXX static library ../../../lib/libgmock.a [ 10%] Built target gmock [ 12%] Building CXX object _deps/googletest-build/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o [ 15%] Linking CXX static library ../../../lib/libgmock_main.a [ 15%] Built target gmock_main [ 17%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o [ 20%] Linking CXX static library ../../../lib/libgtest_main.a [ 20%] Built target gtest_main [ 22%] Building CXX object plugin/CMakeFiles/AudioPlugin.dir/source/PluginEditor.cpp.o In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/source/PluginEditor.cpp:1: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/include/YourPluginName/PluginEditor.h:3: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/include/YourPluginName/PluginProcessor.h:3: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_audio_processors/juce_audio_processors.h:57: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:60: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_graphics/juce_graphics.h:58: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_core/juce_core.h:204: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_core/system/juce_StandardHeader.h:50: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/algorithm:1747: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:63:19: error: invalid application of 'sizeof' to an incomplete type 'juce::AccessibilityHandler' static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type"); ^~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:297:7: note: in instantiation of member function 'std::default_delete<juce::AccessibilityHandler>::operator()' requested here __ptr_.second()(__tmp); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:263:75: note: in instantiation of member function 'std::unique_ptr<juce::AccessibilityHandler>::reset' requested here _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() { reset(); } ^ /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/layout/juce_Viewport.h:346:20: note: in instantiation of member function 'std::unique_ptr<juce::AccessibilityHandler>::~unique_ptr' requested here return createIgnoredAccessibilityHandler (*this); ^ /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:162:11: note: forward declaration of 'juce::AccessibilityHandler' class AccessibilityHandler; ^ In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/source/PluginEditor.cpp:1: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/include/YourPluginName/PluginEditor.h:3: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/plugin/include/YourPluginName/PluginProcessor.h:3: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_audio_processors/juce_audio_processors.h:57: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:60: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_graphics/juce_graphics.h:58: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_core/juce_core.h:204: In file included from /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_core/system/juce_StandardHeader.h:50: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/algorithm:1747: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:63:19: error: invalid application of 'sizeof' to an incomplete type 'juce::Drawable' static_assert(sizeof(_Tp) >= 0, "cannot delete an incomplete type"); ^~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:297:7: note: in instantiation of member function 'std::default_delete<juce::Drawable>::operator()' requested here __ptr_.second()(__tmp); ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__memory/unique_ptr.h:263:75: note: in instantiation of member function 'std::unique_ptr<juce::Drawable>::reset' requested here _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() { reset(); } ^ /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/menus/juce_PopupMenu.h:302:62: note: in instantiation of member function 'std::unique_ptr<juce::Drawable>::~unique_ptr' requested here std::unique_ptr<Drawable> iconToUse = {}); ^ /Users/matthieuvirmoux/plugtest/audio-plugin-template/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:154:11: note: forward declaration of 'juce::Drawable' class Drawable; ^ 2 errors generated. gmake[2]: *** [plugin/CMakeFiles/AudioPlugin.dir/build.make:76: plugin/CMakeFiles/AudioPlugin.dir/source/PluginEditor.cpp.o] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:344: plugin/CMakeFiles/AudioPlugin.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2

I searched for a couple of hours but nothing... Does someone have an idea ?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.