Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] Unity

Giovanni Bedetti <[email protected]>
Newsgroups gmane.comp.audio.csound.devel
Message-ID <CAO+OKxn93AW6LaCTRgRR3DxZOxp4Mz_jYghue8ZVkfeK18PbdQ@mail.gmail.com>
That's great!

I tried on a low end Samsung it works, but I get this error on the second
instantiation:

TestBuild_0.framework.js:913 starting to await for Csound with flag: 0
011e293a:0x48091 Uncaught (in promise) RuntimeError: unreachable
    at __wasi_proc_exit (011e293a:0x48091)
    at _Exit (011e293a:0x480c2)
    at __wasilibc_populate_preopens (011e293a:0xb88c9)
    at __wasm_call_ctors (011e293a:0x7b11)
    at _start (011e293a:0x5cb4e)
    at WASI$$module$src$filesystem$wasi.start
(__compiled.worklet.singlethread.worker.js:663:140)
    at $jscompDefaultExport$$module$src$module
(__compiled.worklet.singlethread.worker.js:752:428)
$__wasi_proc_exit @ 011e293a:0x48091
$_Exit @ 011e293a:0x480c2
$__wasilibc_populate_preopens @ 011e293a:0xb88c9
$__wasm_call_ctors @ 011e293a:0x7b11
$_start @ 011e293a:0x5cb4e
WASI$$module$src$filesystem$wasi.start @
__compiled.worklet.singlethread.worker.js:663
$jscompDefaultExport$$module$src$module @
__compiled.worklet.singlethread.worker.js:752
Promise.then (async)
initialize @ __compiled.worklet.singlethread.worker.js:758
e @ __compiled.worklet.singlethread.worker.js:67

Instead with a Google Pixel 4a I can create 10 Csound instances before the
start promise is timed out.

So I think we're good ;)


Il giorno ven 21 giu 2024 alle ore 14:37 Victor Lazzarini <
[email protected]> ha scritto:

> Works on iphone, I get sound and I can shift the pitch around. I think it
> doesn't like more than one Csound instance though, there's dropouts.
>
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> On 21 Jun 2024, at 11:50, Giovanni Bedetti <[email protected]>
> wrote:
>
> 
> Thanks for the tutorials, they are of great help!
> The fix to make it run on mobile was very easy and it was exactly what you
> suggested.
> I needed one more click to wake up the audio context, apparently it takes
> some more time on Unity-mobile, so when Csound was being started the audio
> context was not unlocked yet.
> The build should now work on all mobile devices. If someone can test it on
> an iPhone it would be great!
> I also fixed the MIME warning on the server adding an .htaccess file with
> this content:
>
>
> # This configuration file should be uploaded to the server as
> "<Application Folder>/Build/.htaccess" -> THIS IS WRONG, I HAD TO PUT THE
> FILE IN THE APPLICATION FOLDER NOT IN THE BUILD FOLDER
> # NOTE: "mod_mime" Apache module must be enabled for this configuration to
> work.
> <IfModule mod_mime.c>
>
> # The following lines are required for builds without decompression
> fallback, compressed with gzip
> RemoveType .gz
> AddEncoding gzip .gz
> AddType application/gzip .data.gz # The correct MIME type here would be
> application/octet-stream, but due to Safari bug
> https://bugs.webkit.org/show_bug.cgi?id=247421, it's preferable to use
> MIME Type application/gzip instead.
> AddType application/wasm .wasm.gz
> AddType application/javascript .js.gz
> AddType application/octet-stream .symbols.json.gz
>
> # The following lines are required for builds without decompression
> fallback, compressed with Brotli
> RemoveType .br
> RemoveLanguage .br
> AddEncoding br .br
> AddType application/octet-stream .data.br
> AddType application/wasm .wasm.br
> AddType application/javascript .js.br
> AddType application/octet-stream .symbols.json.br
>
> # The following line improves loading performance for uncompressed builds
> AddType application/wasm .wasm
>
> # Uncomment the following line to improve loading performance for
> gzip-compressed builds with decompression fallback
> # AddEncoding gzip .unityweb
>
> # Uncomment the following line to improve loading performance for
> brotli-compressed builds with decompression fallback
> # AddEncoding br .unityweb
>
> </IfModule>
>
>
> More info on servers at this link:
> https://docs.unity3d.com/Manual/webgl-server-configuration-code-samples.html
>
> Il giorno gio 20 giu 2024 alle ore 18:15 Victor Lazzarini <
> [email protected]> ha scritto:
>
>> yes, I got these in the past but I can't remember what I did to fix it. I
>> know mobile phones needed some sort of interaction to wake up Webaudio, but
>> I think you have that with the screen clicking.
>>
>> My simple tutorials (https://vlazzarini.github.io/vanilla/) make sound,
>> so I am sure you can get your code to run as well.
>>
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>>
>> On 20 Jun 2024, at 14:41, Giovanni Bedetti <[email protected]>
>> wrote:
>>
>> 
>> Yes unfortunately it doesn't work on mobile, the start promise is timed
>> out.
>>
>> This is the log:
>>
>> TestBuild_0.framework.js:913 starting to await for Csound with flag: 0
>> TestBuild_0.framework.js:913 Csound version: Csound: Audio Worklet,
>> Single-threaded
>> TestBuild_0.framework.js:383 --Csound version 6.18 (double samples) Feb
>> 17 2023
>> TestBuild_0.framework.js:383 [commit: HEAD]
>> TestBuild_0.framework.js:383 libsndfile-1.1.0
>> TestBuild_0.framework.js:383 graphics suppressed, ascii substituted
>> TestBuild_0.framework.js:383 sr = 48000.0, kr = 3000.000, ksmps = 16
>> TestBuild_0.framework.js:383 0dBFS level = 1.0, A4 tuning = 440.0
>> TestBuild_0.framework.js:383 orch now loaded
>> TestBuild_0.framework.js:383 audio buffered in 256 sample-frame blocks
>> TestBuild_0.framework.js:383 SECTION 1:
>> TestBuild_0.framework.js:374 start promise timed out
>>
>> This is the stack of the promise timeout error:
>>
>> (anonymous) @ TestBuild_0.framework.js:374
>> setTimeout (async)
>> (anonymous) @ TestBuild_0.framework.js:373
>> createStartPromise @ TestBuild_0.framework.js:373
>> a @ TestBuild_0.framework.js:898
>> _csoundInitialize @ TestBuild_0.framework.js:913
>> await in _csoundInitialize (async)
>> $func33262 @ 0670e506:0x97e895
>> $func34985 @ 0670e506:0x9abd39
>> $func36433 @ 0670e506:0x9c759b
>> $dynCall_iiii @ 0670e506:0x170a42a
>> invoke_iiii @ TestBuild_0.framework.js:913
>> $func36417 @ 0670e506:0x9c6632
>> $func1111 @ 0670e506:0xa6bf1
>> $func60024 @ 0670e506:0x16c471c
>> $func57642 @ 0670e506:0x1674cc4
>> $func38105 @ 0670e506:0xaabc30
>> $func38106 @ 0670e506:0xaabc45
>> $func57359 @ 0670e506:0x1664efe
>> $func57067 @ 0670e506:0x163f9af
>> $func38930 @ 0670e506:0xaf67e8
>> $func38930 @ 0670e506:0xaf685c
>> $func60744 @ 0670e506:0x16f7e08
>> $dynCall_v @ 0670e506:0x170a466
>> (anonymous) @ TestBuild_0.framework.js:913
>> _JS_CallAsLongAsNoExceptionsSeen @ TestBuild_0.framework.js:913
>> $func60497 @ 0670e506:0x16e3bc4
>> $dynCall_iiii @ 0670e506:0x170a42a
>> (anonymous) @ TestBuild_0.framework.js:913
>> touchEventHandlerFunc @ TestBuild_0.framework.js:913
>> jsEventHandler @ TestBuild_0.framework.js:913
>>
>> What could be the cause?
>>
>> About “HTTPS response Header”, I will investigate the cause, it should
>> have no bad effect though.
>>
>> Il giorno gio 20 giu 2024 alle ore 14:36 Victor Lazzarini <
>> [email protected]> ha scritto:
>>
>>> Tested it here on the Mac and the interaction is working well. On the
>>> mobile, I guess the touch screen interaction does not replace
>>> the mouse. I get the csoundInitialize dialogue, but that’s about it.
>>>
>>> On both I get this “HTTPS response Header” message, but that goes away
>>> after a while.
>>>
>>> ========================
>>> Prof. Victor Lazzarini
>>> Maynooth University
>>> Ireland
>>>
>>> > On 20 Jun 2024, at 11:45, Giovanni Bedetti <[email protected]>
>>> wrote:
>>> >
>>> > *Warning*
>>> > This email originated from outside of Maynooth University's Mail
>>> System. Do not reply, click links or open attachments unless you recognise
>>> the sender and know the content is safe.
>>> > I have updated the repo and the build, same links as above.
>>> > I have been able to create multiple instances of Csound from Unity,
>>> reference a specific instance and set a channel there, so I am making good
>>> progress!
>>> > I had to rely on callbacks so yes the method signature (and workflow)
>>> will probably be very different from the original CsoundUnity
>>> implementation.
>>> > At the moment there is no sound at all on the editor, so you'll have
>>> to build every time after a change.
>>> >
>>> >
>>> >
>>> >
>>> > Il giorno mer 19 giu 2024 alle ore 03:13 Dr. Richard Boulanger <
>>> [email protected]> ha scritto:
>>> > I too heard the sine tone in my browser - nice.
>>> > - now - a button and a fader in the browser will be something!
>>> >
>>> > - Dr.B
>>> >
>>> > Dr. Richard Boulanger
>>> > Professor
>>> > Electronic Production and Design
>>> > Berklee College of Music
>>> > Professional Writing & Technology Division
>>> >
>>> >
>>> > On Tue, Jun 18, 2024 at 9:12 PM Dr. Richard Boulanger <
>>> [email protected]> wrote:
>>> > wow - you are getting there.  this will be awesome too - an important
>>> next step.
>>> >
>>> > - Dr.B
>>> >
>>> > Dr. Richard Boulanger
>>> > Professor
>>> > Electronic Production and Design
>>> > Berklee College of Music
>>> > Professional Writing & Technology Division
>>> >
>>> >
>>> > On Tue, Jun 18, 2024 at 1:36 PM Giovanni Bedetti <
>>> [email protected]> wrote:
>>> > I made some progress, we have sound!
>>> > Check it out in the repo.
>>> > At this link you can test the working build! (it's safe I swear)
>>> >
>>> >
>>> >
>>> > Il giorno mar 18 giu 2024 alle ore 13:56 Giovanni Bedetti <
>>> [email protected]> ha scritto:
>>> > I have no idea, this is what the docs say about this, no mention about
>>> future plans anywhere:
>>> > Because Unity uses FMODto manage audio for platforms, the Web platform
>>> supports limited audio functionality, which only includes the basic
>>> features. FMOD relies on threads, which the WebGL API doesn’t support. For
>>> this reason, Unity uses an implementation based on the internal Web Audio
>>> API, which enables the browser to handle audio playback and mixing.
>>> >
>>> > Il Mar 18 Giu 2024, 13:41 Rory Walsh <[email protected]> ha scritto:
>>> > Do they plan to add support for the OnAudioFilterRead, is it on any
>>> roadmaps? That's a fairly major part of things.
>>> >
>>> > On Tue 18 Jun 2024, 12:25 Giovanni Bedetti, <
>>> [email protected]> wrote:
>>> > Thanks for your replies!
>>> > Dr.B let's chat soon! I'll drop you an email ;)
>>> >
>>> > I'm getting closer! I was able to load Csound! Woho!
>>> >
>>> > I have created a repository with a test project and a build folder if
>>> anybody wants to take a look.
>>> >
>>> > I grabbed the 6.18.7 dist/csound.js file as Steven suggested, renamed
>>> it to .jspre and placed it inside Assets/Plugins.
>>> > If I build without any changes it builds ok, but as soon as the game
>>> starts on the browser I get this message:
>>> > Unable to parse Build/TestBuild_0.framework.js! The file is corrupt,
>>> or compression was misconfigured? (check Content-Encoding HTTP Response
>>> Header on web server)
>>> >
>>> > I tried using the other extension, .jslib, and I got this error
>>> instead:
>>> > Library/Bee/artifacts/WebGL/build/debug_WebGL_wasm/build.js: failure
>>> to execute js library
>>> "/.../TestCsoundUnityWebGL/Assets/Plugins/csound.jslib": SyntaxError:
>>> Unexpected token 'export',
>>> >
>>> > So I renamed the file back to csound.jspre, and commented the export
>>> lines at the end.
>>> >
>>> > const Csound = Csound$$module$src$index;
>>> > Csound.toString = () => 'async (options) => CsoundObj;';
>>> > //export { Csound }
>>> > //export default Csound
>>> > //# sourceMappingURL=csound.js.map
>>> >
>>> > It builds and runs ok, of course no Csound yet as nothing is calling
>>> it.
>>> >
>>> > So I added a .jslib file and wrote an initialize method (grabbed from
>>> the test.js in the 6.18.7 dist above)
>>> >
>>> >
>>> > mergeInto(LibraryManager.library, {
>>> >
>>> > csoundInitialize: async function(flags) {
>>> > window.alert("csoundInitialize");
>>> >
>>> > const csoundVariations = [
>>> > { useWorker: false, useSPN: false, name: "SINGLE THREAD, AW" },
>>> > { useWorker: false, useSPN: true, name: "SINGLE THREAD, SPN" },
>>> > { useWorker: true, useSAB: true, name: "WORKER, AW, SAB" },
>>> > { useWorker: true, useSAB: false, name: "WORKER, AW, Messageport" },
>>> > { useWorker: true, useSAB: false, useSPN: true, name: "WORKER, SPN,
>>> MessagePort" },
>>> > ];
>>> >
>>> > //Csound.csoundInitialize(flags); // this doesn't work
>>> > console.log("starting to await for Csound with flag: + flags")
>>> > const cs = await Csound(csoundVariations[flags]);
>>> > console.log(`Csound version: ${cs.name}`);
>>> > const startReturn = await cs.start();
>>> > console.log(startReturn);
>>> > // await cs.stop(); // cs.terminateInstance && (await
>>> cs.terminateInstance()); },
>>> > });
>>> >
>>> > Then call csoundInitialize from a C# script
>>> > void Start()
>>> > {
>>> > Debug.Log("Calling csoundInitialize");
>>> > csoundInitialize(0);
>>> > }
>>> >
>>> > and bang we got it!!
>>> >
>>> > TestBuild_0.framework.js:913 Calling csoundInitialize
>>> > TestBuild_0.framework.js:913 starting to await for Csound with flag: 0
>>> > TestBuild_0.framework.js:913 Csound version: Csound: Audio Worklet,
>>> Single-threaded
>>> > TestBuild_0.framework.js:383 --Csound version 6.18 (double samples)
>>> Feb 17 2023
>>> > TestBuild_0.framework.js:383 [commit: HEAD]
>>> > TestBuild_0.framework.js:383 libsndfile-1.1.0
>>> > TestBuild_0.framework.js:383 graphics suppressed, ascii substituted
>>> > TestBuild_0.framework.js:383 sr = 48000.0, kr = 3000.000, ksmps = 16
>>> > TestBuild_0.framework.js:383 0dBFS level = 32768.0, A4 tuning = 440.0
>>> > TestBuild_0.framework.js:383 orch now loaded
>>> > TestBuild_0.framework.js:383 audio buffered in 256 sample-frame blocks
>>> > TestBuild_0.framework.js:383 SECTION 1:
>>> > TestBuild_0.framework.js:913 0
>>> >
>>> > Only the SINGLE_THREAD csoundVariations print the Csound version, for
>>> the other 3 it says undefined, but the rest of the logs are still printed
>>> (sr and kr could differ).
>>> > Unity apparently doesn't support multi-threading on WebGL yet (this is
>>> an interesting post on the subject), so workers don't work? :D
>>> > I'll dig deeper inside this as soon as I have sound output.
>>> >
>>> > So let's get a bit into the details. It was "nice" that I was able to
>>> call an async method (csoundInitialize) from a non-async context (the
>>> Start() function).
>>> > But of course the Start function is not waiting for it to complete
>>> before progressing.
>>> >
>>> > All of C# methods in the CsoundUnity package are synchronous, and
>>> sometimes called in a sequence.
>>> > Have a look at the initialization sequence of the CsoundUnityBridge
>>> > So I guess that to integrate WebGL into the existing CsoundUnity
>>> package we will have to use a lot of directives to handle that and it could
>>> become hard to maintain.
>>> > I mean, the way we use the API in C# is very different from what we
>>> should do with the CsoundObj API.
>>> > Furthermore, promises don't exist in the .NET environment out of the
>>> box, so we should rely on an external package to have them in C#.
>>> > We could add callbacks on completion for the methods that need to be
>>> awaited but it doesn't look very stylish.
>>> > Should the CsoundUnityWebGL be a completely different package?
>>> >
>>> > The other very important thing to keep in mind is that the
>>> OnAudioFilterRead function (what we use to do business in the Audio Thread,
>>> grabbing audio data from Csound and writing it into the AudioSource buffer
>>> - and the opposite) is not triggered at all on WebGL, and it means that it
>>> is not triggered on the editor too (I was very surprised to discover this).
>>> > So you won't have the normal CsoundUnity behaviour on the Editor if
>>> the selected platform is WebGL. This means that the normal CsoundUnity
>>> workflow on the Editor on WebGL is not possible. I mean, the inspector with
>>> the control channels grabbed from the csd will still work, but pressing
>>> play on the Editor won't produce any sound.
>>> > I'm thinking of workarounds but have no ideas at the moment.
>>> >
>>> > But for now let's focus on the fact that there was some progress! It's
>>> a win! :D
>>> >
>>> > I'll keep you posted as I continue to experiment with this,
>>> > thanks again for now!
>>> >
>>> >
>>> > Il giorno dom 16 giu 2024 alle ore 17:59 Steven Yi <[email protected]>
>>> ha scritto:
>>> > Webassembly Csound already compiles to a single JS file that embeds
>>> > the WASM binary into it. I assume this would work with Unity but am
>>> > unsure. I think you would only need the dist/csound.js file. You could
>>> > also try using the one from 6.18.7:
>>> >
>>> > https://unpkg.com/browse/@csound/[email protected]/
>>> >
>>> > It might be possible to rename it .jspre and create a test .jslib that
>>> > uses the Csound API.
>>> >
>>> > On Sat, Jun 15, 2024 at 2:02 PM Giovanni Bedetti
>>> > <[email protected]> wrote:
>>> > >
>>> > > Quick update on this: no luck yet!
>>> > >
>>> > > Sorry for the long email that follows. Any help would be much
>>> appreciated!
>>> > >
>>> > >
>>> > > Unity uses Emscripten for the WebGL build.
>>> > >
>>> > > There are 2 options using Emscripten:
>>> > >
>>> > > Compile Csound as a static library to be used as Unity plug-in
>>> > > First thing I tried the old emscripten build for Web Csound from the
>>> master branch (6.18.1), but I couldn't build it on macOs with this error
>>> message:
>>> > >
>>> > > Error: Could not resolve './libcsound' from
>>> src/CsoundScriptProcessorNode.js
>>> > >
>>> > >
>>> > > I also tried older versions of emscripten, but I cannot install the
>>> ones older than version 2.0, so no luck there.
>>> > > This should be the preferred way of creating the required files for
>>> Unity.
>>> > >
>>> > > The supported native plug-in file formats are
>>> > >
>>> > > LLVM Bitcode file format (.bc)
>>> > > GNU archive file format (.a)
>>> > >
>>> > > I noticed that the Csound wasm build was exporting a file with that
>>> extension so I went this route.
>>> > > I was able to build the fix-csound-wasm branch (off CS7) and I can
>>> confirm that it works on macOS (commit bac483d).
>>> > > I ran yarn build in the wasm folder.
>>> > > In the wasm/lib folder I could find a "libcsound-wasm.a" file, that
>>> will be accepted by Unity as a native WebGL plug-in.
>>> > >
>>> > > I was hoping that the .a file would be enough, but it appears that I
>>> cannot reach its methods from C#, I guess I need some js glue code with the
>>> explicit exports.
>>> > > In fact, If I try to build the Unity project with only the above .a
>>> file it builds ok, but as soon as I import the CsoundUnity package (with a
>>> little change to try and load the library for WebGL) I get loads of build
>>> errors (one for each native method we have, like "error: undefined symbol:
>>> csoundAddSpinSample (referenced by top-level compiled C/C++ code").
>>> > >
>>> > > So I started to wonder if I needed the wasm/browser part to be able
>>> to use the above library.
>>> > > I tried to build the browser package. First of all I ran yarn link
>>> "@csound/wasm-bin" to link it with the previously built lib, then yarn
>>> build.
>>> > > When built, it creates a "dist" folder, with several .js and .map
>>> files with the name starting with "__compiled", like
>>> "__compiled.vanilla.worker.js", "__compiled.vanilla.worker.inline.js",
>>> "__compiled.vanilla.worker.js.map", together with
>>> "__csound_wasm.inline.js", "csound.js" and "csound.js.map".
>>> > > I'm not sure how to import those files in Unity, I have very little
>>> experience on the WebGL platform.
>>> > > Unity supports two JavaScript plug-in file types that let you add
>>> JavaScript code to your Unity project
>>> > >
>>> > > .jslib A JavaScript library to use in addition to those in
>>> Emscripten’s core libraries:
>>> emscripten.org/docs/tools_reference/emcc.html#emcc-js-library
>>> > > .jspre A a file whose contents are added before the emitted code:
>>> emscripten.org/docs/tools_reference/emcc.html#emcc-pre-js
>>> > >
>>> > > Furthermore, Unity expects this syntax to retrieve the native
>>> methods that can be used in C#:
>>> > >
>>> > > const hello = {
>>> > >     Hello: function() {
>>> > >         window.alert("Hello, world!");
>>> > >     }
>>> > > };
>>> > > mergeInto(LibraryManager.library, hello);
>>> > >
>>> > > to be called in C# like this:
>>> > >
>>> > > [DllImport("__Internal")]
>>> > >     private static extern void Hello();
>>> > >
>>> > > Bundle the C/C++ code in the Unity project
>>> > > This option is very undocumented and there's no mention of any build
>>> script or makefile to edit, so at the moment I have no idea how Csound will
>>> be built by Unity.
>>> > > Out of curiosity, I tried to import some folders from the Csound
>>> repo:
>>> > > - Engine
>>> > > - H
>>> > > - include
>>> > > - InOut
>>> > > - interfaces
>>> > > - OOps
>>> > > - Opcodes
>>> > > - po
>>> > > - util
>>> > > - util1
>>> > > - util2
>>> > >
>>> > > When I build I get the following error, "Plugins colliding with each
>>> other.":
>>> > >
>>> > > Plugin 'mp3dec_internal.h' is used from several locations:
>>> > >  Assets/Plugins/InOut/libmpadec/mp3dec_internal.h would be copied to
>>> <PluginPath>/mp3dec_internal.h
>>> > >  Assets/Plugins/H/mp3dec_internal.h would be copied to
>>> <PluginPath>/mp3dec_internal.h
>>> > > Plugin 'mpadec_internal.h' is used from several locations:
>>> > >  Assets/Plugins/H/mpadec_internal.h would be copied to
>>> <PluginPath>/mpadec_internal.h
>>> > >  Assets/Plugins/InOut/libmpadec/mpadec_internal.h would be copied to
>>> <PluginPath>/mpadec_internal.h
>>> > > Plugin 'stdopcod.h' is used from several locations:
>>> > >  Assets/Plugins/Opcodes/stdopcod.h would be copied to
>>> <PluginPath>/stdopcod.h
>>> > >  Assets/Plugins/Opcodes/gab/stdopcod.h would be copied to
>>> <PluginPath>/stdopcod.h
>>> > >
>>> > > I had a look at the two mp3dec_internal.h and they are identical
>>> except for one line, the Assets/Plugins/InOut/libmpadec/mp3dec_internal.h
>>> has an additional #include "mpadec_config.h".
>>> > > I'm not sure what to try next here, I guess removing one of the two
>>> folders is too simple to be an option :D but maybe I'll try it later!
>>> > >
>>> > > There is also the option to use a pure Javascript plugin, but how to
>>> create a javascript version of Csound?
>>> > >
>>> > > Last option, Unity native audio plugins, but they can't be used for
>>> WebGL, see this comment on the official Native plugins repo
>>> > >
>>> > > Hope someone has some tips here, I'm lost in the Web(GL)!
>>> > >
>>> > >
>>> > > Il giorno ven 31 mag 2024 alle ore 10:07 Giovanni Bedetti <
>>> [email protected]> ha scritto:
>>> > >>
>>> > >> Not yet, there are limitations in the Unity FMOD implementation for
>>> the WebGL platform. Specifically, it doesn't support the OnAudioFilterRead
>>> callback, which is the function we use to fill the Unity AudioSources
>>> content with the Csound output.
>>> > >> Technically though it shouldn't be hard to import a Csound library
>>> for the Web, and use the API. The difficulty is sending the Csound content
>>> to the AudioSources, and so being able to move those sources in the 3D
>>> space and having them spatialized (Unity spatializer is first order
>>> ambisonic).
>>> > >>
>>> > >> In the next days I will try something and report here my findings.
>>> > >>
>>> > >>
>>> > >> Il Ven 31 Mag 2024, 09:29 Michael Gogins <[email protected]>
>>> ha scritto:
>>> > >>>
>>> > >>> Is there WebAssembly support for Csound in Unity yet?
>>>
>>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.