-
Notifications
You must be signed in to change notification settings - Fork 737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add WebAssembly (wasm) target for scsynth #5309
Commits on Dec 21, 2020
-
first step -- "fix" make files
- introduce a hypothetical new audio api 'openal' - some EMSCRIPTEN conditionals - ignore missing boost pthreads for now The cmake command for now is: $ emcmake cmake -DSC_WII=no -DSC_EL=no -DSUPERNOVA=no -DSC_HIDAPI=no -DNO_LIBSNDFILE=yes -DSC_QT=no -DNO_AVAHI=yes -DSC_ABLETON_LINK=no -DCMAKE_BUILD_TYPE="Release" -Wno-dev -s USE_PTHREADS=1 -DPTHREADS_LIBRARY=ignore --target scsynth ..
Configuration menu - View commit details
-
Copy full SHA for 008892c - Browse repository at this point
Copy the full SHA 008892cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 05a9834 - Browse repository at this point
Copy the full SHA 05a9834View commit details
Commits on Dec 22, 2020
-
- add some more preprocessor conditionals - now we get an initial list of undefined symbols (mostly: initialization of audio API, some pthread, some file system)
Configuration menu - View commit details
-
Copy full SHA for 4a2a73f - Browse repository at this point
Copy the full SHA 4a2a73fView commit details -
Configuration menu - View commit details
-
Copy full SHA for dcf0664 - Browse repository at this point
Copy the full SHA dcf0664View commit details -
Configuration menu - View commit details
-
Copy full SHA for a801d5d - Browse repository at this point
Copy the full SHA a801d5dView commit details -
Configuration menu - View commit details
-
Copy full SHA for fc7e8d8 - Browse repository at this point
Copy the full SHA fc7e8d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa4882b - Browse repository at this point
Copy the full SHA fa4882bView commit details -
step. add blank SC_WebAudio.cpp ; change 'openal' to 'webaudio'
- we have unstaged commits in `external_libraries/nova-tt`; thus next step will be to commit them in a fork of nova-tt
Configuration menu - View commit details
-
Copy full SHA for 5ee1823 - Browse repository at this point
Copy the full SHA 5ee1823View commit details -
- use nova-tt fork (branch wasm) - I ran `update --remote`; was this a good idea?
Configuration menu - View commit details
-
Copy full SHA for 613ff99 - Browse repository at this point
Copy the full SHA 613ff99View commit details
Commits on Dec 23, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 92ef16d - Browse repository at this point
Copy the full SHA 92ef16dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 14f3815 - Browse repository at this point
Copy the full SHA 14f3815View commit details -
- seems we had flags on emcmake that were never passed to emcc - we have a strange linker error regarding shared memory - now with shared memory actually enabled, we cannot run in Firefox without user adjustments - in Chromium, there is an error enumerating audio/video devices - some problem now in boost at boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>::priv_add_segment(void*, unsigned long) (http://0.0.0.0:8000/scsynth.wasm:wasm-function[4452]:0xceebe) This may be a problem due to assuming _no_ shared memory in previous preprocessor tuning; perhaps we need to remove those diversions again
Configuration menu - View commit details
-
Copy full SHA for 48bd2b7 - Browse repository at this point
Copy the full SHA 48bd2b7View commit details -
``` abort @ scsynth.js:1475 ___assert_fail @ scsynth.js:2082 boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>::priv_add_segment(void*, unsigned long) @ scsynth.wasm:1 boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>::rbtree_best_fit(unsigned long, unsigned long) @ scsynth.wasm:1 boost::interprocess::segment_manager_base<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul> >::segment_manager_base(unsigned long, unsigned long) @ scsynth.wasm:1 boost::interprocess::segment_manager<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index>::segment_manager(unsigned long) @ scsynth.wasm:1 boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul>::create_impl(void*, unsigned long) @ scsynth.wasm:1 boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> >::operator()(void*, unsigned long, bool) const @ scsynth.wasm:1 void boost::interprocess::ipcdetail::managed_open_or_create_impl<boost::interprocess::shared_memory_object, 16ul, true, false>::priv_open_or_create<boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> > >(boost::interprocess::ipcdetail::create_enum_t, char const* const&, unsigned long, boost::interprocess::mode_t, void const*, boost::interprocess::permissions const&, boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> >) @ scsynth.wasm:1 boost::interprocess::ipcdetail::managed_open_or_create_impl<boost::interprocess::shared_memory_object, 16ul, true, false>::managed_open_or_create_impl<boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> > >(boost::interprocess::open_or_create_t, char const* const&, unsigned long, boost::interprocess::mode_t, void const*, boost::interprocess::ipcdetail::create_open_func<boost::interprocess::ipcdetail::basic_managed_memory_impl<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index, 16ul> > const&, boost::interprocess::permissions const&) @ scsynth.wasm:1 boost::interprocess::basic_managed_shared_memory<char, boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void, long, unsigned long, 0ul>, 0ul>, boost::interprocess::iset_index>::basic_managed_shared_memory(boost::interprocess::open_or_create_t, char const*, unsigned long, void const*, boost::interprocess::permissions const&) @ scsynth.wasm:1 detail_server_shm::server_shared_memory_creator::server_shared_memory_creator(unsigned int, unsigned int) @ scsynth.wasm:1 World_New @ scsynth.wasm:1 ```
Configuration menu - View commit details
-
Copy full SHA for 6ccfb25 - Browse repository at this point
Copy the full SHA 6ccfb25View commit details -
Configuration menu - View commit details
-
Copy full SHA for f3fe089 - Browse repository at this point
Copy the full SHA f3fe089View commit details
Commits on Dec 26, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 8e35ca5 - Browse repository at this point
Copy the full SHA 8e35ca5View commit details -
Configuration menu - View commit details
-
Copy full SHA for d305c2d - Browse repository at this point
Copy the full SHA d305c2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for df2f452 - Browse repository at this point
Copy the full SHA df2f452View commit details -
Configuration menu - View commit details
-
Copy full SHA for d4d82b4 - Browse repository at this point
Copy the full SHA d4d82b4View commit details
Commits on Dec 27, 2020
-
step. allow omission of -u, -t; set em main loop
- somehow it hangs if we call `EventLoop::run([world]() { World_WaitForQuit(world, true); });` so skip that for now
Configuration menu - View commit details
-
Copy full SHA for 470ab94 - Browse repository at this point
Copy the full SHA 470ab94View commit details -
- add a 'boot' button so we don't run into the problem of having an AudioContext that doesn't start
Configuration menu - View commit details
-
Copy full SHA for 50c1db9 - Browse repository at this point
Copy the full SHA 50c1db9View commit details
Commits on Dec 29, 2020
-
Configuration menu - View commit details
-
Copy full SHA for d04827e - Browse repository at this point
Copy the full SHA d04827eView commit details -
Configuration menu - View commit details
-
Copy full SHA for cca695c - Browse repository at this point
Copy the full SHA cca695cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 745eac4 - Browse repository at this point
Copy the full SHA 745eac4View commit details
Commits on Dec 30, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b0b670f - Browse repository at this point
Copy the full SHA b0b670fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 552bfa8 - Browse repository at this point
Copy the full SHA 552bfa8View commit details -
audio and osc basically (almost) working. shared-array-buffer prob
- so all pieces are in place, OSC messages seem to be correctly encoded - audio driver start/stop now in place - but we get these errors: Uncaught TypeError: Failed to execute 'copyToChannel' on 'AudioBuffer': The provided ArrayBufferView value must not be shared. at ScriptProcessorNode.ad.proc.onaudioprocess (scsynth.js:1688) ad.proc.onaudioprocess @ scsynth.js:1688 It seems that because of `-pthread`, the HEAP is now backed by `SharedArrayBuffer`, and that in turn cannot be used in `copyToChannel`. Hopefully, we can just make one additional copy. If not, we're f*cked :-O
Configuration menu - View commit details
-
Copy full SHA for e6381ed - Browse repository at this point
Copy the full SHA e6381edView commit details -
example OSC messages; UGens are not 'installed'!
- for example, trying to d_recv analog-bubbles, the first UGen encountered, 'Control' is apparently not installed - probably we need to include some binary file for the emscripten virtual file system
Configuration menu - View commit details
-
Copy full SHA for 3c189a6 - Browse repository at this point
Copy the full SHA 3c189a6View commit details -
plugins are statically linking!
- DiskIO is disabled because we currently don't build with libsndfile (perhaps it's possible -- I don't remember why I had to disable it)
Configuration menu - View commit details
-
Copy full SHA for 6002639 - Browse repository at this point
Copy the full SHA 6002639View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0adb2b7 - Browse repository at this point
Copy the full SHA 0adb2b7View commit details
Commits on Dec 31, 2020
-
improve README_WASM.md; continue with SC_WebPortIn reply
- we need to understand how to allocate (and free) the memory for OSC replies. is web_reply_func called from different threads? Can we just use malloc, or should we use rt memory?
Configuration menu - View commit details
-
Copy full SHA for 761c29a - Browse repository at this point
Copy the full SHA 761c29aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ac6e18 - Browse repository at this point
Copy the full SHA 7ac6e18View commit details -
Configuration menu - View commit details
-
Copy full SHA for 39abd35 - Browse repository at this point
Copy the full SHA 39abd35View commit details
Commits on Jan 1, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 153e963 - Browse repository at this point
Copy the full SHA 153e963View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c88d87 - Browse repository at this point
Copy the full SHA 0c88d87View commit details -
fix bug in several DelayUGens Ctors
- extraneous constructor argument `int inNumSamples` was causing crashes
Configuration menu - View commit details
-
Copy full SHA for 8107ca5 - Browse repository at this point
Copy the full SHA 8107ca5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 676ccbb - Browse repository at this point
Copy the full SHA 676ccbbView commit details -
- wasm/configure.sh : use release build type (we're still catching exceptions, though)
Configuration menu - View commit details
-
Copy full SHA for d5e5154 - Browse repository at this point
Copy the full SHA d5e5154View commit details -
Configuration menu - View commit details
-
Copy full SHA for 109dbee - Browse repository at this point
Copy the full SHA 109dbeeView commit details -
fork of nova-tt no longer needed
- probably the originally missing symbols were due to wrong pthread linker settings - go back to timblechmann's repo
Configuration menu - View commit details
-
Copy full SHA for f781268 - Browse repository at this point
Copy the full SHA f781268View commit details -
Configuration menu - View commit details
-
Copy full SHA for dab9ab6 - Browse repository at this point
Copy the full SHA dab9ab6View commit details -
reenable boost assertion (no longer failing)
- seems the assertion in rbtree_best_fit.hpp does hold now
Configuration menu - View commit details
-
Copy full SHA for 1e1e6fe - Browse repository at this point
Copy the full SHA 1e1e6feView commit details -
Configuration menu - View commit details
-
Copy full SHA for 15e1f5c - Browse repository at this point
Copy the full SHA 15e1f5cView commit details
Commits on Jan 2, 2021
-
- Module.oscDriver is now a dictionary from virtual port number to an object that at least defines the property `receive`, a function taking two arguments: sender's port, and Uint8Array raw OSC packet.
Configuration menu - View commit details
-
Copy full SHA for 9f3d9e5 - Browse repository at this point
Copy the full SHA 9f3d9e5View commit details
Commits on Feb 4, 2021
-
- needed to do anything more involving like allocating larger buffers
Configuration menu - View commit details
-
Copy full SHA for 89c431a - Browse repository at this point
Copy the full SHA 89c431aView commit details