Git Product home page Git Product logo

resonance-audio-unity-sdk's Introduction

Resonance Audio Source Code Travis CI

This is the official open source project for the Resonance Audio SDK. This repository consists of the full source code of the Resonance Audio C++ library, as well as the platform integrations into Unity, FMOD, Wwise and DAW tools.

Resonance Audio started as a Google product and has since graduated to open source. It is supported by members of our steering committee who are also project committers.

In this document there are some quick instructions for how to build the SDK from source code.

For more detailed documentation about using the SDK, visit our developer docs. If you are interested in contributing to the project, please read the Contributing to Resonance Audio section below.

Build Instructions

Clone the repository:

git clone https://github.com/resonance-audio/resonance-audio $YOUR_LOCAL_REPO

Software Requirements

In addition to the system C++ software development platform tools / toolchains, the following software is required to build and install the Resonance Audio SDKs:

Note: For Windows builds, Visual Studio 2015 is recommended.

Third Party Dependencies

All third party dependencies must be installed into the third_party subfolder in the repository. To simplify the installation, bash scripts are located within the third_party that automatically clone, build and install the required third party source code.

Note: On Windows, these scripts can be executed in the Git-Bash console (which gets installed as part of Git for Windows).

To clone the dependencies into the repository, run:

./$YOUR_LOCAL_REPO/third_party/clone_core_deps.sh

Note: These dependencies do not need to be built, since their source code is directly pulled in from the build scripts.

Unity Platform Dependencies (nativeaudioplugins, embree, ogg, vorbis)

The Unity plugin integrates additional tools to estimate reverberation from game geometry and to capture Ambisonic soundfields from a game scene. These features require the Embree, libOgg and libVorbis libraries to be prebuilt.

To clone and build the additional Unity dependencies, run:

./$YOUR_LOCAL_REPO/third_party/clone_build_install_unity_deps.sh

FMOD Platform Dependencies (FMOD Low Level API)

To add the additional FMOD dependencies, download and install the FMOD Studio API (which includes the FMOD Low Level API).

Note: On Linux, unzip the downloaded package within the third_party subfolder and rename its folder to fmod.

Wwise Platform Dependencies (WwiseIncludes)

To clone the additional Wwise dependencies, run:

./$YOUR_LOCAL_REPO/third_party/clone_wwise_deps.sh

The Wwise Authoring Plugin (Windows only) also requires the Microsoft Foundation Classes SDK. To install the SDK on Windows:

  1. Open the Control Panel
  2. Select Programs->Programs and Features
  3. Right-click on Microsoft Visual C++ Build Tools, and select Change
  4. Install MFC SDK

DAW Tools Dependencies (VST2 Audio Plug-Ins SDK)

To add the additional DAW Tools dependencies, download the Steinberg's VST 3.X.X Audio Plug-Ins SDK (which includes the VST2 Audio Plug-Ins SDK) and extract the package into third_party subfolder.

Build Resonance Audio SDKs

This repository provides the build.sh script in the root folder that configures the build targets, triggers the compilation and installs the artifacts for the specified platform into the target installation folder.

The script provides the following flags:

  • t=|--target=
    • RESONANCE_AUDIO_API: Builds the Resonance Audio API
    • RESONANCE_AUDIO_TESTS: Runs the Resonance Audio unit tests
    • GEOMETRICAL_ACOUSTICS_TESTS: Runs the geometrical acoustics specific unit tests.
    • UNITY_PLUGIN: Builds the Resonance Audio plugin for Unity
    • WWISE_AUTHORING_PLUGIN: Builds the Resonance Audio authoring plugin for Wwise
    • WWISE_SOUND_ENGINE_PLUGIN: Builds the Resonance Audio sound engine plugin for Wwise
    • FMOD_PLUGIN: Builds the Resonance Audio plugin for FMOD
    • VST_MONITOR_PLUGIN: Builds the Resonance Audio VST Monitor Plugin
  • p=|--profile=
    • Debug: Debug build
    • RelWithDebInfo: Release build with debug information
    • Release: Release build
  • --msvc_dynamic_runtime
    • Enables dynamic linking against the run-time library on Windows (/MD, /MDd). By default, all Windows builds are statically linked against the run-time library (/MT, /MTd). Note that the third party dependencies must be compiled with the same options to avoid library conflicts.
  • --verbose_make
    • Enables verbose make/build output.
  • --android_toolchain
    • Enables the Android NDK toolchain to target Android builds (may require adjustments to ANDROID_NDK, ANDROID_NATIVE_API_LEVEL and ANDROID_ABI script variables). For more information, see project documentation at https://github.com/taka-no-me/android-cmake.
  • --ios_os_toolchain
  • --ios_simulator_toolchain
E.g.

To build and run the Resonance Audio unit tests:

./$YOUR_LOCAL_REPO/build.sh -t=RESONANCE_AUDIO_TESTS

Citations

If you find Resonance Audio useful and would like to cite it in your publication, please use:

Gorzel, M., Allen, A., Kelly, I., Kammerl, J., Gungormusler, A., Yeh, H., and Boland, F., "Efficient Encoding and Decoding of Binaural Sound with Resonance Audio", In proc. of the AES International Conference on Immersive and Interactive Audio, March 2019

The full paper is available (open access) at: http://www.aes.org/e-lib/browse.cfm?elib=20446 (BibTeX)

Contributing to Resonance Audio

If you would like to contribute changes to the Resonance Audio project, please make a pull request for one of our project committers to review.

Steering Committee

The Resonance Audio project is overseen by a steering committee established to help guide the technical direction of the project in collaboration with the entire developer community.

The intention of the steering committee is to cultivate collaboration across the developer community for improving the project and ensuring Resonance Audio continues to work well for everyone.

The committee will lead the Resonance Audio project in major decisions by consensus and ensure that Resonance Audio can meet its goals as a truly open source project.

The steering committee consists of the following members (company name ordered):

  • Martin Dufour, Audiokinetic
  • Aaron McLeran, Epic Games
  • Mathew Block, Firelight Technologies
  • Alper Gungormusler, Google
  • Eric Mauskopf, Google
  • Haroon Qureshi, Google
  • Ian Kelly, Google
  • Julius Kammerl, Google
  • Marcin Gorzel, Google
  • Damien Kelly, Google (YouTube)
  • Jean-Marc Jot, Magic Leap
  • Michael Berg, Unity Technologies

Affiliations are listed for identification purposes only; steering committee members do not represent their employers or academic institutions.

resonance-audio-unity-sdk's People

Contributors

anokta avatar jkammerl avatar mauskopf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

resonance-audio-unity-sdk's Issues

Another not working in 2017.3 (and latest patch) post

Hi all,

I'm using 1.1.1.

Although at first glance spatial audio works if you have a gameobject with a looping audioclip on an Audio Source (ie the default cube scene). If you actually via script set what clip that audio source should play, it doesn't work when built for Android (DayDream)

From LogCat I can see 'E/Unity: Audio effect Resonance Audio Renderer could not be found. Check that the project contains the correct native audio plugin libraries and that the importer settings are set up correctly.'

The same project built in 2017.1 works fine (and doesn't show that error).

I'm using the simple cube demo scene, and removing the default sound from playing, and instead adding this script to the cube to just cycle through random sounds (sounds populated in Inspector). :-
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Audio;
using UnityEngine;

public class RandomSound : MonoBehaviour {

public AudioClip[] sounds;
int count = 0;
void Update () {
	count++;
	if (count > 100) {
		count -= 100;
		GetComponent<AudioSource> ().clip = sounds [Random.Range (0, sounds.Length)];
		GetComponent<AudioSource> ().Play ();
	}
}

}

I will also report this bug to Unity as i'm guessing it's primarily their issue seeing as 2017.1 works (I've not yet tried 2017.2)

Thanks

Audio distorting at low and high frequencies in Resonance + Unity beta

Audio distorting at low and high frequencies in Resonance+Unity 2018.2.0b9 and 2018.2.0b10.
Audio clips implemented with Resonance Audio Spatialiser and Decoder. Also tried a variety of audio clips in Resonance Demo projects, at the same audio specs as the Demo audio clips, with same clipping/distortion at mainly high and lower frequencies.

Unity 2018.2.0b9 & 2018.2.0b10
Mac OSX 10.11.6

Unity Editor crashes on starting Play mode in Editor

I am experiencing numerous Unity Editor crashes when starting Play mode in editor. It happens when Resonance Audio is enabled and platform is either Desktop or Android. I have not tested on other platforms. Sometimes it works as expected sometimes it crashes the Editor.

Logs: crash.dmp and error.log.zip

Here is error.log generated by Unity:

Unity Editor [version: Unity 2017.2.0f3_46dda1414e51]

audiopluginresonanceaudio.dll caused an Access Violation (0xc0000005)
  in module audiopluginresonanceaudio.dll at 0033:dfabfd60.

Error occurred at 2017-12-05_121610.
I:\ProgramFiles\GameDev\Unity\Editor\Unity.exe, run by Reekdeb.
78% memory in use.
4096 MB physical memory [880 MB free].
8960 MB paging file [3249 MB free].
134217728 MB user address space [134215090 MB free].
Read from location 6ab213e8 caused an access violation.

...

Baking window locks up the editor in project with a lot of mateirals.

I am running Unity 2017.2.0f3 and downloaded SDK 1.1.1
I could run the test scenes fine. I could create Reverb probes and adjust their position etc. without any trouble. When I go to open the reverb baking window, everything grinds to a halt. CPU use shoots up and the editor frame rate falls to <1FPS.

This project has 595 materials in it. I suspected that was the root of the issue. After digging around in with the editor profiler. I found:

  • ResonanceAudioAcousticMesh.GenerateFromMeshFilter() was allocating ~98.2MB every other frame
  • ResonanceAudioReverbBakingWindow.DrawMaterialMappingGUI() was allocating ~14.5MB (it looks like most of that was caused by AssetPreview.GetAssetPreview() )

As a test, I disabled the AssetPreview calls in the editor script for the Baking Window and that brought that window from unusable to simply sluggish.

I don't, of course, know all of how things are implemented under the hood. But I might suggest modifying the workflow a bit to allow the user to select which materials they want to be visible to the reverb baker (e.g. create a new list/array item > select the material > select the acoustic behavior ) rather than auto-mapping every material in the project.

ResonanceAudioListener crashes Unity when platform is set to iOS

Discovered the problem continually when trying to add a ResonanceAudioListener Component to the Main Camera with standard Unity Audio Listener as per instructions on migrating to Resonance Audio from GvrAudio in an iPhone app I'm currently developing. Problem seems to be related to the iOS platform.

Crash occurs:

  • When attempting to add a ResonanceAudioListener component to an object with the platform previously set to iOS. (component crash)
  • When attempting to load a scene with a ResonanceAudioListener component already on an object in the scene and platform previously set to iOS. (scene crash)
  • When attempting to switch from any platform to iOS with an open scene that has an object that contains the ResonanceAudioListener component. (platform switch crash)

Steps to reproduce component crash:

  1. Create a new project, load in Resonance Audio, and set Spacializer Plugin and Ambisonic Plugin to Resonance in Audio Settings.
  2. Set the build settings to iOS.
  3. Attempt to add the ResonanceAudioListener script to the Main Camera object (should have a standard Unity Audio Listener by default.) Unity should promptly crash.

Steps to reproduce scene crash:

  1. Create a new project, load in Resonance Audio, and set Spacializer Plugin and Ambisonic Plugin to Resonance in Audio Settings.
  2. Set the build settings to iOS.
  3. Attempt to load the "ResonanceAudioDemo" scene from the Resonance Demos folder. Unity should promptly crash.

Steps to reproduce platform switch crash:

  1. Create a new project, load in Resonance Audio, and set Spacializer Plugin and Ambisonic Plugin to Resonance in Audio Settings.
  2. Load the "ResonanceAudioDemo" scene from the Resonance Demos folder. Unity should not crash this time.
  3. Attempt to switch build platforms from PC/Mac/Linux to iOS. Unity should promptly crash.

EDIT: Working on a Mid-2015 MacBook Pro. Crash happens on any version of Unity 2017.

Resonance audio source directivity affected by scaling factor

If the game object (or parent) to which an audio source is attached is scaled by less than 1, this seems to result in some sort of rounding error in the directivity calculation whereby when directivity approaches zero there is a sudden cutoff of audio rather than a smooth transition. Particularly noticeable with extreme directivity settings - but a simple cardioid (alpha 0.5, sharpness 1) will show it up. Ideally directivity should be unaffected by scaling.
Unity 2018.2, google resonance SDK 1.2.1
To reproduce - create resonance audio source with reasonably extreme directivity. scale the audio source game object to, say 0.1,0.1,0.1. rotate game object with respect to listener.

Reverb always at full volume at any distance

I set up a Resonance Audio Room of 100m3, put an audio source with it's Resonance Audio Source component in the middle of the room.
As I go away from the audio source, the direct audio volume from the source goes down but the reverb volume is always at full blast, even at 50m of distance.
I don't know if this is a bug or the intended functionality.
I understand reverb are reflections on the walls of the virtual room and you could argue this is how reverb works in real life, but the effect is not realistic since it removes any spatialization of the sound and all sound sources inside a virtual room will sound equally louder at ANY distance, turning the reverb into pure background noise composed of all sound sources at all distances mixed together at the same volume.
Unity 2017.4.3f1 with resonance v1.2.1

1.2.1 Works in 2018.2 Editor, but not built to Android (Cardboard)

It seems this bug might still exist, at least for me:
https://issuetracker.unity3d.com/issues/android-ios-audiosource-playing-through-google-resonance-audio-sdk-with-spatializer-enabled-does-not-play-on-built-player

I added a highly metallic/reflective ResAudioRoom to my Cardboard project, and it works in the 2018.2Of2 editor. But built to Android (Nexus 5X device), the audio still sounds like standard audio.

I got this yellow (!) message during build: "Assets/ResonanceAudio/Scripts/ResonanceAudio.cs(405,26): warning CS0414: The private field `ResonanceAudio.roomPosition' is assigned but its value is never used"

Here is the line of code it refers to:

  // Pre-allocated position array for proxy room computation.
  private static float[] roomPosition = new float[3];

I'm not a programmer, so I don't know if this has to do with the issue. Could it be just one missing line of code somewhere causing this? Is there any workaround or addition to that script I can make to get ResAudio to work for Android Cardboard VR? Thanks - sferrets

UPDATE: I switched everything to the deprecated GVR Audio that came with Google VR SDK (1.150.0), and though it gives a lot of yellow error messages, the GVR Audio Room effects are heard built to the device! Seems I can make do with these old tools, but still hope Resonance can get fixed.

Cannot load audio plugins (Arch Linux 64bit).

Hi possibly not an issue with Resonance, but audio plugins (spatializer/ambisonics) are not accessible from the audio mananager in Unity on Arch (installed from AUR). Same issue using Linux Unity downloader.

I just get a list of one item in both dialogs ("None").

Copy Temp/Export failed

I have been trying to update my Res. Audio plugin since I have been having issues with it. When attempting to install it via the unity asset package I get the below error.

image

I have tried unselecting the Resonance Audio plugin in audio settings and restarting unity but I still get this error. I suspect this is what is causing CTDs in my builds. When it crashes if I choose to debug it points to that same DLL as the culprit. I also get a very odd bug where seemly randomly I only get audio in my right ear. But I can sometimes "Reset" the issue by getting other audio to play. But it continues to happen in editor and builds.

Using Unity 2017.4.1f1

AudioMixer Groups

Are Unity Mixer Groups supported on the default ResonanceAudioMixer?

I have a few groups setup on it, and sliders to adjust it down, pretty standard issue volume controls for music/sfx/master, etc. The only one that seems to have any effect is the Master group.

I have a fire that is playing resonanceaudiosource with the audiosource component output set to the SFX group. Turn down the SFX group and it does nothing (despite seeing the levels change in the editor). But gets quieter when I turn down the master volume group.

No sound after first scene load (Unity 2017.3.0f3 / SDK v1.1.1)

Hi,

I noticed in our project ResonanceAudio plays fine on the first scene when built to Android (music set to loop and play on awake). However, after loading to any other scene, there will be no more sound from any ResonanceAudio components (whether loop or invoked). Running in-editor is working as intended, this issue only arises when previewing from mobile devices.

I proceeded to test with the Resonance sample unitypackage v1.1.1 and implemented a quick scene reload function. Same result - no sound after any scene load (tested with both async and non-async scene loads).

Unity Version: Unity 2017.3.0f3
ResonanceAudioSDK Version: Resonance Audio SDK for Unity v1.1.1

I appreciate your time in looking into this issue. It's a show-stopper for us now...

Ambisonic audio not head tracking in Unity 2017.4.6

I have imported an ambisonic wav file, used the soundfield prefab for the audio source and then added a resonance listener to the main camera object. If I tick spatialise for the source then the sound tracks fine but is no longer ambisonic. With spatialise not ticked it plays back as ambisonic but the audio stays the same as the view moves. Changing the rotation of the source seems to have no impact on the sound either.

What do Left/Right Front/Back mean?

In the ResonanceAudioRoom component, materials can be assigned to the 'Left/Right/Front/Back' walls, but it is not immediately clear through the user interface whether Left/Right represent the positive/negative X axis, and whether Front/Back represent the positive/negative Y axis. Is this documented anywhere? Terminology like +X/-X and +Z/-Z might be more clear?

Breaks OpenVR/OVR in standalone windows build

The plugin works perfectly in the Unity editor with or without OpenVR. However, as soon as I build a Windows x86/x64 version it prevents the HTC Vive/Oculus Rift from launching. The application will not even attempt to connect to a VR device, however the applications itself and the spatializer/ambisonics work as expected. The error logs do not show anything related to VR.

I tested the following versions:

  • Resonance Audio SDK for Unity v1.2.1 (with Unity 2018.1.0)
  • Resonance Audio SDK for Unity v1.2.0 (with Unity 2018.1.0 and Unity 2017.4.2)

As soon as I disable the spatializer in Unity's audio settings, the application works with all VR devices.

Am I missing something obvious here?

Constant beeping when playing 1st order ambisonic audio in Unity app deployed on Samsung S7

I'm developing an app using Unity (2017.2.03f) and Google Resonance (v1.1.1) for mobile phones. When testing the application on the Samsung S7, there is a loud constant beep heard (sounds like a sine wave at about 4270 Hz) in the scenes where there are 1st order ambisonc audio playing. This issue did not occur when testing the app on the two other devices that I have at hand - Pixel XL or the Nexus 5x.

Also, in some scenes, I've used a lowpass filter on the ResonanceAudioMixer, which seem to be able to reduce the level of the beep, but it is still too intrusive.

  1. Have anyone had any similar issues with the Samsung S7, or any other phones?
  2. Does anyone have any idea about what could be causing the issue?

The audio sample in question can be downloaded here: https://drive.google.com/open?id=1tFHO9hez6vOChDokZ0Lb9YcRtbLwZ04r

Any input would be highly appreciated!

Not working with Unity 2017.3.0f3?

Hi, two weeks ago, I ask about a import problem I had with Resonance and Unity ( See: #12 )

But now, I wonder, if that possible that the soundfield (or entire sdk) does not work in Unity 2017.3?
Actually, on iOs, I had to update the pods manually via the terminal to make the sdk working (or else it crashed when mixed with VR, weird boringssl error), but on Android no luck so far.

Using:
Unity 2017.3.0f3
Resonance Audio SDK for Unity v1.1.1

I get those errors in Android Device Monitor (But only when building from : Unity 2017.3.0f3)

Unable to find libaudiopluginresonanceaudio

Audio effect Resonance Audio Renderer could not be found.
Check that the project contains the correct native audio plugin
libraries and that the importer settings are set up correctly.

In Unity 2017.2, everythings worked perfectly!

Resonance Audio Source position doesn't update after Stop()

  1. Set up the project in Unity 2018.1.1f1 as sad in manual.
  2. Place 3 Resonance Audio Sources in scene.
  3. Uncheck "PlayOnAwake" in AudioSource component on one of them.
  4. Place a script on this AudioSource:
    using UnityEngine;
    public class Compas : MonoBehaviour {
    private AudioSource mAudioSRC;
    void Start() {
    mAudioSRC = GetComponent();
    }
    void Update() {
    if (Input.GetButtonDown("Fire1"))
    mAudioSRC.Play();
    else if(Input.GetButtonUp("Fire1"))
    mAudioSRC.Stop();
    }
    }
  5. Place Standart first person character controller and floor (cube) in scene.
  6. Play the scene, press and release Fire1 (Left mouse).
  7. Rotate camera with mouse. Rotation of camera wil change, but sound positions will be unchanged.

Soundfield Recorder not working properly

When I use the soundfield recorder in the Resonance Audio Listener script only channels 1 and 4 contain audio (2 and 3 are silence). Sounds are all around and everything seems to be working properly otherwise.

On Unity 2017.3.1p4 and have the latest resonance SDK in my assets.

UPDATE: I was using timeline to trigger animations, which remain static when the resonance recorder is activated. A friend was able to edit the code to enable the sound field recorder to work during runtime and everything is recording properly now (although it does act a bit strange). I can share the code if others are interested.

Hard coded asset part prevents placing library in subfolder

It's common practice in Unity now to place 3rd party libraries in subfolders for organisational reasons. However, Resonance Library has a hard coded path that means it cannot be moved from root.

Steps to reproduce:

  • created directory "3rdparty"
  • move ResonanceAudio into it
  • Open Reverb Baking Window

C API

Is there a C API for Resonance somewhere? I only see integrations.

Crashing on iOS

I'm getting a crash on iOS.

Here are the steps to reproduce:

  1. Start from a new, blank, Unity [2017.3.0f3] project
  2. Import ResonanceAudioForUnity_1.1.1.unitypackage
  3. Change audio spatializer plugin and ambisonic decoder plugin to Resonance Audio
  4. Enable the Google Cardboard virtual reality SDK
  5. Enable the transition view in the Google Cardboard virtual reality SDK
  6. Use the included ResonanceAudioDemo scene in the build
  7. Build, open in XCode 9.2
  8. Build and test on iPhone 7+ [iOS 11.2.5]
  9. Launch, then rotate landscape the load the scene beyond the transition view
  10. Crash

Get this stack trace:

Thread 1 Queue : com.apple.main-thread (serial)
#0	0x00000001855282e8 in __pthread_kill ()
#1	0x000000018563d2f8 in pthread_kill$VARIANT$mp ()
#2	0x00000001854579e4 in raise ()
#3	0x0000000103009278 in ion::base::logging_internal::NullLogger::NullLogger(ion::port::LogSeverity) ()
#4	0x0000000102e0b798 in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* ion::base::logging_internal::CheckNotNull<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*>(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*&&) ()
#5	0x0000000102e0b558 in vraudio::CreateShHrirsFromAssets(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, vraudio::Resampler*) ()
#6	0x0000000102e0a17c in vraudio::AmbisonicBinauralDecoderNode::AmbisonicBinauralDecoderNode(vraudio::SystemSettings const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, vraudio::FftManager*, vraudio::Resampler*) ()
#7	0x0000000102e09f70 in std::__1::shared_ptr<vraudio::AmbisonicBinauralDecoderNode> std::__1::shared_ptr<vraudio::AmbisonicBinauralDecoderNode>::make_shared<vraudio::SystemSettings const&, int&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, vraudio::FftManager*, vraudio::Resampler*>(vraudio::SystemSettings const&&&, int&&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&&&, vraudio::FftManager*&&, vraudio::Resampler*&&) ()
#8	0x000000010386d73c in vraudio::GraphManager::InitializeAmbisonicRendererGraph(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ()
#9	0x000000010386d0cc in vraudio::GraphManager::GraphManager(vraudio::SystemSettings const&) ()
#10	0x0000000103868cbc in vraudio::VrAudioApiImpl::VrAudioApiImpl(unsigned long, unsigned long, int) ()
#11	0x0000000103868a8c in CreateVrAudioApi ()
#12	0x0000000103864c50 in vraudio::unity::Initialize(int, unsigned long, unsigned long) ()
#13	0x0000000103866644 in vraudio::unity::RendererCreateCallback(UnityAudioEffectState*) ()
#14	0x00000001033e3954 in ::UnityAudioEffect_InternalCreateCallback() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/AudioEffectInternal.cpp:61
#15	0x00000001037be508 in FMOD::PluginFactory::createDSP(FMOD::FMOD_DSP_DESCRIPTION_EX*, FMOD::DSPI**) ()
#16	0x00000001037d1398 in FMOD::SystemI::createDSP(FMOD_DSP_DESCRIPTION*, FMOD::DSPI**) ()
#17	0x00000001037c8f30 in FMOD::System::createDSP(FMOD_DSP_DESCRIPTION*, FMOD::DSP**) ()
#18	0x00000001033e3fa4 in ::CreateDSP() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/AudioEffectInternal.cpp:331
#19	0x00000001033ffe94 in ::CreateAudioMixerMemory() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/mixer/audiomixerruntime.cpp:381
#20	0x00000001033eaeb4 in ::EnsureValidRuntime() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/AudioMixer.cpp:201
#21	0x00000001033e9904 in ::Update() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/AudioMixer.cpp:352
#22	0x00000001033e978c in ::Update() at /Users/builduser/buildslave/unity/build/Modules/Audio/Public/AudioManager.cpp:2289
#23	0x00000001033e0ac4 in ::Update() at /Users/builduser/buildslave/unity/build/Modules/Audio/AudioModule.cpp:30
#24	0x000000010321f88c in ::PlayerLoop() at /Users/builduser/buildslave/unity/build/Runtime/Misc/PlayerLoop.cpp:197
#25	0x000000010307cdb8 in ::UnityPlayerLoopImpl() at /Users/builduser/buildslave/unity/build/PlatformDependent/iPhonePlayer/LibEntryPoint.mm:224
#26	0x0000000102a7c8c4 in ::UnityRepaint() at /Users/kenton/Projects/pllc/Media 101/Build/iOS/Classes/UnityAppController+Rendering.mm:267
#27	0x0000000102a7c7b0 in ::-[UnityAppController(Rendering) repaintDisplayLink]() at /Users/kenton/Projects/pllc/Media 101/Build/iOS/Classes/UnityAppController+Rendering.mm:76
#28	0x00000001056d0254 in __clang_call_terminate ()
#29	0x000000018994164c in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#30	0x0000000185c7e098 in IODispatchCalloutFromCFMessage ()
#31	0x00000001859a1090 in __CFMachPortPerform ()
#32	0x00000001859bbe00 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#33	0x00000001859bb504 in __CFRunLoopDoSource1 ()
#34	0x00000001859b8fd8 in __CFRunLoopRun ()
#35	0x00000001858d8c58 in CFRunLoopRunSpecific ()
#36	0x0000000187784f84 in GSEventRunModal ()
#37	0x000000018f0315c4 in UIApplicationMain ()
#38	0x0000000102a752e0 in main at /Users/kenton/Projects/pllc/Media 101/Build/iOS/Classes/main.mm:33
#39	0x00000001853f856c in start ()

Crashing on line 4 here:

libsystem_kernel.dylib`__pthread_kill:
    0x1855282e0 <+0>:  mov    x16, #0x148
    0x1855282e4 <+4>:  svc    #0x80
->  0x1855282e8 <+8>:  b.lo   0x185528300               ; <+32>
    0x1855282ec <+12>: stp    x29, x30, [sp, #-0x10]!
    0x1855282f0 <+16>: mov    x29, sp
    0x1855282f4 <+20>: bl     0x185508bdc               ; cerror_nocancel
    0x1855282f8 <+24>: mov    sp, x29
    0x1855282fc <+28>: ldp    x29, x30, [sp], #0x10
    0x185528300 <+32>: ret    

Any help or thoughts on what could be going on / how to fix it would be greatly appreciated!

Thanks!

Documentation regarding SurfaceMaterials is not clear

It would be really nice if we could actually know what kind of reverb/reflectivity -parameters a certain SurfaceMaterial contains. Like, what is the actual difference between BrickBare and BrickPainted in regards to RT60s, reflection brightness etc. Now they just do their thing magically behind the scenes and "just work". Some more info on them would be nice. Now they are just mentioned in the reference.

Random crash in Unity3D PC

Hi, we're having a random crash problem with our VR game. Several testers have reported it during game play it but no repeatable use case yet. This is with Unity 2017.4.0f1 and the 1.2.1 ResonanceAudio version. The game is built for Oculus Rift and HTC Vive with VRTK plugin.

audiopluginresonanceaudio.dll caused an Access Violation (0xc0000005)
in module audiopluginresonanceaudio.dll at 0033:39fbf0cb.

Is this a known issue? Anything we can do to help resolve this?

error.log

Unity Editor crashes on startup: caused by ResonanceAudio:SetListenerGain

Editor.log:

[...]
Obtained 32 stack frames.
#0  0x00000125280a61 in SetListenerGain
#1  0x0000011e02491e in  (wrapper managed-to-native) ResonanceAudio:SetListenerGain (single) + 0xce (0x11e024850 0x11e02494d) [0x138493330 - Unity Child Domain]
#2  0x0000011e024705 in  ResonanceAudio:UpdateAudioListener (ResonanceAudioListener) + 0x105 (0x11e024600 0x11e02477f) [0x138493330 - Unity Child Domain]
#3  0x0000011e0244a7 in  ResonanceAudioListener:Update () + 0x77 (0x11e024430 0x11e0245c7) [0x138493330 - Unity Child Domain]
#4  0x0000011a73221a in  (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr) + 0xfa (0x11a732120 0x11a73234d) [0x138493330 - Unity Child Domain]
#5  0x00000137cda12e in mono_get_runtime_build_info
#6  0x00000137e05d56 in mono_runtime_invoke
#7  0x00000100ec1e0a in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
[...]

No reverb on Android over Unity

Hi, in Unity resonance audio works great. Switching the surface materials of the audio room in the demo scene makes a significant change. But if I build and run it on Android the sound impression gets totaly lost. I can hear no reverb at all.

I tried it with both demo scenes of Resonance Audio.

I'm under Windows 10 using Unity 2017.3.1f1 and Resonance Audio 1.2.1. My target device is a Moto Z on Android 7.1.1.

Resonance not working when loaded from Asset Bundles

When loading scenes from a Unity Asset Bundle, with a Mixer included in the asset bundle, resonance audio cannot be heard. The resonance audio sources are playing but cannot be heard. Audio sources that are not specialized can be heard. Along with this, when stopping in the Unity editor, a clipping loop plays constantly until Unity is quit. Audio in bundles are triggered on start, not awake, so the mixer is loaded. If the scene is included in the build, it works with no issues.

Unity 2018.1.3f1
Mac OSX 10.13.5
Deployment: Android Gear VR. Test device Samsung S7

feature request: adding transition to probes

Current behavior is to switch to one set of RT60s band to another one with a time transition. We have no control over the time transition period and if the listener stops mid way, the transition continues leading to a weird feeling of not being grounded in reality.

A more realistic behavior would be to lerp as the listener moves through the overlap of the probe volumes.

A good example of implementation is Unity's light probes that use tetrahedral interpolation. In this case, the API would ideally offer an option audioProbes.Tetrahedalize() method, or maybe some simpler name like Partition() that would do the delaunay "meshing".

ResonanceAudioSource.OnEnable generates garbage memory

Many Unity applications use a GameObject Pooling strategy to improve performance, see use object pooling.

That is, GameObject's are (re)used multiple times during a level or application lifetime. If a GameObject isn't needed, it gets deactivated and put in a pool. If the game later asks for that GameObject, it's retrieved from the pool and activated again. I use pooling for effects and sounds a lot for example.

When activating/deactivating a GameObject, the OnEnable() and OnDisable() methods of all Components on that GameObject are called.

The issue with ResonanceAudioSource.OnEnable is that 'mixer.FindMatchingGroups' allocates memory, which would cause an application, that uses a pooling strategy, to generate garbage memory during run-time.

Expected
Enabling/Disabling a ResonanceAudioSource should not allocate memory aka GC.Alloc and OnEnable/OnDisable should be kept fast.

WebGL export issue

Hi,
Using Resonance 1.2.0 and Unity 2017.4.0f1, everything works fine in the Unity project, however it does not seem to work when exporting the Unity project as a webGL application. Is this supported ?

This is the error message I get in the Firefox console :
Audio effect Resonance Audio Renderer could not be found. Check that the project contains the correct native audio plugin libraries and that the importer settings are set up correctly.
Audio source is playing an ambisonic audio clip, but an ambisonic decoder could not be created successfully. Make sure an ambisonic decoder is selected in the audio settings.

Thanks

Raw ambisonic output

Hello!

I would like to know if it's possible to output the b-format mix before it's rotated for the listener and encoded to binaural. This is because I would like to render the soundfield on a custom 32-speaker array using my custom decoder.

Import failed? Unable to find libaudiopluginresonanceaudio (Soundfield)

Hi!
I'm trying to add Resonance to our Android and iOs Unity project (To use an soundfield).
In the editor, the soundfield work well and is spatialized, but when I build on Android, the audio work but is not spatialized. When using android monitor, I got this warning: Unable to find libaudiopluginresonanceaudio and then Audio effect Resonance Audio Renderer could not be found.

I can confirm that I already set the project Audio to resonance (Spatializer Plugin and Ambisonic Decoder Plugin). Already tried to re-install the package. And I've got this error with a new project with only Resonance added with the demo scenes.

Does anyone else got this error?

I'm using Unity 2017.3.0f3, but have the same bug in 2017.2.0.f3.

the head model for HRTF

Hi!

I've been using this sdk for some time and it has been working very well for me. Thanks!

I have a question though: what head model did you guys use to derive the HRTF for the sdk? Another follow-up question is: if I assign a non-person object to be the listener, for example, a cup as a listener, how to define the front/back/left/right for the cup and how does HRTF work for cup in this case?

Thanks a lot in advance!

ResonanceAudioSource: Non-ideal update occlusion strategy

If occlusion is enabled in a ResonanceAudioSource, the method ResonanceAudioSource.Update() tests whether the 'occlusionDetectionInterval' exceeded and calls ResonanceAudio.ComputeOcclusion() in such case.

The problem is that all ResonanceAudioSource's run ComputeOcclusion() at the same time. It's because if ResonanceAudioSource's exist in the scene during design time (not added later during runtime), they're all initialized during the same frame when entering play mode, thus their 'nextOcclusionUpdate' is the same value (zero) and the following code evaluates to true for all of those Components during the same frame as well, cause every 'nextOcclusionUpdate' a performance spike:

if (Time.time >= nextOcclusionUpdate) {
    nextOcclusionUpdate = Time.time + ResonanceAudio.occlusionDetectionInterval;
    currentOcclusion = ResonanceAudio.ComputeOcclusion(transform);
}

It would be more efficient, if only a subset of ResonanceAudio Components call ComputeOcclusion per frame.

I would prefer a time budget value in the ResonanceAudio class, that can be used to specify a maximum value of how many milliseconds of a frame is used to compute occlusion.

For example, if there are 100 ResonanceAudioSource Components that use occlusion, perhaps only 0..20 update their occlusion during frame N, because the "occlusionBudget" value didn't allow for more time to spend on it. During the next frame, ResonanceAudioSource Components 21..40 update their occlusion, and so on.

Another idea could be to use the distance to the listener to decide how often something is updated. ResonanceAudioSource's closer to the listener could then update their occlusion more often than ResonanceAudioSource's far away.

This approach enables to have a constant cost for computing occlusion, no matter how many ResonanceAudioSource Components exists.

The current implementation would cause a performance spike every 'nextOcclusionUpdate'.

CopyFile/Reverting issue with Unity Collab and plugin "audiopluginresonanceaudio.dll"

Specifications

  • Unity version: 2017.3.0.f3 (64-bit)
  • ResonanceAudio SDK version: v1.1.1

Issue

We are consistently getting the same error for the file mentioned above when attempting to Update/Sync Unity Collab on Unity 2017.3.0f3 (64-bit). Our project has been up on Unity Collab since Day 1 and we already have a few thousand files up in Collab with several plugins and only this file is giving us issues since we imported and synced it yesterday.

Logs

[Collab] CopyFile failed:
From path: 'C:/Users/<project_path>/Temp/Revert/Assets/ThirdParty/ResonanceAudio/Plugins/x86_64/audiopluginresonanceaudio.dll', To path: 'C:/Users/<project_path>/Assets/ResonanceAudio/Plugins/x86_64/audiopluginresonanceaudio.dll'

Additional information

It was only yesterday that we imported and uploaded the Resonance SDK to Collab and members pulling from Collab would get this error/conflict. The only way to resolve this for is would be to constantly restore the latest push - which is unacceptable as we would have to manually copy over our changes to a temporary location and re-apply each one one by one as the restore wipes local changes.

All third-party assets we import are placed in Assets/ThirdParty

We have tried the following solutions:

  • Reverting the file (will get stuck in "reverting asset...." and not yield)
  • Removing the file then reverting (same as above)
  • Deleted the Packages folder in %appdata%/Unity/Packages and restarted Unity
  • Deleted the Library/Collab/Download folder and restarted Unity

Here is an experiment of us completely deleting the ResonanceAudio/Plugins folder and re-opening Unity afterwards. Since we are on PC Standalone, only the x86_64 folder got regenerated automatically (as shown in Fig. 1). We suspect this is the cause of the collab conflict issues.

resonance-lib-autogenerated
(Fig 1. The regenerated file after removing ResonanceAudio/Plugins folder and restarting editor)

Build fails in Unity 2018.1

This is same issue as GVR's https://github.com/googlevr/gvr-unity-sdk/issues/861

ResonanceAudioBuildProcessor needs to implement the new interface otherwise the build fails.

Workaround is same as above add this

#if UNITY_2018_1_OR_NEWER
  public void OnPreprocessBuild(BuildReport report) {
    OnPreprocessBuild(report.summary.platform, report.summary.outputPath);
  }
#endif

to the body of ResonanceAudioBuildProcessor.cs

Takashi

Unity 2017.3.1f1 + GearVR on Samsung Galaxy 8

We're having an issue getting the spatialiser working in Unity 2017.3.1f1 on the GearVR (Samsung Galaxy 8). We've set up Resonance Audio as both the Spatialiser Plugin and Ambisonic Decoder Plugin, and added a few audio sources around the level (some ambisonic and some standard), with attached/configured Resonance Audio Source components. The camera also has a Resonance Audio Listener attached (though I don't think we even need it, as we aren't using any advanced features like Reverb Zones or Occlusion). All of this works exactly as expected when playing the game in the Editor, no problems.

However, once we build out onto the Galaxy 8, the audio sources still play but only as standard Unity Audio Sources - the ambisonics sound as though they coming from a single source point, and any settings we set in the Resonance Audio Source components have no effect on any of the other sounds. I've pored over the Getting Started and Developer Guides on the website and can't find anything we've missed for building to Android. I did find the following on the "VR Audio Spatializers" page in the Unity Manual:

"The spatializer plugins only work on the platforms that a VR device is supported on. If a device is not supported for a build target, Unity displays a warning that the plugin will not be included in the built application."

... but there is no such warning (and in any case we are successfully building out onto a GearVR headset). I've wracked my brain for the last few days and can't figure it out! T_T

Any idea what we're doing wrong? Any help at all would be appreciated!

EDIT: Not sure if this is the right place for this, so I'm copying it to StackOverflow. If so, feel free to delete.

ResonanceAudioRoomManager generates garbage memory

ResonanceAudioRoomManager.UpdateRoom() is called by ResonanceAudioRoom(s). The method allocates a RoomEffectsRegion object every call, causing garbage memory to be created.

It's recommended to write per-frame allocation free code, if performance is a concern, such as in interactive applications that have to run at 60 or 90 frames per second.

Reproduce

  • Open Resonance Audio Unity SDK 1.0.0 example project in Unity
  • Open File > Build Settings...
  • Add "ResonanceAudioDemo.unity" to "Scenes in Build" list
  • Select Platform "PC, Mac & Linux Standalone"
  • Select Target Platform = Windows
  • Tick the "Development Build" option
  • Press "Build"
  • Run the built player using Windows 10
  • Go back to Unity while player continues to run in background
  • Open Window > Profiler from Unity's main menu
  • In the Profiler toolbar, select running player from the "Connected Players" popup

Observe in "CPU Usage" profiler that ResonanceAudioRoom.Update() allocates 224 bytes every frame. It's tracked in the "GC Alloc" column.

Expected
Code that runs every frame should not allocate memory, which causes GC collection eventually.

There are other methods in ResonanceAudioRoomManager that cause GC allocs as well, such as "RemoveRoom". Ideally, these should also cause no allocations.

2nd/3rd order ambisonic imports

Hey,

First project using Resonance Audio. Excited to hear the outcome!

I've rendered a B-format 2nd order ambiX file using FB360 Spatial Workstation in Reaper.

However I seem unable to import anything above 1st order ambisonic files into my Unity session. I've read that RA supports up to 3rd order and Unity 2017.3 supports up to 2nd order. Is it a limitation with current iteration of RA that will be ironed out? Or is it likely that I'm doing it wrong?

Thanks in advance,
Joe

Updating SDK overrides material mappings

Currently updating the Resonance Audio SDK overrides ResonanceAudioMaterialMapper.asset. Updating SDK should retain material mappings or should provide a way to save material mappings asset at custom location to prevent overrides.

Memory leak in ResonanceAudioSource.DrawDirectivityGizmo

ResonanceAudioSource.DrawDirectivityGizmo is creating a new Mesh every frame, if the ResonanceAudioSource GameObject is selected.

This causes memory to grow as long as the GameObject is selected while the editor is play-mode. Memory is only released when exiting play-mode.

Reproduce

  • Open example scene ResonanceAudioDemo
  • Open Window > Profiler from Unity's main menu
  • Click "Add Profiler" in Profiler window toolbar and select "Memory"
  • Click "Record" button in Profiler window toolbar
  • Press Edit > Play
  • Press Window > Scene to switch to Scene window while it's playing
  • Select "Cube" in Hierarchy panel
    Observe in the Unity Profiler window that "Meshes memory" grows as well as "Total object count".

Expected
Selecting the ResonanceAudioSource GameObject should not cause a memory leak.

Unity3d resonance-audio VR application - build failed

I try to build my VR application, but, if I choose in the audio settings resonance audio as spatializer and ambisonic Decoder plugins, I get a just exe file with a black screen. Of course, before in this windows, I choose "none", and with it, I got a great compiled application. But, all my scenes in the project was created with resonance audio. Please, help me to correctly make a build with resonance audio!

Fatal error if a gameobject doesn't have an assigned mesh

When an object has a mesh renderer and mesh filter but it doesn't have an assigned mesh, then that object will give a null reference once the editor window of resonance audio is opened.

This is important because we have a multi-VR setup that uses the boundary for the VR setup and it is not generated yet. This could be a common issue that others might face as well.

Maybe as a suggestion, you could add a Debug.LogWarning at the ResonanceAudioAcousticMesh.GeneratefromMeshFilter() that there is no mesh assigned.

became too loud in sometime

When sound clip object moves too fast, audio might became too loud and never get back.
*happens when I use TimeLine to play the audio clip.

Does Resonance audio work with the iOS 12 beta?

I had been updating a GVR SDK project to use the newer SDK & along the way , I went through the steps to replace the GVR Audio with the Resonance audio SDK.

The audio works when running the app in the Unity editor.

There is no audio when running the project on an iOS device. I did not see any error messages in the debug output.

I am using the iOS 12 beta as I am also doing some other projects with AR Kit 2.

Can anyone verify if Resonance audio works with IOS 12?

Found using:

  • Google VR SDK version: Unity package 1.150, Cocoapod 1.140
  • Resonance Audio: 1.2.1
  • Unity version: 2018.2.0f2
  • Phone manufacturer, model, and O/S version:
    Apple iPhone X, iOS 12 beta 4

Additional comments:

There is an obsolete API warning when doing creating an IOS build which will delete the GVR audio components. But if I do that the iOS project will not build because of linker errors.

OSX build not spatialized

Hello,

Machine: 2016 macbook pro 16-inch
OS: Mac OS High Sierra version 10.13.3

On Unity version 2017.3.1f1, when I create a scene using ResonanceAudioForUnity_1.2.1 to 3d-spatialize gameobjects, the spatialization works as expected running directly in the unity engine, but when I build the project, it is no longer 3d-spatialized. In fact, when the player moves, the spatialization seems a bit glitchy, and seemingly reverts to standard panning.

I am quite confident that my scene settings are correct; when my colleague who is working on the same game builds on his machine (a PC), it is correctly spatialized.

I can't tell if it is a user error building on my end or some bug with this combination of os/unity/resonanceaudio versions. Let me know if you need more information.

Other than this build issue, I am LOVING this sdk ๐Ÿ‘

DllNotFoundException on Linux (Unity 2018.1.3f1)

I get errors like this running the demo scenes:

DllNotFoundException: audiopluginresonanceaudio
ResonanceAudio.DisableRoomEffects () (at Assets/ResonanceAudio/Scripts/ResonanceAudio.cs:75)
ResonanceAudioRoomManager.UpdateRoomEffects () (at Assets/ResonanceAudio/Scripts/ResonanceAudioRoomManager.cs:198)
ResonanceAudioRoomManager.UpdateReverbProbe (.ResonanceAudioReverbProbe reverbProbe) (at Assets/ResonanceAudio/Scripts/ResonanceAudioRoomManager.cs:134)
ResonanceAudioReverbProbe.Update () (at Assets/ResonanceAudio/Scripts/ResonanceAudioReverbProbe.cs:105)

I can hear the audio, but it's obvious none of the reverb effects are applied. This happens both in the editor and when running a build. I also tried compiling the SDK and the Unity plugin from source, but I still got the same errors. There are also warnings like this, which I'm not sure if they're related:

Plugins: Couldn't open Assets/ResonanceAudio/Plugins/x86_64/libaudiopluginresonanceaudio.so, error: Assets/ResonanceAudio/Plugins/x86_64/libaudiopluginresonanceaudio.so: undefined symbol: vorbis_analysis_headerout
ResonanceAudioListener:Update() (at Assets/ResonanceAudio/Scripts/ResonanceAudioListener.cs:90)
ResonanceAudioListener:Update() (at Assets/ResonanceAudio/Scripts/ResonanceAudioListener.cs:89)

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.