Proposal: Unity Asset Store or GitHub Package Integration
Greetings,
I would like to propose the development of a Unity Asset Store or GitHub package that integrates the capabilities of
SuperCollider into Unity. The objective would be to create a bridge between
Unity and SuperCollider, or alternatively between Wwise and
SuperCollider, enabling seamless data transmission back into Unity. This integration could offer
developers powerful sound synthesis options and real-time audio manipulation within their interactive Unity
projects.
Key Features
Provide access to SuperCollider's sound synthesis and audio processing engine within Unity
environments.
Create a bi-directional data bridge between Unity and SuperCollider for real-time interaction.
Potentially integrate this with Wwise to take advantage of its advanced audio authoring tools
and expand its functionality.
Ensure compatibility with Unity's real-time engine for interactive experiences, whether it's a game, VR, or
other creative applications.
Implementation Thoughts
Whether this becomes a Wwise extension or a direct Unity extension, the
possibilities offered by combining these platforms are vast. This bridge would allow users to:
Take advantage of SuperCollider's dynamic sound generation capabilities inside Unity.
Enable complex audio manipulations that can react to real-time game logic.
Possibly facilitate communication between SuperCollider's audio synthesis engine and Wwiseās
audio middleware for advanced audio experiences.
Encouragement for Development
I believe this could be a particularly exciting and valuable project for the audio-visual development community,
allowing for richer and more complex sound design workflows in Unity-based environments. Therefore, I would like to
encourage the development of this project and look forward to the progress in this area.
Thank you very much for your time and consideration.
Canāt be used in commercial games (which are by and large closed source) because of GPL.
This means most users will be running this locally for their own art projects, and at that point, it is much easier to have supercollider open an executable made by a game engine and communicate over osc to it. There are a few good osc add-ons for unity - I adapted one so the object hierarchy becomes the osc namespace. This is much easier than trying to pass supercollider code from unity.
When we shift the focus from individual preferences to community-driven standards, we enable greater collaboration, consistency, and efficiency.
How is the Unity Assert Store a ācommunity-driven standardā? Itās a commercial platform. Iām not even sure how your last post relates to your original requestā¦
As @jordan has pointed out, SCās license is not compatible with Unity. Hereās a quote from the submission guidelines:
1.2.e Submissions do not contain dependent licenses that require a product to maintain open-sourced or limited usability in commercial products such as GNU/GPL Mozilla Public License, or any Creative Commons/Apache 2.0 license that requires attribution.
As you can see, it is not possible to publish SC-based software on the Unity Asset Store.
So much for the subject of ācommunity-driven standardsāā¦
I think itās quite interesting to speculate on what supercollider (or something like it) could be on a more permissable licence (say MIT). Itās a shame that students who learn software designed specifically for interactive audio arenāt able to use that software in the largest interactive audio industry (games). I wonder if there is a whole to be filled here?
Itās a shame that students who learn software designed specifically for interactive audio arenāt able to use that software in the largest interactive audio industry (games).
In reality, game dev has its own set of audio engines and authoring tools, so if you want to work professionally, you need to learn and use these anyway. SC can still be used for internal prototyping, though!
But you canāt release the game as closed source if you embedded supercollider, or can you - licences confuse me?
I actually donāt know what other alternatives there are and how they compare A while ago I looked at wwise, so this is probably our of date, but it seems quite limited compared to the what you could do with, say, altering patterns based on game state.
You canāt Iād agree that it might be nice if SC was released under a more permissive license (personally, I think LGPL is a decent middleground), but it wonāt ever happen.
I think GPLv3 would permit a closed-source client to run a separate scsynth process and communicate with it using OSC. If itās an unmodified scsynth + plugins, it wouldnāt be necessary to publish the source. Any mods would have to release source code.
Linking libscsynth AFAIK wouldnāt be allowed (since thatās one of the key cases for GPL: to prevent closed-source projects from appropriating open-source libraries).
Iāve already wanted to write this after your previous post: please donāt use an AI to write your forum posts (beyond grammer/spelling fixes)! Nobody wants to read a wall of verbose AI talk.
To address the most important point:
In terms of open-source licensing, we might also consider the case of SuperCollider and its adoption of the MIT license.
You cannot simply change the license, that is the very point of the GPL! The only way to do this is to get the written permission of every contributor. Some major contributors have already said that they would never agree to such relicensing (see for example Commercial licensing (again) - #2 by VIRTUALDOG).
is at least grammarly ok, for the sake of text proof reading? like i said, i want to be a cyborg (or at least an AI agent). but only when it will become safe
As a sound designer working in the game industry I would love to see Supercollider integrated within the game audio workflow but as mentioned previously by @jordan is at the moment impossible due to licenses. While ago Iāve tried to authoring my own plugins for Wwise converting PureData patches into C++ code using the Havoc compiler. It was very fun and powerfull but eventually we couldnāt use it because licences
I wonder if things are different with Godot, could we potentially use SC within its engine? Theyāve recently released a Wwise integration for Godot.
The MIT License is highly compatible with other permissive licenses. Including the BSD family of licenses. It is generally compatible with GNU GPL group of licenses. However if you distribute the code that contains or is derivative of GNU GPL code the final project must of GPL compliant. In other words any source code must of publicly available.
Iāve used Godot to control SC/SonicPi in the past. Since Godot can send OSC messages, the easy setup is to launch SC with Godot when the project starts (piping through shell), then to send OSC messages with Godot when needed to control synths, or to trigger larger events (possibly using sclang to do so). This comes at the cost of a small latency (OSC needs to travel through network), which, depending on your needs, might be acceptable or not.
There are other considerations to take into account depending on the scale of your project. Godot aims to help video games business, it tries to provide a software that is competitive with other commercial softwares, even if licenced under MIT (see the recent game Dome Keeper). Providing a simple executable that includes Godot + SuperCollider and runs out of the box on every OS might be too costly to be envisaged. CPU/RAM management is way simpler when thereās only one program running at once.
As an example, Iāve seen in the Godot documentation (I think) that most of the time, video games sound designer do not apply reverb to their sound before exporting them, because reverb increases sound file length dramatically. Instead, they provide ādryā sound which are played through a single dedicated reverb bus that is running while the game is running.
To give this a better context as far as I understand:
Already publishing SuperCollider as-is in e.g. e.g. the Apple AppStore is difficult b/c of the GPL, see More about the App Store GPL Enforcement ā Free Software Foundation ā Working together for free software - IIUC: Apple TOS states you are not allowed to copy anything from the AppStore, which is contrary to the GPLv2. SuperCollider actually uses GPLv3 which changes nuances about this, but there is a consent that this still is not compatible.
To my understanding: Linking GPL code can only happen in a GPL environment - so if you want to use sclang or scsynth directly within your project/binary, this is only possible if your project is licensed under GPL - this is what copyleft is about.
GPL only affects when one is linking the program/lib, but scsynth can be used without linking by sending OSC messages to the server - so one could use scsynth from within a non-GPL project. It would be even possible to bundle scsynth with such an application (e.g. during installation), but this is also most likely not feasible due to the first point. If SuperCollider would be licensed under AGPL, this would not be possible.
A bit OT but a really interesting talk as a primer about state of the art sound synthesis in recent game development: https://www.youtube.com/watch?v=N-dPDsLTrTE (starts at around 37:00)