From: Tim E. R. <ter...@ro...> - 2013-04-06 02:11:13
|
Hey gang, still here. Slow going here on the audio engine mods but coming along and some side benefits done like Duplicate Tracks now copies synth tracks, and copies plugins, and copies controllers more carefully, and the fixes I mentioned on LAD. Relax, I told RJ I'm not changing the strips at all. Instead specialized panning and such should be done with plugins (I might just have to make one). So your mixes will still sound the same - for now. What I do have so far, is sample accurate track controllers (vol, pan) *and* slew rate limiting on them. (IIRC around 0.02dB per sample, or around 200 samples for full vol swing from off to +10dB). I'll try to put a user on/off switch and volume rate setting. So the volume and pan graphs are virtually noiseless. The actual GUI controls are also quiet now, but still a tad noisy 'cause it's purely the limiter that kicks in when GUI controls change and our GUI faders go in 1dB *steps* or higher. For all sample accurate controllers, I'm fixing a bottleneck that Florian pointed out months ago about querying the controllers once every min-period. Instead I'm using local interpolation structures so the controllers are queried only whenever the structures need to change - best-case only once per period now, another speed boost by splitting up the controller class into "asking of interpolate points" and a fast "do interpolate". Another speed boost by using an iterator to step through controllers. Aiming for efficiency here. Gonna need it since I had to trade-off some speed for some of these new audio engine features :) It occurred to me that I must add this slew rate limiting to the actual Mute and Solo and Off and Pre buttons - anything that might abruptly change the volume or source material. In effect, each of these buttons must become like a smooth controller instead of a hard-coded switch. Big task, nice, maybe later. Anyway I'm trying to open the door to some kind of smooth fader/cross-fader graphs (separate from the volume graphs). I note that there is an unused audio controller (that no user knows about) which is called the 'Mute' controller. Oddly enough no one has ever bothered to link the actual strip mute buttons to this Mute controller. It occurred to me that we could almost use this Mute controller for fading - technically that's what fade does, muting on/off. But being a binary on/off controller, it would need to respect some sort of slew rate limiting and the true graph would have to be drawn. And how to support user-variable slopes. So possibly the solution is yet another controller - a smooth one - for the fades. With pre-set initial slopes (how?), alterable after that just like any other controller. But then there's cross-fading. Which could essentially be implemented as 'linked' controllers with modes like 'mirror', 'invert' and so on. Oddly enough I'm pondering linked/unlinked controllers for our multiple-instance rack plugins, and I mentioned linked controllers to someone in the forum. And I pondered linked controllers for an alternate form of panning instead of a knob. Hmm... yep very useful. Dunno, still thinking on these faders and controllers. ----- Yeesh, me talk way too much, just wanted to say... Robert you're on a roll. Super work man. The SimpleDrums thing is so cool. I have a suggestion. I think it would be simple to replace the off-line resampler code with RubberBand's off-line functions or something else instead of just SRC. What was that nice one Flo mentioned? This way you could add one more switch to the SD strips, named: 'Keep length'. So pitch would not affect length. Or have separate 'Pitch' and 'Length' controls - easy, interesting results. By carefully setting their pitch and length controls I think these shifters can also replace SRC to do the resampling job on non-MusE sample rate files. For now I would look at maybe using a dialog or something instead of knobs. It can take a a while for a large sample to be processed off-line. Wow, we're treading right into territory Florian and I were covering. We could even do the shifting realtime not off-line if we get our infrastructure right. All this stuff all kinda blends together. Anyway thanks. Don'cha just love when ideas materialize into product? One can stare at a problem for months before a grand solution appears and the energy and path to actually see it through suddenly magically happens, as if it could never happen before and might not happen after this moment... Coding Karma... Tim. |