Hello Faust community,

I'm brushing up my FAUST skills. It's been over a decade and it's
amazing to see how far things have grown. Well now, I just ran into an
issue:


How can I place signal primitive into a list?

e.g. use  _,_  as list arguments (_,_) for `an.analyzer(3, HERE)`


If I understand correctly, lists are just parallel composition. So I
expected an extra pair of brackets to work. Why doesn't it?


-8<-

Perhaps the deeper issue is the design-pattern that I'm aiming for. So
let me elaborate. The specific use-case is a multiband effect[1]:

The following works (implementation omitted for readability):

```
apply(fq,g1,g2,g3,g4) = _;

freqs=100,200,300;

process= _ <: par(i,2,_)
   : (an.analyzer(6, (freqs)) , _)
   : apply (freqs);

```

Now, I'd like to make this generic for arbitrary numbers of frequency
bands, rather than 3 hardcoded band-splits. This is similar how
an.analyzer() or filterbank work, except with an additional gain
parameter for each band:


```
nuapply(freqs, gain) = _
  with {
    nb   = ba.count(freqs);
    f(n) = ba.take(n, freqs);
    g(n) = ba.take(n, gain); // bm +1 elemements
  };
```

So far so good. This works with explicit literal arguments.

However I fails to see how the output of analysis stage can be passed as
list.

I tried another approach using `nu2apply(freqs)` and then
selectn() the gain levels from input bus, but that quickly becomes a mess.

What is the Faustian way to implement this?

Thanks in advance,
robin

--

[1]
https://gist.github.com/x42/eeb2aa9f9cc4a9083fb2cf2d86645c9a#file-mcomp-dsp-L43-L60

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to