Hacker News new | past | comments | ask | show | jobs | submit login
NoiseCraft: Browser-Based Visual Programming Language for Sound and Music (pointersgonewild.com)
110 points by ingve on Dec 5, 2021 | hide | past | favorite | 15 comments



See also https://www.bespokesynth.com/ for a recent, but long time coming newcomer that is amazing, open-source, etc.


Yes the idea is similar, but this is in the browser, so no install, etc. Unfortunately it doesn't work on FF yet, but it should at some point.


I wouldn't hold my breath on Firefox adding support for importing inside workers. I've personally worked around it with the convoluted solution of bundling modules with the in-browser version of esbuild immediately before playing (the use case being in-browser modular playgrounds and editable stuff such as this).


Some of the developers working on Firefox have told me that they are working on it. They've been taking their time to get it done, but the issues this depend on are showing progress. It should come eventually.

I'm hoping not to have to bundle things because it might be easier for users to report bugs that way, but if I have to I'll do it. esbuild looks nicely documented :)


From the same genius who created Turing Drawings: https://maximecb.github.io/Turing-Drawings/


This is really good. I've wanted to write something like this forever, because I have hand-coded a lot of little MIDI/sound experiments in the browser. This will definitely be of use to me, both as a learning tool and as a saving-myself-time tool. Great, great project.


My kid and I have been playing with this for a couple hours. It's awesome. I have a couple of UI suggestions that would slickify certain aspects of it:

1) have a simplified representation of very short "simple" connections where adjacent nodes are wired together. This would make it easier to read some of the denser examples, and clean up cases where e.g. you just wire a knob or a const directly to a node's input and nothing else.

2) physical grouping would be a huge win for managing layouts

3) a sort of automatic combo of 1 and 2 would also be neat, where e.g. these closely-bound nodes like an operation with a knob stuck to it could automatically follow each other if you grabbed one and moved it.

Years ago (not sure if still true since I haven't used it in years), Adobe Illustrator had this nifty behavior where objects that were nested in complex groups within groups could be used to progressively select specific subsets of their groups by holding a modifier key. Modifier-click an object and that single object was selected. Modifier click again and it selects all of its groups' siblings. Once more and it jumps up to the parent group and all of its siblings. Etc until all the objects in the group are selected (which would have been the default un-modifier-ed select behavior. Not only is it a pretty useful way to select progressively larger portions of your group, it's a little UX sugar that lets you refresh your memory on what the group structure is.


Thanks. Very glad to hear that you and your kid enjoyed NoiseCraft :)

Grouping is in the works. I also think it's going to be a huge win in terms of productivity. I think it would be create to be able to reuse delay modules, synth voices, or kick drums for example.

In terms of combining closely-bound nodes, I'm not sure how that would work. Would you have an example of what that looks like in another piece of software?


Oh and some midi-related ones: some way to see what nodes have MIDI mapped to them and some kind of protection/warning when you assign a MIDI input that's already attached to another node.


Not perfect but if you double-click on a node it will show you the control and deviceId it's currently mapped to. The internal deviceId tends to be cryptic though.

As far as mapping multiple physical knobs to real knobs, I would tend to think "that's a feature", but it would be possible to add a warning.


Definitely agree that it's a feature that should be allowed, but forgetting how many knobs you've already used and reusing one so it's attached to two different things is ... pretty confusing when it happens. :D

Regarding the "closely bound" nodes, I was imagining something like this: https://imgur.com/a/B9jdrYZ

It's could be just drawing the paths on top of the nodes in this special case would do the trick, but it seems like it could come out better if it's actually represented as a single orange-outlined rectangle that's filled with the path color, so it's consistent-looking even if the node alignment isn't perfect.


I thought you said being able to map multiple physical knobs to the same virtual knob, but I actually found that there was a bug last night. Normally a single virtual knob should only map to one physical knob. This is fixed now! :)


Regarding your comment on component reuse via grouping, it would be cool to be able to select a set of connected nodes and call that a “functional group” which you name and also specify named inputs and outputs to it which get wired to specific inputs or outputs on nodes in the group. Then have the name you gave it be one of the node types you can build with on the “add mode” list.


Very impressive. Excellent sound. The idea is great, and well executed. Bravo.


Wow, extremely impressive!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: