Hi Till,

maybe you can do it in Faust with something like this (not tested):

bitDelay = _ <: >>(1), (%(2) : mem : <<(31)) :> _;

I am new to Faust and wasn't sure how to test the code above because it
uses integers. Any recommnedations how to do this?

Matej



Am Fr., 5. Juni 2020 um 07:41 Uhr schrieb Stéphane Letz <l...@grame.fr>:

> Are you really sure this cannot be expressed using the recursive operator ?
>
> Do you have some already written code to show ?
>
> Stéphane
>
> > Le 4 juin 2020 à 16:58, Till Bovermann <lf...@lfsaw.de> a écrit :
> >
> > Dear list,
> >
> > I am currently trying to implement 1bit-synthesis mechanisms in faust
> and have some sketches on how to implement that:
> >
> > It basically boils down to interpret a stream of integers (of a given
> bit-depth, say, 32bits) as a stream of blocks (of size 32) of bits.
> >
> > This is quite close to hardware interfaces such as the i2s
> implementation of the esp32 [1], which has native capabilities to transmit
> PDM (pulse density modulation, aka DSD, aka 1-bit audio) [2].
> >
> >
> > the technical implementation would be to create a series of
> 1-bit-block-specific operations (primitives) that could handle the basics
> of such dsp. This would particularly mean to create a 1-sample delay
> operator, i.e. an operator that turns the bitstream
> >
> >
> > 10110101...
> >
> > into
> >
> > 010110101...
> >
> >
> > I discovered the `ffunction` primitive that allows to integrate foreign
> functions into the language, however, AFAICS (and according to sletz on
> slack, and from what I got from the documentation at [3]), they need to be
> stateless.
> >
> > the aforementioned 1-bit delay, though, requires a state (of one
> additional integer).
> >
> >
> > does anyone know if there is a possibility to implement such a
> (1-sample) delay as a primitive in faust?
> >
> >
> > all the best and thanks for your thoughts
> >
> >       Till
> >
> > [1]
> https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
> > [2] search e.g. for "pdm" in this article
> https://hackaday.com/2019/04/18/all-you-need-to-know-about-i2s/
> > [3] https://faust.grame.fr/doc/manual/index.html#ffunction
> >
> > _______________________________________________
> > Faudiostream-users mailing list
> > Faudiostream-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
>
> _______________________________________________
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to