SC in the browser

Hi all,

I had some questions about SC’s web-compatibility in 2023. What are the options for the following:

  1. using SC in the browser; Does a web-based IDE exist? Does a web-based SCSynth exist?
  2. simultaneous collaboration of the same synth files, but spawning these on separate machines (shared UI)
  3. if a small handful of computers needed to send OSC to each other is there a UGen/mechanism in SC that allows this across different networks? Or is it just a matter of knowing someone’s full IP address?
  4. what are the options for realtime JITlib work with live coding in the browser?

…I saw QWebView class but noted that it’s undocumented and unsure if this would be the route to take anyway. Is it legacy?

Thanks for any and all replies!

I don’t know about sclang IDE, but there is a javascript client:

1 Like

Have you seen the and Utopia
HyperDisCo Quarks?

1 Like
  1. There is also a dev-branch in which scsynth gets ported to wasm, which would allow to run at least the synthesis within a local browser, but something like faust IDE is still not available
  1. I wrote a SuperCollider kernel for Jupyter, which allows to collaborate on the same document in a synchronized manner using the browser, but this is mulltiple users work on the same sclang client, but maybe it is still useful?

https://scsynth.org/t/sc-kernel-supercollider-sclang-kernel-for-jupyter

  1. Distributing OSC messages becomes harder and harder these days with more firewalls in place - especially since the network stack of SC does not support IPv6 and providers only give you a IPv6 address (or somehow I was unable to create a p2p connection with my setup given by my provider).
    I wrote a tool which tunnels these OSC messages via socket.io, see GitHub - capital-G/oscMirror: Broadcast OSC messages via websockets to circumvent network restrictions which allows to send OSC messages through firewalls or IPv6
    Maybe it is possible to use the excellent HypeDisCo service mentoned above for this as well.

  2. I can share a project that I am currently working on
    GitHub - Gencaster/gencaster: A non-linear audio streaming framework for real-time radiophonic experiences and live music.
    It basically spins up multiple scsynth instances on a server which can be listened to via a browser using WebRTC. What gets executed on the scsynth server can be controlled via a graph editor (which allows to mix SC/Python/JS) as well as just connecting a local SC-IDE to the remote server.
    It is also possible to interact with feedback from the user, e.g. displaying a slider, using their GPS address (if approved) or requesting a text input.
    It is still in alpha state but we are happy about feedback and curious people :slight_smile:

3 Likes
  1. for livecoding using supercollider (and other languages like tidalcycles, hydra…) you can use Troop (python) GitHub - Qirky/Troop: Real-time Live Coding collaboration app or flok (nodejs) GitHub - munshkr/flok: Web-based P2P collaborative editor for live coding sounds and images

  2. HyperDisCo quark works well also… (thx bgola! \o/ )

  3. using terminal with scnvim + tmux + instant.nvim GitHub - jbyuki/instant.nvim: collaborative editing in Neovim using built-in capabilities

1 Like