Turns out I was kind of doing things backwards – you can sort-of get the aliasing noise when you downsample by using a high pass filter on the downsampled signal.
But if you do it the other way around you get much closer to pure aliasing noise (of course, if that’s what you want):
When you downsample, the sample rate determines a Nyquist limit. If you sample at 8khz, the Nyquist limit is 4khz, meaning nothing above 4khz can be reproduced, and the frequency folds back down below the Nyquist limit.
So to get your purest aliasing noise, high-pass filter the clean signal before the downsampler, with the cutoff at the Nyquist limit. Send the high-passed signal into your downsampler.
In that case you’re ONLY hearing tones and frequencies that can’t be reproduced at that sample rate, and all you’ll hear is aliasing noise. The ‘purity’ of the aliasing noise depends on how steep the high pass is, as a high pass filter still lets some signal through below the cutoff. For that matter you can set the high pass frequency above the Nyquist limit enough that the frequency content below the Nyquist limit is inaudible.
As I keep saying I’m NOT a rack developer, but this sounds like something that would be EASY for an actual developer to implement. And you will get CRAZY sounds if you modulate the sample rate, with an envelope - or even an audio-rate oscillator.
oh, I think that was pretty clear and no harm or course. And luckily for the community I stopped making DSP modules before 2.0, and now I’m just like everyone else not caring about runtime performance or aliasing.
I don’t know how to get the aliasing noise, but I have another great sound design suggestion for you to explore:
The sounds of buffer underrun!
Edit: on a slightly more serious note: I think you might get sounds similar to aliasing with inharmonic additive synthesis. I don’t know which oscillator in Rack would be best for this, but NI Razor for example can distribute the additive harmonics inharmonically and animate them - i think it can even mirror them back, have to check that again.
You could go the additive way and set up a bunch of harmonics (sines) to create some spectrum. But…you would then need to transform (divide) each of their frequencies by an integer ratio relative to some arbitrary ‘Nyquist’ frequency. So they would reflect back down from Nyquist when trying to ‘cross’ Nyquist.
The original idea is way simpler then an additive aproach
get yourself some arbitrary signal/spectrum source
get yourself a source for some arbitraty ‘Nyquist’ frequency (be it static or modulated)
get yourself a very steep Highpass filter and have the cutoff frequency set/controlled by the ‘Nyquist’ frequency source. You could serialize HPF’s to steepen the filterslope (e.g. using a 16x ‘polyphony’ loop).
get yourself a bitrate/samplerate reducer (that preferably supports samplerate modulation) and have the samplerate set/controlled by the ‘Nyquist’ frequency source. Or get yourself a Sample & Hold module and trigger it at the ‘Nyquist’ rate (it should of course support the required trigger rates).
I would just like to add that it would be great if you can pull this off. Growing up writing music on a pentium 1 with a OPL3 chip, I used to pitch shift high notes just to get the aliasing sound. I’ve always liked it. Don’t know why.
For the same reason hip-hop producers are still making -12st then +12st operations on their samples with vsts like HalfTime and LittleAlterBoy or simply pitch-shifting until something cool happens : it degrades the sound until you get cool artifacts
Challenge accepted, just a first lazy go with existing modules, much more crazy things can be had … It’s also kind of a first response to people going “what’s all this aliasing business and what does those artifacts sound like?”.
Not sure if this would work or not, but for discussion sake, if we had an oscillator with a switch that enables/disables aliasing suppression, could we run two instances in parallel, one with aliasing and one without, and subtract the outputs to get just the difference (i.e. aliasing content)?