Vibrato On Midi+vst

Ok, so i have, for MIDI (my synth), the panning column, and i can send CC…

So, i can control the EXPRESSION f.ex, using C0 0Byy

It could be a vibrato, that is set up inside my synth.

BUT, here comes the problem:

Unless the synth sound has some expression set up, on the synth, i cant do much!
EVERY sound i want to modulate and express etc, via MIDI, HAS to have these properties, or this wont have any effect!

SO, my question is: how about a general vibrato editor, inside Renoise, that can make vibratos, and then you can use them on WHATEVER you want: sample, VST, MIDI

?

f.ex on a C64 SID chip, it looks like this:

01: FF 03 40

range, depth, speed

In the C64 tracker, you write v1 - and the vibrato with number 1 is executed. easy!

So I could make some different vibrato, save them, and re-use them 10000 times, or a more automated vibrato engine could be added to renoise (GUI based)

What do you think ?

I’m not sure I got what you mean, but you can achieve a general vibrato by adding an LFO to the track volume

@nmioaon: you’re trying to make vibrato on the sound. But you’re not being very clear as to the type of signal you are trying to affect: we need to know whether you are using external MIDI (feeding MIDI to a hardware synth), a VSTi plugin (software synth) or an sample-based instrument (native renoise instrument) - these are all different things.
For the hardware synth, you might need to look up the synth’s manual and find the correct CC commands, and then use a MIDI-CC device for creating the messages (often, the modulation wheel is used for a vibrato effect). For a software synth, it might be different. Best bet is to use a MIDI-CC device to control pitch bend using an LFO). Finally, you need to familiarize yourself with the vibrato pattern effect (0Fxy) for sample-based instruments.

That a lot of ground to cover!! Probably you just want find a vibrato plugin with an acceptable trade off in audio quality (any pitch bending VST effect will most certainly degrade your sound).

Edit: oops, didn’t notice that this was in fact a feature suggestion before right now. I digress (as usual)…

That’s called tremolo.

my bad… during lunch break, I realized I have given a solution for tremolo instead of vibrato, but you have been faster than me. sorry, today is not my best performance :)

wow, we’re being useful today :)

Danoise: well i am talking about making MIDI synths alive, with modulations and vibrato/tremolo, in an easy way. As i explained, right now, the tremolo has to be made on the synth, on the sound i want to do it on. This is a lot of work. There should be a general way to make these effect, from inside Renoise.

F.ex if i make a tremolo on the modwheel, on 1 sound - then i only have this one setting for this sound.
I dont have free choice to make 5 different ones for it. it makes my music stiff and not alive.

It-alien: see what i mean now ?

C-3


vibrato type 1 ON




G-4

vibrato type 4 ON



when hardcoded as 1 modulation only, in a synth, i cant do this!

So if i have those made in renoise, i can apply them to all: midi, vst, or sample.

if you dont get it, i will make a video that shows it, how its done in a SID tracker… :D

It might seem simple, but it’s really an advanced topic. Some VSTi doesn’t support the pitch-bend command at all. Same goes for hardware, the actual implementation differ from synth to synth. Renoise can’t do anything about those shortcomings, neither can it “guess” the workarounds (such as, tuning individual oscillators instead of sending a pitch-bend command etc.)

Only thing that’s really dependable is the pattern FX, I’m afraid.

So you want presets to control various parameters…
The LFO device and perhaps additional the hydra device can be your friend in these cases.
You have to save to DSP chain for reuse somewhere else.
The parameters differ per instrument though, so you would have to save the DSP chain under their respective instrument name.

I used an LFO and hydra to perform a tremolo effect on the Bandoneon instrument i used in “Pixy Flavors”. This made the Bandoneon very alive.

I see…

Vincent, would you share this rns file ?
it dont matter that some vst are not included, just so i can see how you connected the lfo+hydra stuff and what commands it does… ?

Sure, see PM.

I also tried to point the LFO to a MIDI device on the Pitchbend controller instead of the volume slider… it needs a bit more adjustment to make that more subtile, but it works out similar.

Thanks, i got the example, and am testing it out.

About LFO as pitchbend controller,
This wont work.

When i tried that, the LFO is running all the time, and so when the effect is applied, it starts on random values of the LFO. Not synced, from point 1. see ?

If there is a way to have the LFO frozen, and start it when the effect is needed, and then shut it down again, it would work.

Many ways you can do this.
The LFO you can freeze (set freq to endless (all the way to the left)).
You can also restart the LFO and offset this restart any way you wish.
You can either use pattern command to reset LFO or you can connect a key/velocity device to the LFO device to reset the LFO every time you hit a note.

If you wanna do a vibrato on any audio source you can add a chorus device.
Set it to:
Rate: your desired vibrato rate
Depth: "… vibrato depth
Feedback: 0%
Delay: 0.00ms
Dry/Wet: 100%
Phase: 0°

copy this code and rightclick paste it in mixer/Track DSP:

<?xml version="1.0" encoding="UTF-8"?> <FilterDeviceClipboard doc_version="0"> <DeviceSlot type="ChorusDevice"> <IsActive>true</IsActive> <IsSelected>true</IsSelected> <SelectedPresetName>Vibrato</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <IsMaximized>true</IsMaximized> <LfoRate> <Value>3.9814343452453613</Value> <Visualization>Device only</Visualization> </LfoRate> <LfoDepth> <Value>0.12295082211494446</Value> <Visualization>Device only</Visualization> </LfoDepth> <Feedback> <Value>0.0</Value> <Visualization>Device only</Visualization> </Feedback> <Delay> <Value>0.0</Value> <Visualization>Device only</Visualization> </Delay> <DryWetMix> <Value>1.0</Value> <Visualization>Device only</Visualization> </DryWetMix> <Phase> <Value>0.0</Value> <Visualization>Device only</Visualization> </Phase> <FilterType> <Value>3</Value> <Visualization>Device only</Visualization> </FilterType> <FilterFreq> <Value>127</Value> <Visualization>Device only</Visualization> </FilterFreq> <FilterResonance> <Value>0.0</Value> <Visualization>Device only</Visualization> </FilterResonance> </DeviceSlot> </FilterDeviceClipboard>

To get a really natural vibrato (if that is the goal) you should chain up even more LFO’s where one lfo is set to random and is controlling the frequency of another LFO that is again controlling the rate and depth of the chorus.
This will make tiny random fluctuations more like ha human would playing an instrument. So set all this to tiny values.
Now, to finally adjust the average depth and rate you change the offset parameter of the last LFO(s) in the chain.

Something like this:

copy this code and paste as device chain in mixer/trackDSP

<?xml version="1.0" encoding="UTF-8"?> <FilterDeviceChainClipboard doc_version="0"> <DeviceContainerSlot type="SequencerTrackDeviceChain"> <Devices> <SequencerTrackDevice type="SequencerTrackDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>false</SelectedPresetIsModified> <Panning> <Value>0.5</Value> <Visualization>Device only</Visualization> </Panning> <Volume> <Value>1.0</Value> <Visualization>Device only</Visualization> </Volume> <Surround> <Value>0.0</Value> <Visualization>Device only</Visualization> </Surround> <PostPanning> <Value>0.5</Value> <Visualization>Device only</Visualization> </PostPanning> <PostVolume> <Value>1.0</Value> <Visualization>Device only</Visualization> </PostVolume> </SequencerTrackDevice> <HydraDevice type="HydraDevice"> <IsActive>true</IsActive> <IsSelected>true</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <VisiblePages>1</VisiblePages> <InputValue> <Value>0.69878780841827393</Value> <Visualization>Mixer and Device</Visualization> </InputValue> <Out1DestEffect> <Value>9</Value> <Visualization>Device only</Visualization> </Out1DestEffect> <Out1DestParameter> <Value>4</Value> <Visualization>Device only</Visualization> </Out1DestParameter> <Out1Min> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out1Min> <Out1Max> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out1Max> <Out1Scaling>Log Fast</Out1Scaling> <Out2DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out2DestEffect> <Out2DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out2DestParameter> <Out2Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out2Min> <Out2Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out2Max> <Out2Scaling>Linear</Out2Scaling> <Out3DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out3DestEffect> <Out3DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out3DestParameter> <Out3Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out3Min> <Out3Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out3Max> <Out3Scaling>Linear</Out3Scaling> <Out4DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out4DestEffect> <Out4DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out4DestParameter> <Out4Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out4Min> <Out4Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out4Max> <Out4Scaling>Linear</Out4Scaling> <Out5DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out5DestEffect> <Out5DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out5DestParameter> <Out5Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out5Min> <Out5Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out5Max> <Out5Scaling>Linear</Out5Scaling> <Out6DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out6DestEffect> <Out6DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out6DestParameter> <Out6Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out6Min> <Out6Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out6Max> <Out6Scaling>Linear</Out6Scaling> <Out7DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out7DestEffect> <Out7DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out7DestParameter> <Out7Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out7Min> <Out7Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out7Max> <Out7Scaling>Linear</Out7Scaling> <Out8DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out8DestEffect> <Out8DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out8DestParameter> <Out8Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out8Min> <Out8Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out8Max> <Out8Scaling>Linear</Out8Scaling> <Out9DestEffect> <Value>-1</Value> <Visualization>Device only</Visualization> </Out9DestEffect> <Out9DestParameter> <Value>-1</Value> <Visualization>Device only</Visualization> </Out9DestParameter> <Out9Min> <Value>0.0</Value> <Visualization>Device only</Visualization> </Out9Min> <Out9Max> <Value>1.0</Value> <Visualization>Device only</Visualization> </Out9Max> <Out9Scaling>Linear</Out9Scaling> </HydraDevice> <ChorusDevice type="ChorusDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Vibrato</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <LfoRate> <Value>4.1146402359008789</Value> <Visualization>Device only</Visualization> </LfoRate> <LfoDepth> <Value>0.14209666848182678</Value> <Visualization>Device only</Visualization> </LfoDepth> <Feedback> <Value>0.0</Value> <Visualization>Device only</Visualization> </Feedback> <Delay> <Value>0.0</Value> <Visualization>Device only</Visualization> </Delay> <DryWetMix> <Value>1.0</Value> <Visualization>Device only</Visualization> </DryWetMix> <Phase> <Value>0.0</Value> <Visualization>Device only</Visualization> </Phase> <FilterType> <Value>3</Value> <Visualization>Device only</Visualization> </FilterType> <FilterFreq> <Value>127</Value> <Visualization>Device only</Visualization> </FilterFreq> <FilterResonance> <Value>0.0</Value> <Visualization>Device only</Visualization> </FilterResonance> </ChorusDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>2</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>0.0</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>1.0</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>-0.081060610711574554</Value> <Visualization>Mixer and Device</Visualization> </Offset> <Frequency> <Value>9.9999999747524271e-007</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>4</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>1,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>true</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>2</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>1.0</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>1.0</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>-0.37000009417533875</Value> <Visualization>Mixer and Device</Visualization> </Offset> <Frequency> <Value>9.9999999747524271e-007</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>4</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>1,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>true</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>3</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>6</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>0.027857145294547081</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>-0.013157904148101807</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>3.0518362522125244</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>0.0</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>false</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>4</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>6</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>0.037857145071029663</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>0.0</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>5.1036276817321777</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>0.0</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>false</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>5</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>4</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>0.051428571343421936</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>-0.43303570151329041</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>0.80357241630554199</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>3</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>false</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>6</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>4</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>0.071428574621677399</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>-0.43303570151329041</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>0.80357241630554199</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>3</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>63,1.0</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>false</CustomEnvelopeOneShot> </LfoDevice> <LfoDevice type="LfoDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <DestEffect> <Value>5</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>3</Value> <Visualization>Device only</Visualization> </DestParameter> <Amplitude> <Value>1.0</Value> <Visualization>Device only</Visualization> </Amplitude> <Offset> <Value>0.0</Value> <Visualization>Device only</Visualization> </Offset> <Frequency> <Value>5.9519624710083008</Value> <Visualization>Device only</Visualization> </Frequency> <Type> <Value>4</Value> <Visualization>Device only</Visualization> </Type> <CustomEnvelope> <PlayMode>Linear</PlayMode> <Length>64</Length> <ValueQuantum>0.0</ValueQuantum> <Points> <Point>0,0.0</Point> <Point>29,0.026315789669752121</Point> <Point>49,0.18421052396297455</Point> <Point>63,0.48684209585189819</Point> </Points> </CustomEnvelope> <CustomEnvelopeOneShot>true</CustomEnvelopeOneShot> </LfoDevice> <VelocityDevice type="VelocityDevice"> <IsActive>true</IsActive> <IsSelected>false</IsSelected> <SelectedPresetName>Init</SelectedPresetName> <SelectedPresetIsModified>true</SelectedPresetIsModified> <SrcInstrument>-1</SrcInstrument> <VelocityScaling>Log Slow</VelocityScaling> <VelocityMin>0</VelocityMin> <VelocityMax>127</VelocityMax> <DestEffect> <Value>9</Value> <Visualization>Device only</Visualization> </DestEffect> <DestParameter> <Value>6</Value> <Visualization>Device only</Visualization> </DestParameter> <DestMin> <Value>0.0</Value> <Visualization>Device only</Visualization> </DestMin> <DestMax> <Value>0.0</Value> <Visualization>Device only</Visualization> </DestMax> </VelocityDevice> </Devices> </DeviceContainerSlot> </FilterDeviceChainClipboard>

In the mixer you will see 3 mini sliders.
The first slider controls the delay before vibrato starts.
The second controls the rate.
The third controls the depth.
Every note you play will reset all this.

You don’t have to use the chorus for this. You can connect a MIDI-Control Device as well and connect it to a synth/vsti (if possible).

Now for the initial idea of setting up some common features for both MIDI/VSTI and samples, I really like that idea. I’ve suggested it several times as well. We could convert vsti/midi info into standard trackercommands via templates. So we have a template coming with renoise for the most common vsti/midi devices.
So controlling basic elements like pitch up/down, vibrato etc etc would work much more fluently.
This is something to keep in mind when we reconstruct the entire xrni format sometime in the future.

Thank, i will try this out too.

I am curious: did you just code up that stuff, or can you export stuff you do in renoise, as code ? :D

You can copy/paste various configurations from Renoise in a text editor or here in the browser.
If you copy a DSP-chain, you actually are copying XML code to the clipboard.
This is why it is very easy to share examples.

Well you know it, but im gonna say it: the Renoise Team are geniusses!! :D