nwoeanhinnogaehr / flow-synth Goto Github PK
View Code? Open in Web Editor NEW*UNMAINTAINED* A modular digital audio workstation for synthesis, sequencing, live coding, visuals, etc
License: MIT License
*UNMAINTAINED* A modular digital audio workstation for synthesis, sequencing, live coding, visuals, etc
License: MIT License
I think that http://gluon-lang.org/ would make a good language for live coding. It has excellent rust interop and the operator overloading we need to live coding smooth.
Once we have #2, text editing, this is probably the next step.
I hope to have a simple way to transparently write modules in gluon. Only the most performance critical modules will need to be written in rust directly.
I've been thinking about perhaps embedding alacritty once they support embedding. But perhaps writing an Xi frontend would be better. Anything beats rolling our own text boxes - the quick implementation I have now will probably not be extended to multiline in favor of embedding something that is externally maintained and comfortable to use for long periods of time.
To begin with, dynamic reloading should perhaps be avoided, but we should certainly be able to load new modules at runtime. Or at least at startup, but from a shared library.
Using Future combinators can be quite unwieldy (see audio io for example) so writing modules is currently awkward. Data must be moved between processing stages explicitly in the current model. Async/await should improve this.
Ideally I think the module could be polled repeatedly until it is closed, in contrast to how the module is currently polled infinitely by the executor until it decides to stop itself. Maybe some kind of custom executor could handle that.
Currently, gfx_text is used, but it is very inflexible. gfx_glyph is lower level but should satisfy flexibility needs.
Bitmap fonts / pixel perfect TTF is not supported in gfx_glyph as well as gfx_text. We can live without.
To have any practical use, we clearly need to be able to save and restore projects.
Right now, we use hardcoded pixel offsets for everything, which is clearly an awful approach.
Something like https://github.com/dylanede/cassowary-rs should be investigated further.
Partially implemented in ac62e85. Design will probably be iterated further.
I don't know if headless mode is ever going to be a thing, but regardless it should be possible to do save/load, module creation/deletion, connection, etc without explicitly going through the GUI. Maybe via some kind of generic frontend trait. This will aid with testing and hopefully improve readability.
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.