• jameslo

    Is there a maximum size for the impulse response table for [else/conv~]? I loaded a 30s one and got no warnings.

    Also, here's a tip: if you change the contents of the IR table, you have to switch away and switch back for it to take effect. I guess it's loading the table to internal buffers and skips loading it if the requested table has the same name as the previous one.

    posted in technical issues read more
  • jameslo

    nslookup returns the same IP address for both--is that meaningful? If so, it's weird that they require different credentials.

    posted in this forum read more
  • jameslo

    Someone on the plugdata discord asked about how to do this, but deleted their post before I could post my suggestion. I thought it was kind of fun to play with, so I'm posting it here in case you are as easily amused as I am :) I think it's interesting to watch the averaging happen as the frequency goes beyond the size of the wave table, more interesting than the interpolation.
    one cycle of wavetable.pd
    Screenshot 2026-07-09 172805.png

    posted in technical issues read more
  • jameslo

    @ddw_music 10 (all the way right) and 1 (all the way left).

    posted in technical issues read more
  • jameslo

    @kyro presented it as input => asin => ×amount => sin~ and showed it inside a larger patch:

    Screenshot 2026-06-29 110004.png
    You could also adapt my [expr~] version
    trig wrap wavefolder kyro version.pd

    Screenshot 2026-06-29 110320.png

    posted in technical issues read more
  • jameslo

    @ddw_music Yeah, I should know better. That said, you can often click through to the sites that Google scraped and there it is!

    Screenshot 2026-06-27 052451.png
    But wait! I just checked the harmonics of a full wave rectified {cos~] and all the even FFT terms have positive magnitude, so this post appears to be correct. And now I just reran my first test and set my "top only" slider to exactly 2 and am getting the fundamental + all even harmonics. Why am I getting so tripped up by this?!!!

    posted in technical issues read more
  • jameslo

    @oid said:

    Even are not emphasized in single ended, even are canceled in balanced.

    This is definitely closer to what my experiment implies, thanks.

    Edit: I think it's things like this that misled me in the first place--what I now believe to be false statements are highlighted in yellow:
    Screenshot 2026-06-26 173607.png

    posted in technical issues read more
  • jameslo

    Look at this experiment:
    symmetric vs asymmetric clipping.pd
    Screenshot 2026-06-24 160455.png
    The osc~ frequency is set so that it perfectly fits a 64 sample block, which make the FFT’s terms match the harmonics of the input.

    When I increase the top and bottom clipping amount, the wave shape approaches a square wave and the harmonic content matches theory—all odd numbered harmonics, meaning harmonics that are odd multiples of the fundamental. Now I’ve read that even harmonics are emphasized in asymmetric signals, harmonics that are supposedly warmer and richer and are of the kind produced by single-ended tube stages, all of which have asymmetric current gain curves. That’s what my “top only” slider is crudely simulating. But the FFT contains both even and odd harmonics and there doesn’t seem to be any bias towards even harmonics, unless their mere presence is the magic sauce. What am I misunderstanding?

    Edit: I was curious whether my heavy-handed asymmetric clipping was at fault, but this gentler version has similar (if not worse) characteristics.
    symmetric vs asymmetric clipping 2.pd

    posted in technical issues read more
  • jameslo

    @kyro Oh cool, I missed the fact that you could take the arcsine first, but of course now it seems completely obvious :)

    posted in technical issues read more
  • jameslo

    TBH, wavefolding interests me more for the math and programming than the sound. My first approach was to make a reflector and to put several in series:
    reflector wavefolder.pd
    Screenshot 2026-06-12 120337.png
    I’ve seen this kind of approach from others (e.g. using [expr~]) but it’s unsatisfying because you have to add more reflectors when you want more folds, so I came up with this next version after what felt like an eternity of head-scratching:
    wrapping reflector wavefolder.pd
    Screenshot 2026-06-14 081723.png
    Another solution is to exploit how sine wraps around:
    trig wrap wavefolder.pd
    Screenshot 2026-06-12 120511.png
    With all three versions, the sharp reversals make things very bright and can cause aliasing, which you may not be into, so I wanted to look for an alternative. Returning to how sines and cosines wrap around, I just arranged to overdrive [cos~] with my input signal:
    cosine overdrive wavefolder.pd
    Screenshot 2026-06-12 120553.png
    This is the version I’ve used on the few occasions I’ve thought wavefolding might sound good. The only unsatisfying thing is that it’s never possible to pass the input signal undistorted, even with folding completely off. So I thought maybe I could make a function that’s like [cos~] but linear near the x-axis. The idea comes from hi-fi tube amp design, where the designers try to scale and bias the input signal so that the tube has as linear a current response as possible. Here’s one way:
    transferFunction table wavefolding.pd
    Screenshot 2026-06-12 120701.png
    Note that you can change the non-linear part of the transferFunction table to anything you want. I made both sine and circular reversals; they sound slightly different to me. If you filled the table with a triangle wave then you’d get similar sharp reversals as in the first 2 implementations. I think that even with sine and circular reversals there are more upper partials than with the [cos~] version, so maybe another solution is just to crossfade between the [cos~] version and the clean input when you want undistorted signal.

    Know of other ways? Other things to consider? Have a recording that will make me love the sound of wavefolding? Please share!

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!