Blinkenposer

Quartz Composer Patches for Blinkenlights

System Requirements

The Blinkenposer.plugin requires Mac OS X 10.5

Installation

Please go to the official Blinkenlights project homepage for these patches, they are part of the Stereoscope Creation Tools

For the Blinkenposer packages to work with Quartz Composer, the Blinkenposer.plugin needs to be copied into either (~)/Library/Graphics/Quartz Composer Plug-Ins/.

The FlatStereoscopeToronto.qtz composition can be used as a Screen Saver if put into (~)/Library/Screen Savers/

Stereoscope is a quartz composer based Blinkensim that can also record its input as bml.

If you want to create content using Quartz Composer you have to download and install the freely available Apple Developer Tools (Xcode 3.1), after installation Quartz Composer.app can be found in /Developer/Applications/Quartz Composer.app and you are ready to go!

Provided Patches

The Blinkenposer.plugin provides the following patches to be used in Quartz Composer:

Blinkenprovider


The Blinkenprovider patch can listen to blinkenproxies and provides an Image, the pixel dimensions and a structure representation of the received images.
InputTypeExampleDescription
Use AddressIndex0This index determines if the provider listens to the localhost on the given local listening port or to the given proxy address
Local Listening PortNumber2323The port to listen to locally.
Proxy AddressStringlocalhostThe host address of the blinkenproxy to listen to.
Proxy PortNumber4242The port of the blinkenproxy to listen to.
OutputTypeExampleDescription
Blinken ImageImageA Grayscale Image representation of what was received from the Blinkenproxy.
Pixel WidthNumber96The width of the received Image.
Pixel HeightNumber32The Height of the received Image.
Blinken StructureArray of Arrays{{15,0},{0,15}}The received Data as a Structure that can be iterated through. This structure has values from 0 (black) to 15 (white). To see that in use you can look into the FlatStereoscopeToronto.qtz Composition.
Screen MetadataArray of Dictioanries{{"screenID"=>0,"width"=>96,"height"=>12}Metadata about the different screens all added as into the one image side by side if the new format is used

Blinkensender


The Blinkensender patch can send images or structures to a blinkenproxy.
InputTypeExampleDescription
Target AddressStringlocalhostThe address of the blinkenproxy / blinkensim / bmix to Target.
Target PortNumber2323The port to target.
ImageImageA Grayscale Image representation of what should be sent to the Blinkenproxy. The Data will be boiled down to 16 grayscale values.
Blinken tructureArray of Arrays{{15,0},{0,15}}A Blinken Structure to send out. If both Image and Structure are attached to this patch, the Image is taken. To see how that can be created using a javascript patch, have a look into the BasicTest.qtz Composition.
FPS CapNumber15The max number of frames per second to send out. Please make sure this stays below thirty, because the installation can't display more FPS anyways.
Min FPSNumber1The min number of frames per second to send out Important for when the input image doesn't change.
OutputTypeExampleDescription
Blinken ImageImageA Grayscale Image representation of what was sent to the Blinkenproxy.
Pixel WidthNumber96The width of the received Image.
Pixel HeightNumber32The Height of the received Image.
BlinkenstructureArray of Arrays{{15,0},{0,15}}The sent Data as a Structure that can be iterated through. This structure has values from 0 (black) to 15 (white). To see that in use you can look into the FlatStereoscopeToronto.qtz Composition.

BlinkenBMLWriter


The Blinkensender patch can send images or structures to a blinkenproxy.
InputTypeExampleDescription
EnabledBOOLTrueIf this patch is enabled it records to a file in the Destination path. E.g. turning record on and off enables and disables the recording.
Blinken tructureArray of Arrays{{15,0},{0,15}}A Blinken Structure to record.
FPS CapNumber15The max number of frames per second to record at max. The BMLWriter already coalesces updates that don't change into one frame, so this can be high if the source is already capped
Destination PathString~/DesktopThe destination directory where the recorded files should be stored. Files are of the form YYYY-MM-DD_HH-MM_SS.bml

Composition Templates

For A quick start these are the templates you just open, change to your liking and save as again to have your own great blinkenlights animation.

AspectCorrectedTemplate.qtz

This is the ideal starting point if you have already a nice composition that you are basing yourself on. just put the composition you are based on in the top level render in image patch and remove the lightning scene in there. The scaling factor between the rendering and the output is such that it compensates for the pixel aspect ratio of the Stereoscope.

DirectDestinationTemplate.qtz

This is the ideal starting point if you want to work with pixels directly. e.g. bring sprites to life. As an added bonus there is the pixel exact image placement macro patch in there, that helps to place images 1:1 on the stereoscope

Stereoscope.app

Stereoscope.app is a blinkensim based on Stereoscope.qtz it displayes the two curved stereoscope buildings in a simplified way and can also record everthing as a bml.

Example Compositions

FlatStereoscopeToronoto.qtz

This plugin is a simple implementation of a toronto blinkensim using the Blinkenprovider patch. It shows the blinken image, and iterates through the structure to display the windows on top of the background image.

BasicText.qtz

This Plugin is a general example how to send data using the Blinkensender patch. All basic variants are demonstrated, if you want to make your own content, please base it on this one, e.g. reuse the Blinkensender and the Test Output Patch.