Nyquist Suggestions

<>

<>

Possibly not as simple as it might appear.

In the simple case of just one waveform in the track, you can simply select the entire track from time=zero, then everything will be referenced to the start of the track as you would like.

For many processes, such as apply a filter, the user just wants to apply the effect to the selected audio and return the result to the same place in the track. If Nyquist referenced everything to the Audacity time-line, would it then be necessary to specify the start position? If a selection was made from 3 minutes to 3 minutes and 5 seconds, would Nyquist need to process everything from time=zero?

What about time stretching effects? If for example, the output is stretched to double length, should the start time also be doubled, or remain at the original position of the start of the selection?

In more complex cases where there are multiple audio clips (a feature available in Audacity 1.3.12 but not in 1.2.6) I’m unsure how it could/should work. Would each clip be processed individually with t=offset, or would the whole track be treated as a single waveform with an origin at time=zero on the time line?

Should clip boundaries be honoured? What should happen if the result of the process is longer than the original audio? Should audio beyond the selection be overwritten, mixed with the new audio, or moved later along the time-line?

Oop is supported in Nyquist, but you don’t have to use it. I’m only aware of one publicly available plug-in that uses oop. The developers have used oop in the lisp source files for whatever reasons, but that does not really affect users or plug-in developers except for delving into the lisp code to try and work out how and why certain functions behave as they do. For creating plug-ins that will be compatible on other peoples Audacity installations, the code in the nyquist folder should not be modified - Nyquist plug-in code should only be as .ny files in the plug-ins folder.

Have you looked at defining functions?