Tone Generator

I think a very useful improvement would be to give it a more musician friendly approach. For example rather than generating the pitch of the tone by frequency, why no give the option to choose by musical note too? Add the Music scales to it. Rather than choosing 4000Hz (random number, just an example) you could chose F# or something. Plus with that combined with the tempo you could also give the duration setting to half note, quarter not, whole note, 6th not etc. Sort of like a digital piano. Synth is very popular to use in music so this could make the tone generator much easier to control and use to its full potential in the name of music. :wink:

Funnily enough, the tone generators in Nyquist (a scripting language used in Audacity with which you can write your own effects and tone generators) uses MIDI note numbers - 60 is middle C, 61 is C#, 62 = D…
To generate the tone at a particular frequency in Hz, the MIDI note value is converted to Hz.

If you are familiar with MIDI it is very easy to generate notes at a particular pitch - Select part of a track, then open the “Nyquist Prompt” (Effects menu) and type in the dialogue box:

(sine 60 1.0)

This will generate a tone at midi note number 60 for a duration of 1.0

The “duration” part is a bit trickier. In the above example, Audacity is using a duration of 1.0 which is as a proportion of the selection length. If you select 5 seconds and use the above code, then the generated tone will be 5 seconds long. If you entered to code

(sine 60 0.5)

then the generated tone would be 2.5 seconds duration.

You may notice that the generated tone is at maximum amplitude (+1.0 to -1.0). If you want the tone to be lower in amplitude it may be easily scaled to a different amplitude with the “scale” function. For example, to scale the tone to an amplitude of 0.4 we would use the code:

(scale 0.4 (sine 60 1.0))

Nyquist is very easy to get started with and is very versatile - if you are interested in finding out more about Nyquist in Audacity, see here:

Hmm I see. Well I’m new to Audacity and I’m not very smart with all of the technical terms so it’s like right over my head. You may even be thinking “What technical terms” which is exactly my point. But that does help me. I still think that my idea is still somewhat arguable as far as the tempo thing. I know it already has a metronome and a tempo control but it would be good for people who are into music recording such as myself. SO you could be like “Whole note” instead of “Ummm 4.234323 seconds” (Once again random example) But then again maybe it’s easier than I think and I just need more getting used to the program.

Either way thanks for the comment. It’s useful for me at the moment lol.

I totally agree - and there is a feature request for that (somewhere on the feature request list). I would like to be able to select bars and beats in the Selection Toolbar, to be able to set “snap to” to bars and beats, and for the bars and beats to be displayed on the timeline.

Regarding the “Nyquist” stuff - you may find it fun to try out those examples - just copy and paste into the “Nyquist Prompt” box (in the Effects menu).

The click track allows tempos in beats per minute, like all conventional metronomes. Is it possible to set tempo accurate to milliseconds (or three decimal places)?

The BPM is an integer value (unless you choose to modify the code).

The degree of accuracy will depend on how accurate the clock chip is on your sound card. This should be very accurate on sound cards that are designed for music recording, but probably not very accurate for on-board sound cards.

Does Audacity still generate mono tones for insertion into a blank stereo project? Might we get rid of that?

I’m not quite sure what you mean koz. “Projects” are neither mono nor stereo. You can set the default recording format to stereo (in Preferences), but the project itself is neutral about whether you create mono or stereo tracks and will happily accept either.

The tone generators produce mono tracks unless generating into an existing stereo track, which is logical as the tones are mono. Perhaps there should be an option for generating stereo noise.

That one’s more complicated since there is Stereo and Mono noise.

I want the generators to follow the default preferences. At one time I wanted to generate a stand-alone, stereo 400Hz tone and it turned into a research task to get Left and Right out of what it gave me.

You could derive a silly workaround, like you need a microphone to generate stereo tone. Talk into the mic to generate a stereo track and then generate the tone and then delete the voice. What’s wrong with this picture? Nothing. That’s how you’re required to do it.


There’s a MUCH easier way:

  1. Tracks menu > Add New > Stereo Track
  2. Generate menu > Generate Tone > select type of tone and click OK.

    For “Tones” the result is a 2 channel mono tone (the phase is the same in both left and right).
    For “Noise” the result is stereo (the noise is generated independently in each channel derived from a “random” function).

Topic moved to the Pending Feature Requests page on the Wiki for future triage by the developers - but retained on the forum and moved to Audio Processing as it contains relevant discussion that may help others.