DMX512 is a communication standard that was developed and is primarily used by the entertainment industry to control lighting dimmers and devices. It has been in use for a long time because it is quite robust and able to transmit for long distances. The "512" comes from the number of individually addressed channels that can be sent across one Universe (cable). It is the communications protocol that your computer software will seek to use to output control signal to a receiving device. Doug Fleenor has been making DMX products for many years and has a good introductory paper on how it works as http://www.dfd.com/primer.html
You will need a serial or USB to DMX interface that is compatible with your software connected to your control computer to send data down a line to a receiving device. The Freestyler website has a list of compatible interfaces at http://users.telenet.be/freestylerdmx/
and the Vixen ones are at http://www.vixenlights.com/downloads.html#output_plugins
This complicates your project as it adds an additional piece of hardware to strain on your budget. Though you can look at building your own as the ENTTEC OPEN DMX device has its schematics posted online through their website http://www.enttec.com/index.php?main_menu=Products&pn=70303&show=downloads
. It may be possible to make your own DMX device using an Arduino and a MAX485 chip, though I don't have the experience to know how to get it to interact with the control software. There is also the option of using Art-Net as your control protocol if your software supports it. Art-Net is a method of sending DMX512 information through your ethernet connection. More on that below.
For receiving DMX512 to control your LEDs you will be using the MAX485 (I have successfully used a sn75176) to convert the DMX control signal which is designed to transmit over long distances to a voltage and signal readable by your Arduino. The Arduino code I use requires the tx pin on the MAX485 be connected to the rx pin on the Arduino. The Arduino then uses interrupts to read the timing based signal of DMX to store all of the needed control channels. Each DMX control channel is received with one byte of data (value of 0-255). My code then uses these control channels to assign the received value either to a pwm pin or to SPI if using an LED PWM driver chip like the WS2801. This code is strongly based on someone else's work. Sadly I can't find the site where I found it. It, however, only works with the ATmega168 chip in an Arduino.
I have, however, just found http://www.deskontrol.net/blog/en/
. It looks like Toni has been doing some much more recent work with Arduino and DMX that may be more flexible. You can use his instructions to make a custom shield for your Arduino to receive the signal.
As an alternative to needing DMX transmitting and receiving interfaces you can potentially use Art-Net, which can transmit through your ethernet adapter. You would no longer need a MAX485 chip, but you would need an Ethernet Shield for your Arduino. There is Arduino based Art-Net work at http://vvvv.org/contribution/artnet-arduino-set-v2
So, to summarize, DMX is a method of sending up to 512 addresses of intensity (0-255) from your computer to your Arduino. The MAX485 enables your Arduino to read the DMX signal. The code you use in your Arduino will enable you to assign each address to an individual pixel, or pin using pwm, spi, or whatever control method you desire.