Building Lofi effect in REAKTOR. Absolute beginner.

zeep
KVRAF

1683 posts since 17 May, 2005
There's heaps and heaps of video's / tutorials on how to build synths in Reaktor, for the life of me i can't find any to teach me how to build a simple effect like lofi.

I need help. Any takers?

If need be i also own M4L but i figured Reaktor to be easier.
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
Give me a second! I'll try to throw together a simple example ensemble.

Cheers
Dennis
zeep
KVRAF

1683 posts since 17 May, 2005
Thanks Dennis!
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
Here it is:

The simplest lofi effect would be a simple sample rate reducer.
A SRR can be build quite simple! You just need a sample and hold module and an oscillator to provide the triggers for it!

It looks like this in Reaktor (I used 2 S&H modules since we want to have a stereo effect):

How does it work?

It's quite simple! The input goes straight into the S&H modules. The S&H modules sample the incoming signal at every trigger at the trig input and hold it until the next trigger.
If you connect an oscillator to the trig input which oscillates exactly at your hosts sample rate you won't hear any difference.
BUT if you lower the freq of the oscillator you'll get all kinds of nasty aliasing and stuff. It's basically the same thing as lowering your hosts sample rate but continuously variable.
That's what the sample rate knob is for! I've set it to a range from 500 to 20000. Why 20000? It's roughly 44k/2 and should be the upper limit of lofi

Weirdly enough most lofi plugins etc. implement the same thing differently though (I never understood why!).
They use the hosts sample rate to calculate the freq of the oscillator.
This method has basically no advantages but 1 big problem: It is dependent of the hosts sample rate! I like to use 44k as my hosts sample rate but I often render at 96k. That's not possible with this method since the rate of the oscillator would be more than doubled in that case and the effect would be completely different (or not auditable at all anymore!).

However, this method can be implemented in Reaktor too:

In this example the knob is set to a range from 0 to 1.
The value then gets multiplied by the hosts sample rate (provided by the system info module) and get's divided by 2 (well, actually it gets multiplied by 0.5 since it's less CPU intensive).
This will give the knob a range from 0 too ~20000 at 44k. It's probably not a good idea to go all the way down to 0, you should probably add 500 again or set the range of the knob to something like 0.01 to 1.

I strongly advice to use the first method though.
But there is still one "bug". Most of the changes happen at the first few % of the knobs range since there isn't much auditable difference between a sampling rate of 17000hz and 17500hz but a huge difference between a sampling rate of 500hz and 1000hz.

This can be solved quite easily (uses the method of the first example again):

In this example the knob is set to a range from 0 to 1 again but it gets multiplied by itselft to get a finer resolution on the lower range of the knob.
To scale the value to our 500 to 20000 range again it simply gets multiplied by 19500 and 500 get added. You could use a multiply and an add module for this but it looks a bit cleaner with the multiply+add module (or however it is called).

I hope this helps!
And please excuse my crappy english! I hope some of my mumbling is understandable

Cheers
Dennis
zeep
KVRAF

1683 posts since 17 May, 2005
Wow i appreciate how detailed you wrote the post! This actually makes more sense to me now. Today i'm experimenting with this. Your post has raised some questions but before i ask 'why this?' and 'why that?' i want to study it myself.

Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
zeep wrote:Wow i appreciate how detailed you wrote the post! This actually makes more sense to me now. Today i'm experimenting with this. Your post has raised some questions but before i ask 'why this?' and 'why that?' i want to study it myself.

Always a pleasure to help!

Cheers
Dennis
PALU
KVRian

777 posts since 3 Nov, 2006, from Poland
Thanks Dennis! It was a really great post!
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
szalonykp wrote:Thanks Dennis! It was a really great post!
Thanks! I hope it helps!
Sadly I'm not the best guy at explaining things

Cheers
Dennis
nix808
KVRAF

3480 posts since 22 Jul, 2006, from Melbourne, Australia
I have looked at this in SynthMaker,
and u can do the same there as outlined here.
bit-rate reduction too.
This is lowering the iterations of volume.
I multipled the signal by 2 to the power of whatever bits you want,
converted it to integer, and divide again by the same power.
Cheers
Thanks Dennis,
gotta destroy some sounds with Reaktor,
if only it did VST export
___^O** *a light air is a gas___^O** *
http://www.phonicsaudio.com --- https://soundcloud.com/nix808/tracks
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
nix808 wrote:I have looked at this in SynthMaker,
and u can do the same there as outlined here.
bit-rate reduction too.
This is lowering the iterations of volume.
I multipled the signal by 2 to the power of whatever bits you want,
converted it to integer, and divide again by the same power.
Cheers
Thanks Dennis,
gotta destroy some sounds with Reaktor,
if only it did VST export
Exactly! A bit crusher would be the next step for a lofi effect but I thought that would be a bit too much for the beginning.
And I never tried to build one in Reaktor to be honest

Another cool thing would be a highly resonant filter in front of the SRR to get those classic early Autechre (:love:) sounds.

Cheers
Dennis
zeep
KVRAF

1683 posts since 17 May, 2005
Ok it took me some time to understand but i managed to build your first example. I know it's not much but it's a start. Thanks again.
At one point i couldn't for the life of me understand how to get the Knob to be visible. I couldn't see it anywhere! Then i saw in the Ensemble properties that i had to switch it on there too.

One thing i didn't quite understand is the 'A' connection to the Clock Osc. If it's not there then no sound passes. So i guess it's an On/Off switch? Haven't tried different values there..

Now my second task in this is adding a bitcrusher aspect and also an LFO (or Random value) that connects to the frequency in a definable amount.
To make it sound 'unstable' like.

So in the end i would have controls like:
-freq value (Amount)
-lfo or random wobble (On/Off/Amount)
-bitcrusher (On/Off/Amount)

After that i would also like to add Saturation and filtering and Dry/Wet controls.

What do you think? Am i getting on the right track?
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
zeep wrote:One thing i didn't quite understand is the 'A' connection to the Clock Osc. If it's not there then no sound passes. So i guess it's an On/Off switch? Haven't tried different values there..
Sorry I should have explained that! The A input simply defines the amplitude of the clock osc. Since we don't hear it (it only triggers the S&H modules) it doesn't really matter what value you put in there as long as it's above 0.
zeep wrote:So in the end i would have controls like:
-freq value (Amount)
-lfo or random wobble (On/Off/Amount)
-bitcrusher (On/Off/Amount)

After that i would also like to add Saturation and filtering and Dry/Wet controls.
I can't help you with the bit reduction at the moment since I never tried it myself (should be quity easy to build with a quantizer module though).
I'll post about the LFO thingy later today.
zeep wrote:What do you think? Am i getting on the right track?
Definitely!

Cheers
Dennis
zeep
KVRAF

1683 posts since 17 May, 2005
Btw Dennis, did you get those screenshots from within Reaktor? Since they're all the same size i thought maybe it's a function in the program. Or are they just nicely cropped screenshots..

Will post my new endeavours later.
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
zeep wrote:Btw Dennis, did you get those screenshots from within Reaktor? Since they're all the same size i thought maybe it's a function in the program. Or are they just nicely cropped screenshots..

Will post my new endeavours later.
I just took a screenshot, pasted it into paint.net and used the fixed size selection tool to cut the relevant parts
I made them the same size since KVR scales the size of the pictures and all modules on the pictures would have different sizes then. I thought that could be a bit confusing.

Cheers
Dennis
Bronto Scorpio
KVRAF

5563 posts since 13 Feb, 2006, from Wiesmoor, Germany
Sorry I haven't found the time to post the LFO thingy yesterday
Will do it today!

Cheers
Dennis
Next

Moderator: Moderators (Main)