Greetings,
A 4096 point table works well for limiting the prominence of artifacts when waveshaping with tabread4~. With a linear table that size, you will still hear a significant amount of distortion on a sine tone, but it will become much less noticeable with more complex input signals.
Keep in mind though, that if your hope is to be able to draw a shaping
function into the table with a mouse, you will have reduced the table
size to the resolution of your monitor, throwing away lots of data.
For this purpose, I've been thinking about building an abstraction to
copy a hand-drawn table into a larger array, upsampling it with
interpolation.
Best, Michael Berkowski http://www.berkowski.net/
Message: 1 Date: Mon, 21 Nov 2005 22:19:08 +0100 From: Frank Barknecht fbar@footils.org Subject: Re: [PD] waveshaping with a lookup table (idiot question) To: pd-list@iem.at Message-ID: 20051121211908.GB12197@fliwatut.scifi Content-Type: text/plain; charset=us-ascii
Hallo, james holden hat gesagt: // james holden wrote:
what i've noticed though is with a small table (100 points) i get a distortion that sounds like bit-depth reduction. it goes with a larger table. surely though, if tabread4~ interpolates this shouldn't happen?
Even with interpolation you can get these kinds of artifacts, so I'd recommend using a bigger table. RAM is cheap. Generally it's starts to be fun at 512 and above.
Ciao
Frank Barknecht _ ______footils.org_ __goto10.org__
Michael Berkowski ha scritto:
Greetings,
A 4096 point table works well for limiting the prominence of artifacts when waveshaping with tabread4~. With a linear table that size, you will still hear a significant amount of distortion on a sine tone, but it will become much less noticeable with more complex input signals.
you can also adapt my patch, which actually draws curves into an array. http://xaero.ath.cx/cms/curve-designer.html
Keep in mind though, that if your hope is to be able to draw a shaping function into the table with a mouse, you will have reduced the table size to the resolution of your monitor, throwing away lots of data.
For this purpose, I've been thinking about building an abstraction to copy a hand-drawn table into a larger array, upsampling it with interpolation.
ciao Federico