Well, by "Melodyne-inspired", I'm referring to the way that Melodyne visualizes the wave data, the big difference being we won't really have the same kind of time dimension. The same way they do it would work great for a sampler. (By the way, did you know Peter Neubäcker is an ex-Csound guy?) Of course, I'm all for integrating Rubber Band into a sampler.
So, each lane represents the note, which may or may not contain one or more wave files, as it all depends on what the sound designer is up to. There presumably has to be at least one wave somewhere.
Hey, this just brought up some interesting ideas.
Okay, imagine what I've outlined so far. Now, here are some feature ideas, some interface level, and some engine level:
1) Auto-determination of the frequency of the imported wave (select a folder full of waves, and BANG! Automapped!
) I'm not sure Rubber Band can do this, but I'm sure something out there can.
2) Display wave data in every note lane, even if there are fewer waves than lanes (ie, if we're pitch-shifting waves up and down). For the note lanes that do not have their own wave and are being shifted to from above and/or below, draw the waveforms a different color or style to indicate.
3) Each lane can consist of multiple layers, each containing a wave file.
I will now define a "slot" as being a single layer of a single lane. A slot can contain wave data, or it can have wave data shifted into it. Each slot has its own set of parameters which can be controlled and modulated, whether through some standard system or the fancier Omnibus system. (Thanks for that name, Anders!)
I use the term wave data because I don't want it to be limited to a single wave. However, multiple waves can exist in a single slot only serially (say that nine times fast!). In other words, you can load multiple waves into a slot, but only one after another.
This engine plus Omnibus should allow for our microsample synthesis kind of stuff. This could also allow for some nice beat-slicing functionality. The control of the Omnibus system is where a canvas-based network editor would come in handy. The key, of course, is for the engine to expose all of its parameters to the outside.
All of the data point between each slot (whether across lanes or layers) can be interpolated in some fashion. This would allow for things like velocity and positional cross-fading, as well as portamento effects. Maybe this is something that Omnibus could handle. I'll have to think about that some more. Also, keep in mind that the layers need not be just velocity layers, but any sort of division per note that the sound design calls for.
Anyway, from an interface standpoint, it could be made easy to switch between the lanes view and the layers-per-lane view. In all cases, you'll instantly see where all the waves are and where they're being shifted to.
So how does it all break down?
In the final analysis, the engine doesn't really need anything more than:
A) Streaming playback of a sample
B) Control over the start point of playback
C) Pitch and time shift capability
D) All of these with appropriate parameters exposed
Everything else can be handled by Omnibus and other middleware. The interface would then serve as way to control and visualize everything.
Sorry for the stream of consciousness. Hopefully, you can make sense of my ramblings.