Hmm, I am attempting to understand how G’MIC can create pattern, and it is my understanding that patterns can be defined by x-pixel, and y-pixel as well as width, and height. I am attempting to generate this pattern - https://forums.getpaint.net/topic/3691-vibrato-ymd080223/?_fromLogin=1 , but however, user-defined function is not getting me the answer I need. I am using user-defined function in order to understand how that works first.
However, I did found a cool idea, but it would require symmetrizing and the smooth modulo operation I just implemented for Krita.
Leaving this here for future reference : (x - y)/i * (x - i)/i * (x + i)/i * (y - i)/i * (y + i)/i
And this here for future reference : http://users.cs.cf.ac.uk/Dave.Marshall/CM0268/PDF/10_CM0268_Audio_FX.pdf
EDIT: I realize I could use solidify filter approach instead to recreate vibrato. I think a lot of effect from the paint.net forum can be recreated with the help of solidify feature. I think I might create a thread just for that task.
Also, I really could use a way to assume the center of the image is 0 in G’MIC user-defined. Wow, this is hard, but learning…
K3DSurf to G’MIC
that means, for x is replaced by (x-w/2)/w, and y is replaced by (y-h/2)/h
And to get to -pi, pi coordinate for G’MIC, the end equation is:
cos(((x-w/2)/w) * pi * 2 * ((y-h/2)/h) * pi * 2)
Also, this equation might lead to Moire for paint.net to G’MIC
sin((((x-w/2)/w) * pi * 2 * 10) ^ 2+(((y-h/2)/w) * pi * 2 * 10)^2) leads to a interesting moire. The 10 are adjustable.
Your rendering engine setting affects the moire result when zoomed away. Bilinear filtering leads me to apparent moire.