Some more stuff that I didn’t yet tell…
- rnd() gives random values between 0 and 1 - so bi(rnd()) gives noise signal in newest version, rnd() is AC, use urnd for DC noise
- lowrnd(t,n) gives rnd() value that only changes every n samples… that means you can control kind of the ‘frequency’ of the noise signal
lowrnd can be used like this for a hihat (HPF+Distort to taste):
bi(lowrnd(T, 1+flr(7*ru(T,1.7)) ))*recd(T,6)
first: a future version will of course replace rnd() with a signal [-1…1] range always <random values between 0 and 1 can then still be accessed by using math.random() or un(rnd())>
second: the n in lowrnd argument list really needs to be a nonnegative, nonzero integer. that’s why flr is used. I’m looking, right now, for a trustworthy method of fixing it implicitly.
- quant(x,n) - like lowrnd but on a signal. implements ‘sample&hold’, or ‘bitcrushing’ to a certain samplerate. the fun is in the fact you can use it with varying values through the sample
check out this kick for instance:
0703-lpfthis.xrni (it goes well with this one: 0703-cabsimthis.xrni; figure a nice low key for both)
so also in the case of quant (and semiquant) it assumes a integer value of 1 or higher for the n arg. behaviour is even less guaranteed than normally, if you use it with negative or float numbers.
a very good argument can times be made for the sin(…)+saw(…) etc approach, try e.g. this synth: fatnoisysynth.xrni (again with detunings by AwesomeSawce tool, similar to my howto in the Bells topic)
- abs(x) - returns absolute value, i.e. -x if x<0
- mod(x,m) - modulo
for much used tx function there is now also these ‘waveforms’ (handy for modulation)
-
sin1(t) - gives sin(t2pi)
-
squ1(t) - dito for squ
-
tri1(t) - dito for tri
-
saw1(t) - dito for saw
-
sinsin(x,n) - e.g. if n=7, gives sin(sin(sin(sin(sin(sin(sin(x)))))))
-
muffle(x,l,m,a) - weird compressor type function that will remain undocumented for now except for this: I occasionally use it with e.g. muffle(signal,.8,.2,1.6)
I’ve already said some things about supermin/supermax, they can be used to make funny looking signals e.g.
supermin(sin(X),2.5shape(saw(X),2))
supermax(sin(X),2.5shape(saw(X),2))
You can even combine these into a left/right combo by using the ite function:
ite(C==0,supermax(sin(X),2.5shape(saw(X),2)),supermin(sin(X),2.5shape(saw(X),2)))
Have fun