Instrument Level Effects

I was just over over KVR (like normal) and i was looking at the review of the linplug RMIV drum machine plugin. This thing has seperate FX for each drum pad, like compressor and bit crusher etc.

It made me thinkhow useful it would be to have FX at the instrument level in renoise.

For example, if i have my kick drum in slot 1 then it would be nice to be able to add a compressor at the instrument level to add punch. Or add slight reverb to a snare. And all this before any of the processing done at the track level.

Any thoughts?

I agree.
Yes… Its cpu consuming etc, But still you can have lots of fun making complex fx on a instrument level. Especially if you can automate the fx on a instrument level too. This is already discussed in the ‘Rni Future’ thread.


yup. this feature would be very useful…

I agree… At least it would be great to be able to save a track DSP chain along with an instrument. When you’ve come up with that perfect filter-distortion-filter-distortion-equalizer chain that emulates an electric guitar along with your simple sample and instrument volume envelope, it would be nice to save that in one place, rather than having to spend two minutes copying and pasting when you want to transfer that sound to a new song.

all three thumbz up, good idea

Yup, and even this great idea has been knocked out like 156 times or so in this forum.

let’s try once more… :unsure:

Having instrument level effect beside track effects is a little bit tricky (technically), and I`m not sure if its possible to use both at once at all.

Assume you have a snare, playing on track 1 and 2, then the signal path currently looks like this:

for AudioBuffer, do:  
SnareI (SAMPLEGEN) -> (TrackI)  
SnareII (SAMPLEGEN) -> (TrackII)  
for AudioBuffer, do:  
(TrackI) -> ProcessTrackDSPI -> (TrackI)  
(TrackII) -> ProcessTrackDSPII -> (TrackII)  

If you want to have instrument effects, you need to mix down all Snare signal paths into one stream, then apply the tnstrument level effect:

for AudioBuffer, do:  
SnareI (SAMPLEGEN) -> (SnareStream)  
SnareII (SAMPLEGEN) -> (SnareStream)  
for AudioBuffer, do:  
(SnareStream) -> ProcessInstrDSP -> (SnareStream)  

So all snares are now mixed into one stream (the SnareStream), which means that you cannot split up the stream again to be able to process the track effects on it seperatly.

The only solution I know of is something like this:

for AudioBuffer, do:  
SnareI (SAMPLEGEN) -> (SnareStreamI)  
SnareII (SAMPLEGEN) -> (SnareStreamII)  
for AudioBuffer, do:  
(SnareStreamI) -> ProcessInstrDSPI -> (SnareStreamI)  
(SnareStreamII) -> ProcessInstrDSPII -> (SnareStreamII)  
for AudioBuffer, do:  
(SnareStreamI) -> ProcessTrackDSPI -> (TrackI)  
(SnareStreamII) -> ProcessTrackDSPII -> (TrackII)  

The problem now is that you need to have multiple instances of ProcessInstrDSP (ProcessInstrDSP1 and ProcessInstrDSP2), running with the “same” settings.

Said the other way around: You would need to add kind of “TrackDSPs” for every track to simulate the instrument effects, that runs with the settings of the instrument DSP to simulate instrument level effects.

This might work for internal effects, but would require a huge amount of extra memory, because you need several instances (for every playing Snare in each Track) of DSPs. Some VSTs can only be instanced a few times, also not all VST`s are fully controlable by the host. Without being full controllable, these VSTs could not be “synced” to each others.

Hope that makes a little bit sense.

If I`m blind and dont see a a possible solution, let me know.

You have to make it a single stream after the ProcessInstrDSP.
But hey… Thats fine by me :) So you are limited to use this instrument on one track only. Like any other vsti.
So just duplicate the instrument or do other workarounds in your tracking if you have to use it on several tracks.
Instrument level fx are way too cool to be left out because of this. Well thats just MHO :)

this is also MHO

Then you would hear all snares on all tracks.

Ouch. Really?

How it works with VST simply sucks. Noone understands this. If we now also add this limitation to our own instruments, (and only when instrument level effects are used) people will be totally lost.

The only acceptable workaround I see, is that one could simply have only native effects as instrument level effects.

having native effects only would still be cool.

could it also be the first step to a new RNI concept described here, in which RNI variables (pitch, velocity, envelopes) could be used to send data to native effects and metadevices.

How about expanding the native effects to store chains like this:…s?action=browse

You can already do this with sends. Why adding a build in senddevice into every track chain as first device? Noone will understand this.

i think this is a bad idea, for more reasons than just being prohibitive in a programming sense. for the mostly time-invariant effects like compression or overdrive you should process them into a sample before loading it into renoise. i don’t think it’s a good idea to make renoise work overtime as a sound design app. for time-variant effects like flanger or lfo’d filter, is it really so hard to give the sound its own channel and add effects the normal way? to go with the instrument-effect proposal would mean basically adding a separate channel anyway behind the scenes, why not just do it manually and have more control over things?

i generally like the idea of trackers becoming more modular-ized, but per-sample effects seems both un-doable and unnecessary to me.

as always, just my $.02. nobody hate me now.


I can hate you a small bit :)

Well. Do you turn off all fx when you use vsti synths? And then add them again as track fx? All the time?

Yes I do this sometime. Sometimes I dont.
This is also why I think there should be a program/presets build into the .rni format.

Sometimes you just need the inspiration to compose something. Other times you wanna go into each little detail.
I cant see no harm having both options.

Just mho :)


It’s Sunday as usual and this means i’m still not awake…