Le 23 mai 2013 à 11:58, Marc Joliet <mar...@gmx.de> a écrit :

> Hi all
> 
> I wanted to request some feedback on another FAUST-related project of mine,
> FAUSTPy:
> 
>    https://github.com/marcecj/faust_python
> 
> A short summary: FAUSTPy is a Python package that wraps FAUST DSPs in Python
> objects dynamically at run-time. It allows processing of NumPy arrays, but 
> also
> handles synthesizers. It is implemented using the fantastic CFFI [0] from the
> PyPy developers and the C backend from FAUST2.
> 
> My original motivation for writing it was an initial excitement over PyQt, 
> with
> my idea being that since it's easier to write GUIs in Python, why not use
> Python to implement hand-written GUIs for FAUST DSPs?  Of course, the more
> obvious use case is analysing DSPs using the SciPy stack, as the demo script
> hopefully demonstrates.
> 
> While I have implemented most things, I still consider it alpha (maybe beta)
> software.  There are some things I still need to work out and complete (e.g.,
> API fine-tuning, testing).  I believe it is mostly detail work now and that I
> just need to try it out in some applications. Specifically, I wanted to try
> writing a standalone JACK GUI for the DSP I included in the FAUSTPy sources
> (Regalia-style peak/notch filter) - using PyQt and PyAudio - to see how such
> applications perform in general.
> 
> However, I have to work on other things (Uni, etc.), so I'll try putting off
> work on FAUSTPy for a week or two.
> 
> Also, one question: are there any other C functions I need to implement other
> than min() and max()? All of the DSPs from the examples directory compile 
> fine,
> so I don't think so.
> 
> Some obvious alternatives to the CFFI would be:
> 
> - Cython, which is, to my understanding, not dynamic enough for what I wanted,
>  but which can be used to wrap C++ code, so would have the advantage of not
>  requiring FAUST2.
> 
> - the FAUST2 LLVM backend + Unladen Swallow, which ties you to CPython, 
> whereas
>  the CFFI works (or at least will work) with various Python implementations.
> 
> - Ctypes, which is dynamic, like the CFFI, but supposedly not as nice to use
>  and slower.
> 
> Anyway, as far as I can tell, FAUSTPy is pretty much feature complete:
> 
> - groups and parameters are mapped to nested attributes, which are prefixed
>  according to their type ("b_" for boxes, "p_" for parameters),
> 
> - all meta-data declarations are stored in "metadata" attributes (of the DSP
>  itself, the groups, and the parameters),
> 
> - information about the type of group/parameter is stored in a "layout"/"type"
>  attribute,
> 
> - it keeps label-less groups/parameters in a "{b_,p_}anon<N>" attributes 
> (which
>  I encountered in the form of checkboxes that only have tooltips),
> 
> - FAUST.compute() differentiates between effects and synthesizers (i.e.,
>  whether the number of inputs is >0 or not),
> 
> - I made sure that the caching mechanism of the CFFI works, so you don't have
>  to needlessly recompile the same code.
> 
> There is one annoying caveat, though: vectorisation (the -vec option) is
> apparently broken with the C backend (faust crashes; C++ works fine though).
> 
> Anyway, I hope people find this useful, and I welcome any form of feedback :) 
> .
> 
> [0] https://cffi.readthedocs.org/en/release-0.6/
> 
> Greetings
> 
> -- 
> Marc Joliet
> --

Have you ever thought about using the *dynamic* Faust technology in this 
application? That is libfaust + LLVM?  

Stéphane



------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to