Gorilla Engine — Professional Audio Plugin Development SDK

Focus on creativity. Not C++ boilerplate.

Gorilla Engine is a full audio plugin development SDK for professional sound designers and software developers. Design custom sound cores, preview in popular DAWs, and export VST, AU, and AAX formats with signed installers — all from one integrated workflow.

Gorilla Editor
v2.4.0
Gorilla Editor Interface

Trusted by Industry Leaders

Loopmasters Logo
Avid Logo
Crowhill Logo
UJAM Logo

Complete Audio Development Suite

From raw samples to signed installer. Our Gorilla Engine SDK handles the entire lifecycle of your professional audio plugin.

Gorilla Editor

Define your sound core. Stack samples, route audio, add envelopes and LFOs, and export to .blob files.

Gorilla Tester

Instant DAW preview. Load .blob files directly in a VST/AU wrapper to test your product before compiling.

Gorilla Compiler

Bundles your .blob, UI assets, and logic (JS) into signed installers for VST, AU, AAX or Standalone.

UI Development Layer

Build pixel-perfect interfaces using our layout system and standard JavaScript for interaction logic.

Gorilla Script

Scripting language for the core audio engine. High degree of familiarity with KSP. Binds controls to internal parameters effortlessly.

NKS & MPE Ready

Fully compatible with Native Instruments NKS standard and supports MPE (MIDI Polyphonic Expression).

Separation of Concerns

Sound, Layout, and Logic.
Perfectly Organized.

Gorilla Engine splits development into logical parts. Use Gorilla Script for DSP binding and JavaScript for complex UI behavior. This allows instrument designers and UI developers to work in parallel.

Read the Documentation
// Gorilla Script: Sample Purging Example
on init
prop_boolean Load_1234 = 1
prop_boolean Load_5678 = 1
prop_boolean Purge = 1
set_prop_param(Purge, PROP_SET_BY, SET_BY_HOST + SET_BY_SONG)
prop_boolean RePurge
set_prop_param(RePurge, PROP_SET_BY, SET_BY_HOST + SET_BY_SONG)
add_step(RePurge, " ") 'don't want "Off"/"On" displayed
add_step(RePurge, "OK") 'we are using it as a pushbutton
prop_text Display
set_prop_param(Display, PROP_SET_BY, SET_BY_SCRIPT)
purge_group(ALL_GROUPS, 0)
var loaded[8]
var updateEvent
'set_key_display(0, 127, KEY_COLOR_INACTIVE);
set_key_display(48, 48, KEY_COLOR_CYAN + KEY_IS_CONTROL); set_key_name(48, "Purge Off")
set_key_display(50, 50, KEY_COLOR_CYAN + KEY_IS_CONTROL); set_key_name(50, "Purge On")
set_key_display(52, 52, KEY_COLOR_CYAN + KEY_IS_CONTROL); set_key_name(52, "Re-Purge")
set_key_display(60, 72, KEY_COLOR_ORANGE);
end on
on Load_1234
purge_group(0, Load_1234) 'Group purged
end on
on Load_5678
set_module_param(M_MAPPING+1, 0, 0, 2, Load_5678) 'Mapping Active
end on
on Purge
purge_group(ALL_GROUPS, not Purge)
end on
on RePurge
if RePurge
RePurge = 0
Purge = 1
purge_group(ALL_GROUPS, -1)
end if
end on
on note
select EVENT_KEY
case 48 'C2 Purge Off
Purge = 0
purge_group(ALL_GROUPS, 1)
case 50 'D2 Purge On
Purge = 1
purge_group(ALL_GROUPS, 0)
case 52 'E2 Re-Purge
Purge = 1
purge_group(ALL_GROUPS, -1)
end select
end on
on controller
if EVENT_CC == 123 'all notes off / audio reset
updateEvent = EVENT_ID
while updateEvent == EVENT_ID
delay_msec(100)
get_module_param(M_GROUP+0, M_ZONE+1, 0, 2, loaded[0]) 'Zone Status
get_module_param(M_GROUP+0, M_ZONE+2, 0, 2, loaded[1]) 'Zone Status
get_module_param(M_GROUP+0, M_ZONE+3, 0, 2, loaded[2]) 'Zone Status
get_module_param(M_GROUP+0, M_ZONE+4, 0, 2, loaded[3]) 'Zone Status
get_module_param(M_MAPPING+1, M_ZONE+1, 0, 2, loaded[4]) 'Zone Status
get_module_param(M_MAPPING+1, M_ZONE+2, 0, 2, loaded[5]) 'Zone Status
get_module_param(M_MAPPING+1, M_ZONE+3, 0, 2, loaded[6]) 'Zone Status
get_module_param(M_MAPPING+1, M_ZONE+4, 0, 2, loaded[7]) 'Zone Status
Display = loaded[0] - 1 & loaded[1] - 1 & loaded[2] - 1 & loaded[3] - 1 & loaded[4] - 1 & loaded[5] - 1 & loaded[6] - 1 & loaded[7] - 1
end while
end if
end on
New Platform

Scale with Product Hub

A comprehensive licensing and delivery platform designed specifically for virtual instrument manufacturers. Manage licenses, distribute installers, and handle updates without building backend infrastructure.

Licensing Management

Create and assign licenses. Track activations and support license transfers.

Product Delivery

Upload installers, manage builds, and distribute updates seamlessly to your user base. Separate distribution for multiple different target audiences e.g., Alpha Testers or Beta Testers.

Bring Your Own Identity

Connect to Auth0 or any custom user management system. We handle the licenses, you own the user data.

Developer Friendly

Integrate via REST API or use our ready-made JavaScript client library.

Simple Licensing

Choose Your Plan

Flexible options based on your needs. From free for anyone who just wants to give away freebies to highly customized enterprise-grade solutions.

Free

For hobbyists & prototyping.

$0 / month
  • Gorilla Editor: Full development environment
  • Gorilla Tester: Preview in VST/AU
  • Gorilla Script: Basic scripting
  • UI Development: JavaScript
  • Gorilla Compiler: Installer creation for VST/AU/AAX and Standalone
  • "Powered by Gorilla Engine" branding
  • No distribution to 3rd parties or monetization.
Get Started Switch to Free! You are on Free Plan

Pro

For professional plugin releases.

Revenue Share
  • Everything in Free
  • First $25k Revenue Free: No billing by UJAM for the first $25k of revenue.
  • Gorilla Compiler: Export VST/AU/AAX
  • Product Hub: Licensing & Distribution
  • Helpdesk Support
  • "Powered by Gorilla Engine" branding
Contact Sales Switch to Pro! You are on Pro Plan
Exclusive

Enterprise

For established audio companies.

Custom
  • Individualized licensing terms
  • C++ Integration: Custom DSP modules
  • White Label: Custom branding options
  • Priority Support & Advisory Board
  • Custom Licensing Solutions
Contact Sales Switch to Enterprise! You are on Enterprise Plan

Ready to build your dream plugin?

Join the growing community of developers using Gorilla Engine to power their audio products.

Get Started for Free