ModularFX is a GUI for Gensound #34
Replies: 9 comments 1 reply
-
|
Beta Was this translation helpful? Give feedback.
-
Note that the file format is still very likely to change. I think this is basically feature complete now. You should be able to use almost all node types. Some special nodes may be needed for slicing, gain etc. At this point it would be very helpful if all the user-facing objects had default arguments and type annotations. |
Beta Was this translation helpful? Give feedback.
-
This is really cool! Thanks for sharing! I haven't had time to play too much with it, but it's working great. What are your plans for the future? |
Beta Was this translation helpful? Give feedback.
-
As for default arguments and type annotations: I'd like to have type annotations, but I feel the code is not yet ripe enough. For example, the frequency for Default arguments: I believe Signal objects typically have those, while many Transforms don't. However, in many cases it is not clear what the default arguments should be, and even how many of them should there be (e.g. Repan). Also, I'd like to consider other use cases of this code, for which it is sometimes preferable to force the user to make a choice for the arguments. Are there any arguments in particular that you think should have a specific default value? |
Beta Was this translation helpful? Give feedback.
-
I'm thinking about vendoring the nodeeditor library, because I want the program to be able to run headless without installing Qt. I want to use it in a build pipeline to generate the sound effects for my game. That needs a fairly simple but also fairly large refactoring of the core library. I think some operations are completely missing because I don't know about them. Default arguments don't necessarily have to be "correct", they just have to ensure that the node makes some kind of sound by default. This is really most useful for me to test that things work if I don't understand what they are supposed to do. :) Type annotations would allow the sockets to be coloured to indicate what they can connect to. For example if I also want to make generic "value" nodes so that you don't have to keep typing the same number in multiple places, perhaps with sliders and knobs instead of a text box. I think there is also a problem with some nodes that accept an object as a parameter. |
Beta Was this translation helpful? Give feedback.
-
Another thing i will need to add is some kind of "output" node. I'm not sure whether to allow multiple outputs in one graph. They would then need to be named in order to differentiate them on the command line. On the other hand, only allowing one output would be an artificial limitation, and either way I have to handle the case of zero outputs. On a related note, it would be nice if gensound supported signed and unsigned for every byte_width. I need signed 8 bit raw samples. |
Beta Was this translation helpful? Give feedback.
-
Something I'm working on... |
Beta Was this translation helpful? Give feedback.
-
Today I implemented value nodes and a polyphonic sink using pygame: To use this on Linux:
|
Beta Was this translation helpful? Give feedback.
-
Today I implemented an Inspector node, which attempts to turn nodes back into the equivalent python code: Clicking "Inspect" in the above causes the following output:
You need |
Beta Was this translation helpful? Give feedback.
-
https://github.com/ali1234/modularfx
This is highly experimental code using https://gitlab.com/pavel.krupala/pyqt-node-editor
After starting the program, you must click file->new to make a new graph. Then drag nodes from the right hand side and drop them in the graph. Connect them up by clicking the orange dots. The right side is the output. The left side has two sockets: the top one applies a transform, the bottom one concatenates to whatever is connected. After you made a graph, click play on any node to play the sound up to that point.
The list of available nodes is (mostly) automatically generated by introspecting gensound.
It is currently not possible to connect curves to signal generators.
Warning: saving is not implemented yet, so don't make anything too complex.
Beta Was this translation helpful? Give feedback.
All reactions