NyquistIDE Overview
The NyquistIDE runs the command-line version of Nyquist as a subtask, so everything that works in Nyquist should work when using the NyquistIDE and vice-versa. Input to Nyquist is usually entered in the top left window of the NyquistIDE. When you type return, if the expression or statement appears to be complete, the expression you typed is sent to Nyquist. Output from Nyquist appears in a window below. You cannot type into or edit the output window text.
The normal way to use the NyquistIDE is to create or open one or more files. You edit these files and then click the Load button. To load a file, NyquistIDE saves the file, sets the current directory of Nyquist to that of the file, then issues a load
command to Nyquist. In this case and several others, you may notice that NyquistIDE sends expressions to Nyquist automatically for evaluation. You can always see the commands and their results in the output window.
Notice that when you load a selected file window, NyquistIDE uses setdir
to change Nyquist's current directory. This helps to keep the two programs in sync. Normally, you should keep all the files of a project in the same directory and avoid manually changing Nyquist's current directory (i.e. avoid calling setdir
in your code).
Arranging windows in the NyquistIDE can be time-consuming, and depending on the operating system, it is possible for a window to get into a position where you cannot drag it to a new position. The Window:Tile menu command can be used to automatically lay out windows in a rational way. There is a preference setting to determine the height of the completion list relative to the height of the output window.
The Button Bar
There are a number of buttons with frequently-used operations. These are:
(co)
.
(top)
into Nyquist.
If the XLISP prompt is 1>
or
some other integer followed by ">
", clicking the Top button
will exit the debug loop and return to the top-level prompt.
(r)
into Nyquist.
This command replays the last computed sound.
(f2)
etc. into Nyquist.
These commands are not built-in, and allow users to define their own
custom actions.
Command Completion
To help with programming, NyquistIDE maintains a command-completion window.
As you type the first letters of function names, NyquistIDE lists matching
functions and their parameters in the Completion List window. If you click
on an entry in this window, the displayed expression will replace the
incompletely typed function name. A preference allows you to match initial
letters or any substring of the complete function name. This is controlled
by the "Use full search for code completion" preference.
In addition, if you right click (or under Mac OS X, hold down the Alt/Option key and click) on an entry, NyquistIDE will display documentation for the function. Documentation can come from a local copy or from the online copy (determined by the "Use online manual instead of local copy" preference). Documentation can be displayed within the NyquistIDE window or in an external browser (determined by the "Use window in NyquistIDE for help browser" preference.) Currently, the external browser option does not seem to locate documentation properly, but this should be fixed in the future.
Since Nyquist now supports a mix of Lisp and SAL, you may find yourself in
the position of having code from the browser in one language while you are
working in the other. The best way to handle this is to put the code for
the sound you want into a function defined in a Lisp (
When you click the Save button, all envelopes are written to Nyquist.
You can then use the envelope by treating the envelope name as a function.
For example, if you define an envelope named "fast-attack," then you
can create the envelope within a Nyquist SAL program by writing
the expression
These edited envelopes are saved to a file named
The envelope editor can create linear and exponential envelopes. Use the
Type pull-down menu to select the type you want. Envelopes can be created
using default starting and ending values using
Exponential envelopes should never decay to zero. If you enter a zero
amplitude, you will see that the envelope remains at zero to the next
breakpoint. To get an exponential decay to "silence," try using an
amplitude of about 0.001 (about -60dB). To enter small values like
this, you can type them into the Amplitude box and click "Update Point."
The Load button refreshes the editor from data saved in the Nyquist
process. Normally, there is no need to use this because the editor
automatically loads data when you open it.
Browser
If you click on the Browse button or use the Window:Browse menu command,
NyquistIDE will display a browser window that is pre-loaded with a number of
Nyquist commands to create sounds. You can adjust parameters, audition
the sounds, and capture the expression that creates the sound. In many
cases, the expression checks to see if necessary functions are defined,
loading files if necessary before playing the sound. If you want to use
a sound in your own program, you can often simplify things by explicitly
loading the required file just once at the beginning of your file.
.lsp
) or SAL
(.sal
) file. Load the file (from Lisp, use the sal-load
command to load a SAL file), and call the function from the language of
your choice.
Envelope Editor
The envelope editor allows you graphically to design and edit piece-wise
linear and exponential envelopes. The editor maintains a list of envelopes
and you select the one to edit or delete using the drop down list in the
Saved Envelopes List area. The current envelope appears in the Graphical
Envelope Editor area. You can click to add or drag points. Alternatively,
you can use the Envelope Points window to select and edit any breakpoint
by typing coordinates. The duration of the envelope is controlled by the
Stop field in the Range area, and the vertical axis is controlled by the
Min and Max fields.
fast-attack()
.
workspace.lsp
in
the current directory. The workspace is Nyquist's mechanism for saving
data of all kinds (see Section "Workspaces"). The normal way to
work with workspaces is to (1) load the workspace, i.e.
load "workspace"
, as soon as you start Nyquist; (2) invoke
the envelope editor to change values in the workspace; and (3) save the
workspace at any time, especially before you exit NyquistIDE. If you follow
these steps, envelopes will be preserved from session to session, and
the entire collection of envelopes will appear in the editor. Be
sure to make backups of your workspace.lsp
file along with your
other project files.
pwl
or pwe
,
or you can specify the initial values using pwlv
or pwev
.
The envelope editor uses pwl
or pwe
if no point is explicitly
entered as the initial or final point. To create a pwlv
or pwev
function, create a point and drag it to the leftmost or rightmost edge
of the graphical editing window. You will see the automatically
generated default starting or ending
point disappear from the graph.
Equalizer Editor
The Equalizer Editor provides a graphical EQ interface for creating and
adjusting equalizers. Unlike the envelope editor, where you can type
any envelope name, equalizers are named eq-0
, eq-1
, etc.,
and you select the equalizer to edit using a pull-down menu. The Set
button should be use to record changes.
Previous Section | Next Section | Table of Contents | Index | Title Page