Looking for pointers to music plugin tutorials

7 views
Skip to first unread message

phil jones

unread,
Dec 2, 2019, 6:07:39 AM12/2/19
to pure-lang
Hi,

I've just started looking into Pure. And it seems very exciting.

However I'm a bit lost in the documentation.

If I understand correctly, Pure is a high-level functional language that I can use to write music software plugins like LV2 and VST etc.

(And presumably the same Pure source can be compiled for both these environments?)

Are there any tutorials for this? Eg. showing a n00b what I need to install (and where) in order to get started? With some examples of how Pure works with the interfaces for these standards?

cheers

Phil 

Albert Graef

unread,
Dec 17, 2019, 8:12:34 AM12/17/19
to pure...@googlegroups.com
Hi Phil, and welcome to the list!

Sorry for the awful amount of latency, but the time leading up to the xmas holidays is always terribly busy for me.

On Mon, Dec 2, 2019 at 12:07 PM phil jones <inte...@gmail.com> wrote:
If I understand correctly, Pure is a high-level functional language that I can use to write music software plugins like LV2 and VST etc.

It's a general-purpose language and is being used for different things, but yes, you can also write plugins with it, using pure-lv2 for LV2 and pure-plugr for VST. (The idea was to eventually turn pure-plugr into a multi-platform implementation which would support both LV2 and VST, and also AU on the Mac. But that hasn't happened yet, in fact I have to admit that I haven't worked on these modules for quite some time.)

(And presumably the same Pure source can be compiled for both these environments?)

Not quite, at this time, but plugin sources for pure-lv2 and pure-plugr are reasonably similar. IIRC, the main callback is in fact the same, but there's some boilerplate code around it (plugin description and manifest) which is a bit different.

Are there any tutorials for this? Eg. showing a n00b what I need to install (and where) in order to get started? With some examples of how Pure works with the interfaces for these standards?

There's some documentation for pure-lv2 in the manual at https://agraef.github.io/pure-docs/pure-lv2.html. For pure-plugr (https://github.com/agraef/pure-lang/tree/master/pure-plugr), not so much, which is why I didn't even bother including it in the manual. But there are some simple examples included in both modules.

Note that I consider Pure most useful to write control (i.e., MIDI) plugins. If you want to do a considerable amount of audio processing, I'd really recommend using Faust (http://faust.grame.fr/) instead. The Faust compiler includes two of my own "Faust architectures" (a.k.a. backends) for LV2 and VST (documentation and examples can be found here: https://bitbucket.org/agraef/faust-lv2, https://bitbucket.org/agraef/faust-vst). For faust-lv2, you can also refer to my presentation at LAC 2013 here: https://lac.linuxaudio.org/2013/program. Both architectures work exactly the same, and with these architectures it's really just a matter of recompiling the plugin with the Faust compiler to make it work both as an LV2 and a VST.

HTH,
Albert

--
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany
Email: agg...@gmail.com, web: https://agraef.github.io/
Reply all
Reply to author
Forward
0 new messages