I think you are asking the wrong question. DMX is just a communication standard initially developed for the entertainment lighting industry (initially theater). It doesn't control anything directly itself, it's just a way to send messages to receiving devices that then act on that data. I think what you want is a device that receives DMX and translates that information to control your LEDs. You could use an Arduino with a DMX shield. There is some great DMX receiving code at A Arduino Library for sending and receiving DMX. It is robust, and he also has information about a DMX shield on his site, though you can get those easily on ebay, amazon, or I have even seen them at several Radio Shacks across the country. I have successfully built several arduino based boards that receive DMX and can output to SPI (to control pwm chips like ws2801 for instance). The largest I have done so far is 64 rgb leds (3 per rgb led so 192 control channels). It didn't seem to strain the Arduino, so I'm sure it can be scaled up. The problem is the tree you reference has 350 RGB LEDs. Each RGB led needs 3 DMX control channels (one for each color), but you can only have 512 channels on a DMX universe. So for each group of 512 leds you would need an additional receiver (ie arduino) and a transmitter that is capable of sending multiple universes. That tree alone would be 26 channels into a third universe. You could scale it down, but it sounds like you also have to account for other DMX receiving devices on your universe. In this scenario you would need to take the patterns you want and put them on the transmitting device, which would interpret which light should be on when and send that data via DMX. I haven't used many computer based lighting programs, but most do have some sort of effects engine that can help to drive some of it, the rest can be done with cue lists or macros.
Another option is to not control the LEDs directly from your DMX source, but to have patterns preprogrammed into your Arduino (or other receiving device) and trigger them with received DMX data, maybe a couple of channels that can signal things like which pattern, speed, overall intensity. This pattern would be simplest as you would just need to use the code as is, but maybe add a case statement and replace some variables with data received via DMX.
The biggest struggles to be aware of is that DMX is a fairly timing specific protocol, it requires a lot from the interrupts on the Arduino and completely restricts your ability to use the UART for anything else (even debugging) which means you can't simultaneously receive DMX and have output directed to a computer, or really use the USB at all. It can also be difficult to run complex code because it will be interrupted for every DMX bit received, so difficult calculations may take noticeably longer. Some implementations of DMX on Arduino can even mess up the accuracy of millis() and micros(), though the code I mentioned above seems to survive this.
I hope this is helpful information. DMX is a tricky protocol to DIY, but it can be done with a little patience. If you have access to a lighting desk like and ETC Ion, Eos, Gio, Ti or GrandMA, or other desk with a built in media server, then you may be able to get the multi universe data you need sent out, though you would still need a new receiver for each 512 addresses. (You didn't say what kind of live show, is this home use, or professional entertainment industry with access to high end gear).
If you have any additional information about your desired setup that can help narrow down your specific needs I can give my 2 cents on how it can be implemented. I have done a number of LED projects in professional theaters in the New York area, as well as for personal projects and am always looking to help solve a new challenge.
David