I am in the process of teaching myself enough Nyquist[1] to implement a plugin to do the operation I described in an earlier post[2].
The first thing I need to figure out is a way for the user to specify a set of timepoints on a stereo track, using the Audacity interface, and in a way that a Nyquist plugin can access and use as an argument to a function. I would like the user to specify the timepoints for this set by clicking directly at the desired times on the track.
On the Audacity GUI, if I click directly on a track, a vertical line, going through the point where I clicked, appears. If I click at a second location on the track, to the left or the right of the first location, the first vertical line disappears, and a new vertical line appears at the point where I last clicked.
I have two related questions about this:
- Is there a way to keep/record all the horizontal locations I am clicking on? (Ideally this would also retain the vertical lines that show up on the GUI, to remind the user what timepoints have already been added to the list.)
- How can a Nyquist plugin access the timepoints thus specified?
[1] Luckily, I have done a fair bit of Scheme and Emacs Lisp programming, so Nyquist looks very familiar to me. On the downside, however, I am completely lost when it comes to terminology, which makes it very difficult for me to use text-based search tools (notably, search engines, the browser’s “find in page” function, and grep for downloaded source code).
[2] Actually, after reading the information I got from the response to that post, I realized that it would be simpler to specify the operation in terms of two arguments: (1) a desired interval length T; and (2) a (chronologically ordered) list of timepoints (t(1), t(2), t(3), …, t(N)), such that t(k) - t(k-1) <= T for all k. The plugin would then insert silences of length T - (t(k) - t(k-1)) at each timepoint t(k).