GLITCH ART V2 2004 V4 2004

VIERTEL 3 2004

26 SEPTEMBER
Drilled into my calculator display but then
it stopped working. It must have contained a special
gas that makes it work. oops.

I exported this with MacOS colours and pattern dither
for a bet. Thus I win.


ILTORAED

18 SEPTEMBER
My binocular brain has stereo thoughts.
My monochrome eye reads braille shadows.
My magnetic blood flows North.
My electron limbs require a bias voltage to move.
My encrypted thoughts create action at a distance.
My DNA is spyware inserted by my parental units.


JAAGN

11 SEPTEMBER
I was looking at a book on digital art today, and I couldn't find any picture
that I liked. Didn't bother reading any of the words because I correctly predicted it would
be the usual zero-content drivel.

I was on a camping weekend in Wales recently, and I loved staring out at the
sea and sky.

I was standing in a supermarket by the surveillance TV screens. Two weren't working properly
and looked really interesting. I sneaked a sideways glance before heading for the 
food-that-won't-kill-you section.

I gave my photogram leaf glitch print to the parents of a friend today. It is fading now.

I bought a solar cell-powered DC motor today for 5UKP. It works with sunlight, ordinary
light bulbs, but not low-energy compact fluorescent tubelets.

Do you know how reflections occur? What is the actual mechanism by which light (er, particles,
or waves) reflect off a shiny shiny apple?

Sorry, no picture again. Probably take a break from this for a while. I should
be working on the film visuals I'm doing with Iman. You can't just keep pressing
the big red button and getting a shiny magic pill each time. I am so stupid.

04 SEPTEMBER
I won't vlip-vlop about here. Visit the veb-home of Johnny Rogers.
(I admit, I only found it by searching for back-links, but I 
certainly don't link to sites just because they link to mine.)

Persevere with the finicklesome interface, click on all the bits, and you'll uncover
all sorts of gems. There's a wide range of material, but the stuff that caught
my eye is the op-art-esque, pixelly, glitchy prints. This guy's works is really
nice, IMHO. It merges digital and analogue techniques, and the results are, on
the whole, gorgeous.

27 AUGUST
TV capture, recolourized in DirtyBomb Red™ (no Pantone equivalent).


VUCHFAKREIHT LINE 1

26 AUGUST
Found an amazing book Frontiers of Photography, editors: Time-Life Books,
first published 1971. The images: raw, lo-fi, crude in modern standards,
but happily-so make the burst with 1971 energy. Sense the excitement from
that 1971 era, when widespread computer techniques were still in the future, eg. 1981. 
Hybrids of computer imaging and manual cutting of images into strips and
shifting them around. Will have to investigate Erich Hartmann on account of his 
Laser Light photo-image.

More rotation fun below. This time with missing scanlines. You can just about
discern the scanline grain (pointing in a North-by-North East direction), but
unfortunately I don't think the Photoshop rotation algorithm is
good enough. Does it look like rows of little stick-people to you too?
It's actually just RAM printed at coords that progress according to
modulo arithmetic. 

Please excuse the image being nearly 90K. I normally liposuck
such obese images, but the non-horizontal raster lines played havoc
with the GIF compression algorithm. As you might imagine.


ZHCHRAEDOCOL ANA-1.1.1.-FRAEdbARCHRODIEN

25 AUGUST
Just playing with bits...  This time I applied a rotation,
and then cropped to a rectangle (as ever). 
The effect is a subtle shear: the horizontal structures are just that, and
the vertical structures are - not quite vertical. Sort of looks a bit wrong.


VUERILE ROTAIN

15 AUGUST
Re: my naive experiment in photosynthesis photography (a few pics below),
check out HEATHER ACKROYD and DAN HARVEY.
Wow. Nice work. I'd love to see some of my monochrome glitch pieces
given this sort of treatment!

YOU'RE BEING LIED TO

This is from a mangled text file. You can see fragments
of some letters, such as 6, 9, R, U. Most early bitmap
space invader shapes can be found lurking here too.
It's based on XOR-ing overlapping rectangles. This is
independant of the ordering of the data, because XOR is
a commutative operation. Successive data values form scaled x,y
coords of little rectangles (of fixed size).  The dimensions
of the rectangles are relatively prime with the corresp. scaling factors
for the coords, so I'm guessing that it's theoretically possible 
to invert the operations and get back to the original data.  Which is nice.


CIRRI

01 AUGUST

GO IN. STAY IN. TUNE IN.

Damn, forgot to bring my digital camera cable home this weekend -
but next week I'll show you the coolo t-shirt I've just made with the
UK government's Go in, Stay in, Tune in catchprase and logo.
I'm not at all a political animal, but this is so laughable
it needs to be expressed by the power of the t-shirt!

We're doomed.

Low-level radiation emitted by nearby computer monitors
causes scanline-synchronized modulation in the photosensitivity
of all living things.


PHOTOGLITCHESIS

25 JULY

// makepixelView.cpp : implementation of the CMakepixelView class

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#include "stdafx.h"
#include "makepixel.h"

#include <math.h>

#include "makepixelDoc.h"
#include "makepixelView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


#define WIDTH 2
#define HEIGHT 1

#define N 1024*1024


#define W (WIDTH + 2)
#define H (HEIGHT + 1)

#define TYPE __int8
//#define TYPE __int16
//#include "data.h"



/////////////////////////////////////////////////////////////////////////////
// CMakepixelView drawing

void CMakepixelView::OnDraw(CDC* pDC)
{
	//AfxEnableMemoryTracking(FALSE);
	
	CMakepixelDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	const unsigned long* p;
	const unsigned char* pb;	// 8 bits
	TYPE* pd;

	long val;
	int i,j;
	
	// read file


   FILE *stream;
   int  numread;

   TYPE* data = new TYPE[N];

	//if( (stream = fopen( "C:\\windows\\desktop\\lip.bmp", "rb" )) != NULL )
   if( (stream = fopen( "D:\\Cascone\\avi\\908_iem05.avi", "rb" )) != NULL )
   {
      numread = fread(data, sizeof(TYPE), N, stream);
      fclose(stream);
	  /*
   	for(j=0;j< numread/256;j++)
	{
		for(i=0;i< 256; i++)
			pDC -> FillSolidRect(j*WIDTH, i*HEIGHT, WIDTH, HEIGHT,  17*23*31*3*5*7*11*13*(*data++) );
	}
	*/
   }
   else
      printf( "File could not be opened\n" );



	//long -> 32 bits

	/*

	HDC hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); 
	HDC hdcCompatible = CreateCompatibleDC(hdcScreen); 
 
	ASSERT(hdcCompatible);

	// Create a compatible bitmap for hdcScreen.
 
	HBITMAP hbmScreen = CreateCompatibleBitmap(hdcScreen, 
                     W,//GetDeviceCaps(hdcScreen, HORZRES)
                     H);//GetDeviceCaps(hdcScreen, VERTRES)
	SelectObject(hdcCompatible, hbmScreen);

	ASSERT(hbmScreen);

	BITMAPINFO bmi = {
						{
							W*H,
							W,
							H,
							1,
							24,
							BI_RGB,
							0,
							1024,
							1024,
							0,
							0
						},
						NULL
	};
	
	ASSERT(SetDIBitsToDevice(hdcCompatible, 
	0,0, 
	W,H, 
	0,0,
	1,H,	 
	p, 
	&bmi, 
	DIB_RGB_COLORS 
	)); 
 

 */

	CDC dc;


	pb = (const unsigned char*)0x200000;	// DO
//	pb = (const unsigned char*)0x70000;	

//	pb = (const unsigned char*)0xce000000;	
	pb = (const unsigned char*)0xcd000000;	
//	pb = (const unsigned char*)0xccdc0000;	
//	pb = (const unsigned char*)0x80100000;	// DO

	pd = data;

	int x,y;


	x = 0;
	y = 0;
	
	unsigned long cr = 0;
	for(j=0;j<0x1ff;j++)
	{
//		y += 1 + (j&1);
//		x = 0;
		for(i=0;i<0x1ff;i++)
		{

			
			//pDC -> FillSolidRect(i*WIDTH, j*HEIGHT, WIDTH, HEIGHT, (*p++) & 0xff);	// red
			//pDC -> FillSolidRect(i*WIDTH, j*HEIGHT, WIDTH, HEIGHT, (*p++) & 0xff00);	// green
			//pDC -> FillSolidRect(i*WIDTH, j*HEIGHT, WIDTH, HEIGHT, (*p++) & 0xff0000);	// blue
			//pDC -> FillSolidRect(i*WIDTH, j*HEIGHT, WIDTH, HEIGHT, ((*p++) & 0xff000000) >> 24);	// 
			
//			unsigned long cr = (*pb) + ((*(pb+1)) << 8) + ((*(pb+2)) << 16);
//			unsigned long cr = (*pb) + ((*(pb+1)) << 11) + ((*(pb+2)) << 7);

			
			//cr = ((*pb)<<3) + ((*(pb+1)) << 7) + ((*(pb+2)) << 11);
			//cr = ((*pb)<<0) + ((*(pb+1)) << 3) + ((*(pb+2)) << 8);
/*
			cr = ((*pd)<<0) + ((*(pd+1)) << 3) + ((*(pd+2)) << 8);
			cr = ((*pd)<<3) + ((*(pd+1)) << 4) + ((*(pd+2)) << 5);
			
			cr &= 0xffffff;
			*/
			
			//pDC -> FillSolidRect(i*WIDTH, j*HEIGHT, WIDTH, HEIGHT, cr);
			//pDC -> FillSolidRect(x,y, WIDTH, HEIGHT, cr);

			/*
			x += 1 + (i&1);
			x &= 0x1ff;
			y -= 1;
			y &= 0x1ff;
			pb -= 1;
			*/

			/*
			x += (*pd & 3);
			x &= 0x1ff;
			y ++;
			y &= 0x1ff;
			pd++;
			*/

	
			x = *pd++;
			y = *pd++;


			cr  = 0x101010;
			cr = ((*pd)<<2) + (*pd << 3) + (*pd << 4) + (*pd << 5) + (*pd++ << 6) + (*pd++ << 7) + (*pd << 8);
			cr &= 0xffffff;
			

			pDC -> FillSolidRect(x*W,y*H, WIDTH, HEIGHT, cr);
	
			for(int k=0; k < 0xf; k++)
			{
				for(int l=0; l < 0x4f; l++)
				{
//					volatile double q = atan(k*l);
				}
			}




		}
	}
	


}


/////////////////////////////////////////////////////////////////////////////
// CMakepixelView

IMPLEMENT_DYNCREATE(CMakepixelView, CView)

BEGIN_MESSAGE_MAP(CMakepixelView, CView)
	//{{AFX_MSG_MAP(CMakepixelView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMakepixelView construction/destruction

CMakepixelView::CMakepixelView()
{
	// TODO: add construction code here

}

CMakepixelView::~CMakepixelView()
{
}

BOOL CMakepixelView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}


/////////////////////////////////////////////////////////////////////////////
// CMakepixelView diagnostics

#ifdef _DEBUG
void CMakepixelView::AssertValid() const
{
	CView::AssertValid();
}

void CMakepixelView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMakepixelDoc* CMakepixelView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMakepixelDoc)));
	return (CMakepixelDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMakepixelView message handlers


BLUEN VSKEISSESSE


17 JULY
Fingerschnipp on a new impression orbit.

I have. Have you?

12 JULY
I am 3 today.

10 JULY
E backwards is CCCP E.
K backwards is CCCP K.
R backwards is CCCP R.

These snapshots are taken after variable numbers of ++.


1


2


3


4


5


6

MILLION RAVINE (1-6)

05 JULY


p0q0

04 JULY
What the hellfire's going on here? Where are the straight lines?
Has BEFLIX gone loopy? Well, yes, but also I'm playing here with
using data (a Unix core dump that fell off the back of a lorry)
to modulate the pixel coords non-linearly. This is a variation
on my usual method of laying down the data in orderly rows and
restricting myself to changing the colours only. I've been doing
that for nearly three years. This image looks like
a frozen H2Ofall to me.

Any, for our fix of straight lines, check out the SATURN link
in the orange inspiration blocks. Amazing images.


zLEk


GLITCH ART V2 2004 V4 2004