Skip to content

TeensyJuce is intended as a way to prototype Teensy effects in a more fully featured dev environment using the Juce API

Notifications You must be signed in to change notification settings

cutlasses/TeensyJuce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 

Repository files navigation

TeensyJuce

TeensyJuce is intended as a way to prototype Teensy effects in a more fully featured dev environment, to make debugging possible. It uses the JUCE API, so can be compiled on Mac, PC and Linux. It will allow you to compile your Teensy effects as VSTs or Audio Units.

First, install Juce from here https://www.juce.com/get-juce

Simply derive your effect from TEENSY_AUDIO_STREAM_WRAPPER rather than AudioStream. This parent class handles the internal audio_block_t queue data, so you don't need to define that. Then, rather than making any Teensy audio library calls in your code, call

bool                            process_audio_in( int channel )
bool                            process_audio_out( int channel )

This will then do the Teensy or Juce based audio handling, and call the functions below that you can override with your audio code.

// add audio processing code in these 2 functions
virtual void                    process_audio_in_impl( int channel, const int16_t* sample_data, int num_samples ) = 0;
virtual void                    process_audio_out_impl( int channel, int16_t* sample_data, int num_samples ) = 0;

Then simply add one of the following defines to switch between Teensy and Juce

//#define TARGET_TEENSY
#define TARGET_JUCE

I've ported my Glitch Delay Effect to this system, so have a look at the source code for an example of how to use it. I use ProJucer to create a project file for my compiler/IDE (xcode in my case).

NOTE: You will pay the cost of a handful more virtual function calls. I was happy with that for prototyping purposes, but once the code is working it would be straightforward to remove them.

About

TeensyJuce is intended as a way to prototype Teensy effects in a more fully featured dev environment using the Juce API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published