Time warping cross fade?

You name it!
Post Reply
Posts: 2
Joined: Wed Nov 03, 2010 3:50 am

Time warping cross fade?

Post by dm9876 » Fri Apr 29, 2011 8:23 am

I have a feature request or enquiry about functionality.. but first need to describe the application and the current approach.

its a multi-dimensional hi-hat instrument, for real time playback with edrum controller with variable controller on the high hat pedal.

layers samples for velocity..but is stacked also for varying levels of openess... controlled by the foot pedal (cc04)

these 'openess' samples are typically cross faded using cc04..

ok now there are only limited sample libraries / vsti's that sample more than 2 or 3 levels of openess.

there are even fewer that seem to cross fade between them.. but that stands as probably the most sophisticated approach I have seen for a Hi-hat virtual instrument...

(someone correct me if there are current better approaches)

Now the reason to do it is for realism say you strike the hh when open then progressively close it.. the real instrument will change in sound as the top and bottom cymbles start to clash etc.. until they stop..

the cross fade helps to emulate this... but it has a weakness that makes it less playable than the real thing in some cases.

if you trigger a full open sample...wait a little bit and then start to close.... you will cross fade into nothing..because the samples are shorter for the more closed sounds. That would not happen in real life as the cymbal was still ringing and has energy left to make sound when they come close.

now usually the virtual instrument would have a separate 'chick' sound which sounds when the pedal hits the bottom (triggered by seperate midi note).. but it does not help with the progressively closing situation..

vise-versa with the cross fade if you strike when closed (or near closed) the sample ends quickly.. but if you open the pedal you cross fade into the second half of the open sample...

in real life the cymbal has almost no energy in this case (unless you open very very quickly after strike).. so in real life you would get nearly no sound (a faint one)

ok so what I am after is this:

lets take one velocity layer as an example so we can just consider the cross fading (since the cross fading is the only part that can change dynamically after it is triggered)

so as soon as there is a need for a different sample to be crossfaded into the mix.. it should begin to sound from the point of the % of progress through the playing of the current sample (or the one most prominent in the current cross fade mix)

so the "play pointer" into the samples that are currently not being sounded could be continuously updated to match the % of the currently playing sample... then as

soon as the sample is 'in the mix' ie needing to make some sound heard, then that pointer could stop being updated and that sample could playback in real time..


Is it possible in linux sampler as it stands or in any other existing sampler or what would be the effort to implement this. What other applications are there for such a feature?

Is it clear what I mean? I could make some images to illustrate this better

Dean Murray

Post Reply