Week 12
This week I have begun to build ‘1.6.1 frequency warp’. Tadej Droljc’s version of this patch is very complex with little room for personal improvement from myself. I have begun to investigate if I am able to use the ‘exponent_generator’, ‘linear_generator’ and ‘sine_generator’ from ‘1.6.3 filter_mask’ to generate element and number pairings for the ‘frequency_draw’ bpatcher.
A few days later I realised I had to abandon this idea. It seems that passing the numbers through gates and the aforementioned abstractions slows them down to a point where they don’t exit the patch at the same time. Below is the structure I have decided to no longer run with:

After some consideration, I am abandoning the sine mapping in the generation abstraction entirely. The sine waves generated are more often than not, disjointed;

Yesterday I got the ‘frequency_warp_process’ abstraction working, but to do so I had to decrease the size of the y-axis ‘drawY’ matrix to 256 as it didn’t seem to be accepting to 512-long lists (this will definitely have something to do with Max’s max list length being 256). The result in downscaling this draw transfer matrix means that the up-sampling to a 1024 bin matrix is more dramatic, leading to a matrix of lower resolution (in the image below. Today I managed to fix this by manually setting the max size of the ‘zl’ list objects in the abstraction 513, leading to a upscaled matrix of higher resolution.

I am now beginning to incorporate mask implementation in pre-existing patches. There seems to be an issue with playback speed across all module (I think it has something to do with each abstraction’s ‘snapshot~’ object output not being sent consistently enough).
Tried to use alphablend in openGL in the ‘mask_application abstraction, but ‘jit.gl.pix’ doesn’t allow for a change in alphablend mode like the ‘jit.alphablend’ does so I cannot use the openGL alphablend. However I was able to use the addition operation shader with ‘jit.gl.slab’ instead of the CPU based ‘jit.op’ addition operator.