Re: [linux-audio-dev] stream buffering on EVO & pitchbend .... opinions ?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] stream buffering on EVO & pitchbend .... opinions ?
From: Benno Senoner (sbenno_AT_gardena.net)
Date: Wed Sep 20 2000 - 17:13:47 EEST


On Wed, 20 Sep 2000, Scott McNab wrote:
> Juhana Sadeharju wrote:
> >
> > Hello. The sampler could support pre-resampled versions of the sounds.
> > The sampler frontend could have operations to generate them.
>
> This is the same concept of mip-mapping of textures in computer graphics.
>
> If you 'mip-mapped' audio samples by generating appropriate filtered
> duplicate samples you should be able to pitch-bend up by literally any
> number of octaves without any additional load on the disk and without
> any audiable artifacts.

but there is a problem:
since you stream the tracks from disk , you need the data ready for
the moment where the user for example suddenly pitchbends the sample up +24
semitones.
That mean if we assume one sample for each octave, if we want to give the user
the possiblity to pitchbend up let's say 36 semitones, we have to run 3 streams
simultaneously for each voice.
And that is not very useful because you quicky max out the polyphony
(disk bandwidth and DSP CPU load).
It would be a non issue in the case of RAM-based samplers, since
you do not need to "run" the voices all the time, but only need to switch the
wavetable on the fly when the pitch increases.
This is unfortunately not possible in the disk case because of the
disk latencies/filesystem latencies where you have to prebuffer at
least 0.5-1 sec in order to get reliable streaming.

The solution you proposed is good if let's say one wants a single sample
mapped on the entire keyboard while the pitchbend range is limited to +12
semitones.
But to increase the pitchbend range , this approach is not very useful since
it basically requires you to run N streams for each voice, in order to
get a N*12 semitones upwards pitchbend range.
Ok, the disk bandwidth is lower that when wanting to play at +48
semitones while using a single track:
what would need a 16x track playback speed, while in the above case
you need 4 tracks per voice which is a 4x playback speed.
But 4x is simply too much on current HW because you get only a fraction
of the original voices.
Another alternative would be to keep the samples which require this high
pitch-bend range in RAM.

Thoughts ?

Benno.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Sep 20 2000 - 16:19:14 EEST