Skip to content
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 support for Web Audio (Emscripten/WebAssembly) #887

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from

Commits on Mar 10, 2024

  1. Configuration menu
    Copy the full SHA
    448425f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    01f8f8d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a8aee40 View commit details
    Browse the repository at this point in the history
  4. Make sure that PortAudio and consumers are compiled with -pthread

    We need pthreads and since WebAudio does not support linking non-pthread
    and pthread-enabled object files, we have to make this public.
    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    ac876e6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0770e36 View commit details
    Browse the repository at this point in the history
  6. Include pa_debugprint

    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    8da3745 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    848fbdd View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    da02a65 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c1a6865 View commit details
    Browse the repository at this point in the history
  10. Set VCPKG_CHAINLOAD_TOOLCHAIN_FILE in CI

    This should hopefully ensure that Emscripten is actually used
    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    1706a88 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    be3f169 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    692d915 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    83eb5a5 View commit details
    Browse the repository at this point in the history
  14. Create a separate audio context per stream

    While we could try multiplexing streams into a single audio context,
    we can only set one sink per context. Both therefore, and because the
    start/stop semantics seem to map nicely to AudioContext's
    resume/suspend, we will create a context per stream.
    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    1431da1 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a02a4e2 View commit details
    Browse the repository at this point in the history
  16. Update comments

    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    42bdb7c View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    d27dbc5 View commit details
    Browse the repository at this point in the history
  18. Add some tips

    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    d2639d6 View commit details
    Browse the repository at this point in the history
  19. Await context suspend/resume

    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    33c679a View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6e356cd View commit details
    Browse the repository at this point in the history
  21. Add note on user interaction

    fwcd committed Mar 10, 2024
    Configuration menu
    Copy the full SHA
    c8d1abf View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    edffb12 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    deb8a57 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    4057598 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    6d2ff90 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    a2102c5 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    47d4202 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    6375db9 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2024

  1. Add PA_WEBAUDIO_ASYNCIFY and experimental synchronous mode

    This synchronous mode uses `emscripten_thread_sleep` instead of
    `emscripten_sleep` and is intended to run from a separate thread where
    blocking is allowed.
    
    In its current state, this seems to depend on
    
        WebAudio/web-audio-api#2423
    
    The alternative would be to proxy audio context-related calls to the
    main thread.
    fwcd committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    831c636 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c80758a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3a6a5b7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c9015e5 View commit details
    Browse the repository at this point in the history