> Le 4 déc. 2018 à 18:41, Joshua Peschke <j...@wavecasual.com> a écrit : > > hello everyone, > i am wondering about how to optimise faust processors. i have a pretty big > processor that is comprised of multiple parts (its a synth voice with > multiple oscillators, filters, modulators) and it seems that turning the > individual parts off doesn’t help performance. i read somewhere that > everything in faust is “always on”. am i right to assume that means that all > signal paths get evaluated even when they do not contribute to the final > signal? > is there a way to optimise this?
Well they are two « still not official » primitives, which are « enable » and « control » with the following semantic : (x, y : control) == x but x is only computed when y is true (y != 0) 'Control' is a variant of 'enable 'and the two are related in the following way: (x, y : enable) ==> (x*y, y>0 : control) They can be used to stop part of the computation, depending of the « y » signal. Not that « enable » and « control » can only be used in scalar mode in the old C++ backend that is: faust -lang ocpp …… » > my current solution would be to split the large processor up and turn the > individual parts on and off in c++ which would work, but be kind of a pain. > also are there other tipps you have to achieve better performance? i noticed > for example that the smoothing of parameters seems to affect performance > quite much (if there are lots of them..). do you have any suggestions on how > to minimise this? any hints are very much appreciated! > > in general i have to say great work! faust is awesome! > > Assuming you are not using « enable » and « control », you can also try the « faustbench » and « faustbench-llvm » tools, to find out the best compilation options: https://github.com/grame-cncm/faust/tree/master-dev/tools/benchmark Stéphane _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users