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