On 12/30, Autumn Cheney via Faudiostream-users wrote:
>
> how would i send an impulse (i.e, a single sample of value 1) at a trigger
> signal
> (e.g., a button or a midi gate)?
perhaps you can use ba.impulsify
Oleg.
___
Faudiostream-users mailing
On 11/26, Julius Smith wrote:
>
> Sure, that sounds like efficient new expanded capabilities to me.
> I am curious to know what the driving application was for that one?
I have no idea ;)
But at the same time I have no idea what people do with ba.pulse(p) (which
truncates 'p' to int), I know
On 11/25, Dario Sanfilippo wrote:
>
> On Sat, 25 Nov 2023 at 20:38, Oleg Nesterov wrote:
>
> > So how about the patch below?
> >
> > This change is not compatible too, but I guess we can treat it as a bugfix?
> >
>
> Agreed. It wouldn't break anything th
On 11/25, Julius Smith wrote:
>
> Hey, perfection is often a minor step forward!
;)
> I would simply say that there is no difference for constant p, but in the
> time-varying case there is a new one-sample delay preventing bit-for-bit
> compatibility.
OK, thanks. I'll try to do something more
Hi Julius,
On 11/25, Julius Smith wrote:
>
> I see that I am missing out by not being on Discord!
I think that all the technical questions/discussions should be moved
to the faudiostream mailing lists, in this case I would be happy to
forget about discord ;)
> I like the changes but see that
On 11/25, Oleg Nesterov wrote:
>
> Thanks for looking at this!
Yes, and this reminds me another discussion on discord ;)
To remind, ma.zc() is wrong in that it can't detect the crossing if the input
is zero in between.
So how about the patch below?
This change is not compatible too,
~ +(1) : mem;
> pulse2(p) = period(p) : \(x).(x <= x');
> pulse(p) = period(p) == 0;
> process = 100 - (10 @ 90) - (10 @ 170) - (10 @ 240) <: period , pulse*100 ,
> pulse2*100;
>
> Dr Dario Sanfilippo
> http://dariosanfilippo.com
>
>
> On Sat, 25 Nov 2023
Stephane,
I am shy to disturb https://github.com/grame-cncm/faustlibraries with
such a trivial/random change(s), but I'd like to "finish" the recent
discussion on discord. Note that even ba.time is obviously suboptimal.
I can make a PR if you think this makes any sense.
- ba.time: eliminate -(1)
On 11/14, Oleg Nesterov wrote:
>
> On 08/21, Oleg Nesterov wrote:
> >
> > On 08/20, Julius Smith wrote:
> > >
> > > Pretty fun! This looks closely related Andy Moorer's technique:
> > >
> > > @ARTICLE{MoorerDSF75,
> > > A
Hi Julius,
On 11/14, Julius Smith wrote:
>
> Hi Oleg,
>
> That all looks good to me - cool new operator!
>
> Ideas for xxx:
> sidebands
OK, thanks, let it be sidebands. Then I'll rename yyy to
__sidebands.
Please see https://github.com/grame-cncm/faustlibraries/pull/171
Thank you,
Oleg.
On 08/21, Oleg Nesterov wrote:
>
> On 08/20, Julius Smith wrote:
> >
> > Pretty fun! This looks closely related Andy Moorer's technique:
> >
> > @ARTICLE{MoorerDSF75,
> > AUTHOR = "James A. Moorer",
> > TITL
On 10/30, Dario Sanfilippo wrote:
>
> Is there any particular reason for not having division work like the other
> operators?
Well, I too think that faust lacks the "idiv" operator, int(/)
doesn't generate the "good" code.
But as you understand it is too late to change the current semantics
of
On 10/30, Dario Sanfilippo wrote:
>
> > > In
> > > that case; functions such as ba.time would also get an improvement.
> >
> > Why do you think so??
> >
> > perhaps you meant that ba.time can overflow? Yes it can, but I don't
> > think this should depend on -double.
So what exactly did you mean?
Dario, I don't understand you, so let me ask...
On 10/30, Dario Sanfilippo wrote:
>
> Perhaps we can include that "^" (pow()) can also be both int or float
> depending on the operands.
but it already depends on the type of operands ?
> perhaps to do everything in
> double when using -double,
On 10/29, Dario Sanfilippo wrote:
>
> internal int representation is always 32-bit, and Stéphane explained that
> it can't be changed easily.
Yes, and this is a bit unfortunate
> Since Faust is a high-level language for DSP, wouldn't it make sense to
> treat all signals as float unless there's
In reply to
https://github.com/grame-cncm/faustlibraries/pull/166#issuecomment-1767305470
Dario, I am not sure I understand you question, and I am not expert
in this area...
But. I'd guess that on the modern CPU multiplication is likely not
slower than addition. Even if it is slower, the modern
On 08/20, Julius Smith wrote:
>
> Pretty fun! This looks closely related Andy Moorer's technique:
>
> @ARTICLE{MoorerDSF75,
> AUTHOR = "James A. Moorer",
> TITLE = "The Synthesis of Complex Audio Spectra by Means of
> Discrete Summation Formulae",
> JOURNAL
Hello,
When I was playing with fb_fcomb(), I accidentally noticed this
trigonometric identity (thanks to maxima):
cos(x)*sin(n*x) = (sin((n+1)*x)+sin((n-1)*x))/2
and it gave me idea to write the following:
harmonics(vs, c0,s0)
= c0*vn(0),s0*vn(0), 1,c0, 0,s0
Sorry for delay,
You know, I am all confused and I am starting to think I can't make this
change ;) despite the fact that technically everything is trivial.
On 08/18, Julius Smith wrote:
>
> Nice! I like the generalization of delay interpolation while keeping
> backward compatibility. I would
Hi Julius,
On 08/17, Julius Smith wrote:
>
> Hi Oleg,
>
> This looks good to me. I believe I wrote the original fb_comb in
> filter.lib, but I don't remember the extra output delay at all. If I did
> it, my wild guess is that I was working from some old CCRMA documentation
> for unit generators
Hello,
This is not a bug-report or something like this, just I am curios.
Yesterday I was playing with fi.fb_fcomb() and I'm a bit puzzled.
Let's talk about fb_comb() first, they both have the same pattern.
Two questions:
-
Why
Hi Yann,
On 05/27, Yann Orlarey wrote:
>
> Since it is a typical "reduce"
> operation, I suggest having "reduce" in the name.
Agreed!
> We can imagine having
> three different versions depending if we start the reduction from the top
> outputs, the bottom outputs, or in parallel.
Agreed,
> //
Hello,
I am wondering if it makes any sense to generalize ba.parallelOp,
something like
parallelOp(op,1) = si.bus(outputs(op));
parallelOp(op,2) = op;
parallelOp(op,n) = parallelOp(op,n-1), si.bus(inputs(op)-outputs(op)) :
op;
then we can do
i_max(n) = par(i,n,
On 05/11, Oleg Nesterov wrote:
>
> Lets look at the code,
>
> cub = it.interpolate_cubic(d,y0,y1,y2,y3)
> with {
> x0 = x1-1;
> x1 = int(id);
> ...
> y0 = rdtable(S, wf, rid(x0, C));
>
Hi Bart,
On 05/11, b...@magnetophon.nl wrote:
>
> >and you will see that .cub() is very inaccurate at the start and at the
> >end.
>
> Seems like we where talking about the same thing all along.
OK,
> >Contrary, the Chebyshev approximation apprroximates the function on the
> >whole
> >interval
On 05/11, b...@magnetophon.nl wrote:
>
> >this? this is not what I meant...
>
> So what *did* you mean?
I can't find my old email on this list... fortunately it is still in
my mbox, let me quote it:
> 2) you said « tabulate().cub can be improved, it.interpolate_cubic()
is simply wrog
Hi Bart,
On 05/10, b...@magnetophon.nl wrote:
>
> On a more serious note: I have no idea how to get this working on NixOS,
> sorry.
Hmm. I think it should work just fine on NixOS. But nevermind, please
forget.
> I have also noticed the bug around the edge values with .cub, and have
> mentioned
On 05/09, Oleg Nesterov wrote:
>
> See the attached test-case. If you want to compile it, you need
> fpp (https://github.com/oleg-nesterov/fpp), maxima, and Linux.
>
> Compiled with '-a plot.cpp'
>
> $ ./test-plot -n 10 | tail -n 1
> 0.00285841338
See the attached test-case. If you want to compile it, you need
fpp (https://github.com/oleg-nesterov/fpp), maxima, and Linux.
Compiled with '-a plot.cpp'
$ ./test-plot -n 10 | tail -n 1
0.00285841338 0.000623551081
As you can see, taylor() uses less memory
On 03/22, Stéphane Letz wrote:
>
> > Le 22 mars 2023 à 21:01, Oleg Nesterov a écrit :
> >
> > Yet I think an option for gUseMemmove makes sense. I didn't try to check,
> > but
> > my gut feeling tells me gUseMemmove = true might speedup the code ;) Even if
> &
On 02/27, Oleg Nesterov wrote:
>
> On 02/27, Hermann Meyer wrote:
> >
> > I always implement the bypass switch in C/C++.
>
> and I guess this makes sense, but
>
> > When using select2 in
> > faust, always both path been processed. That means, even when y
On 02/27, Hermann Meyer wrote:
>
> I always implement the bypass switch in C/C++.
and I guess this makes sense, but
> When using select2 in
> faust, always both path been processed. That means, even when you switch
> into bypass, the CPU load will stay the same.
Not really, only with -sts /
On 11/27, Oleg Nesterov wrote:
>
> On 11/25, Julius Smith wrote:
> >
> > I would expect ba.tabulate() to be unbeatable when the function being
> > sampled is actually linear, quadratic, or cubic,
>
> Well ;) If the function is cubic then chebtab() will win even with
On 11/25, Julius Smith wrote:
>
> I would expect ba.tabulate() to be unbeatable when the function being
> sampled is actually linear, quadratic, or cubic,
Well ;) If the function is cubic then chebtab() will win even with NX=1.
Ignoring the floating point issues, chebtab() will be simply equal to
Damn ;)
Julius, Stéphan, I am sorry forthe extra noise but
On 11/25, Oleg Nesterov wrote:
>
> Yesterday I played with ba.tabulate() and I think we can have a better
> helper
When I re-read my email it looks as if I state that chebtab() is always
better than ba.tabulate().
Hello,
Yesterday I played with ba.tabulate() and I think we can have a better
helper which approximates an unary function using chebyshev polynomials
more accurately:
chebtab(CK, FX, NX,CD, X0,X1, x) = y with {
ck(0) = _;
ck(1) = max(0) : min(NX-1);
Hi Dario,
On 06/29, Dario Sanfilippo wrote:
>
> On Tue, 28 Jun 2022 at 13:18, Oleg Nesterov wrote:
>
> > Once I was greatly puzzled why letrec doesn't work as I'd expect, and
> > I had to dig into the compiler sources to understand.
> >
> > For example, I thin
On 06/28, Stéphane Letz wrote:
>
> Here: https://github.com/grame-cncm/faust/releases/tag/2.41.1-rc2
>
> Feedback welcome.
Well, not related to this release, but if you ask for feedback ;)
The 'prefix' primitive is still buggy and suboptimal. See
On 06/27, Yann Orlarey wrote:
>
> The current implementation of letrec is extremely simple and
> almost like syntactic sugar,
Yes, but I'm afraid it is only simple to you and other faust devs ;)
Once I was greatly puzzled why letrec doesn't work as I'd expect, and
I had to dig into the compiler
On 11/26, Stéphane Letz wrote:
>
> This is a updated version of FAUSTPY, see
> https://faustdoc.grame.fr/manual/architectures/#faustpy,
> possibly working ?
Ah, this one...
I tried it once just out of curiosity several years ago, and I had
to apply the patch below to make it work.
I have no
On 11/26, 佐藤佳希 wrote:
>
> I would like to use FAUSTPy, but I could not pass "python3 setup.py test".
> So, I am wondering if you give me some advice.
I can't find FAUSTPy in faust sources,
> Also, I attached the errors as error.txt.
You didn't ;)
Oleg.
On 05/28, Till Bovermann wrote:
>
> I was thinking to use the fi.svf.lp filter as a building block instead
> but it is (AFAICS, it is not mentioned in the doc string...) not a 1st
> order design (which is crucial here, partly for consistency with the to
> be emulated analog circuitry, partly
Hi,
I noticed by accident your discussion in
https://github.com/grame-cncm/faustlibraries/pull/80
===
From @orlarey:
Your ADSR uses a variable slope for the release. This induces a
different
behavior when the gate is shorter than the AD part. That can
Hi Dario,
I can't answer authoritatively, but nobody else bothered to reply and
I hate the fact this list has a lot of unanswered technical questions.
Add Stephane.
On 04/25, Dario Sanfilippo wrote:
>
> Hello, list.
>
> I may be missing something obvious but would you know why
>
> process(x) =
On 04/07, Oleg Nesterov wrote:
>
> Note also you can use si.dot() instead to simplify the implementation:
>
> lagrangeN(N, idx) = lagrange_h(N, idx), si.bus(N+1) : si.dot(N+1);
Hmm. I actually meant
lagrangeN(N, idx) = si.dot(N+1, lagrange_h(N, idx));
which looks
Hi Dario,
Your commit 85201e341bd4e adds lagrangeN() which uses si.bus(), this means
you need to add
si = library("signals.lib");
into interpolators.lib, otherwise it.lagrangeN(...) won't compile.
Note also you can use si.dot() instead to simplify the implementation:
On 02/08, Stéphane Letz wrote:
>
> The ‘pow' operation computed on integer arguments was indeed incorrect at
> compile time. Should be fixed in 2.30.12 version on master-dev.
commit bb0bf13334e9a1320f0f90b6ae56da277b9d96a5 adds
+Type1 ipow(Type1 a, Type2 ex)
+{
+if (0 == ex)
On 02/07, Dario Sanfilippo wrote:
>
> Other than that, can you tell why -2 or 2 is producing -inf?
Runtime integer overflow, I guess. Why didn't you try to simplify
your code ? ;)
Consider
process = 2.0', 2' : par( i, 2, ^(32));
output:
0 0
Julius, et al,
sorry for delay, I was busy.
And let me apologize in advance, most probably I won't be responsive
till next week.
On 12/20, Julius Smith wrote:
>
> In filters.lib, I just now changed (in faustlibraries / master)
> smax = 0.;
> to
> smax = 1.0-ma.EPSILON;
OK, I ran the
On 12/20, Dario Sanfilippo wrote:
>
> > --- a/filters.lib
> > +++ b/filters.lib
> > @@ -1004,7 +1004,7 @@ declare tf2np copyright "Copyright (C) 2003-2019 by
> > Julius O. Smith III > declare tf2np license "MIT-style STK-4.3 license";
> > tf2np(b0,b1,b2,a1,a2) = allpassnnlt(M,sv) :
On 12/20, Oleg Nesterov wrote:
>
> On 12/19, Julius Smith wrote:
> >
> > All we can conclude from this test is that tf2s and svf are closer to each
> > other than either is to tf2snp.
>
> Julius, I can't believe it but it seems that tf2snp is just wrong
> when cf
On 12/19, Julius Smith wrote:
>
> All we can conclude from this test is that tf2s and svf are closer to each
> other than either is to tf2snp.
Julius, I can't believe it but it seems that tf2snp is just wrong
when cf is low ;)
test1:
F = 20;
w1 = 2*ma.PI*F;
a1s =
On 12/19, Dario Sanfilippo wrote:
>
> I was following this text:
> http://www.willpirkle.com/Downloads/AN-4VirtualAnalogFilters.pdf.
Thanks! I will read it later... may be ;)
> Julius, would you have a function to calculate the coefficients for
> fi.tf2snp?
Julius will correct me, but I think
On 12/19, Dario Sanfilippo wrote:
>
> > And this probably means that Dario was right, and the problem was caused
> > by quantisation.
> >
> > Because IIUC in theory (and unless you modulate HPFfreq) these 3 filters
> >
> > fi.highpass(2, f)
> > fi.svf.hp(f, 1/sqrt(2))
> >
On 12/19, Alik Rustamoff wrote:
>
> Today I tested all three. With last two svf filters I don't see any
> difference (I use ardour's built in plugin analyser), no noise.
> The noisy fi.highpass (the first one) becomes closer to them as cutoff
> freq goes higher, but still has different phase
Hi Dario,
this motivated me to look at your library again ;)
On 12/18, Alik Rustamoff wrote:
>
> Hi, Dario, I, btw, ended up using blti filter from your edge of chaos
> library. Good collection. No noises just does the job.
Then I think that fi.svf.hp() should work equally well. Can you try it?
On 11/13, Karl Schultheisz wrote:
>
> Nevertheless, I also encounter difficulties when using variable indices.
> Consider the case of using gate signals to control recording and playback.
> This example alternately records and then plays back repeatedly.
I am already sleeping, perhaps I
On 11/13, Oleg Nesterov wrote:
>
> I think this is a bug. faust wrongly assumes that if ridx is constant then
> the output is constant too.
>
> Perhaps this is because
>
> Tree sigWriteReadTable(Tree n, Tree init, Tree widx, Tree wsig, Tree
> ridx)
> {
On 11/13, Karl Schultheisz via Faudiostream-users wrote:
>
> process = os.osc(55) : rwtable(1024, 0.1, 42, _, 42);
>
> The result, as demonstrated using faustide, is that the hypothesis is wrong.
> The output signal is a constant 0.1, not a 55Hz sinusoid.
I think this is a bug. faust wrongly
On 11/13, Oleg Nesterov wrote:
>
> Not sure if this is a bug or not, add Stephane and Yann.
>
> On 11/13, Till Bovermann wrote:
> >
> > // drop the first i elements
> > left_drop(0, (x, xs)) = x, xs;
> > left_drop(i, (x, xs)) = left_drop(i-1, xs);
> >
Not sure if this is a bug or not, add Stephane and Yann.
On 11/13, Till Bovermann wrote:
>
> // drop the first i elements
> left_drop(0, (x, xs)) = x, xs;
> left_drop(i, (x, xs)) = left_drop(i-1, xs);
>
> // reverse a list
> reverse((x, xs)) = reverse(xs), x;
> reverse(x) = x;
>
> process =
On 10/30, Bart Brouns wrote:
>
> As for the naming, reduce is already taken:
> https://github.com/grame-cncm/faustlibraries/blob/2efc2d01cb6be4e7eb2ae54fe3f3591782786ed0/reducemaps.lib#L74
>
> Not sure what a better name would be.
may be lreduce? matches maxima's left-to-right lreduce...
But
On 10/02, i...@formuls.co.uk wrote:
>
> Hello Faust List,
>
> I’m trying to use a signal to trigger an envelope, in particular Faust's
> dx7envelope. However, I keep encountering an error that states the number of
> inputs does not match the number of outputs. I’m trying the following code:
>
>
On 08/31, Julius Smith wrote:
>
> That's an interesting comparison.
> tf2snp is designed to have constant signal power in the presence of
> coefficient modulation.
If only I knew what does it mean ;)
> How is the svf implementation designed? Constant amplitude?
No. Please see
Stephane,
I wrote this email right after our short discussion on slack.com but
somehow I forgot to send it.
So I don't really know how to compare this filter with the existing
filters forms in filters.lib, but please see the simple, stupid and
"non-scientific" test below.
Note! all 3 band-pass
Hi Yann,
sorry I couldn't reply earlier,
On 08/21, Yann Orlarey wrote:
>
> Hi Oleg,
>
> Thank you for your example. It is very interesting because it shows that it
> is now possible to write pathological Faust programs that cannot be
> executed (without infinite memory)!
Heh. Thanks, I didn't
Hi Yann,
On 08/21, Yann Orlarey wrote:
>
> A *very* experimental implementation of the ondemand primitive is available
> here :
>
> https://github.com/grame-cncm/faust/tree/experimental-ondemand
>
> The implementation is currently only available for -lang ocpp in scalar
> mode. Here are some
On 07/18, Yann Orlarey wrote:
>
> Hi Oleg,
>
> Here is an implementation of apply. It's the closest I've found ;-). The
> idea is to pass to the op function a list of selectors that simulate the
> formal parameters but that can be created in arbitrary numbers.
(Heh ;) I tried to do something
Hi Yann,
On 07/17, Yann Orlarey wrote:
>
> I'm not sure that answers your question,
No it doesn't ;) probably I wasn't clear, please see below.
> but you can do that, for instance:
of course, you can always rewrite dsBus2int or anything else, but what
if you do not want to change the
Hi Yann,
On 07/17, Yann Orlarey wrote:
>
> Hi Till,
>
> What about :
but is there a generic solution?
IOW. Suppose you have a wants_list() function and a constant N. How can you
turn N inputs into the N-ary list and pass it to wants_a_list ?
wants_list(sig.bus(N)) won't work.
Oleg.
On 07/16, Till Bovermann wrote:
>
> import("stdfaust.lib");
> dsBus2int_6 = si.bus(6) : \(x0, x1, x2, x3, x4, x5).(left_shift((x0, x1, x2,
> x3, x4, x5))) with {
> left_shift((x, xs)) = left_shift(xs) & ((x > 0) << 1) ;
> left_shift(x) = x > 0;
> };
not that it matters, but si.bus(6)
Add Stephane and Yann. At least the 2nd problem is obviously a (minor)
compiler bug.
On 07/16, Till Bovermann wrote:
>
> Dear Oleg, James, Dario, all,
>
>
> `control` looks promising, however, it is not as straight-forward as I
> thought:
Yes. And I think it is still experimental, at least I
On 07/14, Till Bovermann wrote:
>
> Thanks also to you, Oleg; is there somewhere an example for the control
> primitive,
Sorry, I do not know. But see below.
However, I did "git pull" and it seems that "control/enable" are already
supported in FIR scalar mode. Probably the commit
On 07/14, James Mckernon wrote:
>
> I have some more thoughts on this that are perhaps worth discussing in
> a separate thread. Briefly, I feel like a 'dumb' select2, which only
> ever evaluates one of its branches,
You probably want the "control" primitive. Currently it is only supported by
On 07/14, Till Bovermann wrote:
> Dear list,
>
> I am confused about this.
> I have the following function taking a list of arguments (note the inner
> brackets;
>
> ((( input args as list:
> reason being that this function will later be encapsulated into a recursion
> operator that applies the
On 06/13, vince via Faudiostream-users wrote:
>
> if I try the test_examples.py, it just terminates the process without any
> errors and nothing happens.
I'd suggest you to contact the author ;)
the patch below seems to make
$ PYTHONPATH=. python3 FAUSTPy
work on my laptop, but the the
On 06/04, James Mckernon wrote:
>
> I can't tell whether this would be useful to your case, but could you
> declare a static variable, c-side, within your foreign function? This
> allows some kind of state to be held between calls to that function.
Heh ;)
OK, suppose we have
On 06/04, Till Bovermann wrote:
>
> I discovered the `ffunction` primitive that allows to integrate foreign
> functions
> into the language, however, AFAICS (and according to sletz on slack, and from
> what
> I got from the documentation at [3]), they need to be stateless.
>
> the aforementioned
On 05/26, Oleg Nesterov wrote:
>
> Yann, Stephane, I am curious if it is possible to change the compiler to
> make par(i, 0, expr) work?
the patch below seems to work ;)
but I am sure you can do something better.
Oleg.
--- a/compiler/evaluate/eval.cpp
+++ b/compiler/evaluate/eval.cpp
On 05/25, Yann Orlarey wrote:
>
> For example the expression
> `()` or `NIL` in Lisp, which indicates an empty list, does not exist in
> Faust.
Yes. it's a pity ;)
Well, to some degree
nil = 0:!;
resembles the empty list. Say, output(nil) == 0 and
process = sin(nil);
works
Dario,
I'm afraid I can't help. Firstly, I do not really understand your questions.
But even if I understood, I am not sure I could answer authoritatively.
On 05/22, Dario Sanfilippo wrote:
>
> On Fri, 22 May 2020 at 20:22, Oleg Nesterov wrote:
>
> > On 05/22, Dario S
argh, forgot to comment this part of your email...
On 05/22, Dario Sanfilippo wrote:
>
> On Fri, 22 May 2020 at 08:20, Oleg Nesterov wrote:
>
> > See above. try
> >
> > process(3, (_<-100,-1,-1,-1, _==0,0,0,0, _>100,1,1,1, 10,10,10));
> >
>
On 05/22, Dario Sanfilippo wrote:
>
> Sorry for the confusion. What I wanted to ask is: why aren't the extra
> parentheses making a difference? Because (0, (1,2,3)) is parsed as
> ((0),((1,2,3)), right?
Sorry, can't understand...
but in any case, I think that extra parentheses should _only_ make
On 05/22, Dario Sanfilippo wrote:
>
> > But this doesn't really matter. What (I think) does matter is that, say,
> > 1,2 should match (x,xs), no matter how many parentheses you add.
> >
>
> What is the reason why this is not happening?
confused... this _is_ happening, iiuc. And again,
Dario, sorry for noise but I simply can't resist...
On 05/22, Dario Sanfilippo wrote:
>
> process(carFreq, modFreq, modModMult, indexMult) = (
> (
> (
> (_, hslider("modModMult",100,100,1000,1):*),
> hslider("modFreq",100,100,1000,1):+
> ):os.osc, hslider("carModMult",100,100,1000,1):*
> )
> ,
On 05/21, Sam Pluta wrote:
>
> I made this crossfeedback synth in Faust:
>
> import("stdfaust.lib");
>
> process(carFreq, modFreq, modModMult, indexMult) =
note that the code below doesn't use any of theese inputs. It seems
to me you actually want
process = ...same code...;
Just in
On 05/22, Dario Sanfilippo wrote:
>
> > As for ifN. Perhaps something like this can work for you:
> >
> > ifN(N, inp) = par(n, N, line(n,C)) with {
> > C = (outputs(inp) - N) / (N + 1);
> > take(i) = inp : route(outputs(inp),1,i+1,1);
> >
On 05/20, Dario Sanfilippo wrote:
>
> I use the "ceil" function for the cond in "if" as I want _any_ non-zero
> value to result true, whereas ba.if gives false for any fractional
> condition < 1. I opened an issue about this but I think that fixing it, if
> bad behaviour (bad if thinking of C/C++,
On 05/20, Dario Sanfilippo wrote:
>
> a_f(f) = ifthenelseif(( f < 25, .532,
> f < 31.5, .506,
> f < 40, .480,
> f < 50, .455,
> f < 63, .432,
> f < 80, .409,
> f < 100, .387,
> f < 125, .367,
> f < 160, .349,
> f < 200, .330,
> f < 250, .315,
> f < 315, .301,
> f < 400, .288,
> f < 500, .286,
> f
On 05/20, Dario Sanfilippo wrote:
>
> Was there already something like that
not that I'm aware of,
> or was there a simpler way of doing
> it?
Sorry, I don't understand... doing what??
why do you want this helper?
Oleg.
___
Faudiostream-users
On 05/19, Dario Sanfilippo wrote:
>
> Hello, list. I hope that you're all well.
>
> I just started using pattern matching and I'd kindly ask for your help to
> better understand how things work.
>
> The goal is to implement an *ifthenelseif* function that takes cond-then
> pairs as arguments
Hi Bart,
it seems that you are not convinced, let me try again.
On 04/16, Oleg Nesterov wrote:
>
> On 04/16, Bart Brouns wrote:
> >
> > Somehow the initial value of `u` got lost in the last commit to this
> > function:
> > https://github.com/gr
Hi Bart,
I am not sure I understand you, but I'll try to answer anyway ;)
Please correct me.
On 04/16, Bart Brouns wrote:
>
> Somehow the initial value of `u` got lost in the last commit to this
> function:
>
Bart,
could you explain the commit 4fb8849b833629 ("Fixup quadosc") ?
It looks absolutely wrong.
- It removes the 1st output (cosine), why ??
- It makes the 2nd output less precise
- It makes the generated C++ code worse.
Oleg.
On 07/05, Julius Smith wrote:
>
> Do we know its copyright status? I think it would
> be worth adding to the library if we can determine this and author.
I found it here: http://yehar.com/blog/?p=368
But see also the hiir library http://ldesoras.free.fr/src/hiir-1.20.zip
from Laurent de Soras
On 07/05, Julius Smith wrote:
>
> I like to look at the dB magnitude and phase (in degrees) of the
> frequency response. So feed 1-1' to analytic instead of a sinusoid.
> The ideal response is 0 dB for the magnitude at all frequencies, and
> 90 or -90 degrees for the phase, depending on whether
On 07/05, Dario Sanfilippo wrote:
>
> https://dsp.stackexchange.com/questions/37411/iir-hilbert-transformer/59157#59157
Heh. Funny that. I too played with hiir library a long ago. I even found
the code I wrote
hiir_hilber(N, T) = hilbert with {
coef = FPP(=N, =T) eval {
On 07/05, Dario Sanfilippo wrote:
>
> Hello, everybody.
>
> Here's yet another design to obtain analytic signals, taken from Olli's
> post:
> https://dsp.stackexchange.com/questions/37411/iir-hilbert-transformer/59157#59157
> .
>
> analytic(x) = real,
>
> imaginary
>
> with {
>
>
On 06/15, Dario Sanfilippo wrote:
>
> quad_osc(f) = tick ~ (_ , _)
> with {
> init = 1-1';
> w = 2*ma.PI*f/ma.SR;
> k1 = tan(.5*w);
> k2 = 2*k1/(1+k1*k1);
> tick(u, v) = omega-k1*(v+k2*omega) , v+k2*omega
> with {
> omega = (u+init)-k1*v;
> };
> };
another case when we need to
On 06/23, Oleg Nesterov wrote:
>
> Of course. But as for fi.hilbert, I simply can't imagine any practical
> usage of it...
Cough... and I just noticed it can't be compiled ;)
hilbert = pospass : !,_;
won't work, you need
hilbert(N) = pospass(N) : !
1 - 100 of 138 matches
Mail list logo