[chuck-users] web integration (fao Jack Atherton)

Spencer Salazar spencer.salazar at gmail.com
Sun Jul 26 20:00:16 EDT 2020


Hey Michael,

For sure, feel free to use my course notes here, though they are a little
old. If anything meaningful has changed Im happy to update and eventually
migrate to a more accessible medium.
https://www.dropbox.com/s/923z4px4ztccm1b/basic-rpi.pdf?dl=0

If youre looking for simple 1/8" stereo out Ive had a lot of success with
inexpensive (<$10 USD) USB sound interfaces from Amazon/etc. Search for
"raspberry pi soundcard" or look for "class compliant" in the description.
They don't require any extra software to be installed on the Pi. This
option is a quick way to easily get better audio quality from the Pi- in my
experience the built-in sound card is unacceptably noisy for most musical
purposes. The difference in quality between $10 USB audio and the fancier
GPIO shields is much less drastic, and to me never justified the extra
expense and baroque custom driver setup of the latter.

Spencer


On Thu, Jul 23, 2020 at 12:47 PM Michael Heuer <heuermh at gmail.com> wrote:

> Spencer wrote:
>
> > (Ive done a lot of work with native ChucK + Raspberry Pi so can fill in
> any details if needed).
>
> If you might be able to write a blog post or other walkthrough
> documentation on this, I would appreciate it!
>
> Last I tried I couldn't get the cheapo USB sound card I was using to work,
> and I've never gotten as far as setting ChucK up to run automatically on
> startup.
>
> Thanks!
>
>    michael
>
>
> On Jul 23, 2020, at 2:17 PM, Mícheál Ó Catháin <micheal.ocathain at gmail.com>
> wrote:
>
> Jack
> Thanks very much for the pointers on web chuck!
> I've got a very basic setup working here
> https://michealocathain.com/av/webchuck-test/.
>
> Note I'm loading Chrome from the cli on a mac as follows:
> /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
> --autoplay-policy=no-user-gesture-required
>
> It loads /chuck/micheal2.ck, which in plays aah.wav using a sndbuf ugen.
>
> Chrome takes about 3 sec to load chuckscript.wasm, and about 2 sec to load
> aah.wav.  This with an empty cache.  It's quicker to reload after the first
> load, but it made me realise that there will possibly be a practical limit
> on the size of .wav files loaded.
>
> Has there been any best practice developed on how to (pre)load .wav files
> longer than 5 seconds or so?  I'm interested in sampling from several ca. 5
> min tracks I have recorded at 24bit, ie ca 100mb. This could be way beyond
> the normal user-case for webchuck!!
>
> I'm also curious to know if there is any variant of sndbuf which can
> handle mp3's or other compressed formats?
>
>
> Have done a scan of the chuck-users archive - apologies if I have missed
> previous answers to my queries !!
>
>
> Warm regards
> micheal
>
> On Wed, 22 Jul 2020 at 18:23, Mícheál Ó Catháin <
> micheal.ocathain at gmail.com> wrote:
>
>> Spencer
>>
>> Thanks a lot for your suggestions.  Yes, I'm definitely considering OSC
>> between peer-peer connect Raspberry Pi's.  Still in testing mode with web
>> chuck for now, and will see if it is the right setup for a low latency AV
>> installation.
>>
>> Ideally I'd love to be able to load .ck files within javascript, driving
>> visualisations via javascript libraries (I'm still looking into what's
>> possible - have looked at p5.js and d3.js so far).
>>
>> Really useful that you raised the point on UDP.  Would an OSC javascript
>> library give the best of both worlds, webchuck to allow chuck drive the
>> javascript visualisations, with OSC maintaining low latency
>> syncronisation?  I haven't tried yet, but this looks promising...
>> https://github.com/colinbdclark/osc.js/
>>
>> Another consideration I should perhaps point out, is this...  I primarily
>> am designing the AV installation for people to experience in person in a
>> gallery space - hence the peer to peer set up as a priority.  However since
>> the first showing is in October, a second wave lockdown could mean zero
>> footfall.  As a backup, I'm looking to be able to run the whole
>> installation on my webserver, so that for example a group of 4 friends
>> could experience the installation on 4 laptops set up in a configuration of
>> their choice in one of their homes.  Amazing to think that this is not so
>> far fetched, latency issues aside...
>>
>> I've run ChucK on a single raspberry pi 3 before, using the linux-jack or
>> linux-alsa compilation option. I definitely have LOTS to learn about
>> getting the most out this setup, so I'll be glad of any pointers you may
>> have, and will keep you and Jack posted!
>>
>> warmest wishes
>> micheal
>>
>> From: Spencer Salazar <spencer.salazar at gmail.com>
>> To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
>> Cc:
>> Bcc:
>> Date: Mon, 20 Jul 2020 16:54:30 -0700
>> Subject: Re: [chuck-users] web integration
>> Hey Micheal,
>>
>> As an alternative, if you intend for the sound to be coming from the
>> Raspberry Pis and not a separate computer loading the webpages, you can run
>> ChucK locally on the Raspberry Pi and communicate over OSC, though you may
>> need to route OSC through Node as Im not certain that standard web browsers
>> can send OSC over UDP natively. Its fairly easy to compile chuck on
>> Raspberry Pi using the Linux compilation instructions (Ive done a lot of
>> work with native ChucK + Raspberry Pi so can fill in any details if
>> needed).
>>
>> Spencer
>>
>>
>>
>> On Mon, Jul 20, 2020 at 7:58 AM Mícheál Ó Catháin <
>> micheal.ocathain at gmail.com> wrote:
>>
>>> hi
>>> I'm developing an audiovisual installation to tour a number of arts
>>> centres in Ireland. I want to use ChucK to drive the audio elements,
>>> linking raspberry pi devices (up to 4) connected via hdmi to screens.  The
>>> visuals I want to use browsers - probably firefox run off the RPi's.  Each
>>> screen then displaying a different page from a javascript application run
>>> from one of the RPi's.
>>>
>>> I've done some initial check online of running ChucK wrapped in
>>> javascript, and this github page is the latest activity I can find
>>> https://github.com/aknuds1/chuck.
>>>
>>> I thought it best to check with the user community if
>>> 1) there are further developments on running ChucK in the browser
>>> 2) if the av setup I'm considering has been done before so I could
>>> perhaps link in and learn from others
>>> 3) if there are better setups that I should be following...
>>>
>>>
>>> Thanks and kind wishes
>>> micheal
>>>
>>
>>
>>
>> I'm still trying to understand if web chuck is an entirely different
>> setup - i.e.,
>>
>> On Tue, 21 Jul 2020 at 17:00, <chuck-users-request at lists.cs.princeton.edu>
>> wrote:
>>
>>> Send chuck-users mailing list submissions to
>>>         chuck-users at lists.cs.princeton.edu
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>         https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>> or, via email, send a message with subject or body 'help' to
>>>         chuck-users-request at lists.cs.princeton.edu
>>>
>>> You can reach the person managing the list at
>>>         chuck-users-owner at lists.cs.princeton.edu
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of chuck-users digest..."
>>> Today's Topics:
>>>
>>>    1. Re: visualizing UGens and UAnae (Mario Buoninfante)
>>>    2. Re: web integration (Spencer Salazar)
>>>    3. AutoCorr behavior (Curtis Ullerich)
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Mario Buoninfante <mario.buoninfante at gmail.com>
>>> To: Curtis <curtullerich at gmail.com>
>>> Cc: ChucK <chuck-users at lists.cs.princeton.edu>
>>> Bcc:
>>> Date: Mon, 20 Jul 2020 22:18:10 +0100
>>> Subject: Re: [chuck-users] visualizing UGens and UAnae
>>>
>>> You can have dac using multiple channels so that for example you can
>>> connect output 3 and 4 to baudline or any other software you want to use.
>>>
>>> Cheers,
>>> Mario
>>>
>>> --
>>> electronic musician, sound artist, creative coder, QA engineer
>>> https://vimeo.com/creativecodingsalerno http://mbuoninfante.tumblr.com
>>> https://github.com/mariobuoninfante
>>> https://bitbucket.org/mariobuoninfante
>>> On 20 Jul 2020 22:12, Curtis Ullerich <curtullerich at gmail.com> wrote:
>>>
>>> Thank you! Plot seems like it'll do what I need for now. I wonder if
>>> there's a way to tee output to be read by sndpeek or baudline from a graph
>>> node other than dac.
>>>
>>> On Mon, Jul 20, 2020 at 2:02 PM Mario Buoninfante <
>>> mario.buoninfante at gmail.com> wrote:
>>>
>>> Also, if you're on Linux I recommend Baudline (http://www.baudline.com
>>> /).
>>> I often just leave it connected all the time.
>>>
>>> Cheers,
>>> Mario
>>>
>>> --
>>> electronic musician, sound artist, creative coder, QA engineer
>>> https://vimeo.com/creativecodingsalerno http://mbuoninfante.tumblr.com
>>> https://github.com/mariobuoninfante
>>> https://bitbucket.org/mariobuoninfante
>>> On 20 Jul 2020 21:25, Curtis Ullerich <curtullerich at gmail.com> wrote:
>>>
>>> Is there a way to visualize the waveforms in UGens and data/waveforms in
>>> UAnae? I was hoping to see something in MiniAudicle. It seems like sndpeek
>>> could be useful here. My purpose is for debugging, so it doesn't need to be
>>> pretty. I'm dreaming of something that can show any/all units in the graph.
>>>
>>> Thanks,
>>> Curtis
>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Spencer Salazar <spencer.salazar at gmail.com>
>>> To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
>>> Cc:
>>> Bcc:
>>> Date: Mon, 20 Jul 2020 16:54:30 -0700
>>> Subject: Re: [chuck-users] web integration
>>> Hey Micheal,
>>>
>>> As an alternative, if you intend for the sound to be coming from the
>>> Raspberry Pis and not a separate computer loading the webpages, you can run
>>> ChucK locally on the Raspberry Pi and communicate over OSC, though you may
>>> need to route OSC through Node as Im not certain that standard web browsers
>>> can send OSC over UDP natively. Its fairly easy to compile chuck on
>>> Raspberry Pi using the Linux compilation instructions (Ive done a lot of
>>> work with native ChucK + Raspberry Pi so can fill in any details if
>>> needed).
>>>
>>> Spencer
>>>
>>>
>>>
>>> On Mon, Jul 20, 2020 at 7:58 AM Mícheál Ó Catháin <
>>> micheal.ocathain at gmail.com> wrote:
>>>
>>>> hi
>>>> I'm developing an audiovisual installation to tour a number of arts
>>>> centres in Ireland. I want to use ChucK to drive the audio elements,
>>>> linking raspberry pi devices (up to 4) connected via hdmi to screens.  The
>>>> visuals I want to use browsers - probably firefox run off the RPi's.  Each
>>>> screen then displaying a different page from a javascript application run
>>>> from one of the RPi's.
>>>>
>>>> I've done some initial check online of running ChucK wrapped in
>>>> javascript, and this github page is the latest activity I can find
>>>> https://github.com/aknuds1/chuck.
>>>>
>>>> I thought it best to check with the user community if
>>>> 1) there are further developments on running ChucK in the browser
>>>> 2) if the av setup I'm considering has been done before so I could
>>>> perhaps link in and learn from others
>>>> 3) if there are better setups that I should be following...
>>>>
>>>>
>>>> Thanks and kind wishes
>>>> micheal
>>>>
>>>> michealocathain.com
>>>> _______________________________________________
>>>> chuck-users mailing list
>>>> chuck-users at lists.cs.princeton.edu
>>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Curtis Ullerich <curtullerich at gmail.com>
>>> To: ChucK Users Mailing List <chuck-users at lists.cs.princeton.edu>
>>> Cc:
>>> Bcc:
>>> Date: Tue, 21 Jul 2020 01:07:31 -0700
>>> Subject: [chuck-users] AutoCorr behavior
>>> As a preamble, I'll note that I posted a question on chuck-dev about
>>> AutoCorr/XCorr always crashing for me. This patch
>>> <https://github.com/ccrma/chuck/pull/150> seems to fix that.
>>>
>>> That said, I don't understand the results I get from AutoCorr. For
>>> periodic inputs, I expect to see periodicity in the output. For small FFT
>>> sample sizes, I see the expected peak at 0, and at large sample sizes I see
>>> a second peak at the end of the window. See example plots at 128
>>> <https://i.ibb.co/BBZXgBB/autocorr-128.png> and 4096
>>> <https://i.ibb.co/Mn5fty5/autocorr-4096.png>. That second peak is
>>> correlated with the window size, not the input frequency.
>>>
>>> Thanks to Mario for his gnuplot wrapper
>>> <https://github.com/mariobuoninfante/ChucK_various> that captured those
>>> plots.
>>>
>>> Here's the plotting code if anyone would like to repro:
>>> SinOsc s => FFT fft =^ AutoCorr c => blackhole;
>>> 4400 => s.freq;
>>> 128 => fft.size;
>>> 300::ms => now;
>>> c.upchuck();
>>> Plot plot;
>>> "autocorrelation of 4400 hz, 128 samples" => plot.title;
>>> plot.plot(c.fvals());
>>> 200::ms => now;
>>>
>>> Should I be using AutoCorr differently? Am I looking at the power
>>> spectrum or something, and not the correlation vector like I think I am? My
>>> current understanding comes from reading uana_extract.cpp many times with
>>> references like this <http://paulbourke.net/miscellaneous/correlate/>.
>>>
>>> Thanks,
>>> Curtis
>>> _______________________________________________
>>> chuck-users mailing list
>>> chuck-users at lists.cs.princeton.edu
>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>>
>> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200726/f0be715d/attachment-0001.html>


More information about the chuck-users mailing list