An attempt to prove that web audio graphs are Turing-complete.
vereena0x13 / web-audio-logic Goto Github PK
View Code? Open in Web Editor NEWAbusing the Web Audio API for fun and profit.
License: MIT License
Abusing the Web Audio API for fun and profit.
License: MIT License
Sometimes when I run the subleq hello world example it finishes without printing hello world...
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...?
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?
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.