dkmayer
December 19, 2024, 9:33pm
21
I think that’s the same issue Eric described some posts before in case of {}.play
. Ndef().play automagically applies an envelope. See the help of NodeProxy.play: it also has a fadeTime
argument you can set to 0.
Another point: it depends on how fast you intend to play, but for percussive instruments it usually makes sense to take OffsetOut instead of Out for better accuracy.
yea this really for lack of a better word smooths it and this is my first time seeing OffsetOut
its awesome !!
OffsetOut is great would be nice to have known this ages ago
dkmayer
December 19, 2024, 10:44pm
24
Great to hear that it works for you! I think OffsetOut is exact enough for most practical purposes (at least it usually is for me).
Just one add-on: it’s not sample accurate in realtime. This is a delicate topic which comes up again and again. If you’re interested, there are some threads on this:
This goes back to an observation of my colleague Gerhard Eckel. I posted this a while ago on the mailing list, but can’t find it anymore in the archives. As I think it’s an interesting topic I’m reposting it here again for future reference.
Timing in general is a crucial topic and practically users are mainly confronted with asynchronicity between server and language, latency, quantization, the Out/OffsetOut differences etc. Sample-accurate timing isn’t relevant in all contexts, nevertheless in…
Hi!
I want to use a Playbuf in order to play a wavetable that I have created in a buffer.
When using just play; the Playbuf works as expected.
When I want to make it work with patters things do not go as expected…
this is the example code:
// 1) Create a table at buffer 10:
(
p=2.pow(11);
v=Signal.sineFill(p, 1.0/[1, 2, 3, 4, 5, 6]);
v.plot;
n=Buffer.alloc(s,p,1,bufnum:10);
n.loadCollection(v);
)
// 2)This plays normally…
(
SynthDef(\help_PlayBuf, {| out = 0,buf=10,trig=1000,dur | …
There might also be some possible system-related accuracy issues, at least on OSX I didn’t encounter such since OS 10.15, described in the last post of the first thread:
Ultimately, a comment of James in a thread on the mailing list has shed more light into this: the vast amount of jitter seems to be produced by system action (NTP)! After a switch to OS 10.15 the large jumps in the realtime variants analyzed in the first post of this thread – and confirmed by @shiihs on Linux – have gone away! Besides, if you want to check the realtime tests, take the variants below which contain an additional path definition necessary for newer SC versions.
https://www.listarc…
Awesome I’ll def go dive into this it’s something Im very interested in. Thank you.
I am always surprised how effective a Bessel function is when simulating the resonance of drums:
a = (-1000,-999.99..1000).collect{|item| item.cylBesselJ(1000)};
b = Buffer.loadCollection(s, a);
{(PlayBuf.ar(1,b, 0.2, 1, 0)*5).softclip.dup*Env.perc(0.001, 3).kr(2)}.play;
This would be better with attack and noise elements, but out of the box it has a lot of the character already.
Sam
3 Likes
this is new territory( + bit beyond ) to me, super exciting will research further. thank you
Benu
December 22, 2024, 12:28am
28
The 808 BD, like most Congas, Toms etc. on analogue drum-machines are T-Bridge Resonators. I my ears a ringing Bandpass sounds closest.
A BD with ringing BPF
https://sccode.org/1-5in
and some oscillator based attempts.
https://sccode.org/1-5im
https://sccode.org/1-5il