Hey Mario- 

Yep, Perry's got the right idea. The big cleanup in the ChucK 1.4 update left out a component that had been built to support GUI chugins, but two alpha-status examples you can look at are MAUI.chug and chugl (ChucK GL). These are currently Mac only. 
https://github.com/spencersalazar/MAUI.chug
https://github.com/spencersalazar/chugl

I recently spent a little time reimplementing support for these GUI chugins, which works in the current master branch of ChucK or will work in an upcoming 1.4.0.1 release that is being prepared soon. 

The basic idea is that most GUI frameworks expect to operate on a main thread of sorts. Chugins that want to run a GUI can submit a hook/callback for chuck to call in its main thread, which is otherwise mostly idle (chuck's VM and audio synth are running in a separate real-time audio thread). 

There are other considerations such as what happens if two GUI chugins compete with each other, how GUI chugins are meant to work in miniAudicle, Windows/Linux, etc. But the basic idea is there / not crazy!  

Spencer



On Wed, Apr 15, 2020 at 6:50 AM Mario Buoninfante <mario.buoninfante@gmail.com> wrote:
Hi,

Recently I've been poking around with Chugins and created a couple of things I thought were 'missing' in the official ChucK and Chugin repos, UGens like Wrap, Clip, Sample and Hold, etc. (https://github.com/mariobuoninfante/ChucK_chugins), and I was thinking about adding an oscilloscope as well.
Recently I also put together a clunky class that allows you to plot things using gnuplot, but it's an offline thing, then you need to use Std.system() (that means using --caution-to-the-wind), I mean it's not ideal to be honest, especially if you're looking for an oscilloscope.
I was wondering, would a Chugin be the right thing to work on to create an oscilloscope?
I never dealt with UIs before, so I could be saying something completely naive here, but I was thinking about having a Chugin you can connect UGens to then display their waveform.
Then have methods that allow to change the oscilloscope settings (ie x-axis and y-axis resolution, etc.).
Does anybody have any experience with this kind of things? Chugins with UIs?
Is it even sensible?

Cheers,
Mario

_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users