STK JUCE module

Hi all, in case anyone is interested I’ve packaged up the STK audio framework into a JUCE module for easy addition to projects.

[quote]JUCE module wrapper for the STK library.

This wrapper has all the real-time classes (audio-in, threading, sockets etc.) removed to reduce external dependancies and because JUCE provides all of this functionality.

This module is designed as a quick way to add effects and generators to a JUCE based audio project. To use, simply add the module to the JUCE modules folder, create a new project in the Introjucer and add the module. All the classes are in the stk namespace.

There are a few amendments to the STK codebase in order to remove some compiler warnings.[/quote]Grab the git repository here!

Hope people find this useful, it may save some time in setting it up yourself.

Nice job!

nice work!

Nice stuff, Dave.

By the way: I am thinking about using some of your dRowAudio routines in a commercial plugin.
Is that possible?

Hi Alatar, of course it is. Check your PMs for details.

Thankyou Dave!

I’m a complete noob. Are there any demos available which use the Juce and STK at the same time so I can get a feel for what other people are doing?


Hi Syncretia, not as far as I’m aware I’m afraid. I know there are at least a couple of people using the module but if they’ve made any code available I don’t know. I only actually used the band limited oscillator classes from the module. I was working on a synth project and had already written all the envelope and standard oscillator classes myself but the band limited algorithms are a bit more involved so STK seemed a quick solution. Packaging it as a module seemed the simplest way to include the sources in my project so I thought I’d share the module.

Perhaps a good place would be to start with the JUCE demo AudioDemoSynthPage or plugin demo and try to replace the SineWaveSound with one using an STK oscillator. Then you could work on using one of the envelope classes rather than the static level and exponential release that these contain?

This is great, Thanks!

This is really helping…
dave thanks for your work…
Will sure give it a try …

STK is a great library. Thanks for the work, i will look soon i’ve updated my workspace.


i split the stk library in small modules like: core, generators, filters, effects … (instruments comming soon)

you can find my fork of this Project here:

Updated version 4.5 with new module support!

hi im having trouble with the projucer accepting your module … it reports " this wasnt a valid modules folder " . i have the recent version of the projucer. please advice. @dave96

thanks and i look forward to using the stk !


Impeccable timing! Was literally about to make a post about this…

I have just updated my wrapper of the STK library, originally forked from Dave’s version but I’ve changed it so its just a wrapper around STK as a Git submodule. Main reason being so it can be easily updated to the latest version of STK. Currently uses my own fork of STK (to make include paths relative).

BTW JUCE modules you will find on GitHub may not be up to date with the recent module changes in Juce 4.2.


Hey Adamski, I appreciate the last post was a few years ago but just wondering – are you still using this stk_wrapper?
It would be really handy for a project I’m working on, but the Projucer isn’t getting on board…
When I try and add the module, I get the message “Cannot find this module at the specified path!” first of all, however after re-confirming the path it seems to recognise it, though the little cube icon next to the module name is still greyed out.
Then when I try and launch it in XCode, the stk_wrapper module folder doesn’t initialise properly in the project navigator (see picture), so I can’t actually access any of the source code.
Do you have any ideas? I haven’t tried to use a custom module before so maybe I’m missing part of the process. Otherwise, perhaps the way the stk_wrapper is formatted isn’t compatible with the most recent JUCE update.
MartinScreen Shot 2020-02-15 at 15.49.15

@MartinT apologies I never saw this message (try @ next time :wink: )

If you haven’t solved this problem already, its most likely that you need to point the Projucer to the folder containing the module, not to the module folder itself.