Request for future Audacity
Nyquist sound generators and filters are now nodes with nodes network similar to this.
This would be non-destructive sound generation and control in Audacity. You wouldn’t have to apply the filters sequentially.
You can have 10 filter effects connected at once and in realtime preview change one selected node filter.
On Linux, you will probably (depending on which distribution you are using) find a good selection of LV2 effect in the distro’s repository.
I’m not aware of any LV2 plug-ins for Windows (Windows users normally use VST effects rather than LV2).
I was thinking.
Can node-system which I described be integrated as nyquist development tool?
So, every operator in nyquist could be presented as node in graph.
So when creating new sound, user creates a network of nodes.
This node system could be more user friendly and faster way to create sounds.
Nyquist can already do something similar to that, but it does not have a graphical interface and it does not operate in real time.
The function “hp” (a first order high pass filter) could be thought of as a “module”.
This “module” takes two inputs: an audio signal, and a control signal for the filter frequency. The control signal may be a number or a sound.
It has one output, which is the filtered signal.
The function “hzosc” (a sine wave oscillator) can be thought of as a generator module.
hzosc takes one input, which is a control signal for the oscilator, and one output which is the sine wave.
Nyquist functions always have one output, though the output can be “null”. Any number of “nodes” can be connected to that output.
The symbol TRACK is a special “input node”. It is the audio from the track that is currently being processed. Nyquist supports one instance of track, so if multiple tracks are selected, they are processed in sequence, one at a time. track may have any number of channels. Audacity currently supports 1 or 2 (mono / stereo) tracks only.
So by visualising Nyquist functions as “modules”, we can connect the Audacity track (the input track) to the HP and HZOSC module like this:
This code does not work very well because the output level of HZOSC oscillates between +/- 1 which is too small to notice that the filter is doing anything.
For a noticeable effect we need to create another “module” to go between HZOSC and HP. I’ll call this function “scale-range” and it will have one input node connection, and as usual, one output:
If you apply this code to a track containing white noise, you will hear the filter sweep across the range 0 to 2000 Hz at a rate set by the “Hz control”.
To run the code, copy and paste it into the Nyquist Prompt.
Could Nyquist be given a graphical interface that shows functions as modules and function calls as connections between nodes?
Yes that would (theoretically) be possible, but it would be a very big software development project in itself. As Nyquist can run as a stand alone programming language, such a graphical interface need not be restricted to use in Audacity. Such a development project could keep a team of software developers busy for years. It would probably be too big a job for the Audacity developers unless they abandoned working on Audacity, which I very much hope they don’t.
So now all you need to do, is to find a team of software developers, or become a skilled software developer yourself
Interestingly, it took me longer to draw the “node diagrams” than to write the Nyquist code.