[PD] Non-Linear Quantization / Bitcrush

brandon zeeb zeeb.brandon at gmail.com
Tue Nov 2 18:29:43 CET 2010


I've attached my best attempt at recreating this effect, the attached PNG
will be used as a reference.

Given the distance d1 and d2, these distances are usually identical in a
traditional bitcrush or simple quantization.  I would like to be able to
vary the distance between points of an incoming signal such that the
distance between points is a function of a given quantization value, the
current Y value, AND a given quantization curve.

As a first step (and illustrated in the attached PNG), smaller values of Y
will produce a more pronounced quantization given a x^2 quantization curve
while larger values of Y will produce a smaller distance between steps.

Ideas?

~Brandon

On Tue, Nov 2, 2010 at 10:47 AM, Ludwig Maes <ludwig.maes at gmail.com> wrote:

> could you give examples of idealized input and output for cases 1-4?
> im not sure I understand what exactly you want...
>
> interested greetings!
> Ludwig
>
> On 1 November 2010 13:09, brandon zeeb <zeeb.brandon at gmail.com> wrote:
> > Hey All,
> >
> > I've been burning my brain over this issue lately and I can't seem to
> come
> > up with an elegant solution, and stay with me here as I attempt to
> explain
> > it best I can.  For me and my needs, being able to quantize an arbitrary
> > signal to any arbitrary series is the Holy Grail (and I'm not talking
> about
> > simple table lookup!).
> >
> > I'm looking to quantize an incoming signal (or value) given a max and min
> > quantization value and an arbitrary curve.  Think quantization of note
> > events to a series of note lengths or your standard bitcrush algorithm,
> it's
> > pretty much the same.  The arbitrary curve should influence the degree to
> > which the bitcrush algorithm is applied to the signal such that one could
> > have less quantization at smaller values of the input signal, and greater
> > quantization and larger values (or vice versa).  Simple table-lookup is
> > insufficient as it requires you to pre-define a maximum input signal
> > amount.  I'm willing to waive this requirement if an implementation is
> not
> > possible without it.
> >
> > This will be used in the following circumstances:
> >
> > To quantize envelopes signals to any arbitrary series (say !, Fibonacci,
> > x^2, 2^x, etc)
> > To quantize signal loop length values to an arbitrary series of note
> values
> > (say 1/16, 1/8, 1/2, 1/1)
> > To apply non-linear bitcrushing to a signal such that higher values are
> > expressed with less of an effect than smaller values
> > To quantize pitch events to a pre-defined series
> >
> >
> > Is this making sense?
> >
> > My attempts thus far has extended the RjDj bitcrush abstraction with mild
> > success.  I can recreate the effect but the output signal bears too many
> > artifacts from the input signal (ie: the curve retains part of it's
> original
> > slope from the input signal and is not flattened or held until the next
> > value).
> >
> > Thanks,
> > ~Brandon
> >
> > _______________________________________________
> > Pd-list at iem.at mailing list
> > UNSUBSCRIBE and account-management ->
> > http://lists.puredata.info/listinfo/pd-list
> >
> >
>



-- 
Brandon Zeeb
Columbus, Ohio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20101102/298199c7/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: my-crush-ex.png
Type: image/png
Size: 21664 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20101102/298199c7/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: my-crush.pd
Type: application/octet-stream
Size: 1693 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20101102/298199c7/attachment-0001.obj>


More information about the Pd-list mailing list