Phase modulation feedback averaging,yiehaa
There has always been something that didn't quit sounded like the yamaha method of feedback phase modulation , when doing it in reaktor .
And thanks to the developer of Alpha modular ,I now finally know ..
It sounds so damn close to yamaha dx7 feedback
The feedback loop in all old skool yamaha fm synths are averaged , and can be considered as a verry simple fir filter in the feedback loop .
Also , the feedback coefficient on old dx synths have 8 possible values but that's another topic ( these are just feedback gain coefficients)
Now , feedback should ALWAYS be tapped after the operator has been scaled by it's envelope and it's gain coefficient ( some synths do this completely wrong , like oxe fm and even the reface dx ) because the envelope has a direct influence on the amount of gain that is fed back into the (feed ) loop but that's a different topic .
So here's the averaging in primary , take the current sample + previous sample and /2 .
Old method without averaging
With averaging
In core , I've used also used a sine function for the operator ( scale ramp by tau for a full sinewave cycle )
The averaging is done by using a write-read but the slave output of read obc should go in the master of write obc to get the previous sample , like this
Now , this is all nerdy stuff and I'm sure 99% won't notice the difference when it's not averaged ,but it's obvious on the scope ,when feed is averaged you can get a sharper saw wave before it starts breaking down into noise .
Just wanted to share my excitement , and big thanks to Alpha Forever Developer for pointing this out .
Comments
-
Here's an old fm synth I made ( no snapshots possible thanks to N.I. for not fullfilling their promise when using on screen patch cables )
With the adjusted feedback scaling .3 -
Nice little trick yes,it does seem to tame the feedback more,more control before it breaks into noise the better!
0 -
Factory core Fm Op:
Remember that all the Factory Primary stuff is very old and out of date, created at a time when processor speeds were measures in MHz, not GHz
0 -
So ?
It hardly hits the cpu meter at all .
The feedback out of the factory operator is not how it should be .I'm routing the output back multied by a variable into the phase input
Sounds nothing like it should be .
I could be wrong and perhaps the ph+ is not the phase modulation input ,
tried the f input , same result and nowhere close .
The method I have shown is near indistinguishable from my tg77 and plogue ops 7
1 -
p.s
Useng an osciloscope is recommened to notice the differences0 -
Using the phase input is indeed phase modulation
Removed the 1 unit sample latency at the end , different results but still not completly the same
0 -
I think I nailed it
The maximum opertor output is 3.26Here are some files
One feedback enabled operator going into carrier
First 4 notes are always plogue ops7 , then reaktor
Only showcasing feedback values of 5,6,7
Then again ,with a stronger operator (modulator ) output
0 -
Here are the values for anyone to try out
The maximumum operator value (with full velocity ) is 3.26
For feedback you multiply the output of the operator
with the following values
feedback values
fb 0 = 0
fb 1 = 0.01
fb 2 = 0.017
fb 3 = 0.034
fb 4 = 0.600
fb 5 = 0.11111
fb 6 = 0.24024
fb 7 = 0.4954961 -
This is superinteresting stuff, although I can't hear the difference. At higher values, the pm feedback process begins to behave like the logistic map (indeed related to the Mandelbrot set), starting with single bifurcations, over nested bifurcations to complete chaos. With averaging you can reduce this process. (On the audio side, this bifurcation is nothing but a very loud level exactly at the Nyquist frequency, perhaps even with subtones, so it's more of a speaker hog than directly acoustically interesting.)
1 -
Cable dx7 , have fun
need to imelement velocity and still have some intialisation issues when changing waveforms and set to mono mode ( these are switches )Each operator has it's own feedback control and scaled like the dx7
Multiple operator in feedback loops are possible ( just use the fm inputs )Fm inputs are default to 1.0
1 -
Yeah, I was talking ****. Hadn't fully engaged the brain before posting.
I recognised/remembered the averaging filter from the factory module, but it's on the F input, not the phase input.
It's really an interesting piece of the puzzle. I spent some time reading through the Dexed code, but must have missed it if they are using that on the feedback. Will need to go back to that and have a look.
Cheers!
0 -
What does averaging on the F input do? does it smoothen abrupt changes on the F input? Preventing clicks or something?
0 -
I have no idea
All I know is that the core operator sounds pretty awfull with high feedback valuesLook at the scope , the spikes are present at 10Khz and actually audible , removing the 1 sample latency solves this
The averaging , I dunno but it doesn't seem to have any effect0 -
Looks like a 1/4 sample rate spike, without averaging there should be a heavy spike at 1/2 sample rate too that gets removed completely by the 2 sample averager.
1 -
Looks like even fm8 does not average, it produces lots of 1/2 sample rate noise (on high settings) - made a little meter for this frequency, because some spectrum analysers don't have this in their range
1
Categories
- All Categories
- 19 Welcome
- 1.5K Hangout
- 62 NI News
- 785 Tech Talks
- 4.1K Native Access
- 16.6K Komplete
- 2K Komplete General
- 4.3K Komplete Kontrol
- 5.7K Kontakt
- 1.6K Reaktor
- 379 Battery 4
- 845 Guitar Rig & FX
- 429 Massive X & Synths
- 1.3K Other Software & Hardware
- 5.8K Maschine
- 7.3K Traktor
- 7.3K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators