Writing and integrating a Track DSP

Hi, I have the source code for a mastering processor which I’d like to integrate with Renoise on Linux. I’m having trouble with knowing where to begin (I’m not totally sure it’s possible either!) Has anyone done anything similar?

I’m not new to raw audio development – hence I have DSP code from a broadcast processor. But I am new to putting it into a desktop or music application.

I can see several options for extending Renoise, like LADSPA, DSSI or VST. In the case of VST, the best I could find was a broken link at linux-vst.com so I haven’t even been able to get started. But if I understand correctly, in all these cases I would have to write an independent GUI.

What I really would like is to do is integrate the DSP into Renoise, including its GUI. Easy to use, and so that the controls can be automated etc. like all of the other “Track DSPs”. Is this possible, and is there some pointer on where to begin – perhaps some documentation, or suggestion?

Do I have to write some kind of VST and front-end it with a script, or can I write a “Track DSP” plugin?

I can appreciate maybe this part of Renoise may not be extensible, in which case what is going to be my best compromise? Any advice appreciated, thanks.

Hi Mark,

from !Introduction.txt:

What's *NOT* possible with Renoise tools:  
  
- Change Renoise's existing behaviour. Like, you can't make all C-4s in the  
pattern editor yellow instead of white. You can write your own pattern  
editor, but not change the existing one.  
  
- Realtime access. Except for OSC and MIDI IO, you can't write scripts that  
run in the audio player. In other words, you can not script new realtime  
DSPs - yet. But you can, for example, write a tool that creates samples or  
manipulates existing samples. This limitation might change in the future.  
For now you can make a VST, AudioUnit, or LADSPA/DSSI plug-in.  

I’m not 100% sure, but this shouldn’t be the case of LADSPA: Renoise should expose a minimal standard GUI for LADSPA plugins

VST’s can be track DSP devices, like for example glitch, and the MDA collection of plugins. Not sure how much code you’d have to add and/or rewrite to make your processing app into a VST tho…

(i presume the same is true for ladspa and dssi, but i don’t have any that act as track dsp)

I have gotten into a similar situation (my background being somewhat different; I’ve just managed to compile the gain example from the VST SDK and use it in renoise). Guess that VSTs can be compiled for Win/Mac/Linux, so that’s my choice. The GUI part is not your biggest issue for effects: VST effects are adjustable via the renoise interface, much like native FX - there’s a button with an arrow to the right and when you click it you see all parameters, automatable and all.

Thanks Cas, are you also on Linux? I haven’t invested a lot of time on it (and I have been busy since writing my original post) but I could not immediately see how to get started writing a VST on Linux. If you have any references that would be appreciated.

It sounds promising that you can see the parameters in Renoise, in that case VST is likely to be my favoured option as I could then reasonably port to Windows or Mac.

Thanks

I’m on Windows, so you’re gonna have to google some stuff! But I’m using MingW compiler, and SConstruct for building, which works great. First I tried the GUI way from this site, but it compiled .dlls that didn’t load. Then I decided to go with the actually much easier commandline route, described on a page on the same website, starting here.
Simple page about compiling VST on linux
Also, be sure to check out JUCE, it’s a open source lib that allows you to compile for the 3 platforms, it’s got GUI framework, the works. Looking at the dials on the interface, I guess the open source (I believe) reverb plugin HybridReverb2 has been using it. Long story short a lot of professional grade stuff uses this lib, I’m about to check it out since I’m so professional too. :P (warning: its gui style is pretty ugly in my opinion. but I do think they have the potentiometers down, as in, you move them with the mouse going up or down, not circular)

Starter note: use the VST2.4 specs. VST3 is gonna be awesome, but only in more than a year from now (wild uneducated guess) or more when all DAWs support it.