This tool is designed for audio DSP, but is not limited to that. If you're interested in this topic, I recommend downloading the trial, putting it in advanced mode, and just futzing about for a few hours.
It's very accessible and fast to work with, and could be adapted to quite a lot of non-DSP tasks. I would love to see it generalized: the modules within are how I feel libraries should present. Draw graphs for data flow or complex functions, open up a code box for tight procedural stuff. Perhaps not what the author had in mind, but audio synthesis of this kind is event-driven, asynchronous and features a high degree of interactivity, so it may be worth further exploration.
Please email if you know about this kind of cool stuff in other contexts.
Visual programming is always well-suited to audio synthesis, would be cool to see something like the Synthesizer library in there: https://wiki.haskell.org/Synthesizer
BespokeSynth takes the concept of a modular synthesizer and expands it so that the application is less just a synth and more a complete modular DAW. I've used it to create MIDI/audio workflows that I couldn't get exactly the way I wanted in Ableton or FL Studio. It also has a module for doing livecoded audio processing in Python that I'm just starting to scratch the surface of.
This is really nice - you know what it inspires me to do: make a synthesiser interface with the same tech/look and feel. Do you have a repo link where I might contribute something in that regard?
Wired up to MIDI, this could be the basis of a very nice set of synth visualisation tools ..
Fantastic article! I loved how the transfer functions are shown, with audio examples! I'm going to use this for writing an effects patch for my synthesizer :)
Speaking of synthesizers, my favorite line was "I’m building a synthesizer in javascript at the moment". I'd love to see this!
Spot on. It's telling that most DAW UIs are based on archaic ideas (like mixers/tracks and MIDI/step-sequencer grids). Even BuzzTracker (2009) outshines many of the current DAWs with DAG instrument/effects-chaining and arrow-key/cursor navigation.
My post-graduate research concerned signal-rather-than-event-based generation/transformation of compositional data, integrated with textural/timbral synthesis.
My current focus is building a DSP framework for this purpose in C++20 [1].
In any case I'm interested in following your progress, and happy to contribute code/ideas if you feel like collaborating (links in profile).
> tools useful for music creation ... sort of Blender for sound
This is a very wide range of tools. Music can be represented and created in various forms. An established and widespread method is the presentation and processing of music in the form of individual events, organized in tracks and chronological sections. Famous commercial "computer aided design" tools for this approach are, for example, Logic Pro from Apple or Cubase from Steinberg. There are many open source alternatives; a useful list is e.g. here: https://alternativeto.net/software/logic-pro/?license=openso...
But music can also be represented and composed in the form of program code, usind a special programming language, for example. Here is a good overview of available (open source) solutions: https://en.wikipedia.org/wiki/List_of_audio_programming_lang...
Seriously, check it out, it's awesome. Write your audio DSP in a language suited to it, compile to efficient C++ (among other languages) and optionally embed it in a (huge) variety of environments. (even Javascript for webaudio)
It's a functional description language that describes a DSP graph, and can generate block diagrams too. Not to mention, it has libraries containing any filter you can imagine. Highly recommended.
If you're thinking of compiling this to webassembly and making an online Sporth playground... It's already done! Works pretty well, too. You can browse a bunch of Sporth scripts and play with them here: https://audiomasher.org/browse
I found the stack-based, Forth style syntax works like magic for a lot of creative audio DSP tasks. Blocks of code are like little signal chains, but denser and easier to manage than traditional spaghetti graphs (like in Reaktor, PureData, etc.) though I believe spaghetti graphs are more approachable at first.
Very insightful post. Although my work is mainly about audio not GUI, I still learn a lot from your idea. For my audio work, I also use declarative style and diff algorithm for updating the audio graph. But when rewriting it, I found sending messages is also very convenient:
the webpages require a little digging, but they have an examples page.
looks like it's a set of dsp functions where the filter graph is constructed by composing the functions in functional style and then passing it to a render function at the end.
so kinda like big data style composition of functions (like the scala stuff people often write to run on spark clusters) but with dsp/audio building blocks running in the browser instead.
This is a terrific Web Audio tutorial! Real-time sound synth in the browser is here. There are already a few DAWs like GridSound out there. But it's still the Wild West ;)
Very interesting topic for me. Thanks for posting this. As pointed out in other post, it's widely used in audio/music programming. My project Glicol(graph oriented live coding language) joins this list recently:
I managed to use solely text based style for denoting audio graph. But often I am asked why I have no visual programming interface for it. I would be happy to listen to all the feedback from you at the repo:
Beautiful UI. Despite what others might comment about its utility and relevance, I see this as a very interesting project to learn audio processing & clean UI design.
Please let us know your background. Are you an audio DSP engineer? Is there a list of features that you are planning to integrate?
This tool is designed for audio DSP, but is not limited to that. If you're interested in this topic, I recommend downloading the trial, putting it in advanced mode, and just futzing about for a few hours.
It's very accessible and fast to work with, and could be adapted to quite a lot of non-DSP tasks. I would love to see it generalized: the modules within are how I feel libraries should present. Draw graphs for data flow or complex functions, open up a code box for tight procedural stuff. Perhaps not what the author had in mind, but audio synthesis of this kind is event-driven, asynchronous and features a high degree of interactivity, so it may be worth further exploration.
Please email if you know about this kind of cool stuff in other contexts.
reply