Windows Interface: ClientBy Mark David [21030170+]
As you may be able to tell, I've gotten very enthused about something here. What it is, in this case, is skinnable software. For those not familiar with the concept, it's become popular primarily as a result of the skinning and usage of WinAmp, an ubiquitous Windows desktop player for MP3 music. The concept is that the software functionality is separated from the visual look of the application, allowing anyone to customize it by supplying their own bitmaps for panels, sliders, cursors, etc. I got totally hooked on the concept, and decided to make the Chroma interface completely skinnable; I've even extended WinAmp's "skinnability" to give the skinner complete control over the size and location of the synthesizer's controls. Above is a picture of the skin that I created which has as a theme of tumbled stones and gems on Persian rugs. But you or anyone will be able to make the Chroma interface look like whatever you want: fish in an aquarium, beach balls on the surf, whatever. To re-skin the interface, you supply your own bitmaps and modify some simple text files which specify the elements of the visual interface.
Status-wise, the client application is doing well. The above is a picture of the patch programming environment. I'm a couple of days from having that fully functional (except for the problem of drawing wires - I've got them logically represented in the code, but haven't figured out how to represent them and render them visually, yet). Then I'll begin work on the studio editing environment, within which you can record, playback, mix and edit Chroma performances. This will be a moderately smart piece of software, which will allocate patches among the instruments on multiple Chromas on the fly, and free the musician from having to know or care which patch is in which program number on which Chroma when. It will also represent the performance visually in some sort of modified musical format, though I don't know if that will be as thoroughly skinnable as the patch programming environment.