Re: [Faudiostream-users] crossfeedback

2020-05-22 Thread Sam Pluta
So, is this: process(f1,f2,m1,m2) = (os.osc(*(m1)+f1):os.osc(*(m2)+f2:abs)) ~ _; preferable to this: process(f1,f2,m1,m2) = (os.osc(((_,m1:*),f1):+):os.osc(((_,m2:*),f2):+:abs)) ~ _; or this: process(f1,f2,m1,m2) = _,m1:*),f1):+:os.osc,m2:*),f2:+:abs:os.osc) ~ _; Are fewer parenthesis

Re: [Faudiostream-users] crossfeedback

2020-05-22 Thread Dario Sanfilippo
That's on me for being lazy, Oleg :) I didn't change Sam's code at all and I just moved the ~ at the end :) Dario On Fri, 22 May 2020 at 18:42, Oleg Nesterov wrote: > Dario, sorry for noise but I simply can't resist... > > On 05/22, Dario Sanfilippo wrote: > > > > process(carFreq, modFreq,

Re: [Faudiostream-users] crossfeedback

2020-05-22 Thread Oleg Nesterov
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):* > ) > ,

Re: [Faudiostream-users] crossfeedback

2020-05-22 Thread Oleg Nesterov
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

Re: [Faudiostream-users] crossfeedback

2020-05-21 Thread Stéphane Letz
> > > Feedback without delay of blocksize is sick. You just can’t make this circuit > in SC. > This was *one* of the initial motivation of the project… ((-; Welcome to Faust ! Stéphane ___ Faudiostream-users mailing list

Re: [Faudiostream-users] crossfeedback

2020-05-21 Thread Dario Sanfilippo
Happy to help, Sam. If interested in some technical papers, Lazzarini has written on feedback modulations. Personally, I would consider the emergence of non-sound, together with the emergence of sound with turbulence, an added degree of complexity to the behaviour of the system. But I understand

Re: [Faudiostream-users] crossfeedback

2020-05-21 Thread Sam Pluta
Thank you Dario, This is great. Adding an abs before the last osc seems to clear up the dropouts (but also takes away a bit of the fun), so I guess it was negative freq. The placement of the ~ is my incomplete understanding of its function at this point. But seeing your solution clears up a lot,

Re: [Faudiostream-users] crossfeedback

2020-05-21 Thread Dario Sanfilippo
Just to be precise, if you want the exact same circuit without the 0 and the +, you can replace them with a wire, so it will be one signal feeding back into something with one input: the wire. process(carFreq, modFreq, multOfMod, multOfCar) = _ ~ _, multOfMod:*), modFreq:+):os.osc,

Re: [Faudiostream-users] crossfeedback

2020-05-21 Thread Dario Sanfilippo
Hi, Sam. Sounds nice. If you notice, the recursive operator is at the top of the chain, so whatever block of code within parentheses after ~ will be in the feedback path. The signal left of ~ is then going through. You can achieve the same circuit by moving the feedback operator at the end as in

[Faudiostream-users] crossfeedback

2020-05-21 Thread Sam Pluta
I made this crossfeedback synth in Faust: import("stdfaust.lib"); process(carFreq, modFreq, modModMult, indexMult) = 0: + ~ ( ( ( (_, hslider("modModMult",100,100,1000,1):*), hslider("modFreq",100,100,1000,1):+ ):os.osc, hslider("carModMult",100,100,1000,1):* ) ,