How can I amplitude modulate one channel with another ?

I guess you expect me now to write, as a homework :wink: , the complete code (say multiplier.ny) that fetches track 0 and track 1, multiplies them and export the new samples to replace their original ones (better of the track 1 only).

Have you said what you are actually trying to do? You’ve said that it’s to do with data rather than “audio”, but other than that I don’t know what your objectives are.

Your remark is right, as always.

It happens that Audacity is one of the rare tools among the professional advanced ones which I was allowed to download and install due… you know :slight_smile: And I insist to download and run genuine programs only; offered by their developers.

Although Audacity is for audio, I try to use it to verify some new ideas related to non-audio applications by taking advantage of its various numerical functions on tracks (sounds).

I have no secrets to hide but I am afraid that these applications are likely off-topic in this forum; a world for audio subjects.

Nyquist effects cannot work on more than one track at a time. When you select multiple tracks and apply a Nyquist effect, the effect is applied to each track in turn. This means that there is no direct way to take inputs from multiple tracks at the same time.

Using a stereo track provides a convenient workaround for when you need to act on two signals at the same time. By joining two mono tracks into a stereo track, you can combine two signals into one track: one signal in the left channel, and the other signal in the right channel.

Nyquist sees a stereo track as an array of two sounds. As I described previously, you can then access each of the sounds individually using the AREF command.

Thus, to multiply a signal in the left channel of a stereo track, with a signal in the right channel of a stereo track:

(mult (aref *track* 0) (aref *track* 1))

Thank you for clarifying the difference between two mono sounds and one stereo sound as variables/arguments in LISP functions.
So the task needs just 1-line command for the Nyquist Prompt; how nice it is!

For instance, I was reading “DSP in Lisp” on nyquistman.pdf (from page 48) to understand how to implement “snd-prod” in LISP; big difference :slight_smile:
(And I couldn’t find yet the words to which DSP refers).