GithubHelp home page GithubHelp logo

nwoeanhinnogaehr / flow-synth Goto Github PK

View Code? Open in Web Editor NEW
40.0 5.0 1.0 440 KB

*UNMAINTAINED* A modular digital audio workstation for synthesis, sequencing, live coding, visuals, etc

License: MIT License

Rust 98.93% GLSL 0.63% C 0.44%
daw livecoding audio rust synthesizer modular flow-based-programming live-coding

flow-synth's People

Contributors

nwoeanhinnogaehr 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

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

flipscholtz

flow-synth's Issues

Embed Gluon

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.

Text editing

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.

Dynamic module loading

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.

async/await

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.

Use gfx_glyph for text rendering

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.

Graph save/load

To have any practical use, we clearly need to be able to save and restore projects.

Consider factoring essential functionality out of the GUI

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.

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.