Hi, Sam.

If you look at the diagram, is the following what you're looking for?

import("stdfaust.lib");

nBands = 10;

start = 22050.0/2048.0;

process = seq(i, nBands - 1, (ro.cross(2) : (_ , start + i * start , 20 , _)
: fi.peak_eq) , si.bus(nBands - i - 1)) : (_ , start * nBands , 20 , _):
fi.peak_eq;

The problem with the other code is that you're giving ba.selector(i+1,nBands+1)
as an argument to the filter, which internally corresponds to the signal
"Lfx". Internally, Lfx will be replaced with what you give in the argument.
In this case, something that has nBands+1 inputs. I'm guessing that Lfx is
used four times inside the filter as the error that I get is that "The
number of outputs [1] of A must be equal to the number of inputs [45] of B".

I hope it helps.

Dario


On Mon, 18 May 2020 at 05:56, Sam Pluta <spl...@gmail.com> wrote:

> Hi,
>
> I am trying to use faust to make an SC plugin. I want the plugin to have N
> peak_eq filters in sequence. There should be N+1 inputs to the plugin. The
> first input channel is the audio and then the next N input channels are
> control over the gain of the filter. Not sure why the following doesn’t
> work. Hopefully it is clear what I want to do. Been using SC for 20 years,
> so lispy thinking is a bit foreign to me:
>
> import("stdfaust.lib");
>
> nBands = 10;
> start = 22050.0/2048.0;
>
> process = ba.selector(0,nBands+1) : seq(i, nBands,
> fi.peak_eq(ba.selector(i+1,nBands+1), start+(i*start), 20));
>
> Obviously, I can do this without the seq, but the final version will have
> 300 peak_eq’s.
>
> Thanks,
>
> Sam
> _______________________________________________
> 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