From the original SynthMaker forum (2004–2014), with its members’ names and dates.
kirkagur ·
Hi All
after long night... 😝
I took the core reaktor filter and made it with SM 😮
I just made a copy of every element in the reaktor core. I didnt really know whats happens there so it might be worng but the sound is the same and it works (great) 😈
the only problem is that the (F) input is not accurate. 😕
have fun with this one it has a powerful sound
OSM
exonerate ·
nice one thanks 🙂
philter5 ·
yes very cool. thx 🙂
infuzion ·
Sounds sexy!
BTW, I prefer for res knobs in general to be interesting throughout their sweep. The way you have it set up it doesn't get fun until the very end. I removed the Stream Add after the res Input, & the cat starts to meow about mid-knob! (best for me)
cheers
Acrobat ·
thanks guy! really wanna hear these....!! 😀
kirkagur ·
Hi all
feel free to make optimizations!!! 🙂 🙂 🙂
i want to make the OSC from the reaktor but there is some thing there that i dont understand
if someone know the core thing we ca do it and have a good OSC
Tom7777 ·
Cool stuff, Some things from core i don't get how to clone like theses for example -
Merge Module -
2 inputs, Merges events, if several events arrive from both at the same time it bypasses to lower input and others are lost, if just one events going in it only uses that. (Seems like you would need some dynamic comparisons to do this but i guess it needs to be all audio based too)
Router Module -
2 Inputs and 2 outputs, if Booleen is true sends to top, if false the lower (so it seems to be a basic comparison however whats confusing is that float or int can be set however it seems to use audio signals) (seems like a easy one but confusing on if you would have the correct thing, i guess its audio based and int and float is normal audio and a stream bool but i dunno)
Write Module -
Stores to memory with an initial value of 0 set (no doubt easy in code but i don't know how)
Read Module -
Sends value stored in memory in response to incoming clock events, an initial value of 0 set (Seems to be a reciever for write but im not sure about the clock events bit i guess that means it sends a value when one is incoming, not sure how this can be done either)
Other Stuff -
Basically a few maths things like exp(x) and log(x) which i guess is different to log10
Klentock1 ·
What a lovely sounding filter!
Any tips on how I would go about changing the coefficients so it would become a highpass filter?
Acrobat ·
as for a router, there's my audio selectors
matti ·
Hey could anyone help with this.. I'm having some trouble figuring out which way i should calculate the modules inside the filter. Would anyone have idea in which way SM processes these? The idea is to write everything under one single code primitive. Do i need to use some stage 2-3 stuff like on the delays to get the feedbacks to work correctly? Currently i have a working version, but there's problem with the filter breaking up with higher frequencys and/or resonance values.
Anyhow, really cool filter 🙂
infuzion ·
matti wrote: I'm having some trouble figuring out which way i should calculate the modules inside the filter. Would anyone have idea in which way SM processes these?
I don't really understand what you mean here.
But alot of filters start getting weird at higher res filters; that's why often the inputs are capped below 1 or whatever.
kirkagur ·
i know what he`s mean .....
i tried to put the filter in 1 code but it became weird too.
infuzion ·
Oh, now that I looked inside that OSM listed up top, it is quite a... well, it has alot of places things may be merged 😀
Start first with merging the Freq & Res modules into the Warp, then inside the svf module, merge only 2 together then test, merge another 2 then test, etc.
matti ·
I'm pretty sure the problem is in "what signals do we take account for on the first sample", but i guess i'll need to do that investigative stuff first. Just wanted ask if someone would know..
On another note I think this is a basic SM schematic problem. Is there a way to know what things get calculated first? Maybe the Dev's could pitch in and explain a bit.
infuzion ·
My instinct says you are not using unique variables for each of the sub-routines. Execution order is the plain order they are connected in, & if there is a loop back consider the first value of that loop-back to be 0, & the second value to be the output of the next sub-routine.
kirkagur ·
it can be done!... 😀
but
i cant do it! ... 🙁
at least not right now...
i have lot of stuff going on and a decent Env is in my top priority
after that there is the Osc problems
and after that 😮 there is the Filter problems
in other words
lot of problems maybe next week i will be able to help you...with pleasure 😀
good day
infuzion ·
That's fine Kirk, I think Matti wants to do it. I can do it myself, but I need to teach people to fish 😉
Matti:
1) You can merge the Freq & Res formulas easy enough into the warp
2) Inside the svf, please rename all the variables & Code blocks so that they are all unique from each other, & post your changes here. This will make explaining easier. Then we can continue from there.
aliasant ·
infuzion wrote: That's fine Kirk, I think Matti wants to do it. I can do it myself, but I need to teach people to fish 😉
Matti:
1) You can merge the Freq & Res formulas easy enough into the warp
2) Inside the svf, please rename all the variables & Code blocks so that they are all unique from each other, & post your changes here. This will make explaining easier. Then we can continue from there.
I have converted a fair amount of Reaktor filters but I never managed to put them all in code. Had the same problems as you guys. I managed to do one though. But that was all thanks to Andrew. Try to get him involved by promising to babysit his kids....
infuzion ·
I'm sure I can convert the filters, but I'd rather teach you guys how to do it yourself 😇
Andrew J ·
aliasant wrote: But that was all thanks to Andrew. Try to get him involved by promising to babysit his kids....
You have to live a bit closer than Sweden though 🙂
aliasant ·
Andrew J wrote:
aliasant wrote: But that was all thanks to Andrew. Try to get him involved by promising to babysit his kids....
You have to live a bit closer than Sweden though 🙂
Norway?
You place surveillance cams all over the place and speakers so we can talk to the kids.
And a direct number to the fire department just in case.
No worries.
matti ·
Ah, the problem wasn't in the ordering of the modules. I had some bugs in my asm.
The correct way the code parts(the last level of the filter schematic) should be calculated in is:
Fir
Summing
Warp1
Warp2
I could only get about 25% reduction to the cpu usage.
Very nice and efficient filter this one.. I'm sure it's protected by some copyright things tho?
Can it be used(legally) outside Reaktor? Would i need to own Reaktor to do that?
infuzion ·
matti wrote: Ah, the problem wasn't in the ordering of the modules. I had some bugs in my asm.
The correct way the code parts(the last level of the filter schematic) should be calculated in is:
Fir
Summing
Warp1
Warp2
I would have done:
Top Warp
Bottom Warp
FIR
Sum
Since that is the input chain (FIR may be done 1st or 3rd) & the "in" for the top-warp would be 0 for the first sample, & would be the previous sum for succeeding samples.. If you sum second, then the sum's inputs would not be current. Does that make sense? Does the difference between yours & Barak's = 0 always?
matti ·
infuzion wrote:
matti wrote: Ah, the problem wasn't in the ordering of the modules. I had some bugs in my asm.
The correct way the code parts(the last level of the filter schematic) should be calculated in is:
Fir
Summing
Warp1
Warp2
I would have done:
Top Warp
Bottom Warp
FIR
Sum
Since that is the input chain (FIR may be done 1st or 3rd) & the "in" for the top-warp would be 0 for the first sample, & would be the previous sum for succeeding samples.. If you sum second, then the sum's inputs would not be current. Does that make sense? Does the difference between yours & Barak's = 0 always?
My coded filters impulse response matches the Barak's version perfectly... tho i did correct a denormal problem in it. So it start's to be different when approaching -300db.
The order in wich SM compiles the modules is a bit confusing right? But it makes some sense as the Summing is not the first module connected to the input's so it doesn't need to be calculated in the beginning, so it doesn't need it's inputs yet. But the Warp's on the other hand are the first ones connected to the inputs so they do need their inputs to be valid -> that's why the first Warp's input needs a value -> Summing module gets compiled first.
Hmm.. but there's ofcourse the "d" input going to the Summing. Maybe it goes the opposite way? SM begins finding the compiling order by following the output chain starting from the end?
LP -> Warp2 -> Warp1 -> Summing -> Fir
And then turns it around. Logical?
The order in which Green data works might confuse us a bit here, because it moves opposite to this, from inputs to output.
MegaHurtz ·
and the freq thingy is easily solved by subtracting 8.18 from actual fhz. (maybe more accurate number out there)
Its the a440 tuning. i think it shows they bothered too much.
Thx for the lovely filter. Pz.
Oh, i first forgot to define few floats.. funny how the asm works without them just fine.
Tom7777 ·
Nice, this seems to have that stupid SM resonance overdrive bug when i test here, high reso fairly lowish cutoff then hit pc keys N or G etc and it screams when the other notes seem fine. Im still convinced this is a SM bug as i have seem it with lots of filters now.
aliasant ·
Hehe. I think it sounds quite nice hopped. Not as bad as one might think.
Here is something else you can do to the original code.
Add this at the end to get HiPass and Peak. Dont forget to add the appropriate outputs.
HP = a1-dnrm;
PK = LP - sum;
matti ·
aliasant wrote: Hehe. I think it sounds quite nice hopped. Not as bad as one might think.
Here is something else you can do to the original code.
Add this at the end to get HiPass and Peak. Dont forget to add the appropriate outputs.
HP = a1-dnrm;
PK = LP - sum;
Oh, hey thats cool 🙂
Thanks
Tom7777 ·
Nice, is it possible to do this with the ASM also?
aliasant ·
Tom7777 wrote: Nice, is it possible to do this with the ASM also?
Of course it is 😉
Tom7777 ·
Hehe i was guessing so, how though? 😉
infuzion ·
For some reason, I don't think the the Code or ASM sounds the same as the original OSM in the first post?
Note: I removed the *2 after the 1-res in all 3.
edit: file deleted; use the one 2 posts down please
aliasant ·
That is because you forgot to do this with the samplerate.
That means you should do "6.28319 / samplerate" outside the code.
You could as well do it inside the code and then hop the ### out of it ( to save cycles)
Make it easier Not to do the mistake you just did. =)
Another thing I found was that the gain of the 2 coded/asm'd version is half of the original.
I added a "2x mult" after the filters just as an example...
I uploaded a corrected version.
infuzion ·
aliasant wrote: That means you should do "6.28319 / samplerate" outside the code. You could as well do it inside the code and then hop the ### out of it ( to save cycles)
Ah-ha! Thank you very much aliasant 🙂
IMHO, the best way to do it is to place a Float Sample & Hold after the green divide, then you have to calculate the value only once on load (& SampleRate change).
What is the formula to get the 6.28319 please? Seems that 6.28319 = 6.2831898 due to floating-point weirdness, so I'd like to know as many decimals as possible.
Another thing I found was that the gain of the 2 coded/asm'd [versions are] half of the original.
Good bug hunting! Actually, now that you mention it, it seems the original is too loud; it will clip if not turned down. (see attachment)
Seems the hop() will give a slight change in the output; read the Poly Readout - difference when running the ASM version? It will be not quite equal in the Attach & Decay, but the same (difference=0) in Sustain. If you comment out the hop(), the ASM still runs at around 45 cycles on an AMD64, very good for a nice filter!
I think I see spots where I can save a cycle or 2, but time for bed!
stefan ·
Tom7777 wrote: Nice, this seems to have that stupid SM resonance overdrive bug when i test here, high reso fairly lowish cutoff then hit pc keys N or G etc and it screams when the other notes seem fine. Im still convinced this is a SM bug as i have seem it with lots of filters now.
Isn't this just because the resonating frequency ends up at a harmonic? I don't see how this could be a bug.
aliasant ·
stefan wrote:
Tom7777 wrote: Nice, this seems to have that stupid SM resonance overdrive bug when i test here, high reso fairly lowish cutoff then hit pc keys N or G etc and it screams when the other notes seem fine. Im still convinced this is a SM bug as i have seem it with lots of filters now.
Isn't this just because the resonating frequency ends up at a harmonic? I don't see how this could be a bug.
Exactly. It isnt a bug. It is the natural behaviour of a resonant Filter.
Tom7777 ·
Isn't this just because the resonating frequency ends up at a harmonic? I don't see how this could be a bug.
I don't notice it with non SM made stuff, i guess it won't get fixed untill someone else 'notices it' and then people say oh yeah, just like the poly sendbacks etc and all the other weird buggy things SM has that people 'don't notice', has anyone actually tried to reproduce it, it's not exactly a nice sound, it sounds like the right reso but someones stuck a volume gain at +20 after for the trouble keys but yeah i guess thats not a problem and how synths are suppost to sound.....
aliasant ·
Well. If you place the Freq in a filter over a fundamental from the audio source and resonates it that is what happens. Sort of.
Tom7777 ·
Sort of.
Well yeah of course except SM seems to do it in a much more 'screamy' way rather than a subtle boost, i notice it with a load of filters in SM but other synths, coded etc sound smooth on the same keys but just a slight boost.
aliasant ·
OK. Try placing a limiter after the filter. That will hold the resonance down.
Tom7777 ·
You could do that i guess, is there a simple limiter though with super low cpu, no sound change etc, also wouldn't this mess up volume of the synth pre stage in a lot of cases, this is why i think it's a bug really as one shouldn't have to do all that for a working filter, clipping volume would distort it where it went over no doubt, im fairly sure it's sm still and it's not just this one but plenty of other SM ones also even if reso is not max.
aliasant ·
Get the excellent developer kit from here. There is a Limiter inside it.
Tom7777 ·
Well the thing is it's with certain keys and seems to differ so i will have to test im guessing it puts the cpu up also, heres a quick example btw but with this one it's acually less noticable than some other, it seems the reso peak goes off the display on trouble keys but others stay in range, with a SVF etc this (bug imo) really sounds nasty.
Edit - Ok i just tried with a static limiter it limits the peak ok but also lowers the rest of whats there changing the lower bass sound etc and it just doesn't sound correct, clipping distorts it too much.
aliasant ·
You should limit in the poly section and not mono.
Another thing you should try is to lower the overall gain before it goes into the filter.
Adjust the main gain with you main Volume Knob at the end of the synth.
Here is an example you can play with that might help you understand fundamentals of a frequency.
Tom7777 ·
Well that limiter works but the problem is it effects the overall thing too much -
it limits the peak ok but also lowers the rest of whats there changing the lower bass sound etc and it just doesn't sound correct
normal frequencys = ok, problem ones = lowered down lower than normals rather than peak only, problem = SM
Edit -
A example of the stepping down thing limiting makes only on problem keys
aliasant ·
Tom7777 wrote: Well that limiter works but the problem is it effects the overall thing too much -
it limits the peak ok but also lowers the rest of whats there changing the lower bass sound etc and it just doesn't sound correct
normal frequencys = ok, problem ones = lowered down lower than normals rather than peak only, problem = SM
?
What do you mean problem = SM ?
It isnt.
You must understand that if you play a note that has the freq lets say 400 it will have a bunch of frequencys .
400 will have 300, 200, 100, 600, 800 and many more. If you set the freq of your filter to any one of them it will sound like that. Its completely normal. You could try using something that lower the gain the more Resonance you apply.
Or you could use some softclip/saturation that holds the peaks down. Or that Limiter, or lower the overall gain, or a combination of them all. This is part of what gives a synth/filter character.
Tom7777 ·
You probably replyed before the edit with the example, and i know thats what filters do yet most vst synths do not sound unmusical and screamy/overdriven with filter setups like that. And no a filter that gives a synth character is a cruncy low with a crisp reso when set to something like in the example not something that may cause hearing loss if you kept playing it in your ear. But yeah so far i havent seen anything that corrects this in SM, limiting = no.
Tom7777 ·
Have just been trying other coded synths i can make them get louder on the same keys as SM yet the result is far less painful to the ear if that makes sense, i know im probably being annoying about this reso thing but it just sorta stands way more with SM for some reason, but i guess unless your trying to hunt it down in a synth like i was in general it's not as bad especially with other things going on in a preset for a pad etc and it only stands out clearly if its something like a basic saw which is what i usually test with for filters. I still think it reacts differently with SM things after testing but yeah i can't see much happening with this unless other people start complaining so won't bother making this a 10 page thread 😉
By the way back onto the main topic does anyone know what the ASM would be to add the HP, PK etc extra bits?
Edit - Pretty sure the PK bit is wrong but the HP seems to work
matti wrote:
aliasant wrote: Hehe. I think it sounds quite nice hopped. Not as bad as one might think.
Here is something else you can do to the original code.
Add this at the end to get HiPass and Peak. Dont forget to add the appropriate outputs.
HP = a1-dnrm;
PK = LP - sum;
Oh, hey thats cool 🙂
Thanks
The shapes of the filters don't seem right tho.
(now that i finally tested it...)
datsound ·
aliasant wrote:
stefan wrote:
Tom7777 wrote: Nice, this seems to have that stupid SM resonance overdrive bug when
Exactly. It isnt a bug. It is the natural behaviour of a resonant Filter.
yeah maybe some top end dsp filters have built in compression to keep the res from overdriving and to keep all the output peaks changing in tone but not blowing out nails on blackboards sounds. i havent checked this filter quite yet but i was listening to reaktors module filter and ... fek me if that doesnt have some kind of compression and dynamics compensation. the fatness and warmth of all the ranges is like its warmed up and compressed. maybe there is psychoacoustic compensation to warm it up, because if you keep a bias on ranges that most humans like alot and are mr fraunhoffer you could build one of those. i reckon this one is going to be pretty dam fat. will have a listen.
Wrote something here? To have a post removed or your name hidden, write to [email protected].