Two different issues here: 1) first the code defines a same path for a slider and a bargraph. The old rule of « not 2 same paths in the GUI » was somewhat relaxed in this commit: https://github.com/grame-cncm/faust/commit/3437255f54ec46c565c159438bde19c3daea757c, but still not completely correctly. So I’ve have to fix that. In the meantime the code can compile if the DSP is fixed this way:
import("stdfaust.lib"); lf_triangle_phase(freq, phase) = os.lf_triangle(freq) @ (phase * ma.SR/freq); lfo_freq = hslider("[1] Freq", 0.5, 0.001, 50, 0.01); lfo1 = lf_triangle_phase(lfo_freq, 0); lfo_phase = hslider("[2] Phase", 180, 0, 360, 1) / 360; lfo2 = lf_triangle_phase(lfo_freq, lfo_phase); process = lfo1, lfo2 : hbargraph("[3] 0",-1,1), hbargraph("[4] Phase1",-1,1); 2) but then another issue happens: the allocated memory for the delay (@ (phase * ma.SR/freq); ) is too big for the wasm memory allocation scheme. So this has to be fixed also at DSP code level. Stéphane > Le 26 févr. 2023 à 03:08, Julius Smith <julius.sm...@gmail.com> a écrit : > > I encountered that too and reported it to Stephane. faust2caqt had no > problem. Looking forward to hearing what that's about! > > On Sat, Feb 25, 2023 at 4:05 PM Dario Sanfilippo <sanfilippo.da...@gmail.com> > wrote: > Just so you know, Julius' code gives me this assert on the IDE: > > ASSERT : please report this message and the failing DSP file to Faust > developers (file: wasm_code_container.hh, line: 60, version: 2.54.11, > options: -lang wasm-ib -cn > a08c5ceec105cc33e58fe2dfaaa8d2f0a80eaf39e4a593811bb636d3de7a14d3 -es 1 -mcd > 16 -single -ftz 0 ) > > Here is a non-delay-based alternative (tested very briefly, but it seems to > work): > > import("stdfaust.lib"); > > PI = ma.PI; > TWOPI = 2.0 * ma.PI; > > phasor(freq, phase) = ma.frac((loop ~ _) + phase / TWOPI) > with { > loop(y) = ma.frac(freq / ma.SR + y); > }; > > tri(ph) = abs(ma.frac(ph - .25) * 4.0 - 2.0) - 1.0; > ph0 = hslider("ph0", 0, -PI, PI, .001); > ph1 = hslider("ph1", -PI / 2.0, -PI, PI, .001); > f = hslider("freq[scale:log]", 1000, 20, 20480, .001); > > // Oscillation by phase-mod > // process = os.oscp(0, os.phasor(TWOPI, 1000)) , > // sin(TWOPI * phasor(0, os.phasor(TWOPI, 1000))) , > // tri(phasor(0, os.phasor(TWOPI, 1000))); > > process = os.oscp(f, ph0) , > os.oscp(f, ph1) , > sin(phasor(f, ph0) * TWOPI) , > sin(phasor(f, ph1) * TWOPI) , > tri(phasor(f, ph0)) , > tri(phasor(f, ph1)); > > Dr Dario Sanfilippo > http://dariosanfilippo.com > > > On Sun, 26 Feb 2023 at 00:28, Julius Smith <julius.sm...@gmail.com> wrote: > Ok, I see it. The implementation of os.lf_sawpos_phase is impulse-based: > > lf_sawpos_phase(freq,phase) = phasor_imp(freq, (1-1'), phase); > > This means it is only sampled at time zero. For continuous phase control, > you want something delay based, e.g., > > lf_triangle_phase (freq, phase) = os.lf_triangle(freq) @ (phase * ma.SR/freq); > > Here is my updated test program (no scope needed - I used faust2caqt): > > import("stdfaust.lib"); > > lf_triangle_phase(freq, phase) = os.lf_triangle(freq) @ (phase * ma.SR/freq); > lfo_freq = hslider("[1] Freq", 0.5, 0.001, 50, 0.01); > lfo1 = lf_triangle_phase(lfo_freq, 0); > lfo_phase = hslider("[2] Phase", 180, 0, 360, 1) / 360; > lfo2 = lf_triangle_phase(lfo_freq, lfo_phase); > process = lfo1, lfo2 : hbargraph("[3] 0",-1,1), hbargraph("[4] Phase",-1,1); > > On Sat, Feb 25, 2023 at 2:03 PM Christopher Arndt <ch...@chrisarndt.de> wrote: > Am 24.02.23 um 21:50 schrieb Julius Smith: > > Hmmm, it looks to me like it should be working. > > I adapted your test program for use with faust2plot, and it's working > > for me: > > Yes, it works, if the phase is set initially. But what I want is to > change the phase of one LFO at run-time with a parameter and that > doesn't seem to work. > > Here are two images, which demonstrate this, I hope: > > 1) your code (lfophase.dsp) compiled with faust2jack and its output send > into a stereo oscilloscope. the two LFOs have different phase > > https://0x20.eu/nc/s/kWSwRE2oHD4rStt/preview > > 2) The code from my original post (lfophase2.dsp) compiled with > faust2jaqt again with its output into the scope. I have set the phase > two 91 after staring the program, but the output as seen in the scope > never changes and the two LFOs are still at the same phase. > > https://0x20.eu/nc/s/Y47eaLK8DGZZTbk/preview > > > Chris > > > > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > -- > "Anything that can be automated should be" > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > -- > "Anything that can be automated should be" > _______________________________________________ > 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