Building Lofi effect in REAKTOR. Absolute beginner.
-
- KVRAF
- Topic Starter
- 1798 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.
I need help. Any takers?
If need be i also own M4L but i figured Reaktor to be easier.
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
Give me a second! I'll try to throw together a simple example ensemble.
Cheers
Dennis
Cheers
Dennis
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 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
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
-
- KVRAF
- Topic Starter
- 1798 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.
I'll reply later. Thanks again!
I'll reply later. Thanks again!
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
Always a pleasure to help!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.
I'll reply later. Thanks again!
Cheers
Dennis
- KVRian
- 853 posts since 3 Nov, 2006 from Poland
Thanks Dennis! It was a really great post!
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
Thanks! I hope it helps!szalonykp wrote:Thanks Dennis! It was a really great post!
Sadly I'm not the best guy at explaining things
Cheers
Dennis
- KVRAF
- 5146 posts since 22 Jul, 2006 from Tasmania, Australia
I have looked at this in SynthMaker,
and u can do the same there as outlined here.
One addition you could add to the schematic is
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.
This can degrade the bitrate.
Cheers
Thanks Dennis,
gotta destroy some sounds with Reaktor,
if only it did VST export
and u can do the same there as outlined here.
One addition you could add to the schematic is
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.
This can degrade the bitrate.
Cheers
Thanks Dennis,
gotta destroy some sounds with Reaktor,
if only it did VST export
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
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.nix808 wrote:I have looked at this in SynthMaker,
and u can do the same there as outlined here.
One addition you could add to the schematic is
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.
This can degrade the bitrate.
Cheers
Thanks Dennis,
gotta destroy some sounds with Reaktor,
if only it did VST export
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
-
- KVRAF
- Topic Starter
- 1798 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?
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 Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
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: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..
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).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'll post about the LFO thingy later today.
Definitely!zeep wrote:What do you think? Am i getting on the right track?
Cheers
Dennis
-
- KVRAF
- Topic Starter
- 1798 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.
Will post my new endeavours later.
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
I just took a screenshot, pasted it into paint.net and used the fixed size selection tool to cut the relevant partszeep 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 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 Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 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
Will do it today!
Cheers
Dennis