diff --git a/.gitignore b/.gitignore index f2e1d895..c4e25230 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,9 @@ tools/*.png tools/*.tiff Fonderie/*.o +Fonderie/*.png +Fonderie/*.pnm Fonderie/fonderie Fonderie/interpolator +Fonderie/t diff --git a/Fonderie/Makefile b/Fonderie/Makefile index e72df859..39a77106 100644 --- a/Fonderie/Makefile +++ b/Fonderie/Makefile @@ -8,7 +8,12 @@ LIBS = ../libfloatimg.a -lpnglite -lm OBJS = fonctions.o sfx.o crapulator.o glitches.o metriques.o DEPS = fonctions.h crapulator.h metriques.h glitches.h -all: fonderie interpolator +all: fonderie interpolator t + +# --------------------------------------------------------- + +t: t.c Makefile glitches.o + gcc ${COPT} $< glitches.o ${LIBS} -lz -o $@ # --------------------------------------------------------- diff --git a/Fonderie/glitches.c b/Fonderie/glitches.c index 9fca56b0..7640d3d7 100644 --- a/Fonderie/glitches.c +++ b/Fonderie/glitches.c @@ -117,6 +117,7 @@ int vertical_singlitch(FloatImg *picz, int xpos, float fval, float omega, float phi) { int y, x, w, h; +double dy; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( %p %d %f %f )\n", __func__, picz, @@ -124,9 +125,13 @@ fprintf(stderr, ">>> %s ( %p %d %f %f )\n", __func__, picz, #endif h = picz->height; w = picz->width; -#define BB 12 +#define BB 10 for (y=BB; yBB) && (x +#include + +#include "../floatimg.h" +#include "glitches.h" + +/* ----------------------------------------------------------- */ + +int verbosity; + +#define PNG "out.png" +#define W 512 +#define H 256 +#define LMAX 233.333 +#define TIMER 1 + +int main(int argc, char *argv[]) +{ +int foo, iter, xloc, bloub; +FloatImg image; +char buff[1000]; +double debut, fin; +float omega; +verbosity = 1; + +fimg_print_version(1); + +foo = fimg_create(&image, W, H, FIMG_TYPE_RGB); +if (foo) { + fprintf(stderr, "err %d create image\n", foo); + exit(1); + } +fimg_vdeg_a(&image, LMAX); + +debut = fimg_timer_set(TIMER); + +for (iter=0; iter<64; iter++) { + + for (bloub=0; bloub<5; bloub++) { + xloc = rand() % W; + omega = (float)(0.1 + drand48()*0.8) * 0.5; + foo = vertical_singlitch(&image, xloc, LMAX, + omega, (float)iter); + if (foo) abort(); + } + + sprintf(buff, "out%03d.png", iter); + foo = fimg_save_as_png(&image, buff, 0); + if (foo) { + fprintf(stderr, "err %d saving to '%s'\n", foo, PNG); + exit(1); + } + } + +fin = fimg_timer_set(TIMER); +fprintf(stderr, "elapsed %f\n", fin-debut); + +return 0; +} + +/* ----------------------------------------------------------- */ diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index 313bb24b..8fcfbe56 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -694,7 +694,15 @@ int fimg_killcolors_b(FloatImg *fimg, float fval); int fimg_colors_mixer_a(FloatImg *fimg, float fval); \end{lstlisting} +\subsection{Glitches}\index{glitch} +Un \textsl{glitch} peut-il être classé dans la catégorie des effets +spéciaux ou non ? \textsc{Hmha}, non. un fx est paramétrable +et surtout répétitif. Un glitch est quasiment souvbent un phénomène +aléatoire\index{drand48} et tout aussi paramétrable. + +J'ai commencé à étudier ces objets étranges quand j'ai commencé +sur l'interpolator\index{interpolator} à l'automne 2020. % ----------------------------------