trentgill / fn_ptr_graph Goto Github PK
View Code? Open in Web Editor NEWForth-y CLI for DSP graphs. C (DSP) & Haskell (interpreter & graph compiler) backend. Wrapped in libsoundio
Forth-y CLI for DSP graphs. C (DSP) & Haskell (interpreter & graph compiler) backend. Wrapped in libsoundio
right now we're cheating & returning variables as pure functions.
it seems the correct way to deal with this is to do all of this IO to the variable c-graph out in main (or close to it). this causes big issues because of the construction of the interpreter which does code execution at least 3 layers of abstraction away from main.
even if the parser existed at the main level, there'd still be issues when using composite words which wrap functionality inside, and wouldn't return to main level after each element.
considered building a list of dsp-fn calls per input string, then executing them at the end. the problem of course, is that some dsp-fns just return a value that hoth can use to do (eg) math on. you can't 'get' a param then add 4, then 'set' that same param, because the add would happen to a value that didn't yet exist.
need to be able to access a list of metadata describing the use & settings of all available modules.
how to iterate through this? c can only return a single pointer, so is the list null-terminated?
haskell needs to respond to CLI by creating wrapped dsp_structs in a module_t. the c fns return a pointer to a module_t & stores it in a haskell list.
the module_t must be 'understood' by haskell, in that hs should be able to parse the contents & know things like the number of ins & outs.
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.