# Juce\_faustllvm module - JIT compile faust DSPs as AudioProcessors

**URL:** <https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462>\
**Category:** Useful Tools and Components\
**Created:** [March 14, 2015, 11:39pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462 "2015-03-14T23:39:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![olilarkin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/olilarkin/32/7142_2.png) [@olilarkin](https://forum.juce.com/u/olilarkin)\
**Post date:** [March 14, 2015, 11:39pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/1 "2015-03-14T23:39:25Z")

</div>

This is a work in progress but feedback is welcome...

I'd like to present a JUCE module for embedding the FAUST LLVM JIT compiler in your JUCE projects.

For those who don't know,&nbsp;Faust is an awesome functional programming language for audio DSP see&nbsp;http://faust.grame.fr/

recently the team at Grame have added a LLVM backend to faust, which allows you to JIT compile the faust code to run very efficiently. I have adapted their work on the faustgen~ max msp external to a FaustAudioPluginInstance class.

here is the module

https://github.com/CMRCYork/juce\_faustllvm

and a CLI test project that uses the module

https://github.com/CMRCYork/juce\_faustllvm\_test

I would like to know if you are able to compile it for starters. I am not sure if the recently add "OSXLibs" section of juce\_module\_info is working correctly since i had to add the linker flags manually.

tommorow i will upload a more substantial project that uses&nbsp;it.

cheers

oli

&nbsp;

ps OSX and Linux only for now! subject to change etc!

---

<div class="post-metadata">

**Author:** ![rory](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rory/32/534_2.png) [@rory](https://forum.juce.com/u/rory)\
**Post date:** [March 15, 2015, 7:34pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/2 "2015-03-15T19:34:35Z")

</div>

Another darn reason to look into faust!

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://forum.juce.com/u/jules)\
**Post date:** [March 16, 2015, 12:44pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/3 "2015-03-16T12:44:42Z")

</div>

:)

---

<div class="post-metadata">

**Author:** ![olilarkin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/olilarkin/32/7142_2.png) [@olilarkin](https://forum.juce.com/u/olilarkin)\
**Post date:** [March 16, 2015, 2:14pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/4 "2015-03-16T14:14:00Z")

</div>

updated the projects. and here is the bigger project i mentioned

https://github.com/CMRCYork/pMix2

naf vid:&nbsp;https://vimeo.com/122268573

---

<div class="post-metadata">

**Author:** ![rory](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rory/32/534_2.png) [@rory](https://forum.juce.com/u/rory)\
**Post date:** [March 16, 2015, 6:41pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/5 "2015-03-16T18:41:16Z")

</div>

This looks great. Have you considering providing Csound based nodes? I am working on somthing similar myself where each node can be a Csound instrument, or a VST/AU etc. But I like how&nbsp;you have everthing packed into a single instance. That's not somthing I am in a position to even think about just now. If you're interested&nbsp;I'm happy to help out.&nbsp;

---

<div class="post-metadata">

**Author:** ![olilarkin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/olilarkin/32/7142_2.png) [@olilarkin](https://forum.juce.com/u/olilarkin)\
**Post date:** [March 16, 2015, 7:18pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/6 "2015-03-16T19:18:40Z")

</div>

yes actually ;-) i was speaking to steven yi about how to embed csound with the goal of having csound nodes in pMix. I haven't had time to look at it yet but&nbsp;i'll be in touch!&nbsp;

---

<div class="post-metadata">

**Author:** ![rory](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rory/32/534_2.png) [@rory](https://forum.juce.com/u/rory)\
**Post date:** [March 16, 2015, 7:31pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/7 "2015-03-16T19:31:41Z")

</div>

Great. All the code is basically there.&nbsp;

---

<div class="post-metadata">

**Author:** ![alfonso-santimone](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/alfonso-santimone/32/6_2.png) [@alfonso-santimone](https://forum.juce.com/u/alfonso-santimone)\
**Post date:** [July 7, 2016, 12:40pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/8 "2016-07-07T12:40:43Z")

</div>

Hi Oli and all,  
any progress on integrating Faust in Juce on the Windows side of the moon?  
thanks  
a.

---

<div class="post-metadata">

**Author:** ![olilarkin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/olilarkin/32/7142_2.png) [@olilarkin](https://forum.juce.com/u/olilarkin)\
**Post date:** [July 7, 2016, 3:06pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/9 "2016-07-07T15:06:56Z")

</div>

hi alfonso,

unfortunately not, sorry

oli

---

<div class="post-metadata">

**Author:** ![alfonso-santimone](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/alfonso-santimone/32/6_2.png) [@alfonso-santimone](https://forum.juce.com/u/alfonso-santimone)\
**Post date:** [July 8, 2016, 1:27pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/10 "2016-07-08T13:27:07Z")

</div>

Thanks Oli for the info.  
Any project goin’ on on this direction?  
best  
a.

[www.elgallorojorecords.com](http://www.elgallorojorecords.com)  
https://w.soundcloud.com/player/?visual=false&url=https%3A%2F%2Fapi.soundcloud.com%2Fusers%2F6897405&show_artwork=true&maxheight=166  
[www.facebook.com/alfonsosantimone](http://www.facebook.com/alfonsosantimone)

---

<div class="post-metadata">

**Author:** ![Elan\_Hickler](https://avatars.discourse-cdn.com/v4/letter/e/8baadc/32.png) [@Elan\_Hickler](https://forum.juce.com/u/Elan_Hickler)\
**Post date:** [August 29, 2016, 4:53pm UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/11 "2016-08-29T16:53:19Z")

</div>

I’ve been looking for a solution to combine visual and textual progamming like you have done (kinda) with pmix2 where you can create audio objects in code and then attach things together visually, kinda like max/msp… well, EXACTLY like [http://forum.cockos.com/showthread.php?t=46286](http://forum.cockos.com/showthread.php?t=46286) jsfxgen.

With jsfxgen you create visual objects which are represented by code and attach things together. That would then spit out new code for compiling into a single object.

Problem with jesusonic is that it’s a limited programming language. Faust can be faster than compiled C++ according to faust.

I’m failing to see why faust could not be used to make max, puredata, jesusonic, and protoplug obsolete.

Edit: Does faust lack class/object functionality? That would make faust difficult to use for anything complex. I’m probably missing something.

Edit: this?: [http://faust.grame.fr/news/2016/01/13/polyphonic-instruments.html](http://faust.grame.fr/news/2016/01/13/polyphonic-instruments.html)

---

<div class="post-metadata">

**Author:** ![olilarkin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/olilarkin/32/7142_2.png) [@olilarkin](https://forum.juce.com/u/olilarkin)\
**Post date:** [August 30, 2016, 8:00am UTC](https://forum.juce.com/t/juce-faustllvm-module-jit-compile-faust-dsps-as-audioprocessors/14462/12 "2016-08-30T08:00:34Z")

</div>

Faust is a functional programming language, and has some limitations. It’s a fundamentally different programming paradigm to C++, jesusonic, et cetera. so it’s not really gonna make any of those things obsolete. Here’s a video of my presentation at the JUCE Summit on Faust
