Dear PD folks,
I'm trying to cook up a Pd/GEM version of the Rutt-Etra scan processor, which sends audio signals to an analog CRT vector monitor/oscilloscope/etc to control the vertical and horizontal positions of its beam, plus its brightness.
The video posted here is webcam->MaxMSP->MOTU soundcard->Vectrex console display, using the [jit.matrix] and [jit.peek] objects:
https://www.instagram.com/p/BWk5imsAao1
To do this in GEM, I need to read the luma values of the pixels in a video stream according to their X and Y positions with the horizontal and vertical signal ramps which form the video raster on the CRT (using [phasor~] for the vertical scan and a multiplication plus a [wrap~] for the horizontal scan), and send that value out as a third audio signal to control the brightness of the scan line on the monitor.
Here is a block diagram of the original Rutt-Etra for the curious:
http://iasl.uni-muenchen.de/links/GCA_ill76.png
The issue that I have run into so far is that [pix_data] from GEM only responds to control rate messages. PDP has the [pdp_scanxy~] object which does basically what I'm looking for: get luma values at given X Y coordinates of the image based on an audio signal input, and send those values out as an audio signal. I've gotten a rough raster with this already, but for various reasons I would prefer to stay clear of PDP.
Can anyone tell me how fast the [pix_data] object can respond? I have been using a [metro] operating at a rate of one bang per sample, and I have set a [block~ 1] in the subpatch doing this analysis.
[timer] reports an interval of 0.022 ms between bangs @44.1K, and 1.451 ms between changed pixel values coming from [pix_data]. (Unchanged values are redundant.) In fact, the rate between the metro and the GEM object match until I go under 64 samples, then it becomes erratic. Is a 64 sample block size hardcoded into [pix_data]?
Can anyone see how I could get audio rate data out of [pix_data], or if there might be another way to get luma values with an audio signal?
Thanks and best wishes! Derek