Giter Club home page Giter Club logo

lasp's Introduction

LASP

LASP is a Unity plugin providing low-latency audio input features that are useful to create audio-reactive visuals.

Demos

gif

Sphere is the simplest example of LASP that shows an animated sphere scaled by the audio level. It uses the Audio Level Tracker component to calculate the audio level and a Property Binder to animate the scale property of the sphere.

gif

LevelMeter is a slightly advanced example of the use of Audio Level Tracker that shows low/mid/high frequency band levels. It also uses the raw waveform function to draw the waveform graph.

screenshot

DeviceSelector shows how to instantiate Audio Level Tracker and set Property Binders programmatically at run time.

gif

Lissajous is an example that draws a Lissajous curve using the Input Stream class and its interleaved waveform function.

gif

Spectrum is an example showing how to use the Spectrum Analyzer component to get the audio frequency spectrum of an input stream.

System Requirements

  • Unity 2019.4 or later

At the moment, LASP only supports desktop platforms (Windows, macOS, and Linux).

How To Install

This package uses the scoped registry feature to resolve package dependencies. Please add the following lines to the manifest file (Packages/manifest.json).

.NET Standard 2.0 (Unity 2021.1 or earlier)

To the scopedRegistries section:

{
  "name": "Unity NuGet",
  "url": "https://unitynuget-registry.azurewebsites.net",
  "scopes": [ "org.nuget" ]
},
{
  "name": "Keijiro",
  "url": "https://registry.npmjs.com",
  "scopes": [ "jp.keijiro" ]
}

To the dependencies section:

"org.nuget.system.memory": "4.5.3",
"jp.keijiro.lasp": "2.1.6"

After the changes, the manifest file should look like:

{
  "scopedRegistries": [
    {
      "name": "Unity NuGet",
      "url": "https://unitynuget-registry.azurewebsites.net",
      "scopes": [ "org.nuget" ]
    },
    {
      "name": "Keijiro",
      "url": "https://registry.npmjs.com",
      "scopes": [ "jp.keijiro" ]
    }
  ],
  "dependencies": {
    "org.nuget.system.memory": "4.5.3",
    "jp.keijiro.lasp": "2.1.6",
    ...
.NET Standard 2.1 (Unity 2021.2 or later)

To the scopedRegistries section:

{
  "name": "Keijiro",
  "url": "https://registry.npmjs.com",
  "scopes": [ "jp.keijiro" ]
}

To the dependencies section:

"jp.keijiro.lasp": "2.1.6"

After the changes, the manifest file should look like:

{
  "scopedRegistries": [
    {
      "name": "Keijiro",
      "url": "https://registry.npmjs.com",
      "scopes": [ "jp.keijiro" ]
    }
  ],
  "dependencies": {
    "jp.keijiro.lasp": "2.1.6",
    ...

Audio Level Tracker Component

Audio Level Tracker is a component that receives an audio stream and calculates the current audio level. It supports Property Binders that modifies properties of external objects based on the normalized audio level.

gif

It tracks the most recent peak level and calculates the normalized level based on the difference between the current level and the peak level. It only outputs an effective value when the current level is in its dynamic range that is indicated by the gray band in the level meter.

Default Device / Device ID

As an audio source, you can use the Default Device or one of the available audio devices by specifying its Device ID.

Device IDs are system-generated random string like {4786-742f-9e42}. On Editor, you can use the Select button to find a device and get its ID. Note that those ID strings are system-dependent. You have to reconfigure it when running the project on a different platform.

For runtime use, you can use AudioSystem.InputDevices to enumerate the available devices and get those IDs. Please check the DeviceSelector example for further details.

Channel

Select a channel to use as an input, or stay 0 for monaural devices.

Filter Type

Four types of filters are available: Bypass, Low Pass, Band Pass, and High Pass. These filters are useful to detect a specific type of rhythmic accents. For instance, you can use the low pass filter to create a behavior reacting to kick drums or basslines.

Dynamic Range (dB)

The Dynamic Range specifies the range of audio level normalization. The output value becomes zero when the input level is equal to or lower than Peak Level - Dynamic Range.

Auto Gain

When enabled, it automatically tracks the peak level, as explained above. When disabled, it fixes the peak level at 0 dB. In this case, you can manually control the effective range via the Gain property.

Smooth Fall

When enabled, the output value gradually falls to the current actual audio level. It's useful to make choppy animation smoother.

gif

Spectrum Analyzer Component

gif

Spectrum Analyzer is a component that receives an audio stream and applies the FFT (Fast Fourier Transform) to get the spectrum data.

It normalizes the spectrum values by using the same algorithm as Audio Level Tracker. Please see the section above for details.

You can retrieve the spectrum data using the scripting API. Please see the SpectrumAnalyzer example for detailed usage.

Spectrum To Texture Component

screenshot

Spectrum To Texture is a utility component that converts spectrum data into a texture that is useful for creating visual effects using shaders.

There are two methods to use the spectrum texture.

Via Render Texture

You can bake the spectrum data into a render texture by specifying it in the Render Texture property. The render texture must follow the following requirements:

  • Width: Must be the same as the spectrum resolution.
  • Height: Must be 1.
  • Format: R32_SFloat

Via Material Override

You can override a texture property of a material using the Material Override property, which is convenient when using the spectrum texture with Mesh Renderer.

Scripting Interface

There are several public methods/properties in LASP classes, such as AudioLevelTracker, AudioSystem, InputStream. Please check the example scripts for detailed usages.

Known Issue

When adding a property binder to an Audio Level Tracker component, the following error message may be shown in Console.

Generating diff of this object for undo because the type tree changed.

This error is caused by Issue 1198546. Please wait for a fix to arrive.

lasp's People

Contributors

keijiro 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lasp's Issues

Unable to select inputs when using package

It appears that the available Audio Level Tracker script included in the unity package does not have the serializable fields for selecting the input device like the laspvfx demo has. Was this intended or is it something that needs to be added manually?

Thank you! I am still having an issue installing LASP into Unity 2020.1.

Thank you! I am still having an issue installing LASP into Unity 2020.1. I was unsure/unable how to 'reopen' previous issue.

I wish I understood more of all this...apologies.

*I edited the manifest.json package as described.
1 - If I Open your test project then everything works and I notice that libsoundio is fully installed in packages

2 - If I attempt to install the package.json from the Package Manager it will not install and gives me an error related to "missing libsoundio as a dependency"

3 - I have tried installing Libsoundio first, and that then gives me a similar error through package manager regarding another dependency...lol!

I would love the ability to import and use some of these together however really do run into a lot of issues, definitely learning! Thank you for any insight.

Originally posted by @JeffDobrow in #40 (comment)

Question: How to get Property binding to work with properties in components other than transform?

Hi,

First thing I'm loving this library and playing around with it to make audio visualizations and appreciate the work you put into it. I have a question about the use of property binders. It seems the only thing I can get working is the vector3 property binder with transforms. I tried attaching a component script I made with a public vector3 property to the sphere and when I select that component within the vector3 property binder it says no "vector3 property found". The same thing seems to happen if I try a color or float property binder. I was wondering if this was a work in progress or if there was something I'm not understanding with how these property binders work.

One way I did to get around this was to have a helper function in my script to calculate a color based on the x,y, and z-axis of the local scale of the transform so that way as the AudioLevelTracker affects the spheres scale it can also influence its color. If there is any other easier way to achieve this effect out of the box feel free to let me know otherwise using the local scale or some other property of transform as a seed to manipulate objects in my scene seems to suffice for my needs.

Higher latency on one machine than another

My Unity app with LASP has substantially greater latency on one device than another. The first computer is substantially more powerful, but there's a greater latency between a sound and the reaction in the application. The latency is ~.5 seconds on the newer, more powerful machine, and ~.1 seconds on the older computer; almost imperceptible lag. What might cause this and how can I diagnose it?

Multiple LASP Loopback streams?

Is there a way to use mixer groups to have multiple LASP streams?

It seems that if you have two mixer groups, each with a LASP Loopback effect applied, there is no way to differentiate the streams and they just get summed together.

How can I leave the Audio listener?

Hello, thanks for the nice plugin.
I have a question!
Audio listener is not available while using this plugin.
When I enter play mode, it disappears altogether, so I can't play the current input value or other example audio file.
I've seen that OUTPUT is not possible in a previous issue. But is it also impossible to listen to a pre-given sample file rather than listen to the real-time input again?

I use unity 2020.3.25f1, and the warning message is like this.
image

Realtime Microphone Playback

I am trying to achieve a low latency playback of microphone input in Unity and multiple places pointed me towards LASP but I cannot figure out any way to playback the audio it is monitoring.

I looked through closed issues and found two related to this, #24 and #8, however I did not see a solution posted. Issue 8 was merged into issue #2 which was closed, but issue 2 was not about microphone playback, it was about using a file as input.

If there is a way to playback LASP's input, please let me know how. It would be incredibly helpful to me.

Thank you.

How to ensure that LASP is hearing the default device?

Hello. I've been thoroughly testing LASP on different computers and different audio setups and I keep running into the issue of LASP not hearing anything from the default audio device.
What can I do to track down this problem?
I need a surefire way to make sure that LASP will hear the audio coming from the default device and if it isnt how to reliably fix that issue..
I would love it if LASP would let me choose the audio device - to ensure its working but Im sure you have reasons for making it default only.
Thanks in advance for your advice/help.
-VJ Anomolee

build error CS0246

Excuse my ignorance if this is a simple problem to fix, I am a noob when it comes to scripting. When I try to build the project I get 24 errors with "error CS0246 regarding SoundIO. Example Packages\jp.keijiro.lasp\Runtime\Internal\InputDeviceHandle.cs(310,33): error CS0246: The type or namespace name 'SoundIO' could not be found (are you missing a using directive or an assembly reference?)

Is there a simple solution for this? Any help is appreciated. Thank you for making this awesome live sound project.

Install error: "Failed to resolve packages"

Following the install directions by pasting the text in my manifest.json, I get the following error, "Failed to resolve packages: The file is not valid JSON: Unexpected string in JSON at position 447 while parsing..."

It seems to run into an error after the 'n' in "name", but the actual text I pasted is:

"{
"scopedRegistries": [
{
"name": "Unity NuGet",
"url": "https://unitynuget-registry.azurewebsites.net",
"scopes": [
"org.nuget"
]
},"

I'm using Unity ver. 2020.3.22. Am I missing a step?

image

Modifying FftBuffer to output the magnitude and phase

In the Postprocess Job you do this:

 public void Execute(int i)
      {
        var x = X[i];
        var l = math.float2(math.length(x.xy), math.length(x.zw));
        O[i] = (MathUtils.dBFS(l * DivN) - F) * DivR;
      }

I assume you're calculating the magnitude with math.length(x.xy) but what is math.length(x.zw)?
Why is each element of x float4? And why O is float2 if it's just magnitudes?

The supportion of making auido input into AudioClip?

Hello,
I am wondering is there any method in Lasp can make audio input from microphone into AudioClip just works like Unity3D build-in Microphone.Start() API .

I have tried find some public api in Lasp and doesn't found the method return AudioClip.

Or is there any way I can get low latency audio input into Unity3D's AudioClip, AudioSource etc and playback by Audiolistener.

Thank you very much!

The type or namespace name 'Span<>' could not be found

I get this error when I import the package. I mention that I am using the package manager for this as described in the readme. The weird thing is that a couple a days ago I managed to import this into an empty project and it worked. I tried deleting the cache, switching the scripting backend. Importing System.Memory from NuGet but nothing seems to be able to fix it.

Do you have any idea what might be the cause?

Using Unity 2019.3.15f1 and Visual Studio 2019

image

Stream initialization error (OpeningDevice)

When I run DeviceSelector scene, I immediately get this error Stream initialization error (OpeningDevice)

win10.
unity version 2021.3.4

Not sure if I'm getting something wrong, I'm not using any midi input device, I'm just trying to get the audio from loopback on windows.

I just download and run, no do anything

Use file or AudioSource as input?

Hello keijiro, thanks for that and all of your work, you're really bringing great and useful features to Unity ๐Ÿฅ‡

I was wondering if there was any way to use a file as input for Lasp, or if it could be done easily by modifying your source code?
It works fine when setting Stereo Mix as a recording device, but it probably won't be enabled for the random user.
Not being that much of a savvy guy, I was wondering if you'd have any clue on that for me to get started!

Thanks in advance!

EntryPointNotFoundException: LaspReplaceLogger with Unity 2019.3.0b7

Hi!

When opening my project using LSAP with Unity 2019.3.0b7, I get this error:

EntryPointNotFoundException: LaspReplaceLogger

When trying to do this:

var peak = Lasp.MasterInput.GetPeakLevelDecibel(_filterType);

Also, with 2019.3.0b7, the Windows plugin DLL had to be renamed, because the name conflicted with the asmdef file.

Conflicting assemblies with Unity's collections package

org.nuget.system.memory has a dependency on System.Runtime.CompilerServices.Unsafe, which it also retrieves from nuget, but there is already an incompatible version of this assembly included with com.unity.collections as installed through Unity's package manager to satisfy the dependencies of some other assets in my project. Having the same assembly at twice at different versions does not seem to be possible. I tried manually removing the assembly installed from nuget, but then System.Memory became unable to load it, although the one from the collections package was in the project.

Is there any way to resolve this conflict?

[Question] How is normalized level event implemented?

Hi Keijiro, sorry to open an issue for this, Lasp works great, but I tried to look at the code to see how the normalized level event is implemented and have some troubles understanding it. Could you point me to some relevant entry point or keyword? I would like to reproduce this behavior of letting the user select an arbitrary property of an object.
Thanks!

Visual Scripting support

Now that VS comes as standard with Unity 2021, I can't stop dreaming of LASP integration in VS : D

Planned to be available on iOS?

Hi Keijiro !

Your lib seems to be very great (I tested the loopback branch which is work with AudioSource and then with Microphone).
I really need this lib but under iOS, are you planning to build it for iOS ? Or maybe I can do it (if I could have a confidential access to the native sources of course ..).

Let me know ;) ,
Thanks in advance,
Regards,
Eric

Particles test rms and level negative values

I'm looking at the two test scenes and the test w bars and lines works as expected. The particles test is not working. No particles are displayed when running it w/ music playing. note: Windows, Unity 5.6.2.

    var rms = Lasp.AudioInput.CalculateRMSDecibel(_filterType) + _amplify;
    var level = 1 + rms * 0.1f;

    _emission.rateOverTime = Mathf.Clamp01(level * 5) * _originalEmission;
    _shape.radius = Mathf.Clamp01(level) * _originalRadius;
    Debug.Log("rms=" + rms);
    Debug.Log("level=" + level);

note the debugs show negative rms and level values, so setting a 0-?? particle setting like rateovertime and radius to a negative value just sets it to 0.

output sample from debug:
rms=-30.09703
level=-2.009703

not sure exactly what the rms and level values are returning to correct the issue.

Minimizing latency?

I'm wondering if there's a way to minimize latency within LASP. There is still a bit of lag in my response, maybe ~200ms. Are there any alterations I can make to LASP to lower this? Maybe some LASP features or components that I can disable or reduce to cut down on the resource cost/response time? Thank you.

change input device at runtime

is there a way to change device ID of an AudioLevelTracker after it has been initialized, without destroying and recreating it like in the DeviceSelector example?

Lasp scripts only see a small number of existing parameters

Hi! Thank you again for all your tools.

I have recently started using Lasp.

Lasp's Property Binders only seem to find a few properties of the target object. Transform, rotation, scale + a couple other random ones like lightmap scale. It will see my own scripts, yet it won't see the basic public Vector3 or floats I put in them.

Is it possible for a user to write a script to use the Lasp volume output to affect parameters? Instead of using the Property Binders. If so, you have any tutorial or guide on what code to use for the output of Audio Level Tracker or Spectrum Analyzer?

For example, I'm hoping to use Audio Level Tracker to affect parameters in a material. Right now, I'm trying to have the audio modify the emission color/intensity. If I add a Property Binder for Color, it won't see any parameters on any component.

Do you have any advice? If I am misunderstanding the Proper Binders, please let me know.

Thank you!

Possible to build for Windows?

Hi, Is it possible to build LASP for windows? When I try to build I get errors related to SoundIO. I also included SoundIO in my packages json.

Library\PackageCache\[email protected]\Runtime\Internal\InputDeviceHandle.cs(28,16): error CS0246: The type or namespace name 'SoundIO' could not be found (are you missing a using directive or an assembly reference?)

Thank you very much! This package is really great.

Installing on Unity 2019.4.5

Excuse my noobness, but how can I install the package in Unity? I've tried cloning the repo, editing the manifest.json found in Packages/ as per instructions in the README. But when I run the scene in Unity, I get error CS0246: The type or namespace name 'Event' could not be found (are you missing a using directive or an assembly reference?) errors. I've also tried to create a new project and then install the package from package manager by adding the local file Packages\jp.keijiro.lasp\package.json but that doesn't work either.
Thanks

ASIO support on Windows

Hello,

I'm receiving the "LASP: Failed to open the default audio input device." error when I attempt to use my Focusrite Scarlett 18i20 as the default recording device on Windows 10, 64-bit. I've also installed the latest ASIO4All (not sure if that helps or not).

I was however able to use my headphone's mic as the default recording device, and receive info using AudioInput.CalculateRMSDecibel().

Is there some way I could diagnose why my audio interface isn't working with Lasp?

Thanks!

Installation issues

Hi! I am having a ridiculous time getting LASP installed on 2020.1.6f1
If I install through package manager it errors on finding a dependency for the libsoundio (I did edit the manifest.json)
If I open the test project it works fine but then I notice that some Colliders,...the Audio Source object and such are 'force excluded and will be deleted at play'.

Any insight by chance? I am certainly doing something wrong!
Thank you!

parameterValue question

https://imgur.com/a/PTjv4sF
Hi Keijiro, I'm sorry for opening up another question. I took Vfx Controller from your LaspVfx project, but it seems missing parameterValue like the image attached.
Is it related to the Unity version? Or I just have to roll back to Unity 2019.1 in my own project.

VFX Property Bindings are not available in 2021.1.12f1

Hi @keijiro - thanks for the amazing work!

Lasp is a very cool library and works really well on 2019 Unity versions, however I'm having trouble getting it to show up on the VFX Property Bindings menu on Unity version 2021.1.12f1.

I noticed there was another issue mentioning the same problem, but a fix is not given. Would be grateful if you can point what I'm doing wrong here.

Thanks!

Mac Ventura Loopback possible?

Hi,

Do you think it is feasible to use ScreenCaptureKit in MacOS Ventura to add the ability to visualise sounds that are generated by other apps on the same computer, without need to install 3rd party loopback drivers? I'm thinking that it might now be possible to achieve equivalent to what is possible on Windows (via WASAPI Loopback on Windows OS), but I dont know about latency using this method.

https://developer.apple.com/documentation/screencapturekit/capturing_screen_content_in_macos

Thanks for your great work on many Unity things over the years, you made the whole platform much more fun for experimentation.

Custom filter frequencies

Hi --

Is there a way, even by editing the script, that I could set the Audio Level Tracker filter frequencies/cutoffs more specifically?

If not, may I request that as a feature? It's quite important in the visual work I do outside of Unity, and I'm trying to incorporate those workflows into Unity as well.

ใ‚ใ‚ŠใŒใจใ†๏ผ

How to change sampling rate?

Hello, awesome package!
I've tried using Lasp.AudioLevelTracker.audioDataSlice to read raw audio data and from it construct a precise size buffer.
My use case is a neural network, it has to have a precise length max input, therefore this package seems like a perfect candidate for fast data acquisition. All I'm doing is looping through audioDataSlice[i] and writing values to my buffer until it's full. Then run inference with it.

Problem:
NN Input also requires sample rate of exactly 16000, not more not less. Seems like in this package default is 48 000.

Question:
How to change sampling rate from 48000 to 16000? Cannot a way how I'm meant to do it. AudioLevelTracker does not give access to it's device. I cannot just Lasp.AudioSystem.GetInputDevice(_input.deviceID).SampleRate = 16000;` because there is no setter in SampleRate constructor.

[Question] GetSpectrumData

Is it possible to utilize the GetSpectrumData or an equivalent function with LASP. I have been trying to make a visualizer, and have managed to make one utilizing an AudioSource and the GetSpectrumData method, but have yet to actually figure out how to approach it with LASP. I am also trying to avoid GameObjects as I am using the new ECS.

For the record, I have been using _audioSource.GetSpectrumData(_array, 0, FFTWindow.Hamming);

Biggest reason I need to use LASP is that the audio is coming in through externally to Unity.

[Question] Audio UI missing

Missing
Hi Keijiro. I have a UI missing issue like the image link above, and of course there has no audio incoming. I installed both Unity 2019.1 and 2019.2 and all the versions of Lasp, all the same results. I'm not sure if I installed package incorrectly or it relate to my computer issue. Do you have any idea? Thanks for help!

PropertyBinders

Hey, I'm pretty knew to Unity and C# and after some experiments with LASP I encountered a problem.
I have three GameObjects: an AudioHandler and two spheres. The AudioHandler has a script that creates an AudioLevelTracker like in the DeviceSelector example.
I also have a script for the spheres. From there I want to add PropertyBinders to this AudioLevelTracker and I have no idea how to accomplish this. Is there an easy way to do this?

Add onset beat detection.

Nice start! ใ‚ขใ‚ฒใƒใƒจ! Add onset beat detection though. Basically a bass drum is usually a very fast transition from a high frequency to a low frequency. Thus, use that to detect the bass drum.

Thanks in advance for adding that. Will make it easier to track the main rhythm. That will make Para Para easier for any Para Para Gyaru Girls I put in My apps.

PS: Maybe moving back to Japan soon. By the way, that new MIDI file to anim player looks great! Also, when have a chance and want a lot of love from the mobile XR community, get a TAA plugin functioning in single pass stereo on android. (mobile XR) Spent all day yesterday testing to find a way to get bloom working on single pass stereo in mobile XR and the ONLY solution I found was a plugin called "BEAUTIFY". Basically Unity's post processing team has seemingly been flailing around some because Keijiro hasn't been actively involved.

Is there a way to use system audio?

I'm trying to create an audio visualizer in Unity and a I stumble with this.

The demos work really well but I was wondering if there is a way to use the system audio? I saw this issue and I'm using the Stereo Mix option to get by, but as it says there, not everyone has that option activated. So I was wondering if there is a way to use the system audio. Do I have to create a fake input device and somehow route the sound trough there?

Also I tried to use the Loopback branch but I couldn't get it to work, I guess it doesn't work with Lasp v2?

Thank you.

Lasp not working with with unity 2019.1.8f1

Hello I get this message when I open any scene:

"Rebuilding Library because the asset database could not be found!"

And then when I try to execute them nothing happen. Any idea ?

Can't get Lasp deviceselector example working as build on Mac M1

Hi there,

I'm sort of new to Unity so apologies if this is a silly mistake but I can't get the deviceselector example to work on my Mac M1 as a build. It works in the Unity editor if I hit play (I'm using a guitar signal to control some animations and have checked it).

I would love to get the build to work so I can use Lasp with multiple screens in my performance.

Here is a video to show..

Untitled.mp4

Thanks for making an awesome package though! Exactly what I need
Isaac

Support on more platforms

I think due to soundio only supporting Mac & Windows64, LASP is currently only usable on those platforms.
I was wondering if you've got any plans to extend support, maybe not through soundio but through something similar like on your loopback branch (e.g. "regular" audio input?)

(I started a branch with a "SoundIO Shim", but haven't done more than just adding the shim classes so far: https://github.com/prefrontalcortex/Lasp/tree/add-soundio-shim)

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.