Code Monkey home page Code Monkey logo

web-audio-logic's Introduction

web-audio-logic

An attempt to prove that web audio graphs are Turing-complete.

web-audio-logic's People

Contributors

vereena0x13 avatar

Watchers

 avatar

web-audio-logic's Issues

Inconsistent execution

Sometimes when I run the subleq hello world example it finishes without printing hello world...

Performance

Currently we are unfortunately limited by the browser throttling of setTimeout to 4ms delays upon repeated chained calls to it (which we have all strung together with awaits and promises.)

Could we eliminate the need for setTimeout by making it entirely callback based somehow? i.e. when a data packet is received (outputs of the graph are ready to be used), we call a function that computes the new input values. Not sure if this would allow us to fix this or not; look into it.

My other idea is to simply move all the logic into the AudioWorklet itself and just like, feed the worklet with a clock signal (a buffer source w/ looping enabled) and then let the worklet provide both the inputs and outputs to the graph via its output and input. Then it would run as fast as the audio graph could be processed in theory? No need for setTimeout?
And then we'd only use the message port for like, UI updating and user input, etc.
Seems plausible...?

Automatic startup

For some reason audio contexts need to be started by code triggered by a user event? (i.e. a click) -- ???
My technique of programmatically creating an invisible button and calling .click() on it works inconsistently?

How do we do this?

Finish or drop .names

I wrote out the code to generate a PLA from the .names BLIF command; haven't tested it yet, and it doesn't explicitly handle the special cases of buffers or constants.

But then I got smart and turned them off (I think?) via yosys. As far as I can tell it won't generate them at all now so, should we just remove all code relating to the .names command and be done with it?

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.