-
seb-harmonik.ar
posted in technical issues • read morewell feel free to copy it if you want.. else has a far more steady release schedule anyways

-
seb-harmonik.ar
posted in technical issues • read more@porres I think I implemented it after reading about the algorithm
the fundamental preserves the 'residual' phase when it the cycle completes, and at that point the center frequency phase is reset to 0the frequencies can only be updated when fundamental or center frequency phase rolls over (or they are already 0)
it checks to see if there's enough 'space' in the fundamental phase to fit another center frequency cycle (that's the
phsinc = outfreq/infreq; routphase = shadylib_min(1.f - phsinc, duty); routphase = routphase - outphase - res;part)
but does so while considering the phase it had wrapped around at the beginning of this cycle ('res')This was to avoid the last cycle of the center frequency from popping in and out depending on the starting phase of the fundamental
-
seb-harmonik.ar
posted in technical issues • read more@jamcultur shadylib is on deken and there is a windows version https://deken.puredata.info/search.html?libraries=shadylib&objects=&descriptions=
It has not had a 'release' in 5 years despite 94 commits.. maybe should get on that
although I think the only changes in voisim~ were some minor possible performance improvements
-
seb-harmonik.ar
posted in technical issues • read more@cfry it probably picked up [list-dripdex] which is
[list-drip]w/ index
I think list-abs could use a rewrite using the 'new'[list]objects..
I recommend just installing zexy and using[drip]though.. externals will always be faster than abstractions -
-
seb-harmonik.ar
posted in technical issues • read more@Konked2 maybe make an attack part of the envelope.. right now it jumps up to one instantly
@lacuna good call, forgot about clear
-
seb-harmonik.ar
posted in technical issues • read more@Konked2 hmm.. maybe you're still missing something? here's the edited patch
or maybe there is inconsistency and my speakers aren't good enough to tell
picodrumz.pd -
seb-harmonik.ar
posted in technical issues • read more@Konked2 you have to connect the
[del]to the message box that is going into[vline~]
also maybe you made a message[del(instead of an object[del]? -
seb-harmonik.ar
posted in technical issues • read moreThanks David
I think it's due to the value of the noise~ and phasor phase
Try this to fix:

you can use the [seed (message to noise~ to set a consistent set of samples from it
but, the state in the filters has to 'settle' after that, hence the[del]
but [line~] can't begin 10 samples after the block starts so[vline~]must be usededit: actually I think 3 samples is enough delay.. 1 for each filter
not sure what the deal is on those number boxes for phase.. range should be 0-1.. -
seb-harmonik.ar
posted in technical issues • read moreI didn't open the patch, but you don't want to multiply audio using message-rate ramp (from regular
[line])
use[line~]instead
edit: I noticed you're also setting a[*~ ]from a[/ 2](from the[snapshot~]) every 50 ms. That's probably also doing some popping. Maybe a[line~]over 50 ms instead would be appropriate? not exactly sure of the intent there -
seb-harmonik.ar
posted in abstract~ • read morethis will also be a feature for [poly] in the next pd release https://github.com/pure-data/pure-data/pull/661
-
seb-harmonik.ar
posted in technical issues • read more@bas-m you can move them around in edit mode. Select the leftmost part of the line with a click-an-drag. it is a canvas with a label (right-click the selection box and you can change the label from the properties)
-
seb-harmonik.ar
posted in technical issues • read moreare you using [noteout]? that seems like it should work
What is the software you're sending to and how are you inspecting the received bytes on that end?
-
seb-harmonik.ar
posted in technical issues • read more@gentleclockdivider of course, you can look at the code.
static void pack_anything(t_pack *x, t_symbol *s, int ac, t_atom *av) { t_atom *av2 = (t_atom *)alloca((ac + 1) * sizeof(t_atom)); int i; for (i = 0; i < ac; i++) av2[i + 1] = av[i]; SETSYMBOL(av2, s); obj_list(&x->x_obj, 0, ac + 1, av2); }you have to get into a few functions, but basically the argument 's' is the 'selector' (in this case '-' or 'X'), 'ac' is the count of items in the list (after the selector) and *av is the pointer to the atoms that make it up.
first, it allocates a new list of atoms of length of the input elements (elements after the selector, in this case 0) + 1 = 1
then it shifts all the input elements up by 1, and inserts the selector as a symbol in the first element
Then obj_list will distribute all the elements of that list to the inlets of pack, from right to left which will set the atoms that pack is storing for those inlets
when obj_list lastly reaches/distributes to the leftmost it will call pack_symbol, which will call pack_bang which triggers the atoms pack has stored to be output as another new listbinding pack_anything to anythings coming into the first inlet is done by calling class_addanything in pack_setup method
-
seb-harmonik.ar
posted in technical issues • read morethe '-' and 'X' are 'anything's in terms of pd types
the cold inlets are generic and expect symbols, not 'anything's. That's why you have to convert them to symbols with
[symbol].However, the 'hot' (leftmost) inlet does accept 'anything's, and converts them to symbols
-
seb-harmonik.ar
posted in technical issues • read moreyou can use the 'find externals' Help menu item to find missing externals.
When I look for 'xfm~' using this it brings up the 'creb' library. Doing so with 'sgn~' brings up zexy
edit: you can also use the deken website: https://deken.puredata.info/ -
seb-harmonik.ar
posted in technical issues • read moreit isn't finding the libtcl library. Where is it installed?
Anyways, are you sure they weren't written for 043-4-Extended rather than vanilla? Any old patch than ran on old PD vanilla should at least run in current PD
Maybe instead of recompiling pd you could post those incompatibilities. -
seb-harmonik.ar
posted in technical issues • read moreinternally pd uses a table for the
[cos~]and[osc~]objects that is only 512 points with linear interpolation.
if you want to be more accurate you can make your own tables with[cos]object, or if you want to use the math.h functions directly at audio rate I think[expr~ sin($v1)](or cos) does that -
seb-harmonik.ar
posted in technical issues • read more@jameslo said:
It looks like the second ramp (jump in this case) is still timed relative to halfway through the block though.
yes that one doesn't have negative delay and the first message cleared the queue already so that one gets processed normally
edit: it isn't relative to the start of the block, but if you're trying to sync with block-synced objects that would be an issue regardless -
seb-harmonik.ar
posted in technical issues • read more@jameslo I just discovered that if you give vline~ negative delay time value it clears the scheduled ramps and immediately jumps to the value
so if you use a negative delay time in a vline~ message it will start at the same time as a sig~ one, at the beginning of the block
it will only work for jumps and not ramps I think, but sig~ only does jumps..
edit: created a pddp issue to add to the docs: https://github.com/pure-data/pddp/issues/267