A%B is equal to the remainder; Smooth Divisive Modulo(a,b) is equal to the remainder or invert of the remainder if floor (A/B)% 2 is equal to 0.
773 % 256 = 5 ; SMD(773,256) = 5
368 % 256 = 112 ; SMD(368/256) = 114
So, that is what I mean, and there doesn’t seem to be a easy way to do that sort of thing. I would like to implement smod, smodiv, smodmul, smodadd function to gmic.
smod = smodiv * (max_luminosity_value_with_mod/max_value)
smodiv = See example above
I haven’t been having luck with running map command on Krita G’MIC. Either it says that dimensions don’t match, or values turn to 0,0. And I tried everything.
What I’m trying to do is to generate random swaps of channel values. Like 0 becomes in the 233 place. Basically trying to improve my glitch filter.
I copied and paste the palette from that tutorial. I either get 0 value or incompatible dimension. Resize would lead to 0. I change 1 and 0 in the map, and wouldn’t work.
I found psuedo_c command, I think I could use that instead since it’s easier for me to use pre-built command.
Here is my command, the part that is causing this problem. It happens when the parameter is between [-126,-120ish]. I realize that it likely has to do with {2^-126} being an extreme value of 1.1754943508222875e-038. A lower value yields an image of 0s.
gmic sp tiger,barbara hlg_afre -126 to_rgb a x
hlg_afre: skip ${1=0}
n 0,1 * {2^$1}
f "a=.17883277;b=.28466892;c=.55991073;
if(i>1/12,a*log(12*i-b)+c,sqrt(3*i))"
n 0,1
I came across something interesting. I was having some G’MIC fun when I made a typo. y50_afre is supposed to take in one parameter (forgot to add a ,). I wonder what is going on and how I could arrive at “Typo” without incorrect syntax.
texture_afre: skip ${1=1},${2=10}
repeat $! l[$>]
n 0,255
+l
+l
if $1 gradient_orientation 2 n 0,1 + y50_afre # ,
else gradient_norm fi
b 1,1,1
endl
*. {255*$2/iM} +
n 0,255
endl
+l.. n 0,1 f gauss(i-.5) n 0,1 endl
blend_fade[0,1] . k[0]
endl done
When the , is commented, then else is passed as first argument of command y50_afre, and the test if $1 does not hold (there is no file with filename else that exists).
After returning from command y50_afre , the next command to be executed is gradient_norm (as else was not considered to be a command, but an argument to a command).
So, to get the same behavior, you should probably write y50_afre 0 gradient norm instead of y50_afre.
Thanks, I suspected as much. When debugging the commands, I must have made a few additional typos that confused me. I will add this to my the fun with afre thread.
When I paste a GUI filter into user.gmic, it loads properly in the plugin; but when I put it into another *.gmic and load it with cli_start, it doesn’t get picked up.
Closest solution to the 6 layers to 3 layers blend problem found! Not quite the solution as the 3rd layer seem to show blending if using 4 layers.
repeat {int($!/2)} l[$>,{$>+1}] f "(i#0+i#1)/2" endl done
The problem is even if I put if {$>%2==0} fi, it doesn’t work like the blend[standard] approach. Just this little step to finishing the modo cli command I have been working on.
It depends on which layers you would like to blend together. I mean, there are many ways to go from 6→3 alone. Right now, it looks like you are blending 0-3 layers when you have 6 layers. Would blending like this work in the case of 4→3?
gmic sp dog,cat,tiger,flower blend[0-1] average
PS If I recall correctly, the plugin has layer modes that might be useful to learn from.
I would like to see either odd or even layers to show blend result using 2 layers and no overlaps. Like how the blend standard does it. I copied and pasted the relevant part of blend standard and edited into my WIP modo CLI and it does not seem to behave similar. So, no to your question.