Re: [PD] better tabread4~

2008-07-23 Thread Charles Henry
On Sat, Jul 19, 2008 at 10:33 PM, Matt Barber [EMAIL PROTECTED] wrote: Right -- wouldn't this be equivalent to doing the (defined) interpolation and the anti-aliasing as a filter in one step? You're modulating the interpolating function to include the effects of the appropriate anti-aliasing

Re: [PD] better tabread4~

2008-07-19 Thread Charles Henry
Sorry it took me so long to make something usable out of that mess. I played around with factoring but it seems like it got me nowhere, so I finally just multiplied out all the polynomials to get the usual form. (given input points g[-2] g[-1] g[0] g[1] g[2] g[3] a5 = 3/64*g[-2] + 13/64*g[-1]

Re: [PD] better tabread4~

2008-07-19 Thread Matt Barber
Chuck, Thanks again for this. Quick question: out of curiosity, how much would this differ from the one which has the standard derivative approximations? Also, if one wanted to put together the one with the standard approximations, would you use the best approximations available for each

Re: [PD] better tabread4~

2008-07-19 Thread Matt Barber
The interpolation function is a filter. There would be no need to have an anti-aliasing filter and and interpolation function--there's just the one function. We use the fast interpolating function at speeds = 1. But we need a general interpolation function as a function of speed that

Re: [PD] better tabread4~

2008-07-11 Thread Charles Henry
More tables and math... Let me go ahead and re-print the previous table of fourier transforms and add some more functions to it, that will simplify things. remember, these functions are non-zero on the interval from [-a,a] and zero, elsewhere f(t) | F(w) 1 | 2/w*sin(aw) |t||

Re: [PD] better tabread4~

2008-07-09 Thread cyrille henry
: Re: [PD] better tabread4~ To: Charles Henry [EMAIL PROTECTED] Cc: pd-list@iem.at Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1; format=flowed hello Chuck, i tested this. (and commited) i think tabread6c~ is a bit better than tabread4c~. but differences are more

Re: [PD] better tabread4~

2008-07-09 Thread Matt Barber
On Wed, Jul 9, 2008 at 4:39 AM, cyrille henry [EMAIL PROTECTED] wrote: Matt Barber a écrit : Cyrille, Could you try this optimization for the tabread6c~ I threw together? It uses the same general notation as the tab4c~ suite: t_sample a3plusa4plusa5 =

Re: [PD] better tabread4~

2008-07-08 Thread cyrille henry
hello Chuck, i tested this. (and commited) i think tabread6c~ is a bit better than tabread4c~. but differences are more smaller thx Cyrille Charles Henry a écrit : On Sat, Jun 28, 2008 at 6:43 AM, cyrille henry [EMAIL PROTECTED] wrote: ok, i'll try that. but i don't think adjusting the

Re: [PD] better tabread4~

2008-07-08 Thread Charles Henry
Hey, Cyrille, I kind of thought so... we are quickly running into the law of diminishing returns. I was up late, last night, working on the analysis some more. I think I can have another 6-point version with better characteristics tonight. Chuck On Tue, Jul 8, 2008 at 11:35 AM, cyrille henry

Re: [PD] better tabread4~

2008-07-08 Thread cyrille henry
ok, cool now, it would also be nice to have a good band limited table reader... cyrille Charles Henry a écrit : Hey, Cyrille, I kind of thought so... we are quickly running into the law of diminishing returns. I was up late, last night, working on the analysis some more. I think I can

Re: [PD] better tabread4~

2008-07-08 Thread Matt Barber
:35:51 +0200 From: cyrille henry [EMAIL PROTECTED] Subject: Re: [PD] better tabread4~ To: Charles Henry [EMAIL PROTECTED] Cc: pd-list@iem.at Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1; format=flowed hello Chuck, i tested this. (and commited) i think tabread6c

Re: [PD] better tabread4~

2008-07-05 Thread Charles Henry
The reason why the spectrum is necessary for the interpolator is not exactly obvious or simple. It has to do with manipulations in the time domain and what they do, in the frequency domain. The basis of sampling starts with the following function, a dirac comb g(t)= sum(k=-inf:inf,

Re: [PD] better tabread4~

2008-07-05 Thread Charles Henry
On Sat, Jul 5, 2008 at 1:42 PM, Matt Barber [EMAIL PROTECTED] wrote: Chuck, thanks for the explanation! One question about this -- would working back from the spectrum possibly mean that you wouldn't necessarily match any of the points (would this mean you could say the impulse response would

Re: [PD] better tabread4~

2008-07-03 Thread Mathieu Bouchard
On Wed, 2 Jul 2008, Matt Barber wrote: Seriously though, I tend to agree with you -- this should explain my unease about searching for every polynomial possibility with a certain number of points. I want to help out as much as I can, but I just don't want to be the one to close a door on an

Re: [PD] better tabread4~

2008-07-03 Thread Matt Barber
On the other hand, doesn't [tabread4~]'s Lagrange interpolator have a continuous 2nd derivative while the [tabread4c~] Hermite one does not? No. A Lagrange interpolator on N points is a polynomial of degree N-1, and so its Nth derivative is a flat zero function without holes, and so it is

Re: [PD] better tabread4~

2008-07-03 Thread Mathieu Bouchard
On Thu, 3 Jul 2008, Matt Barber wrote: I'm with you on the general piecewise Lagrange not being C1, but I don't think it follows that all other orders are discontinuous -- can't they alternate? No. Any derivative inherits all discontinuities from the original function. It's a basic fact of

Re: [PD] better tabread4~

2008-07-03 Thread Roman Haefeli
On Thu, 2008-07-03 at 04:01 -0400, Matt Barber wrote: On the other hand, doesn't [tabread4~]'s Lagrange interpolator have a continuous 2nd derivative while the [tabread4c~] Hermite one does not? No. A Lagrange interpolator on N points is a polynomial of degree N-1, and so its Nth

Re: [PD] better tabread4~

2008-07-03 Thread Charles Henry
On Wed, Jul 2, 2008 at 1:51 PM, Matt Barber [EMAIL PROTECTED] wrote: Seriously though, I tend to agree with you -- this should explain my unease about searching for every polynomial possibility with a certain number of points. I want to help out as much as I can, but I just don't want to be

Re: [PD] better tabread4~

2008-07-02 Thread IOhannes m zmoelnig
Matt Barber wrote: Any ideas?? have a look at how iemlib's filters are implemented. most of them are really just abstractions wrapping the correct parameters for a generic implementation class for the non-maths among us. fgamsdr IOhannes ___

Re: [PD] better tabread4~

2008-07-02 Thread cyrille henry
a good place to find different kind of audio interpolator : http://www.student.oulu.fi/~oniemita/dsp/deip.pdf cyrille Matt Barber a écrit : For polynomial interpolation using four points, if the above is right there are 5 ways to do it, and they are ordered first by degree of polynomial,

Re: [PD] better tabread4~

2008-07-02 Thread Mathieu Bouchard
On Fri, 27 Jun 2008, Charles Henry wrote: I get what you're saying now. I had to read it a couple times through to see :) You're referring to piecewise cubic polynomials, right? Yes, I'm always assuming that piecewise-cubics is all that we'll need. We would wind up with an overdetermined

Re: [PD] better tabread4~

2008-07-02 Thread Mathieu Bouchard
On Sat, 28 Jun 2008, cyrille henry wrote: i personally consider that the interpolation should not add harmonics, and should remove non audible harmonics. i.e : a noise with freq from 20Hz to 20kHz shift 2 octave lower should result in a noise with freq from 20Hz to 5KHz. but it's ok for me if

Re: [PD] better tabread4~

2008-07-02 Thread Mathieu Bouchard
On Sat, 28 Jun 2008, Matt Barber wrote: a1 = 0.5f * (c - a); a3 = 0.5f * (d - a) + 1.5f * (b - c); a2 = a - b + a1 - a3; *out++ = ((a3 * frac + a2) * frac + a1) * frac + b; 10 +'s 6 *'s If you compute twice the value of a1,a2,a3 and later multiply by 0.5, you end up with a multiplication

Re: [PD] better tabread4~

2008-07-02 Thread Mathieu Bouchard
On Tue, 1 Jul 2008, Matt Barber wrote: Any ideas?? Just drop the idea of matching more than two sample points. It's what makes [tabread4~] miss the opportunity to be C1, but it's also in exchange for pretty much nothing. Well, maybe it's not nothing, but I still have no clue about what's

Re: [PD] better tabread4~

2008-07-02 Thread Matt Barber
On Wed, Jul 2, 2008 at 1:26 PM, Mathieu Bouchard [EMAIL PROTECTED] wrote: On Tue, 1 Jul 2008, Matt Barber wrote: Any ideas?? Just drop the idea of matching more than two sample points. It's what makes [tabread4~] miss the opportunity to be C1, but it's also in exchange for pretty much

Re: [PD] better tabread4~

2008-07-01 Thread IOhannes m zmoelnig
Mathieu Bouchard wrote: On Mon, 30 Jun 2008, IOhannes m zmoelnig wrote: i know for sure that starting Pd with -lib x -path y does something different than starting it with -path y -lib x. Does it? then why does -lib store its data in sys_externlist and that pd's main function looks up

Re: [PD] better tabread4~

2008-07-01 Thread Charles Henry
On Sat, Jun 28, 2008 at 6:43 AM, cyrille henry [EMAIL PROTECTED] wrote: ok, i'll try that. but i don't think adjusting the 2nd derivative is the best thing to do. for me, having a 6 point interpolation would be more important. I put together a 6-point interpolation formula and analyzed it.

Re: [PD] better tabread4~

2008-07-01 Thread Matt Barber
For polynomial interpolation using four points, if the above is right there are 5 ways to do it, and they are ordered first by degree of polynomial, then from fewest to greatest number of derivatives matched. I tend to agree with other posters who suggested that this kind of organization

Re: [PD] better tabread4~

2008-06-30 Thread IOhannes m zmoelnig
Mathieu Bouchard wrote: Contrary to myself in this case, Johannes is hardly joking. but he is winking, which might qualify as well. fgmasdr IOhannes ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -

Re: [PD] better tabread4~

2008-06-30 Thread Matt Barber
And now, for the sake of absurdity, here is the 7th-degree polynomial for four points which fixes x[-1], x[0], x[1], x[2], x'[0], x'[1], x''[0], and x''[1]. easy-to-read: /*a7 = 1.25f*(b-c)+(5.f/12.f)*(d-a);*/ a7 = 1.25f*(b-c)+0.417f*(d-a); a6 = 3.5f*a7; a5 = 2.1f*a7; a4 = a6; a3 =

Re: [PD] better tabread4~

2008-06-30 Thread Matt Barber
An idea on naming: It should be possible to exhaust all the different schemes for interpolations involving a given number of points, and it should be possible to do so hierarchically. For four points, e.g., we have: 3rd degree polynomial, setting: A) x[-1], x[0], x[1], x[2] (Pd's Lagrange

Re: [PD] better tabread4~

2008-06-30 Thread Frank Barknecht
Hallo, Matt Barber hat gesagt: // Matt Barber wrote: Cons first: 1) No matter what, the argument will be somewhat opaque, and some people (myself included) would probably have a hard time easily remembering what the arguments mean, which ones are available, and why. Actually this could be

Re: [PD] better tabread4~

2008-06-30 Thread IOhannes m zmoelnig
Frank Barknecht wrote: An alternative might be keyword arguments as used in [declare -lib x -path y] which is the same as [declare -path y -lib x] regardless of order. hmm, probably a bad example. even though i am not so intimate with [declare], i know for sure that starting Pd with -lib x

Re: [PD] better tabread4~

2008-06-30 Thread Frank Barknecht
Hallo, IOhannes m zmoelnig hat gesagt: // IOhannes m zmoelnig wrote: Frank Barknecht wrote: An alternative might be keyword arguments as used in [declare -lib x -path y] which is the same as [declare -path y -lib x] regardless of order. hmm, probably a bad example. even though i am

Re: [PD] better tabread4~

2008-06-30 Thread Mathieu Bouchard
On Mon, 30 Jun 2008, IOhannes m zmoelnig wrote: i know for sure that starting Pd with -lib x -path y does something different than starting it with -path y -lib x. Does it? then why does -lib store its data in sys_externlist and that pd's main function looks up the libs only after the

Re: [PD] better tabread4~

2008-06-29 Thread Mathieu Bouchard
On Sat, 28 Jun 2008, hard off wrote: legends of the pd-list gag department: Mattieu: We need a state-saving object class named [jesus]. Iohannes: this might be the reason why i prefer [lop~] over [cool_filter~] and Pd over reactor. Contrary to myself in this case, Johannes is hardly joking.

Re: [PD] better tabread4~

2008-06-29 Thread Charles Henry
okay, so here's what I came up with... For the original tabread4~, the impulse response and its Fourier Transform: g(t)=I[-2,2](t)*(-1/6*|t|^3 - 2*t^2 - 11/6*|t| + 1) + I[-1,1](t)*(2/3*|t|^3 - 2*t^2 + 4/3*|t|) G(w)= (1/w^2)*(1/3*cos(2w) - 4/3*cos(w) + 1) +

Re: [PD] better tabread4~

2008-06-28 Thread Matt Barber
Date: Fri, 27 Jun 2008 00:39:18 -0500 From: Charles Henry [EMAIL PROTECTED] Subject: Re: [PD] better tabread4~ To: Mathieu Bouchard [EMAIL PROTECTED], pd-list@iem.at Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1 On Thu, Jun 26, 2008 at 11:18 AM, Mathieu

Re: [PD] better tabread4~

2008-06-28 Thread cyrille henry
Matt Barber a écrit : ... The following bit of code might work to that end as a test, borrowing Cyrille's general notation: cminusb = c-b; aminusd = a-d; a0 = aminusd + 3.0 * cminusb; a1 = -2.5f * aminusd - 7.5f * cminusb; a2 = 1.5f * aminusd + 4.5f * cminusb; a3 = 0.5f * (c +

Re: [PD] better tabread4~

2008-06-28 Thread hard off
legends of the pd-list gag department: Mattieu: We need a state-saving object class named [jesus]. Iohannes: this might be the reason why i prefer [lop~] over [cool_filter~] and Pd over reactor. ___ Pd-list@iem.at mailing list UNSUBSCRIBE and

Re: [PD] better tabread4~

2008-06-28 Thread Matt Barber
On Sat, Jun 28, 2008 at 7:43 AM, cyrille henry [EMAIL PROTECTED] wrote: Matt Barber a écrit : ... The following bit of code might work to that end as a test, borrowing Cyrille's general notation: cminusb = c-b; aminusd = a-d; a0 = aminusd + 3.0 * cminusb; a1 = -2.5f * aminusd - 7.5f

Re: [PD] better tabread4~

2008-06-28 Thread Matt Barber
On Sat, Jun 28, 2008 at 7:43 AM, cyrille henry [EMAIL PROTECTED] wrote: Matt Barber a écrit : As this line of experimentation proceeds, it might make sense to develop a set of benchmarks both for quality and performance. One place to start might be to test the residual error between all of

Re: [PD] better tabread4~

2008-06-26 Thread Steffen Juul
On 25/06/2008, at 22.33, cyrille henry wrote: so finally, what should be the name of this object? is it ok if i remove the other test i made and to use only this one? I think you a free to name your code what you want. And also to delete it. I however think people would find it interesting

Re: [PD] better tabread4~

2008-06-26 Thread Mathieu Bouchard
On Thu, 26 Jun 2008, Damian Stewart wrote: one of the pushes to me finally learning Pd was discovering that there was an object called [moses], and it did what it said it did. We need a state-saving object class named [jesus]. _ _ __ ___ _ _ _

Re: [PD] better tabread4~

2008-06-26 Thread Mathieu Bouchard
On Tue, 24 Jun 2008, Charles Henry wrote: On Tue, Jun 24, 2008 at 9:24 PM, Mathieu Bouchard [EMAIL PROTECTED] wrote: I don't think that more than one alternative will be necessary. For 4-point table lookups that go through all the original points, I don't know why anyone would aim lower than a

Re: [PD] better tabread4~

2008-06-26 Thread Charles Henry
On Thu, Jun 26, 2008 at 11:18 AM, Mathieu Bouchard [EMAIL PROTECTED] wrote: I fucked up here. To get a C2 curve you may need to solve an equation system covering the whole table (!). Anyhow, a C1 system is fine enough for most uses, and it would be already much better than pd's. The thing is

Re: [PD] better tabread4~

2008-06-25 Thread Frank Barknecht
Hallo, IOhannes m zmoelnig hat gesagt: // IOhannes m zmoelnig wrote: bsoisoi wrote: I agree, being able to specify interpolation via an inlet message would be great (from my users perspective). hmm, i am not totally convinced (but actually don't care) Is anyone else besides me reminded

Re: [PD] better tabread4~

2008-06-25 Thread Matt Barber
] better tabread4~ To: Mathieu Bouchard [EMAIL PROTECTED], pd-list@iem.at Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1 On Tue, Jun 24, 2008 at 9:24 PM, Mathieu Bouchard [EMAIL PROTECTED] wrote: I don't think that more than one alternative

Re: [PD] better tabread4~

2008-06-25 Thread Charles Henry
On Wed, Jun 25, 2008 at 10:32 AM, Matt Barber [EMAIL PROTECTED] wrote: For what it's worth, here's supercollider's cubic interpolation function, which differs from csound's and Pd's, which I believe are equivalent: static float cubicinterp(float x, float y0, float y1, float y2, float y3) {

Re: [PD] better tabread4~

2008-06-25 Thread Matt Barber
PS -- also for what it's worth, a formula which seems equivalent to the one used in [tabread4c~] is described here: http://local.wasp.uwa.edu.au/~pbourke/other/interpolation/ it gives the following piece of code: double CubicInterpolate( double y0,double y1, double y2,double y3,

Re: [PD] better tabread4~

2008-06-25 Thread Charles Henry
That's a good reference. I was kind of interested in the hermite polynomials method, but I couldn't figure it out from tabread4h~.c. On a tangential note, this entry seems interesting: http://en.wikipedia.org/wiki/Hermite_polynomials#Hermite_Functions_as_Eigenfunctions_of_the_Fourier_Transform

Re: [PD] better tabread4~

2008-06-25 Thread cyrille henry
Charles Henry a écrit : On Wed, Jun 25, 2008 at 10:32 AM, Matt Barber [EMAIL PROTECTED] wrote: For what it's worth, here's supercollider's cubic interpolation function, which differs from csound's and Pd's, which I believe are equivalent: static float cubicinterp(float x, float y0, float

Re: [PD] better tabread4~

2008-06-25 Thread Damian Stewart
IOhannes m zmoelnig wrote: this might be the reason why i prefer [lop~] over [cool_filter~] and Pd over reactor. one of the pushes to me finally learning Pd was discovering that there was an object called [moses], and it did what it said it did.

Re: [PD] better tabread4~

2008-06-24 Thread Matt Barber
Hans-Christoph Steiner [EMAIL PROTECTED] wrote: Yes that'right, hmm I guess I knew that but said it in a woolly way Amend that to [tabread~] - play back at exactly the original rate [tabread4~] - play back at close to the

Re: [PD] better tabread4~

2008-06-24 Thread Frank Barknecht
Hallo, Matt Barber hat gesagt: // Matt Barber wrote: All of that said, I think something like the [sampler~] object proposed in another post would be much in keeping with the user-friendly filter objects like [bp~] (as opposed to [rpole~] and [rzero~] which are the real building block kinds

Re: [PD] better tabread4~

2008-06-24 Thread IOhannes m zmoelnig
Hans-Christoph Steiner wrote: tabread4~ isn't such a great name that it should be used for the new one. hmm, from my elitist point of view, [tabread4~] tells me something about how this object works (its reading a table using 4 point interpolation) rather than [tabread_tweak~] which tells

Re: [PD] better tabread4~

2008-06-24 Thread Hans-Christoph Steiner
On Jun 24, 2008, at 11:36 AM, IOhannes m zmoelnig wrote: Hans-Christoph Steiner wrote: tabread4~ isn't such a great name that it should be used for the new one. hmm, from my elitist point of view, [tabread4~] tells me something about how this object works (its reading a table using 4

Re: [PD] better tabread4~

2008-06-24 Thread Hans-Christoph Steiner
On Jun 24, 2008, at 8:22 AM, Matt Barber wrote: Hans-Christoph Steiner [EMAIL PROTECTED] wrote: Yes that'right, hmm I guess I knew that but said it in a woolly way Amend that to [tabread~] - play back at exactly the

Re: [PD] better tabread4~

2008-06-24 Thread IOhannes m zmoelnig
Hans-Christoph Steiner wrote: 4 stands for 4-point interpolation, that is true. But there are many algorithms for 4-point interpolation, as this thread as laid bare. tabread4~ could also describe something that reads 4 values and averages them, it could also be the 4th version of

Re: [PD] better tabread4~

2008-06-24 Thread Mathieu Bouchard
On Tue, 24 Jun 2008, IOhannes m zmoelnig wrote: true that 4 doesn't say much about the interpolation alogrithm and that is definitely a weakness in the current naming scheme. Well, I'd have expected 4 to be a cubic spline algorithm, because it uses a sliding window of 4 samples, polynomial

Re: [PD] better tabread4~

2008-06-24 Thread Mathieu Bouchard
On Tue, 24 Jun 2008, Matt Barber wrote: [tabread_tweak~] [tabread_transpose~] I really hate to be a fart on this one You should love it, if you intend it for the good of pd. 2) I tend to greatly prefer object names which say what the object does, not what it is for, This is one of the

Re: [PD] better tabread4~

2008-06-24 Thread Frank Barknecht
Hallo, Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote: 4 stands for 4-point interpolation, that is true. But there are many algorithms for 4-point interpolation, as this thread as laid bare. tabread4~ could also describe something that reads 4 values and averages

Re: [PD] better tabread4~

2008-06-24 Thread Steffen Juul
On 24/06/2008, at 12.17, Hans-Christoph Steiner wrote: Feel free to critique my suggestions, but it isn't really productive until there are suggestions for how to do it differently, rather than merely saying my suggestion is bad. Depends on what it is to be different from. If it is to be

Re: [PD] better tabread4~

2008-06-24 Thread Charles Henry
I disagree entirely with the trend of this discussion towards naming or methods to choose an interpolation method. We need not get ahead of ourselves, when we don't even know if it's a better tabread (like the name of this discussion). Let's make sure this thing is solid and finds good usage

Re: [PD] better tabread4~

2008-06-24 Thread IOhannes m zmoelnig
bsoisoi wrote: I agree, being able to specify interpolation via an inlet message would be great (from my users perspective). hmm, i am not totally convinced (but actually don't care) as this leads to bloated objects which can just do everything and you specify what they should do via

Re: [PD] better tabread4~

2008-06-24 Thread Brandon Zeeb
Excellent point, don't listen to me! :) From your example, I'm assuming you're hinting at including the ability in this abstraction to switch interpolation schemes by enabling/disabling sub-patched tabread~, tabread4~, and tabread4c~ objects via inlet messages or creation arguments. In

Re: [PD] better tabread4~

2008-06-24 Thread Mathieu Bouchard
On Wed, 25 Jun 2008, IOhannes m zmoelnig wrote: hmm, i am not totally convinced (but actually don't care) as this leads to bloated objects which can just do everything and you specify what they should do via parameters. why do we have objects then? Objects and classes also have other benefits

Re: [PD] better tabread4~

2008-06-24 Thread Mathieu Bouchard
On Tue, 24 Jun 2008, Charles Henry wrote: I see no problem with shortening the names, because it's not practical to name these things concisely, e.g. tabread4_continuous_first_derivative~ or tabread4_anti_aliasing~ continuous first derivative is listed as continuously differentiable in the

Re: [PD] better tabread4~

2008-06-23 Thread Hans-Christoph Steiner
On Jun 23, 2008, at 7:52 AM, Andy Farnell wrote: On Mon, 23 Jun 2008 00:50:44 -0400 (EDT) Mathieu Bouchard [EMAIL PROTECTED] wrote: On Mon, 16 Jun 2008, Andy Farnell wrote: with [tabread4~] being good enough for playing back files at their original rate, If you are going to playback at

Re: [PD] better tabread4~

2008-06-23 Thread Andy Farnell
On Mon, 23 Jun 2008 11:38:27 +0200 Hans-Christoph Steiner [EMAIL PROTECTED] wrote: Perhaps these could have more descriptive names, especially if there was a tabread, etc. library. Some quick ideas: [tabread_tweak~] [tabread_transpose~] Hard to argue against, but I'm such a fan of

Re: [PD] better tabread4~

2008-06-23 Thread Hans-Christoph Steiner
On Jun 23, 2008, at 1:01 PM, Andy Farnell wrote: On Mon, 23 Jun 2008 11:38:27 +0200 Hans-Christoph Steiner [EMAIL PROTECTED] wrote: Perhaps these could have more descriptive names, especially if there was a tabread, etc. library. Some quick ideas: [tabread_tweak~] [tabread_transpose~]

Re: [PD] better tabread4~

2008-06-23 Thread Andy Farnell
On Mon, 23 Jun 2008 13:18:11 +0200 Hans-Christoph Steiner [EMAIL PROTECTED] wrote: This compactness only really helps speed up the typing of code. It hinders the reading of code and the learning of code. Plus it means that us mere mortals, who cannot remember what c in [tabread4c~]

Re: [PD] better tabread4~

2008-06-23 Thread Roman Haefeli
On Mon, 2008-06-23 at 06:52 +0100, Andy Farnell wrote: Yes that'right, hmm I guess I knew that but said it in a woolly way Amend that to [tabread~] - play back at exactly the original rate [tabread4~] - play back at close to the orginal rate [tabread4c~] - play back with wider

Re: [PD] better tabread4~

2008-06-23 Thread Steffen Juul
On Mon, June 23, 2008 2:17 pm, Roman Haefeli wrote: the only good reason to keep [tabread4~] in pd is to keep backwards compatibility with patches that exploit [tabread4~]'s wierd behaviour, imo. Witch is a good enough reason to keep it, imho. I much prefer Frank's suggestion. I.e. using the

Re: [PD] better tabread4~

2008-06-23 Thread Roman Haefeli
On Mon, 2008-06-23 at 14:35 +0200, Steffen Juul wrote: On Mon, June 23, 2008 2:17 pm, Roman Haefeli wrote: the only good reason to keep [tabread4~] in pd is to keep backwards compatibility with patches that exploit [tabread4~]'s wierd behaviour, imo. Witch is a good enough reason to

Re: [PD] better tabread4~

2008-06-23 Thread cyrille henry
well, tabread4c~ is far from perfect, it has the same aliasing problem than tabread4~ and it create more distortion than tabread4~. (but in lower frequency). one told me that modern commercial audio software can use 32 points shannon interpolation.

Re: [PD] better tabread4~

2008-06-23 Thread Hans-Christoph Steiner
On Jun 23, 2008, at 2:58 PM, Roman Haefeli wrote: On Mon, 2008-06-23 at 14:35 +0200, Steffen Juul wrote: On Mon, June 23, 2008 2:17 pm, Roman Haefeli wrote: the only good reason to keep [tabread4~] in pd is to keep backwards compatibility with patches that exploit [tabread4~]'s wierd

Re: [PD] better tabread4~

2008-06-23 Thread Charles Henry
On Mon, Jun 23, 2008 at 8:23 AM, cyrille henry [EMAIL PROTECTED] wrote: well, tabread4c~ is far from perfect, it has the same aliasing problem than tabread4~ and it create more distortion than tabread4~. (but in lower frequency). Strictly speaking, these interpolations don't create distortion

Re: [PD] better tabread4~

2008-06-23 Thread Matt Barber
: Roman Haefeli [EMAIL PROTECTED] Subject: Re: [PD] better tabread4~ To: pd-list@iem.at Message-ID: [EMAIL PROTECTED] Content-Type: text/plain On Mon, 2008-06-23 at 06:52 +0100, Andy Farnell wrote: Yes that'right, hmm I guess I knew that but said it in a woolly way Amend that to [tabread

Re: [PD] better tabread4~

2008-06-22 Thread Mathieu Bouchard
On Mon, 16 Jun 2008, Andy Farnell wrote: with [tabread4~] being good enough for playing back files at their original rate, If you are going to playback at original rate, [tabread4] is both useless and 10 times slower than [tabread]. All that [tabread4] is good at, is playing back at

Re: [PD] better tabread4~

2008-06-22 Thread Andy Farnell
Yes that'right, hmm I guess I knew that but said it in a woolly way Amend that to [tabread~] - play back at exactly the original rate [tabread4~] - play back at close to the orginal rate [tabread4c~] - play back with wider transposition On Mon, 23 Jun 2008 00:50:44 -0400 (EDT) Mathieu

Re: [PD] better tabread4~

2008-06-20 Thread Mathieu Bouchard
On Wed, 11 Jun 2008, cyrille henry wrote: ok, if you don't wish to compile in order to test, here are 2 samples : http://www.chdh.free.fr/tab/tabosc4.wav http://www.chdh.free.fr/tab/tabosc4c.wav note that this is the worst case for tabread4~ : a very small table play at low frequency. I

Re: [PD] better tabread4~

2008-06-17 Thread Hans-Christoph Steiner
Sounds like tabread4c~ is very useful, but I would be hesistant to replace the built-in tabread4~ with it, since it would change the sound of existing pieces that use it. Perhaps there could be a library of different interpolating table reading functions? .hc On Jun 16, 2008, at 1:15 AM,

Re: [PD] better tabread4~

2008-06-17 Thread Frank Barknecht
Hallo, Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote: Sounds like tabread4c~ is very useful, but I would be hesistant to replace the built-in tabread4~ with it, since it would change the sound of existing pieces that use it. Perhaps there could be a library of

Re: [PD] better tabread4~

2008-06-17 Thread cyrille henry
Hans-Christoph Steiner a écrit : Sounds like tabread4c~ is very useful, but I would be hesistant to replace the built-in tabread4~ with it, since it would change the sound of existing pieces that use it. Perhaps there could be a library of different interpolating table reading

Re: [PD] better tabread4~

2008-06-17 Thread Charles Henry
On Tue, Jun 17, 2008 at 12:22 PM, cyrille henry [EMAIL PROTECTED] wrote: Hans-Christoph Steiner a écrit : Sounds like tabread4c~ is very useful, but I would be hesistant to replace the built-in tabread4~ with it, since it would change the sound of existing pieces that use it. Perhaps there

Re: [PD] better tabread4~

2008-06-16 Thread cyrille henry
hello, Charles Henry a écrit : On Tue, Jun 10, 2008 at 10:29 AM, cyrille henry [EMAIL PROTECTED] wrote: ... I'm having trouble compiling, due to the garray_getfloatwords symbol. Which version of Pd are you using? vanilia 0.41.4 I'd like to see the waveform and test it out. Here's my

Re: [PD] better tabread4~

2008-06-15 Thread Roman Haefeli
On Wed, 2008-06-11 at 12:52 +0100, Andy Farnell wrote: I'm really looking forward to giving this the 'ear test'. Maybe I'm growing old but differerences in interpolation methods are very subtle to my perception. What would be the hard case to test it? It would be when the signal is

Re: [PD] better tabread4~

2008-06-13 Thread Atwood, Robert C
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of cyrille henry Sent: 10 June 2008 16:30 To: Charles Henry Cc: pd-list@iem.at Subject: Re: [PD] better tabread4~ Charles Henry a écrit : On Tue, Jun 10, 2008 at 4:43 AM, cyrille henry

Re: [PD] better tabread4~

2008-06-11 Thread cyrille henry
ok, thanks for the answer. i understand what's in your book, but i found other references where cubic interpolation is used for a function that offer continuity of the 1st derivative. i can understand that tabread4~ minimise the error when the table is large (when you play it faster than the

Re: [PD] better tabread4~

2008-06-11 Thread Andy Farnell
I'm really looking forward to giving this the 'ear test'. Maybe I'm growing old but differerences in interpolation methods are very subtle to my perception. What would be the hard case to test it? It would be when the signal is greatly transposed, right? Remember when I tested your stab at

Re: [PD] better tabread4~

2008-06-11 Thread cyrille henry
ok, if you don't wish to compile in order to test, here are 2 samples : http://www.chdh.free.fr/tab/tabosc4.wav http://www.chdh.free.fr/tab/tabosc4c.wav note that this is the worst case for tabread4~ : a very small table play at low frequency. for bigger table, the difference can be very

Re: [PD] better tabread4~

2008-06-11 Thread Roman Haefeli
On Wed, 2008-06-11 at 00:05 +0200, cyrille henry wrote: i can understand that tabread4~ minimise the error when the table is large (when you play it faster than the original speed). but with a small table, or when you play it slower, the first derivative discontinuity create lot's of high

Re: [PD] better tabread4~

2008-06-11 Thread Miller Puckette
I'm interested in this too... I'm deep inside something else right now but will check this out when I can. cheers M On Wed, Jun 11, 2008 at 02:23:11PM +0200, cyrille henry wrote: ok, if you don't wish to compile in order to test, here are 2 samples : http://www.chdh.free.fr/tab/tabosc4.wav

Re: [PD] better tabread4~

2008-06-10 Thread Charles Henry
On Tue, Jun 10, 2008 at 4:43 AM, cyrille henry [EMAIL PROTECTED] wrote: i realized that the 4 points interpolation in tabread4~ (and tabosc4~) are not optimal. Please describe. I've analyze the interpolation formula too, and I think that it is a true cubic interpolation. Is the numerical

Re: [PD] better tabread4~

2008-06-10 Thread cyrille henry
Charles Henry a écrit : On Tue, Jun 10, 2008 at 4:43 AM, cyrille henry [EMAIL PROTECTED] wrote: i realized that the 4 points interpolation in tabread4~ (and tabosc4~) are not optimal. Please describe. I've analyze the interpolation formula too, and I think that it is a true cubic

Re: [PD] better tabread4~

2008-06-10 Thread Miller Puckette
I believe lagrange interpolation just means polynomail. tabread4~ uses cubic interpolation... details are in http://crca.ucsd.edu/~msp/techniques/latest/book-html/node31.html It may be that there's a better way to do 4-point interpoation than Lagrange but the way to find out would be by doing