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, multOfCar:*), carFreq:+:os.osc); Dario On Fri, 22 May 2020 at 01:13, Dario Sanfilippo <sanfilippo.da...@gmail.com> wrote: > 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 the example below: > > 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):* > ) > , hslider("carFreq",100,100,1000,1):+:os.osc > ) ~_ , 0.1:*; > > The only difference here is that the output is not delayed by one sample. > > About the dropouts: I'm not experiencing any. Is it possible that with > some combination of the parameters the frequency of the oscillator at the > output is in the infrasound range? After all, the modulating frequency can > be negative. > > Cheers, > Dario > > On Fri, 22 May 2020 at 00:42, Sam Pluta <spl...@gmail.com> wrote: > >> 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):* >> ) >> , hslider("carFreq",100,100,1000,1):+:os.osc >> ), 0.1:*; >> >> Without the GUI, it is: >> >> import("stdfaust.lib"); >> >> process(carFreq, modFreq, multOfMod, multOfCar) = 0: + ~ ((((_, >> multOfMod:*), modFreq:+):os.osc, multOfCar:*), carFreq:+:os.osc); >> >> The graphical display is here: >> >> >> https://faustservice.grame.fr/CA4694BC72BFBA3822E0567BB44D02206B52EEAC/diagram/process.svg >> >> I made it to work in SuperCollider. In both SC and in the Faust Online >> Editor, it sounds great, but there are these dropouts that happen seemingly >> at random. It is as if the carrier continues going, but the modulator >> disappears from the circuit for a second. >> >> So, two questions: >> >> Is there something causing the dropouts that I am unaware of / need to >> compensate for? >> >> Can I get the feedback to work the way I want without that silly 0? I >> could not get the circuit to feedback and output at the same time without >> it. >> >> Thanks, >> >> Sam >> >> >> _______________________________________________ >> 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