recalling "system" function from nyquist prompt

Hi,

I’m writing a nyquist plug-in to do a kind of analysis regarding some special tones (fax/modem tones).

To do it I need to launch a special exe program and collect the result.
My intention is to automatize the procedure. I need to launch this exe inside the nyquist plugin.
I’m using your last release Audacity 2.2.2 on a win7/64 machine.

Before to write any code I tried to launch the exe directly from nyquist prompt (inside audacity of couse).
I don’t see any result. May be that this way has been disabled or is not present?
Trying always from nyquist prompt the following simple code

(setf result (system “dir > f:\01.txt”))
(print result)

I get correct result that’s T (that’s command seems corrctly executed)
neverthelss I don’t see any file as output.

May be that I’m doing something wrong?

Thanks and regards.
Massimiliano

The LISP “system” command is not available in Audacity.
I recall asking about this some years ago and was told by the developers at the time that it would not be enabled because it posed too much of a security risk (it would enable third party plug-ins to execute arbitrary code on the user’s machine).

Hi Steve,

I suspected this and it’s a pitty.
Do you know whether there is a way to add to myself this feature?

Thanks and regards.

Massimiliano

The SYSTEM command is not mentioned in the CMU Nyquist manual (http://www.cs.cmu.edu/~rbd/doc/nyquist/indx.html) so I suspect that it’s not even available for the standalone Nyquist. If that’s the case, then you could look to the source code for XLISP (http://xlisp.org/), try and find the code for the SYSTEM command, and then try and incorporate that into libnyquist in the Audacity code. Not an easy task unless you are an experienced C programmer with a reasonably good understanding of LISP.

On the other hand, you could take a step back and ask why do you need to call system functions from Nyquist.

Could there be alternative solutions such as writing a script in Python to control Audacity via named pipes, and call your other program through the subprocess module.

Could the entire thing be written in Nyquist?

Could you use an Autokeys / AutoHotkey script?