Re: antialiased oscillators spec

julian.rohrhuber-QYZGCWsIODmAF8UT6DzBU6xOck334EZe@public.gmane.org Thu, 24 May 2018 10:03:15 +0200
Newsgroups gmane.comp.audio.supercollider.devel
Message-ID <[email protected]>
Hi Nathan,

this is indeed very promising!

> width: Pulse width from 0 to 1. Internally, the width is clamped to around 0.01 to 0.99 because the antialiasing methods do not work well for true impulses.

For no aliasing, the clamping would be unnecessary. And wouldn’t the clamping boundary have to be a frequency relative value?

It would be beautiful if the oscillator could become a band limited impulse for short widths. Maybe the width clamping can be internally adjusted carefully?

> 
> Would we want a way to output a hard sync trigger along with the waveform itself? If so, how?

This would be better implemented (I guess) as a separate UGen that takes a sync *input* in form of a trigger.

Unless of course, the time resolution issue that you mention is also relevant in that case (I’m not sure if it really matters): then you’d need a MultiOutUGen, like Pitch, that returns an array.


> I don't plan on supporting negative frequencies either. In general, my attitude is that I want these oscillators to sound pristine when used "properly." If users discover ways to abuse them, that's fine, but I won't put in additional effort to let them be abused.

As long as one doesn’t need to think about the specific implementation of the ugen, I agree.

In my experience, whatever can be done easily enough and with little loss of efficiency should be done, especially if the use is “logical”. By logical I mean that a negative frequency, for example, is consistent with an inversion of the waveform, and a phase that touches or exceeds the [0 … 1] range has a clear mathematical counterpart, because the wave has no bounds.

I mention this only because your intention is to think further ahead, and you have made a great advance in the "combinatorial completeness" of the ugens in terms of rates and quality.
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE2f9AlUAPrk+1WzZZhbzp9aOW3OYFAlsGccMACgkQhbzp9aOW
3Oa91hAAi/9vuAvIOq3XU4PudGWZg3DG1CKe37twrviyIPD1bSeBz8P33vwEN1Rm
Pa3pGBJNbq7MP56jIk8sOGrjgbO39qQKmZ1cfCDWQBc7JnS9G6QKos+unTREp/xv
cOkFntMm0VP7gMW9wSjCk1OBCcmvcbCYZJC3iAKL+ri0sFXPqB5eDXnfghJ2TIdx
KAG8r4CfJ0WJyER1wECdT6/EAZsgy8qd43qtzdci8rPqVxjzUP2fWbakWxQZ0grR
60gCGr8dY6Jb2KSeKxh98RYjh+8swSfwEAFXTfPtgI1vDpG1PXsAHSjzmOetce04
n5X1o20pYKky/UxqL75wr7pQVGw8E433ysnLpydf2siDnTCyd8X7QnHu8EXb5rJj
ypKD0rCGRdtBZAVTKxiCWiGMbKbtWPlnJI6iWAByRn4OBP/KQxKb5/LkAKoIYKlf
4xyAqHGhuy5OsmLu4a3fPB0DG9XrkqQeVwSrUUrRZ2EmDc/099lToOCFRhBwNzqd
3G+lZ0Ih50DXMAUhN/3auTeG7U7tZLzSTvgykRkiTltGPLkURNaktjxJzx+F0QFJ
egp3W6SrJVk5HoPj9ykXwy2DQ5aI+kY0GLgZUTvaVsVOjFfaa2KPenxCi5Sj5Xl2
XA6Rp2fxxxgZWS6/OYRT+8xurrQqLyy6XHgLFE1ldaVSQVJtIDs=
=sVVL
-----END PGP SIGNATURE-----