Is there a way to auralise the label track in Audacity? What I want to achieve is each point label making sound when file is played and cursor goes over it. This will allow to check if they are placed right. I'm doing a beat annotation, so it is hard to check them the other way (you have to listen to bigger fragment of file to get the "beat sensation"; I get initial labels by listening to file and hitting Ctrl+M on beat-down).Is there a way to do it in Audacity or using some Audacity plugin? Maybe there's a way to get exported annotation file back to audacity to generate "click track", then I will be able to mix it with file. Any solution including programming or using any other not-commercial tool is also acceptable.

It would be possible to create a Nyquist plug-in that can read data from an exported label track, but as far as I'm aware such a plug-in has not yet been written. Unfortunately plug-ins are not currently able to read label tracks directly.

There may be easier approaches.Have you tried the Beat Per Minute labels plug-in?If you can create a Click Track that matches the music, then you can create the labels using "Beat Per Minute labels" with the same tempo and the same starting point as the click track.

I think I will start from reading time labels from some list hard-coded in program.I'm trying to understand clicktrack.ny plugin from Audacity distribution. (I think it's a good base it is a Generate type of plugin and has alread "make tick" code in it.)I don't understand how do you "move in time" there.

Because you are creating "point" labels with Ctrl+M, the start and end time of each label is the same.This will be useful to us as it means that all that we need to extract from the list is every other value.

Terrific.There is also a convenient function hz-to-stepBecause osc uses MIDI step values for the frequency, it is often convenient to use the hz-to-step function.Some examples to try in the Nyquist Prompt effect

You can probably see how all of these brackets are working.Nyquist is based on the programming language XLISP, which uses "fully parenthesized Polish prefix" notation.What that means is that "functions" or "command" always come before (prefix) the "arguments" (values).So for example, rather than writing:3 + 2The "+" is the "Add" function, so that goes first and the "arguments" follow:+ 3 2

"Fully parenthesized" just means that every function goes inside its own set of brackets, so we end up with:(+ 3 2)

So in our last example we have the function hz-to-step that converts 440 Hz into its "step" value (MIDI note number).

(hz-to-step 440) and 3 are then the "arguments" for the function osc to give us:

All of the sounds so far have been "full volume". We can make them bigger or smaller by scaling them. Scaling or amplifying a sound is the same as "multiplying" the sound by a value, so to make a sound have a peak level of half the track height, we can simply multiply it by 0.5

So far we've got how to generate tones and how to amplify them.What would be useful would be if we could "shape" them so that they are not just a constant volume.

To do this we need to "multiply" them by something that varies - a number does not vary, it is a "constant".

Nyquist provides a feature called "control signals".A Control signal is much like a sound (a waveform) but to improve efficiency they use a low sample rate, typically 1/20th of the track sample rate.When a control signal is multiplied by a sound, the higher sample rate of the two is used for the output.

Let's say that we want to create an envelope that rises from 0.2 up to 0.8 at half way and back down to 0 again at the end.Much like the Audacity Envelope tool we create a number of "control points" which are pairs of "time and level" values.The correct order of values for pwlv is:time1, level1, time2, level2, time3, level3....The first time value is assumed to be zero so that value is not entered.So our function for the "envelope" is:

If you run that command on its own it will produce a very short waveform because of the low sample rate being "squashed" when it gets back to the Audacity track, so let's try multiplying it by a sound:

I have used a "variable" called "dur" to hold the required duration - in this case 0.1 seconds,and the variable "hz" to hold the frequency - in this case 1000 Hz.

To make the code easier to use in our bigger plug-in, I'll wrap the whole thing in a "function". http://www.audacity-forum.de/download/e ... ef-124.htmWe will create our own custom function called "beep" and it will take 2 "arguments" (parameter values) which will be the frequency and the duration.