Hello and welcome to the forum!
I did some tests and didn’t see any aliasing with Saw.
E.g. run
{ Saw.ar(3500, 0.1) }.play
do
s.freqscope
and switch to the linear FrqScl on the right hand side of the gui.
Looks as it should.
So my assumption is that you might prefer a wavefrom that somehow differs from a sawtooth approximation without aliasing.
FWIW you can check an approximation with additive synthesis, it takes a maximum number of partials and sets all to zero that would be above half nyquist.
(
SynthDef(\additiveSaw, { |out, gate = 1, freq = 1000, amp = 0.1|
var partialNum = (SampleRate.ir / 2 / freq).floor;
var sig, maxPartialNum = 200; // max number of partials
var indicatorSig = { |i| i <= (partialNum - 1) } ! maxPartialNum;
sig = Mix(SinOsc.ar((1..maxPartialNum) * freq * indicatorSig, 0, amp ** 2.sqrt) / (1..maxPartialNum));
Out.ar(out, sig * EnvGen.ar(Env.asr, gate, doneAction: 2))
}).add
)
x = Synth(\additiveSaw, [freq: 3500])
x.release
Personally I don’t hear a difference to
{ Saw.ar(3500, 0.1) }.play
Regards
Daniel