Yes, confirmed, that works too. Thank you! I still like Dario's solution because it's a trick I can use for other things too, but I presume a built-in function will probably be a bit more efficient. In any case selectn makes for cleaner code.
Cheers, Rich On Sun, Oct 18, 2020 at 6:06 PM Cora Johnson-Roberson < cora.johnson.rober...@gmail.com> wrote: > Hi Rich, > > The standard library includes a function `ba.selectn > <https://faust.grame.fr/doc/libraries/#ba.selectn>` that lets you choose > from among parallel inputs at runtime. In your case, this would look like: > > numCents = tuning : ba.selectn(numNotes, pc); > > All best, > Cora > > On Sun, Oct 18, 2020 at 12:02 PM Dario Sanfilippo < > sanfilippo.da...@gmail.com> wrote: > >> Hello, Rich. >> >> I believe that the problem is the selector not being known at >> compile-time. I cannot think of any functions doing what you need in the >> Faust libraries, from the top of my head. >> >> For that, perhaps something like the example code below could be helpful: >> >> import("stdfaust.lib"); >> testlist = (10, 20, 30, 40, 50); >> testsel = hslider("selector", 1, 1, 5, 1); >> router(sel, list) = list : par(i, ba.count(list), * (ba.if(sel == (i + >> 1), 1, 0))); >> process = router(testsel, testlist); >> >> Best, >> Dario >> >> >> >> On Sun, 18 Oct 2020 at 16:39, Rich Cochrane <rich.cochr...@bigi.org.uk> >> wrote: >> >>> Hello again, >>> >>> I'm working on some basic (micro)tuning code as part of the learning >>> process. I've hit a snag with something that's probably quite basic. >>> >>> I've implemented the tuning as an array of constant signals in parallel >>> and I'm using ba.take() to grab the appropriate one for the current note, >>> but it's failing at compile time with a "pattern matching error" that I'm >>> struggling to interpret. Google searches suggest other people have run into >>> the same problem but none of them seemed to contain a solution. >>> >>> A minimal (non-)working example is attached -- would anyone be kind >>> enough to have a quick look and see if they can spot what's wrong? I've >>> added comments indicating the key lines. >>> >>> Cheers, >>> >>> Rich >>> _______________________________________________ >>> 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