-
-
seb-harmonik.ar
updated to 0.55-1 on the release page https://github.com/sebshader/pdnext/releases/tag/0.55-1
-
-
seb-harmonik.ar
@hmp did you try opening the zip file I attached? it shows how to use the
[text get]
-
seb-harmonik.ar
@hmp you could hypothetically parse the csv in pd, but it's probably easier to just store the text file in the pd native format, which is just separated by spaces with semicolons at the end of lines
file_example.zip -
seb-harmonik.ar
@manuels hmm yeah I guess it doesn't quite work due to the phase discontinuities..
maybe have to do a bit more tinkering with the offset/phase reset part
I wonder if it would work to just discard the wrapped around part somehow, and set the limit based on the 'non-fractional' part of the period -
seb-harmonik.ar
@porres that's quite a philosophical question.. what are the positive ones for?
edit: as a serious answer, I guess anything that's polarity-specific. you could maybe combine multiple generators in different ways?
I guess you could always multiply by -1 but to me it seems more natural to have it go from 1 to -1 since that's the output range of digital audio and it would take extra objects.. easier just to allow negative values -
seb-harmonik.ar
@porres it's mentioned in the valimaki one I posted above: https://www.researchgate.net/publication/260701331_A_Perceptual_Study_on_Velvet_Noise_and_Its_Variants_at_Different_Pulse_Densities
(novel variants on page 7)
edit: it mentions the 'regularity' but not bias.. I can't remember where that came from, maybe that one wasn't in a paper but it's necessary to make it into a pulse train
or it may have come from a different paper on 'extended velvet noise'.. been a few years -
seb-harmonik.ar
@porres here's what I mean about adding parameters for bias/regularity
if you set regularity to max and polarity one extreme or the other it's an aliased pulse train
velvet-controls.zipsome of the papers were mentioning it, you can get some cool effects
-
seb-harmonik.ar
I do think @manuels original idea of having a sample-increment offset still works without missing periods?
Why don't you think it works with non-integer period lengths?a phasor~ is always guaranteed to have its last sample be within the last sample increment regardless of whether an integer-period or not, and
[wrap~]
will pretty much perfectly wrap the phasor~'s phase.. -
seb-harmonik.ar
@porres in my version I added controls for period regularity and polarity bias.
Setting period regularity to '0' constrains the random phase range and polarity bias controls the offset of the noise that chooses the polarity (copysign)
so if you set the regularity to 0 and polarity bias to 1 you get a (aliased) regular pulse train -
seb-harmonik.ar
@whale-av the version in the paper that this is based on has one impulse every period, randomly distributed somewhere within it.
-
seb-harmonik.ar
I think some of these have the same issue as my original implementation - if the generated random phase is less than a sample increment and the phase wraps around it will never be bumped to above 1.
e.g. at 1/4 sample rate samples would be 0, 0.25, 0.5, and 0.75. if generated random value is >=0 and < 0.25 no value will go above 1
edit: @ben.wes not sure but everything in pd is a float
edit2: similarly we have to think about cases where random phase is between 1-(sample increment) and 1. Because it could bump the generated values to always be above 1 in cases where the phase wrap around of phasor~ doesn't start at 0. (in which case there would be no transition either) -
seb-harmonik.ar
@ben.wes just fyi, * is more efficient than /
I believe pow is less efficient than either but haven't checked -
seb-harmonik.ar
@bklindgren what version of pd is it?
might be the similar to https://github.com/pure-data/pure-data/issues/2136 (which should be fixed now) -
seb-harmonik.ar
@gentleclockdivider you want to send to the abstraction, so I would say $0 inside the abstraction is fundamentally the wrong thing to use in that case.
Instead, pass in the name prefix you want to use from the parent as an argument. Then you can access it in the abstraction as $1
in parent create abstraction as e.g.:[myAbstraction somePrefix]
array names in abstraction: $1-regina, $1-felina
send names in parent: somePrefix-regina, somePrefix-felinaof course the other way to go is to send the abstraction's $0 value to an outlet and receive it in the parent. But that's less clean imo.
I guess this is just an illustration on how to avoid the issues that arise passing $0 around that david was mentioning -
seb-harmonik.ar
@porres it's just to give the user more control.. what if the user wants to reset the time period for triggering an impulse?
I included a version in my own library as velvet~ where it's driven by an external phasor (as well as controls for temporal and impulse bias), and just getting the precession to add with[rzero~ 1] | [wrap~]
-
seb-harmonik.ar
nice idea!
here's a version based on it using expr~ and addition instead of subtraction
pure-velvet-noise-2.zip -
seb-harmonik.ar
just fyi the original error is due to pd trying to configure a cursor for the pd console window without it being open
not sure why that would happen tho
it does seem like either a permissions or maybe network thing. Or maybe the architecture in one of the binaries isn't supported by your system.
if you feel like more troubleshooting you could try starting 'wish86.exe' from command line too to see if that gives errors.. -
seb-harmonik.ar
an alternative would be to dynamically patch a linear chain using helper abstractions instead.
couple ideas: (open chain.pd) multimulti.zip