Control volume for Plugins?

Hi guys, is there any way to record volume for notes played via plugins? I am using Serum with a controller keyboard and whilst Renoise adds the initial volume/velocity to the volume column when i press notes it doesn’t actually have any affect. I can change the initial volume to 00 or 7F etc and no effect at all. Also altering the volume in the column during the note being played does nothing.

Is this by design, is there no way to record velocity or volume for a plugin? All i want to do is something simple like play a note then fade out using Renoise. I know most effect commands only work on samples, but is this the same for something simple like volume?



  1. Go to your current track.
  2. Insert the Meta device “Instr. Automation”.
  3. Here select your Serum VST inside the instrument index.
  4. Ctrl+M to view the MIDI Mapping window.
  5. Map the “MasterVol” parameter inside te Instr. Automation.

Now, you can automate the master volume of your Serum, with the registry inside your current track or the automation editor. This is to control the volume independently of the notes.

Some prestigious plugins have velocity sensitive compatibility (for example: Rob Papen Predator). I think Serum is not one of them! Although I think you can modulate the volume in the Matrix. Maybe there is some trick.

1 Like

Serum has to be set

@xbitz. Does this work for velocity sensitive volume? In theory, the “Velo” option should be aimed at the master volume, like a preview.

IMO the OP would like to do a (per)note modulation, so source should be the (poly)aftertouch

target is the master volume(per-note modulatable targets needs the poly one)

Jeez, you’re here as well?! :stuck_out_tongue_winking_eye:

started to relearn Renoise, this is why I’m here in the beginner forum :smiley: (last time I’ve used it 4 years ago, can see my answers from Renoise sampler as Loop player? :smiley: ), Voltage solved my VSTi handling so I’m here again

1 Like

Thanks guys! Useful tips, have setup the Velocity and Aftertouch in the Matrix in Serum now.

I guess the only thing i am unsure about still is changing volume up and down. I have automated the control for it now, but is there a way to fade in and out on the track in the pattern? For example i have a lead i want to fade out slowly (i don’t really want a really long sustain/release on the instrument), i don’t want just the note off command. For a sample obviously i would just use the volume command and slowly lower it. In FL Studio for example an automation link to volume and just create a curve. can’t seem to find a way in Renoise though unless I’m missing something.

I think setting Serum is too complicated, especially since you have to do the same for all presets.

With 2 Renoise DSP devices it is easier to control the master volume of Serum (or any parameter of any plugin.). Inside the current track:
1 Instr. Automation routed to Serum instrument, with parameter 1: “Master Vol”
2 Velocity Tracker, Dest: Instr. Automation, with parameter: “Master Vol”.

Velocity Tracker will read the volume value of each note inside the current track and change the “Master Vol” of the Serum with this configuration.

Things to keep in mind:

  1. You can change the program in the plugin without further steps.
  2. You can change parameter or instrument even without further steps.
  3. Velocity Tracker takes the rightmost note column as its priority. It is fine for monophonic.
  4. The problem is that each note in a chord will not have its own volume level.

@andycz, you can use the Instr. Automation (Serum, Master Vol) and an LFO with Custom (Linear descending curve) linked.

  1. Checkbox Bypass to start / stop the device (you don’t really need to use it in this case).
  2. Reset button to start the curve.
  3. One Short, to only run once.

You just have to control them with the right mouse button to automate within the track.

1 Like

same as in FL … just create a curve :slightly_smiling_face:

cross pattern ones can be drawn by the line tool

@xbitz, that is the pre-volume of the entire track.

Of course, it is possible to do the same for the Serum volume from the automation editor, only for the instrument that has the Serum. It just have to automate the correct parameter.

sure, btw. as I see the reset button triggered envelope can be replaced with position synched(autoseeked) one

formula device goes to LFO reset trigger, with func

function example()

LFO frequency should be INF LPC, it was one of my biggest issue with Renoise, so wow :smiley:

This is really great!

if you need more cycle per pattern for ex. 4 the formula will be

function example()

cycles per pattern parameter can be assigned to one of the parameter slider of the formula device > homework for everybody



<?xml version="1.0" encoding="UTF-8"?> <FilterDeviceClipboard doc_version="0"> <DeviceSlot type="DooferDevice"> <IsMaximized>true</IsMaximized> <IsSelected>true</IsSelected> <SelectedPresetName>mseg</SelectedPresetName> <SelectedPresetLibrary>User Library</SelectedPresetLibrary> <SelectedPresetIsModified>false</SelectedPresetIsModified> <IsActive> <Value>1.0</Value> <Visualization>Device only</Visualization> </IsActive> <Macro0> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 1</Name> </Macro0> <Macro1> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 2</Name> </Macro1> <Macro2> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 3</Name> </Macro2> <Macro3> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 4</Name> </Macro3> <Macro4> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 5</Name> </Macro4> <Macro5> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 6</Name> </Macro5> <Macro6> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 7</Name> </Macro6> <Macro7> <Value>50</Value> <Visualization>Device only</Visualization> <Name>Macro 8</Name> </Macro7> <NumActiveMacros>4</NumActiveMacros> <ShowDevices>true</ShowDevices> <DeviceChain> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary> <SelectedPresetIsModified>true</SelectedPresetIsModified> <Devices> <FormulaMetaDevice type="FormulaMetaDevice"> <IsMaximized>true</IsMaximized> <IsSelected>true</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary> <SelectedPresetIsModified>true</SelectedPresetIsModified> <IsActive> <Value>1.0</Value> <Visualization>Device only</Visualization> </IsActive> <FormulaParagraphs> <FormulaParagraph>foo(A)</FormulaParagraph> </FormulaParagraphs> <FunctionsParagraphs> <FunctionsParagraph/> <FunctionsParagraph>function foo(A)</FunctionsParagraph> <FunctionsParagraph> return (A*100)*(LINEF%(NUMLINES/(A*100))/ NUMLINES);</FunctionsParagraph> <FunctionsParagraph>end </FunctionsParagraph> </FunctionsParagraphs> <InputNameA>A</InputNameA> <InputNameB>B</InputNameB> <InputNameC>C</InputNameC> <EditorVisible>true</EditorVisible> <InputA> <Value>0.0400001779</Value> <Visualization>Device only</Visualization> </InputA> <InputB> <Value>0.0</Value> <Visualization>Device only</Visualization> </InputB> <InputC> <Value>0.0</Value> <Visualization>Device only</Visualization> </InputC> <DestTrack> <Value>-1</Value> <Visualization>Device only</Visualization> </DestTrack> <DestEffect> <Value>1.0</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>8</Value> <Visualization>Device only</Visualization> </DestParameter> </FormulaMetaDevice> <LfoDevice type="LfoDevice"> <IsMaximized>true</IsMaximized> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetLibrary>Bundled Content</SelectedPresetLibrary> <SelectedPresetIsModified>true</SelectedPresetIsModified> <IsActive> <Value>1.0</Value> <Visualization>Device only</Visualization> </IsActive> <DestTrack> <Value>-1</Value> <Visualization>Device only</Visualization> </DestTrack> <DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>0.5</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>0.0</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>9.99999997e-07</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>4</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Lines</PlayMode> <Length>71</Length> <ValueQuantum>0.0</ValueQuantum> <Polarity>Unipolar</Polarity> <Points> <Point>0,0.0,0.0</Point> <Point>49,0.0918367356,0.0</Point> <Point>70,1.0,0.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>true</CustomEnvelopeOneShot> <UseAdjustedEnvelopeLength>false</UseAdjustedEnvelopeLength> </LfoDevice> </Devices> </DeviceChain> </DeviceSlot> </FilterDeviceClipboard>

Thanks, that’s awesome. Will play around but it seems to do the trick!