• solipp

    Hi @Nullstrahler
    "cd" stands for "change directory". "path/to/pd" is of course a placeholder. You have to replace it with the path to the directory you chose for the source files. Alternatively, you can use your file manager to open the directory, and then right-click -> "Open Terminal Here".

    you'll need the following dependencies to compile pure data, some of them might be already installed on your system. Install with apt:

    sudo apt install build-essential automake autoconf libtool gettext
    
    sudo apt install libasound2-dev libjack-jackd2-dev
    

    Then follow the install instructions. In a nutshell:

    ./autogen.sh
    
    ./configure --enable-jack
    

    this compiles pd with jack support. you can check the configure options with
    ./configure --help

    make
    

    if make runs without errors, you can install with:

    sudo make install
    

    posted in technical issues read more
  • solipp

    ; pd-test obj 0 0 r bnag, obj 0 100 unsig~, connect 0 0 1 0; bnag bang

    posted in technical issues read more
  • solipp

    @differencetones you can just parse $0 as an argument to clone like this:
    [clone myabstraction 16 $0]
    To refer to $0-grain in the parent, use [tabread4~ $2-grain] inside your abstraction ($1 is the number of the clone instance)

    posted in technical issues read more
  • solipp

    @bocanegra http://www.willpirkle.com/Downloads/AN-4VirtualAnalogFilters.2.0.pdf is a good read. I translated the TPT laddder filter to pd in the [pp.ladder~] object in audiolab (you can download it with deken). Here is a version with an outlet for each pole and the "analog clipper" from above : TPT-ladder.pd
    Another solution is [bob~] of course :): https://github.com/pure-data/pure-data/blob/master/extra/bob~/bob~.c

    posted in technical issues read more
  • solipp

    little note: your filter does not resonate at the cutoff frequency.
    top: how it should be, bottom: how it is
    image.png

    Screenshot_2021-09-08_01-12-29.png

    now, solve this ;)

    posted in technical issues read more
  • solipp

    @nicnut you can do something like this:image.png

    Edit: of course, if you need to translate from signal to control rate, threshold~ is the solution.
    Edit: better use -~: image.png

    posted in technical issues read more
  • solipp

    @jameslo nja, i think you gave the wrong reason ;)
    if you run pd at samplerate 44100 and you upsample by 16, the samplerate of the patch is 705 600. Devide this by fft-split~'s default blocksize 1024 and you get a bin resolution of 705600/1024 ~ 689 hz.
    This is like running fft-split~ with a blocksize of 64 at normal samplerate (44100/64 ~ 689). You can try, [pp.fft-split 64 4] will give you the same strange result (I'm not even sure why fft patches start to act weird when you run them with block sizes >256, maybe it actually is related to overlap...)
    With block size 4096 you get 705600/4096 ~ 172hz resolution, but you probably want 705600/16384 ~ 43hz witch relates to 44100/1024 ~ 43hz.

    posted in news read more
  • solipp

    there was a short conversation about this on the mailing list:
    https://www.mail-archive.com/pd-list@iem.at/msg58775.html

    In general, I think questions about potential bugs or the internal workings of pd are better asked on the mailing list or as an issue on github.

    posted in technical issues read more
  • solipp

    @jameslo said:

    • It looks like you are simply passing the bins that are below the threshold frequency to the left inverse transform, and the rest to the right (with the omitted bins on each side muted), is that correct?

    yes, that's correct.

    • If so, then why does the transition band sound continuous? i.e. when I output lowpass to the left and highpass to the right, as I sweep up it moves continuously from left to right around the threshold frequency.

    that is the result of spectral smearing i guess https://en.wikipedia.org/wiki/Spectral_leakage
    the slopes of the lowpass/highpass are not perfectly steep

    • I struggled to make a test to see what phase distortions occur near the threshold frequency, and there don't appear to be any. Could that be true? (I'm not confident I tested properly)

    there shouldn't be any phase distortion. essentially it's a linear phase FIR filter.

    @tungee thanks for the links!
    I made this pp.ladder~ filter to get an idea about the concept of "zero delay filters". So I kind of mapped it out as a pd patch to get an overview (not that i fully understand it now...)
    However, it makes much more sense to create externals (instead of vanilla abstractions) of this filters. Pure data is really not efficient in processing patches with one sample dsp blocks.

    posted in news read more
  • solipp

    you could just taplay~ an array with one sample at 1

    posted in technical issues read more
  • solipp

    @Obineg said:

    aha, so they take messages when you name them? :)

    no, they take messages in general. "naming" inlet/outlet is considered bad patching style.

    if you want to connect signals and messages to an abstraction, you have to use something like [route start stop int float] inside the abstraction - the signal will come out of the "does not match" output of [route].

    I prefer the pd method; [inlet~ fwd]. It is documented in the helpfile.

    @ddw_music said:

    It appears that, when you connect nothing to [inlet~], it already holds its last value and doesn't reset. You can test that, in the sample patch above, by deleting the signal connection into the right-hand side instance of the 0529 abstraction. If it went to 0, then the right channel would be silent. Instead, it holds frequency.

    ? if I could reproduce this, i would file a bug report on github. because this would be undesirable in many situations. However, i can't reproduce it. I wonder why it works for you?

    posted in technical issues read more
  • solipp

    since pd 0.51 it is possible to set a default value for [inlet~]. So instead of zero [inlet~] can send some unreasonable value against which you can check if there is a connection:

    image.png

    posted in technical issues read more
  • solipp

    @morpheu5 you could reduce the amount of oversampling, is there a reason for oversampling by a factor of 16? And you can [X] - switch~ off grains that are not playing..

    posted in technical issues read more
  • solipp

    @morpheu5 @whale-av is right, you need to get the grainSpeed into the clone as a modifier of the output of [vline~]. My comments from yesterday were not well thought out.
    Spoiler: one way to do it grain.pd

    posted in technical issues read more
  • solipp

    @morpheu5 ...you could also use a counter instead of [next(, then retrigger the previous grain when you press a key. maybe that's the best option. sorry for the confusion, it's late over here

    posted in technical issues read more
  • solipp

    @morpheu5 i almost forgot [this( message to clone! check the helpfile, [this( + pitch should do the trick

    posted in technical issues read more
  • solipp

    @morpheu5 ...of cause, this would not stop the last grain playing at the wrong pitch. So you need to stop them all, then send the pitch value and retrigger metro....

    edit: hope that's not too confusing

    posted in technical issues read more
  • solipp

    @morpheu5 i guess you get the wrong pitch because the grain is already playing when you press your key (i haven't tried the patch). You can send a trigger + pitch value to [clone] when you press the key with [next(. Right now you are sending the trigger to all grains simultaneously.

    posted in technical issues read more
  • solipp

    @morpheu5 you should send your grain pitch value as a second element in a list,
    like [next $1 $2(

    posted in technical issues read more
  • solipp

    new version up! (v 0.4)

    two new objects:

    pp.parameq~ - a parametric equalizer.
    fancy! I guess I pushed pd-UI design to the limits with this one:
    parameq.png

    pp.butterkreuz3~ - a 3 band crossover filter with a relatively flat magnitude response. Allows you to create multiband (well, 3 band) effects.

    ...many fixes, changes, additions... (sorry, I'm too lazy to keep track)

    posted in news read more
Internal error.

Oops! Looks like something went wrong!