Git Product home page Git Product logo

msub2--wwise.js's Introduction

wwise.js

Disclaimer: I am not an Audiokinetic employee and I don't claim to represent them or their products in any official capacity.

This repository contains ongoing efforts to develop a complete set of WASM bindings to utilize Wwise's SDK on the web in a pure-JS environment.

Everything in here is very much WIP and subject to change.

Development

Prerequisites

  • GNU Make 4.0+
  • Emscripten SDK 3.1.7

Obtaining SDK files for Web Platform

This repo requires a bit of additional setup before being able to build the wwise.js/wwise.wasm files. Given that Wwise's Web Platform is still behind a technical preview, the necessary SDK files are not immediately accessible from Audiokinetic's website. You will need to follow these steps laid out by Mike Drummelsmith (Head of Licensing at Audiokinetic):

First, register a non-commercial project in our system called something like 'XR Web Experiments' or similar. Visit the website, and under the Get Started menu, click 'Register my Project'. Then, choose 'Non-Commercial' and 'more than 200 sounds' then fill out the form. That'll come to us for approval, and once you have been approved, you'll have a trial license to cover your project's needs.

Be sure to mark in the Description that you need web platform access.

Once that's done (you'll receive a notification when it's approved), grab that key, and from the Launcher you should be able to install the web platform and other required components (SDK and offline documentation). Then, you should be able to find the instructions for getting set up in the docs. Look in the SDK docs, under the Web-specific info. It's all shown in the Wwise Up On Air video from a little while back (you'll have to edit a .wsettings file in order to expose the platform in Wwise itself).

Important to note here is that the included Integration Demo with the SDK is currently not functioning in versions of Wwise newer than 2022.1.3. While I haven't tested too thoroughly I've opted to build with the versions of the files that produce a working version of the Integration Demo for Web, so I would suggest you use Wwise 2022.1.3. From limited testing the 2023 builds also seem to have issues.

Folder structures

Once you have access to the Web Platform, you'll need to create the following folders in this repo and copy the designated folders from the Wwise SDK files:

  • include
    • AK from <YOUR WWISE INSTALL LOCATION>/SDK/include/AK
    • SoundEngine from <YOUR WWISE INSTALL LOCATION>/SDK/samples/SoundEngine
      • You can delete the Win32 folder as we don't need it to compile for Web.
  • lib
    • Debug from <YOUR WWISE INSTALL LOCATION>/SDK/Emscripten/Debug/lib
    • Profile from <YOUR WWISE INSTALL LOCATION>/SDK/Emscripten/Profile/lib
    • Release from <YOUR WWISE INSTALL LOCATION>/SDK/Emscripten/Release/lib

Building

Throughout development I gradually worked out the incantation to get these bindings to build. Just run

make debug
# OR
make profile
# OR
make release

and you should get a copy of wwise.js and wwise.wasm in the dist folder. The makefile is a bit crude since I don't usually work with C/C++, so if anyone knows how to make it any neater that would be appreciated.

Better VSCode Intellisense

If you're using clangd as your language server in VSCode I found you can add this to your .vscode/settings.json for some slightly more helpful hints (won't eliminate all the red squigglies unfortunately, but it's enough to get working Intellisense for writing the bindings).

{
  "clangd.fallbackFlags": [
    "-I${workspaceFolder}/include",
    "-I${workspaceFolder}/include/SoundEngine/POSIX",
    "-I<PATH TO YOUR EMSDK FOLDER>/upstream/emscripten/system/include"
  ]
}

msub2--wwise.js's People

Contributors

msub2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.