Giter Site home page Giter Site logo

wwerkk / gen-plugin-export Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cycling74/gen-plugin-export

0.0 0.0 0.0 95.01 MB

Build audio applications and plugins with gen~

License: Other

C++ 74.36% C 17.73% Objective-C 0.08% Makefile 0.27% Java 0.34% Objective-C++ 2.54% R 0.07% Max 0.11% CMake 4.49%

gen-plugin-export's Introduction

gen~ Plugin Export

This is an example project that should help you get started with building your own plugins and iOS apps with the help of the code-export feature of gen~, part of Max 8 made by Cycling '74.

It is based on the JUCE Framework. Please be aware that the JUCE has its own license terms (mostly GPL with the availability of commercial licenses). See their website for further details.

File structure

To follow the structure of a Max package, most of the code is located within the /source/ directory.

Some notable files/directories:

Location Explanation
/source/GenPluginExport.maxpat main Max patcher to automate building plugins
/source/post-export.js Node for Max script in the main Max patcher to help automate compiling and configuring JUCE projects
/source/exported-code/ the folder where gen~ will export C++ code
/source/CoreAudioUtilityClasses/ required for building Audio Units
/source/Projucer/ Projucer files - configures the plugin behavior
/source/Source-App/ Source for iOS Application - feel free to edit (includes sample UI)
/source/Source-Plugin/ Source for Audio Plugins - feel free to edit
/source/JUCE The JUCE framework - do not edit these

Files generated by the Projucer:

file/dir explanation
/source/App-Builds/ iOS projects
/source/AU-Builds/ AudioIUnit projects
/source/VST3-Builds/ VST3 projects

Prerequisites

MacOS

  • Download and install Xcode. We have tested using Xcode 12.
  • Building VSTs requires the VST SDK from Steinberg. Due to the phasing out of VST2 licensing, only VST3 export is currently supported by gen~ plugin export.
    • Download and unzip the SDK.
    • Rename VST3_SDK to VST3 SDK and move it to ~/SDKs/ in your home directory. In other words, you should end up with ~/SDKs/VST3 SDK.
  • To build AudioUnits, copy the folder CoreAudio (located in /source/CoreAudioUtilityClasses/) to Applications/Xcode.app/Contents/Developer/Extras/ (create it if needed).

Windows

  • Download and install Visual Studio 2019. Community Edition is enough!
  • Building VSTs requires the VST SDK from Steinberg. Due to the phasing out of VST2 licensing, only VST3 export is currently supported by gen~ plugin export.
    • Download and unzip the SDK.
    • Rename VST3_SDK to VST3 SDK and move it to C:\SDKs\. In other words, you should end up with C:\SDKs\VST3 SDK.

How to use

Everything you need to build a plugin is outlined in GenPluginExport.maxpat.

Note: All provided projects have been created via the Projucer, so it should be safe to use the Projucer to edit them (for example, to add or change a UI).

Customization

Plugin building is based on the JUCE Framework.

  • If you want to add or remove files from your Xcode or Visual Studio project, do not edit the projects directly (they will be rebuilt on each export), but use the Projucer files in the root folder.
  • In the folder /source/Projucer/ you will find a program called Projucer. This program is used to edit those .jucer files, for example C74-Gen-VSTPlugin.jucer, which also offer more advanced ways of plugin configuration
  • You can also use the Projucer to add a UI. An example of this can be found in the Projucer file "C74-Gen-Application.jucer" (the iOS Project). Find a series of official Projucer tutorials here.

Enjoy!

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.