If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Quntal Interpolation (Next to Cubic)
7 posts
• Page 1 of 1
Quntal Interpolation (Next to Cubic)
Hello!
I just did a Quintal Interpolation.
It uses 6 Poits to interpolate between the 2st and 3rd point.
I know it is not needed but verry interesting if you do not need a Realtime DSP Process.
It is sounding verry interesting by converting wave files from 44100Hz/16Bit to Remasterlevel at leas 96Hz/24Bit.
But it needs heavy CPU!!!
It is just an Example
Best Regards
C.Hackl
I just did a Quintal Interpolation.
It uses 6 Poits to interpolate between the 2st and 3rd point.
I know it is not needed but verry interesting if you do not need a Realtime DSP Process.
It is sounding verry interesting by converting wave files from 44100Hz/16Bit to Remasterlevel at leas 96Hz/24Bit.
But it needs heavy CPU!!!
It is just an Example
Best Regards
C.Hackl
- Attachments
-
- quintal Interpolate.fsm
- Quintal Interpolation by C.Hackl 2012
- (54.78 KiB) Downloaded 1466 times
100% accuracy is the guarantee to your success. The value alters if you combine it with musical creativity.
-
chackl - Posts: 233
- Joined: Tue Aug 17, 2010 8:46 pm
- Location: Austria / Salzburg
Re: Quntal Interpolation (Next to Cubic)
This is an excellent example, thanks.
Being the proud new owner of a Focusrite Forte USB interface, I would be interested in using these kind of interpolation techniques for upsampling and streaming CD-tracks to 192kHz/24bit, instead of resorting to a proprietary solution like XXHighEnd audio player (or sample conversion with e.g. r8brain PRO).
Question: how does one have to interpret the last point in the draw wave graph compared to the interpolated graph, i.e. they seem to be far off, while the second last point is still positioned 'exactly right'? The stock cubic interpolation resampler shows similar behaviour (not sure about Smoothing on/off).
Being the proud new owner of a Focusrite Forte USB interface, I would be interested in using these kind of interpolation techniques for upsampling and streaming CD-tracks to 192kHz/24bit, instead of resorting to a proprietary solution like XXHighEnd audio player (or sample conversion with e.g. r8brain PRO).
Question: how does one have to interpret the last point in the draw wave graph compared to the interpolated graph, i.e. they seem to be far off, while the second last point is still positioned 'exactly right'? The stock cubic interpolation resampler shows similar behaviour (not sure about Smoothing on/off).
T A D - since 2005
-
TheAudiophileDutchman - Posts: 46
- Joined: Tue Jul 13, 2010 1:36 pm
- Location: Apeldoorn, The Netherlands
Re: Quntal Interpolation (Next to Cubic)
Nice work, Chakl - a very smooth looking output, I look forward to trying this on some 'real world' data.
This is common to any form of interpolation that uses more than the two point either side of the interpolation point - at the start and end, there is always a small section where the interpolation requires points beyond the ends of the original data. The results depend on what strategy you use to 'pad' the array with extra points to avoid 'out-of-range' errors - either just zero's, or trying to 'guess' the continuation of the data. In this case of a looped sample, you don't have to worry about this, as you can 'wrap around' points from the opposite end of the array.
TheAudiophileDutchman wrote:Question: how does one have to interpret the last point in the draw wave graph compared to the interpolated graph, i.e. they seem to be far off, while the second last point is still positioned 'exactly right'? The stock cubic interpolation resampler shows similar behaviour (not sure about Smoothing on/off).
This is common to any form of interpolation that uses more than the two point either side of the interpolation point - at the start and end, there is always a small section where the interpolation requires points beyond the ends of the original data. The results depend on what strategy you use to 'pad' the array with extra points to avoid 'out-of-range' errors - either just zero's, or trying to 'guess' the continuation of the data. In this case of a looped sample, you don't have to worry about this, as you can 'wrap around' points from the opposite end of the array.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Quntal Interpolation (Next to Cubic)
well i will explain it like this:
y1=array[i-2];
y2=array[i-1];
y3=array[i];
y4=array[i+1];
y5=array[i+2];
y6=array[i+3];
On Smoothed Ends = False
if i = 0 then
y1 = y2 = y3 =array[i];
If i = Maximum i
y3 = y4 = y5 = y6 =array[i-max];
And if ens sommth is on
if i = 0 then
y1, y2 will get the last 2 Point of the array
If i = Maximum i
y4,y5,y6 will get the first 3 Points of the array
y1=array[i-2];
y2=array[i-1];
y3=array[i];
y4=array[i+1];
y5=array[i+2];
y6=array[i+3];
On Smoothed Ends = False
if i = 0 then
y1 = y2 = y3 =array[i];
If i = Maximum i
y3 = y4 = y5 = y6 =array[i-max];
And if ens sommth is on
if i = 0 then
y1, y2 will get the last 2 Point of the array
If i = Maximum i
y4,y5,y6 will get the first 3 Points of the array
100% accuracy is the guarantee to your success. The value alters if you combine it with musical creativity.
-
chackl - Posts: 233
- Joined: Tue Aug 17, 2010 8:46 pm
- Location: Austria / Salzburg
Fast 6p 5o Upsampling Interpolation
Allright then, being back in town and still chasing the idea of efficient realtime upsampling of CD tracks.
Focussing on upsampling speed and 32-bit accuracy (for now), let's discard array calculations as much as possible (and forget about looping, but retain smooth ends), vastly reduce the number of mul (div!) & add operations and CPU-hungry sample read components (in case of streaming code).
Here's an early prototype 44.1 -> 192 kHz mono upsampler. The main algorithm has also been transferred to streaming code (which appears to be quite easy to do from Ruby, albeit untested):
Focussing on upsampling speed and 32-bit accuracy (for now), let's discard array calculations as much as possible (and forget about looping, but retain smooth ends), vastly reduce the number of mul (div!) & add operations and CPU-hungry sample read components (in case of streaming code).
Here's an early prototype 44.1 -> 192 kHz mono upsampler. The main algorithm has also been transferred to streaming code (which appears to be quite easy to do from Ruby, albeit untested):
T A D - since 2005
-
TheAudiophileDutchman - Posts: 46
- Joined: Tue Jul 13, 2010 1:36 pm
- Location: Apeldoorn, The Netherlands
Re: Quntal Interpolation (Next to Cubic)
Looking nice - and I like the 'Ruby Algorithm Prototyping' idea too, much easier to de-bug than code/assembly - I might just have to steal that trick!
That Ruby version might be well worth hanging on to as well - unlike code, Ruby uses all double-precision floats, for more accurate results. Don't have the kit to tell how audible the difference would be, but if going up to those high sample rates, might as well keep as much resolution as possible (only for cases where the slower off-line processing time is not a problem, of course). With Ruby's array iterating and file handling capabilities it could turn into quite a handy little batch processor for wave files maybe?
That Ruby version might be well worth hanging on to as well - unlike code, Ruby uses all double-precision floats, for more accurate results. Don't have the kit to tell how audible the difference would be, but if going up to those high sample rates, might as well keep as much resolution as possible (only for cases where the slower off-line processing time is not a problem, of course). With Ruby's array iterating and file handling capabilities it could turn into quite a handy little batch processor for wave files maybe?
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Quntal Interpolation (Next to Cubic)
Thanks, I take that as a compliment: "Good Ruby artists copy, great Ruby artists steal."trogluddite wrote:Looking nice - and I like the 'Ruby Algorithm Prototyping' idea too, much easier to de-bug than code/assembly - I might just have to steal that trick!
Actually, I'm already anticipating on Malc's promise of better 64-bit streaming support in FS 3.trogluddite wrote:...unlike code, Ruby uses all double-precision floats, for more accurate results...
T A D - since 2005
-
TheAudiophileDutchman - Posts: 46
- Joined: Tue Jul 13, 2010 1:36 pm
- Location: Apeldoorn, The Netherlands
7 posts
• Page 1 of 1
Who is online
Users browsing this forum: Google [Bot] and 53 guests