Emar - it used to work like that, when I was doing DSP-based volume control. Obviously that's ideal, but the DSP-based volume was causing crashes aplenty. The solution for stability was to control volume by hijacking the player's calculation of module channel/note volume (between 0 and 64) and scaling everything. Sadly, because the buffer-display (it's not true spectrum analysis, it's actually just a total cheat - drawing the contents of the audio buffer ) can only read from the post-mix output, it always sees things *after* that volume scaling has been done.
I'm trying to come up with a solution for that. Maybe I can duplicate all the channels in the module and read volumes off them, but not send them to the mixing engine...though I'm already duplicating channels for ultra top-secret 'jam' channels
The coloured blocks at the bottom of each deck, while pretty-looking, were intended as a very poor substitute for the buffer-display's visual feedback: you can usually see kick and snare hits, especially in less densely populated mods' patterns. Not great, I know...
boomlinde - that's another thing I sacrificed in order to use a GUI library that wouldn't cause me heavy pain and would let me chop out a thousand lines of my own confusing code I did try this out last year in my own GUI, but found that, depending on screen-size and various other factors, it wasn't very satisfactory in all situations.
Another option would be pickup mode, like many hardware synths use for knobs. The click is registered but the control doesn't 'catch' until the mouse position reaches the current value. If I did that, I'd have to make it an option, as not everyone would like it.
By the way, for performance scenarios, I would suggest that MIDI is the ideal means of controlling ChipdiscoDJ, particularly the crossfader. And that's really easy for me to do pickup mode in - most of the controls already have it (though I'll check).
I agree with you about the speed/tempo values, however it still wouldn't be a solution for all modules. Well, I don't need to tell you how many composers down the years have experimented fucking around with speed/bpm values This is tied in with another problem (or feature, you decide): I have an option for enabling or disabling tempo override, which is supposed to force your on-the-fly BPM changes upon a module even if that module has its initial BPM command entered on row 0 of every single pattern. I've played around a lot, but all it proves is that if you want to do serious performance DJing in Chipdisco, you need to know the mods that you're putting in; perhaps even to the point of editing them yourself beforehand. Not ideal, but at least it's *possible*, unlike with mp3s, and MilkyTracker/etc have lots of good find&replace functions now.
Anyway, I'm thinking about these issues and trying to figure out solutions. More updates soon!