@samaaron

1.6K Followers
185 Following
551 Posts
Creator of Sonic Pi and Tau5. Live coding artist, lover of table football and cycling.
Live Coder.Creator of Sonic Pi

SuperSonic's new Link Audio output stream seems too good to be true.

It just works. It even gracefully handled a network card switch. With an ethernet connection you can get the latency really low.

Nice work @ableton

BTW, this will be included in the upcoming Sonic Pi v5 Beta 3 release for you to play with. Stay tuned!

I'm working on adding full Ableton Link v4 support to SuperSonic.

This includes support for Link Audio - enabling you to effortlessly stream audio between different machines on your local network.

Today I was streaming the output from an experimental Link Audio capable Sonic Pi running on my Mac to Ableton Live 12.4 running on my PC over WiFi.

Rumour has it that Patreon supporters now have access to a private beta of v5 of Sonic Pi - powered by SuperSonic.

https://patreon.com/samaaron

Jamming with Sonic Tau on my phone.

https://sonic-pi.net/tau

This code now works identically in both Sonic Pi and my new experimental tau-vm-based audioworklet language:

10.times do
sample :perc_bell, rate: rrand(0.125, 1.5)
sleep rrand(0, 2)
end

Here's a simple experimental language compiler in action which takes Sonic Pi like code and converts it to bytecode which can be executed on a vm running inside an AudioWorklet.

The only side-effects this language is allowed to do is to write to the global time-state.

All side effects are created by handlers which operate over a 2ms time-state window.

*VERY* early stages - as you can see there's byte for 'play' which is clearly the wrong level of abstraction - but prototypes gotta prototype!

I just pushed v0.35 of SuperSonic - my port of SuperCollider's powerful synthesis engine scsynth to the web as an AudioWorklet.

This comes with a lot of performance improvements, improved bundler compatibility and much polish to the fun example.

Take it for a spin: https://sonic-pi.net/supersonic/demo.html

SuperSonic now exposes the scsynth node tree for fast reading from JS.

This does not require a full OSC round-trip like /g_queryTree (which is also supported for legacy use cases).

Instead it’s automatically written to the SharedArrayBuffer so visualisers can read it at 60fps without issue.

See it in action in the demo here: https://sonic-pi.net/supersonic/demo.html