I'm currently using an oscillator that has high levels of harmonics filtered by several bandpass filters in parallel to generate formants, and that works pretty well. I'm interested in other ways of generating formants. I've seen old references to fof~ and vosim~, but these objects are old and apparently unsupported. Does anyone know of current versions of these? Or other ways to generate formants in Pd?
-
Objects for formant synthesis?
-
well, can you send the patch again?
this is what I have... with a bandwidth of 10... looks the same, sounds the same! I really cannot reproduce and confirm what you're saying.

the patch:
-
@porres I’m away from my computer for a few hours. When I copied the else modules, I didn’t copy the subdirectories. Is there something in a subdirectory that I need?
-
nope, well, I guess we'll have to wait til the next year to deal with this

-
@porres I'm using Pd 0.56.2. I tried this on both Windows 10 and Windows 11 and I get the same results. What OS are you using?
I don't add externals to Pd's path. Does else/paf~ expect to find something in the path?
I had to multiply else/paf~'s output by 1.3 to match the level of Puckette's paf~. Is that the same for you?
-
@jamcultur said:
What OS are you using?
masOS Sequoia 15.7 - but I doubt this makes a difference
I don't add externals to Pd's path. Does else/paf~ expect to find something in the path?
not really, if you don't have errors, it's fine
I had to multiply else/paf~'s output by 1.3 to match the level of Puckette's paf~. Is that the same for you?
no, you can see the screenshot above and the patch. You can get it and show me a screenshot of what you see
-
@porres With Puckette's paf~, the 528hz peak is -6dB. When I don't multiply else/paf~ output by 1.3, the 528 hz peak is -8dB. When I multiply else/paf~ output by 1.3, the 528 hz peak is -6dB, like Puckette's paf~. This image is with bandwidth=10. The peaks are the same with bandwidth=80.

-
can you confirm this is from the patch I sent? Did you change it?
why didn't you stick to the same parameters I sent with bandwidth = 10, wasn't that showing more changes?
Anyway, same patch, now with bw = 80, same visual results. I don't think this has nothing to do with you being on windows... it just seems the top one stuck with bw = 10....

the patch now with bw = 80!
-
@porres I had to add paths to your patch. The result is the same as my patch.

-
Great! No idea what that was needed, but I guess it's not important now.
Next, I'm adding Multichhanel support like my other oscillators, and it'll be easy to add more formants that way with a single object.
-
@porres Puckette's paf~ and else/paf~ give different results and sound different. As you can see in my last post, all of the harmonics have different volumes. The second and third harmonics are louder in Puckette's paf~. All of the other harmonics are louder in else/paf~. The differences are even more dramatic with lower values of bandwidth.
-
@porres You can see the problem in my previous post, but it's easier to see and hear the problem with lower bandwidths. Here are the results using your patch with bandwidth=10.

-
Oh, I misread your post... at least adding to the path makes no difference as I thought (cause it makes no sense).
One way or another, it's still hard for me to believe something is funny, because I simply cannot reproduce as I've shown many times and it also makes no sense to me that it would behave differently on windows...
-
@porres There is different code running on Windows than on Mac. That must be where the problem is.
FWIW, I made a module using the implementation of paf~ in F13.paf.control.pd, and it works the same as Puckette's compiled paf~, with the same differences from else/paf~.
-
@jamcultur said:
There is different code running on Windows than on Mac. That must be where the problem is.
what exactly do you mean?
-
@jamcultur said:
I made a module using the implementation of paf~
what kind of "module"? How did you "do it"?
please be precise
-
@porres @porres If the code on Windows was the same as the code on Mac, they would work the same. They don't work the same, so they must be different.
Here's the object I made from F13.paf.control.pd:
mypaf~.pdAnd here's a version of your patch that uses it:
1767288702629-paf-test.pd -
a comparison of miller's original paf (version 0.07), an abstraction based on F13 and my external. The abstraction is the one at the top and differs a bit. My external matches exactly miller's original and it's actually based on it so it's the same code...
we have to stop going around in circles here...
I see you're getting different results on windows. Makes no sense to me, I don't believe there's something in the code. Unless you have a real suggestion and can narrow something down of find the problem, I can't do anything.
I say let's just put a pin on this...
The object isn't even officially included or done. Let me work on it... when it's time to put the update release out I will have a look at it. Try to run on a VM or something.
-
oops, I didn't post the image of the comparison

-
@porres If you can't do anything about it, then you shouldn't call it paf~. Miller Puckette invented paf~. His paf~ is the standard. Yours doesn't work the same or sound the same as Miller Puckette's paf~ on Windows.
-
@jamcultur said:
If the code on Windows was the same as the code on Mac,
why don't you look at the code and point to what you believe is the culprit instead of just making assumptions. My code is the same for mac, windows and linux... I said so. There's no code just for windows. I can't see why it would compile differently for windows as well, which is something else to consider... and this would mean that probably a lot of ELSE objects behave different on windows, maybe, and I think it's unlikely...
anyway, we can't go around in circles forever so I am moving on with this already, like I said... for now, all I can say is "I can't see what might be causing this", and "I can't reproduce it"... and "this is still experimental and I don't have to do something about it just now when we don't have a clue of what is going on, so let's put a pin on that"