• kyro

    the "bandlimited" "squarewave" wavefolding hack:
    Capture d’écran du 2026-06-16 00-33-28.png

    posted in technical issues read more
  • kyro

    I have no standalone sample patch. Sorry. Be very patient please.
    Basically an input sine going throug asine turns to triangle which from a sine point of view looks a lot like a saw and gives a sine again. If you multiply the triangle from asine by a drive>1 the sine folds quite gently. Then there's a dry/wet crossover to add some folded waveform to the input. It adds a partial to a sine and I used that for a hack of a bandlimited squarewave. Then I stopped tinkering with wavefolders.
    Capture d’écran du 2026-06-16 00-25-28.png

    posted in technical issues read more
  • kyro

    One day I saw a 0-coast video displaying the waveform changes from it's "multiply" knob (the wavefolder of the synth). I came up later with a way to somehow replicate it:

    input => asin => ×amount => sin~

    posted in technical issues read more
  • kyro

    Symbols can be used in data structures. However, you can't just feed [append] (or even plain [set]) with symbols. The workaround is to use the pointer of the created data structure to edit its symbols with a [set] to which you give the -symbol argument.

    posted in technical issues read more
  • kyro

    Well, unfortunately, as the help says, "with a 512 sample delay, it begins to attenuate at about 110Hz". To keep decent low frequencies I have to use at least 2048 according to my quick test. No easy solution to the problem I guess.

    posted in technical issues read more
  • kyro

    Hello,

    I can't find the source to it anymore, but to remove DC offset I use

    [rzero~1]
    |
    [rpole~ 0.995]

    which is practically perfect for my use, except it messes with waveforms due to inherent phase shift. Is there any way to cancel/revert this phase shift with, say, an allpass filter ? If so, how should I tune that?

    posted in technical issues read more
  • kyro

    The state saving system and dynamic gui modules are worth a look. I haven't delved in the rest yet.

    posted in patch~ read more
  • kyro

    Maybe should you have

    [loadbang}
    |
    [float 6]
    |
    [until]

    instead? Anyway, you can execute pd with the -noloadbang option to edit your patch.

    posted in technical issues read more
  • kyro

    @oid said:

    Non-linear elements in the feedback path can be fun and do some interesting things but far from a general purpose filter, no clue if pd will play well with that sort of abuse.

    In my humble experience: very well. I've been working on an "acoustic feedback" patch for a while now. With allpass/diffusion, peak filter and basic distortion in the loop, it was quite lively and convincing.

    posted in technical issues read more
  • kyro

    Thank you, it did work here too!

    posted in extra~ read more
  • kyro

    Hi,

    Has anybody managed to get pd spectral toolkit working?
    I'm especially interested in the GEM waterfall spectrum but alas, i get

    pd-externals/SpectralToolkit/pd_spectral_toolkit.l_ia64: undefined symbol: _ZGVbN2v_exp
    pd_spectral_toolkit: can't load library
    

    on startup. make linux didn't complain about anything.

    posted in extra~ read more
  • kyro

    I love this feedback oscillator! I don't know how relevant it is, but it reminded me of https://ccrma.stanford.edu/software/snd/snd/fm.html [cascade FM: sin(sin(sin))]:

    As z increases above 1.27, we get a square wave, then period doubling, and finally (ca. 1.97) chaos.

    posted in patch~ read more
  • kyro

    @chaosprint said:

    For example, I would like to trigger a sound playback multiple times
    it layers the playback at that particular rate

    You mean, like a polyphonic sampler? If so I'd load the sample in a table and have an instance of tabread~/tabread4~ for each "layer".

    posted in technical issues read more
  • kyro

    @jameslo said:

    If you follow the algorithm in http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf, E(5,13) = 1001010010100, But if you use the much simpler one from @Stutter you get 1001001010010.

    If you flip stutter's result three digits to the left you get banff's. It's a matter of a [- 3] somewhere.

    posted in patch~ read more
  • kyro

    If I had to buy something today I'd go for Intech EN16. Fighting my impulse buy a while back, I dug out my old dusty bcr2000, found out it had a software editor and could be set in absolute mode. And I don't need anything more.

    With encoders set to absolute, no need for two-way communication, no more jumps in values, everything stays in the patch. I have a set of WIP abstractions that steal the focus of the shared unique controller, map and scale CC increments/decrements to the relevant patch parameters and deals with store/restore presets.

    I just wish there were something to faders like what encoders are to knobs.

    posted in I/O hardware diyread more
  • kyro

    http://www.pd-tutorial.com/english/ch03s08.html was a great help for me back in time.

    posted in patch~ read more
  • kyro

    @ddw_music you were right, problem solved :
    Capture d’écran de 2022-05-10 12-45-39.png

    posted in technical issues read more
  • kyro

    @ddw_music very nice! With your downward edge detection I can now divide a phasor~ by an arbitrary number. There's a thing I cannot wrap my head around though: how to reset the counter to zero every divided downward edge. So it can safely be run indefinitely.

    I don't understand why feeding the rpole~ argument with ((1-(divided downward edge detection)) delayed by one sample) only resets it once in a while and not every cycle.

    posted in technical issues read more
  • kyro

    @RT-Chris you should have a look at how it's done in Automatonism
    @jameslo absolutely brilliant!

    posted in technical issues read more
  • kyro

    so I totally gave up on solving my maths problems in pd. I used FAUST instead and run my tonestack~.dsp in [faustgen~].
    you can access the 3 parameters with [low/med/top $1( from 0 to 1.
    first time with FAUST, looks awesome.

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!