From the original SynthMaker forum (2004–2014), with its members’ names and dates.
trogluddite ·
Here's something I've wanted to do for a while - a proper frequency (not pitch!) shifter...
...just a sketch at the moment to demonstrate the main shifter module, but I fancy making a proper plugin out of some of these - the perfect Xmas gift for audio-geek Dr.Who fans!
Note that the Hilbert part of the shifter will only work for mono streams due to some major assembly 'slimming'.- fairly simple to adapt it for poly (at the expense of much extra CPU) if anyone is interested.
Thanks to Martin for his excellent Hilbert Transform port., which made the shifter module possible.
Dozius ·
Cool, I'll have to see how it compares to the one I made forever ago. Looking at the papers it came from it's likely better quality than what I had put together. Thanks!
infuzion ·
Nifty, how does it work please?
martinvicanek ·
How creative! I never thought of this possibility.
As a side note, why use lookup tables for the sine generator? Here is a simple quadrature oscillator based on Trog's code, with added automatic gain control to prevent runaway due to accumulating roundoff errors. It is sufficient to do the AGC at hop(4096) so the extra CPU load is negligible.
trogluddite ·
martinvicanek wrote: with added automatic gain control
Thanks, never occurred to me to just try rescaling things a little!
infuzion wrote: Nifty, how does it work please?
Katja's homepage has been my 'bible' for learning about quadrature's and FFTs etc. - frequency shifting (single sideband modulation) is on the page Sinusoids->Quadrature Mixing
stw ·
Guys that's some awesome work. Though it's a bit beyond my skills for now i'll try to understand how that all works!
The quad sine function seems to be a perfect lo CPU OSC alternative.
Thanks Martin and trog 😍
philter5 ·
yes indeed, great stuff here! respect 😍
trogluddite ·
Thanks, glad you're liking it! 🙂
Here's version two...
Four shifters each with their own delay and panning, and global feedback.
I put a handful of presets in this time - there's no modulation yet, but it's capable of a nice range of effects. Once I got over doing Dalek voices and practicing my evil laugh, I found that you can turn the controls down low and get some quite cool modulation effects and psuedo-reverbs.
Time to torture some LFO's now, I think...
Four shifters each with their own delay and panning, and global feedback.
I put a handful of presets in this time - there's no modulation yet, but it's capable of a nice range of effects. Once I got over doing Dalek voices and practicing my evil laugh, I found that you can turn the controls down low and get some quite cool modulation effects and psuedo-reverbs.
Time to torture some LFO's now, I think...
Brilliant work!
Brought back that built in wavetable lookup thingy to my mind again. 😉
Consider multiplying the 4pack sum by .5 and putting in a clipper in front of the mono outs. Doesn't hurt the speaker that much... 😈
However it sounds very nice. Thanks for your ideas!
martinvicanek ·
Pretty slick! I like DAW Bells.
trogluddite ·
stw wrote: Consider multiplying the 4pack sum by .5 and putting in a clipper in front of the mono outs
Oh yes, the final version will certainly have a bit more 'protection' - limiting on the feedback loops too, I think.
Apologies for the lack of a master volume/clipping though - I need to sort out my 'new project template a bit - it has a 'protection and conditioning' block for the outputs, but I always end up removing it before posting as it automatically selects my preferred soundcard by searching for the driver name.
Dell ·
trogluddite wrote: Here's something I've wanted to do for a while - a proper frequency (not pitch!) shifter...
...just a sketch at the moment to demonstrate the main shifter module, but I fancy making a proper plugin out of some of these - the perfect Xmas gift for audio-geek Dr.Who fans!
Note that the Hilbert part of the shifter will only work for mono streams due to some major assembly 'slimming'.- fairly simple to adapt it for poly (at the expense of much extra CPU) if anyone is interested.
Thanks to Martin for his excellent Hilbert Transform port., which made the shifter module possible.
Nice one! 🙂
I’ve created sub-low fundamental synthesizer with your pitch shifter.
It still needs to go through some testing. Particularly on my large system with the proper size speakers to hear if the bass sounds too synthetic.
You can view the video here…
http://www.youtube.com/watch?v=KCNsYuqrXl4
Listening through my smaller speakers it does not appear to bring forth any phase issues, which is common with hardware bass synthesizers that shift frequencies downward by an octave or so.
Leslie147 ·
trogluddite wrote: Here's version two...
Once again, thank you so much for letting us in on so many brilliant shortcuts to saving clock cycles. I particularly like your hopped packs using instances of ecx passing through multiples of the and'ed number - so is ecx a program counter that keeps incrementing? Also, your adding of streams using shufps twice is inspired! - I wonder how you discovered the appropriate integer values.
Chris
trogluddite ·
Leslie147 wrote: so is ecx a program counter that keeps incrementing?
Yes, ecx is useds as SM's sample counter - but always copy to eax first; although the opcodes with other ea_ registers are parsed OK, not all of them seem to work - eax seems to be the only one that always works correctly, even if you are careful with pushing and popping the values.
Leslie147 wrote: I wonder how you discovered the appropriate integer values
Descriptions of the opcodes are easy to find by just googling them - however for shufps, you may find this Shufps Helper schematic handy to have in your toolbox.
Wrote something here? To have a post removed or your name hidden, write to [email protected].