This version: diffN(fx) = m_in <: fx,(m_in <: (fx,m_in) : ro.interleave(ins,2) : m_sub : m_dmeter) : ro.interleave(ins,2) : m_attach with { ins = inputs(fx); m_in = par(i,ins,_); m_sub = par(i,ins,m_gr); m_dmeter = par(i,ins,dmeter(i)); m_attach = par(i,ins,attach); m_gr(fx) = _ <: (1 -(fx,_ : -)); };
(with a proper definition of dmeter(i)) process = diffN(dm.freeverb_demo); Then it can be generalised by giving the « difference meter function » as (high-order) parameter: diffN1(fx, fun) = m_in <: fx,(m_in <: (fx,m_in) : ro.interleave(ins,2) : m_fun : m_dmeter) : ro.interleave(ins,2) : m_attach with { ins = inputs(fx); m_in = par(i,ins,_); m_fun = par(i,ins,fun); m_dmeter = par(i,ins,dmeter(i)); m_attach = par(i,ins,attach); }; So assuming the « difference meter functions » are defined in one of the following form (among others..) : fun0(fx_s,dry_s) = 1 - (fx_s - dry_s); fun1(fx_s) = _ <: (1 - (fx_s,_ : -)); process = diffN(dm.freeverb_demo, fun0); or process = diffN(dm.freeverb_demo, fun1); Stéphane > Le 19 oct. 2020 à 11:06, Julius Smith <julius.sm...@gmail.com> a écrit : > > Hi Klaus, > > How about something like this? > > diff(fx) = _ <: fx, (_ <: fx,_ : - : dmeter) : attach; > dmeter = envelop : hbargraph("[unit:db]", -12, 12); > > I'm not sure how you want to generalize to the multichannel case > > Cheers, > Julius > > On Sat, Oct 17, 2020 at 5:49 AM Klaus Scheuermann <kla...@posteo.de> wrote: > Hey guys, > > I am trying to write a function (diff) that does nothing to the audio, > but shows the gain-difference another function (fx) makes in a meter. > Ideally this would work for any number of channels. > > This is where I ran into trouble, as si.block not only terminates the > signal, but also kills the meter in the gui: (I am working on faustide) > > Help much appreciated :) > Klaus > > diff(fx) = _ <: fx, (_ <: fx,_ : - : dmeter : _*1 : si.block(1)); > > //metering > dmeter(x) = attach(x, envelop(x) : hbargraph("[unit:db]", -12, 12)); > envelop = abs : max(ba.db2linear(-70)) : ba.linear2db : min(10) : max > ~ -(10.0/ma.SR); > > > > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > -- > "Anybody who knows all about nothing knows everything" -- Leonard Susskind > _______________________________________________ > 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