hi, in this patch on preset 1 why is the kick popping at the beginning of the kick sound (when triggered) sometimes and sometimes not. I want it to pop every time. Is it to do with the envelope length?
Although its really hard to discern how your patch is patched, my assumption is that the order of the main bang object may not be sending the bang in the same order each time. Try adding a t b b b with as many b's as you need to ensure that your sending the bang's in the proper and consistant order.
Triggering envelopes(amp-envs in particular) using a bang relies on scheduler, causing things to be a few samples out of phase(there are ways to tighten it using poly~ and vector size of 1 which i'd rather not go into). Read here for tightening scheduler to audio interaction in documentation sense... something everyone needs to know:
(See descriptions for "signal vector" "i/o vector"
scheduler in "audio interrupt" and "overdrive".)
But you should use adsr~ instead for your particular situation. You can keep the bang, just attach it to a click~ object, use click~ to trigger all adsr~s. See adsr~ help-file, and within that help file, see [p signals].
Best of luck.
adsr~ is sample-accurate, a bang sent to multiple line~ objects might not be(the line~ objects may start out of sync by a few samples, the amount depending on the load of your patch, the cpu power of your computer, and the vector size you've set Max to in DSP Settings...). if all adsr~ objects are started with a click~(a digital 'click' signal(or transient) as opposed to an non-signal-based 'event trigger' such as bang), then they all trigger at the same sample-accurate start time.
but actually, getting the regular function UI object to work with adsr~ is a bit more of a pain than zigzag~ so maybe just use zigzag~, like so:
For each 'function' UI object you have in your patch(8), you'd want to hook it into its own zigzag~, in other words, instead of line~s in your patch, you want zigzag~s but hooked up to function as i've done to parse out the line list(adding a 0 for start time and joining the lists(there is a separate list for the starting point... which works great for line~ but not for a signal-controlled zigzag~...)). Then have one single click~ triggering every zigzag~ in your patch.