I've been experimenting with native USB ports on Arduinos. That is, I do not use an ftdi serial-usb chip, but implement the USB directly using three digital pins. The Arduino appears as a device on the host's USB and can be accessed directly.
I have been using libusb from C on a linux box for testing because it is the simplest environment that still gives me 100% control over the bus transactions. I suspect most Arduino users would like a higher level interface.
Since I have no experience with Flash, PD, processing, vvvv, or any of the other fancy tools, I will ask here...
What sort of a USB interface is reachable from these tools? Can they easily use an external library, like libusb? Can they easily use a USB device that conforms to the HID class, if so can they set data as well as read it? Would they be able to access it easily with a little helper program?
I would like to avoid the CDC serial interface. It is possible to make a virtual serial port and I presume all of the tools could access it, but it is not possible by the specification to implement CDC on a low speed device, though it appears that many OSes will actually work with a bit of a hack. In any event, that loses much of the protocol gains that are made by going to a structured, message based protocol like USB in the first place.
(For those interested: The code still has to run with a 12MHz crystal. I believe I can make it work at 16MHz but haven't run that experiment yet. I also believe I can make it not have the pins hard coded in the library, certainly at 16MHz it will have enough extra cycles. I use three pins in order to have a software disconnect function. You could get by with two, but it is much nicer during development to have the device disconnect and reconnect as part of booting. A USB bootloader will not fit, but I might be able to work something out by making the USB code live in a fixed area of non-boot memory and be shared by the bootloader and the sketch.)