Giter VIP home page Giter VIP logo

fl-studio-sdk-cmake-template's Introduction

CMake C++ Template for FL Studio SDK

This is a unofficial CMake template for building custom FL Studio plugins ("FL" plugins), using FL Studio SDK.

Dependencies

This project is intended to be used on Windows, using a Visual Studio compiler.
It is recommended to use a CMake-based IDE (CLion, a properly configured VSCode...) to handle and edit the project.

Project overview

In Project Root Directory:

  • SDK folder contains the FL Studio SDK with some slight modifications and the CMakeLists.txt. The SDK gets built as a library and linked against the Plugin(s). The subdirectory SDK/SDK_documentation contains the documentation as provided by the SDK.
  • Examples folder contains the 4 example projects (FruityGain_VC, Saw_VC and others) provided by the SDK. Each one is built as a separate CMake project, and can be enabled in the root CMakeLists.txt. The source files contain some debug and small changes. They could contain some bugs still.
  • Plugin folder contains the plugin project template. Edit and add files there to build your project.
  • CMakeLists.txt is the "root" Cmake. This project shall be built from there.

Setting up the project

1. Root CMakeLists.txt:

  1. Set the project name if necessary. Notice that this is only an "aestetic" choice, since the plugin will not have this name.
  2. lines 8 and 11: Set the Installation paths (${FL_INSTALL_GENERATORS_PATH} and ${FL_INSTALL_EFFECTS_PATH}): projects will be saved there.
  3. From line 17: If needed, set the paths for your Compilers and generators. It's a better idea to let these lines commented, and let the IDE handle them (if you are using one).
  4. If needed, add subdirectories by uncommenting them.

2. Plugin CMakeLists.txt:

  1. line 2: set the project name according to the desired plugin Name. Notice that all the generated files and installation process will take that as the Plugin name. On installation, the dll will have <project_name>_x64.dll as a name.
  2. Lines 8, 10, 12: change variables.
  3. line 30: add source files you include for your plugin. Do not include SDK files, they are automatically being built!
  4. line 38: link other libraries if needed

Compile the plugin

From the project root folder:

  • Generate Makefiles inside a build directory cmake -B build
  • Enter Build folder cd build
  • Build cmake --build . --config Release

fl-studio-sdk-cmake-template's People

Contributors

barsay avatar

Stargazers

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

Watchers

 avatar

fl-studio-sdk-cmake-template's Issues

Struggling with compiles and with install

I was trying to test with the example plug ins, but I could not get them to compile except for Fruity_Gain which was able to ostensibly complete a build.

The other had 'FATAL ERROR: LNK1104, fl_sdk.lib not found/ opened' [I don't remember exactly, at the moment] and I couldn't get my install of the Fruity Gain to show up in my effects folder which was stated in the doc.

It would be amazing if you could show little bits and pieces at a time of how to set this up and get the examples working in youtube videos / screen recordings.
Thank you so much! Great work! It got me much farther than the raw API

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.