Vibrato

Archive of Nyquist Plug-ins.
Many of the plug-ins here will be available on the Audacity Wiki.
Forum rules
This Forum is an archive of old topics concerning Nyquist plug-ins.

Feedback and questions relating to topics may be posted, but please
DO NOT POST NEW TOPICS HERE.

New plug-ins may be posted on the New Plug-Ins board.
Other posts relating to Nyquist should be posted to the main Nyquist board.

The main repository for Audacity/Nyquist Plug-ins is on the Audacity Wiki.
Post Reply
steve
Site Admin
Posts: 81955
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Vibrato

Post by steve » Fri Apr 15, 2011 11:15 am

Applies a variable vibrato to the selected audio.

Limitations:
Maximum length is 99,999 samples (per audio channel).
This limitation is hard coded into Audacity as the maximum size for *table* is 100000 samples.

Thanks to Edgar-rtf for the suggestion of using (fmosc), which in spite of the length limitation provides an elegant solution.
To overcome the length limitation, the function (snd-compose) could be used - this function uses a sound as a look-up table rather than using *table*.

Old version: vibrato.ny
Latest version: vibrato.ny
Note that the latest version removes the 99,999 sample limit.
See this post for details about the latest version: viewtopic.php?p=428528#p428528



The latest version of this Nyquist plug-in is available on the Audacity wiki: https://wiki.audacityteam.org/wiki/Nyqu ... ns#Vibrato
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

Irish
Forum Crew
Posts: 550
Joined: Sat Sep 05, 2009 9:25 pm
Operating System: Please select

Re: Vibrato

Post by Irish » Tue Apr 19, 2011 4:01 pm

Interesting effect, Steve.

I just took a quick look at it, and tried to get a slow vibrato (approx 1 to 2 Hz), but entering 1.0 for Initial and Final speeds gave a result that sounded like about 10Hz, and entering anything less than 1.0 didn't seem to make any difference. :?

Sorry I can't be more constructive, but I haven't yet got my head around pwlv and fmosc. Maybe later ...

POL
________________________________________FOR INSTANT HELP: (Click on Link below)
* * * * Tips * * * * Tutorials * * * * 1.3 Quick Start Guide * * * * Audacity 1.3 Manual * * * * Audacity wiki * * * *

steve
Site Admin
Posts: 81955
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Vibrato

Post by steve » Tue Apr 19, 2011 4:54 pm

Irish wrote:I just took a quick look at it, and tried to get a slow vibrato (approx 1 to 2 Hz), but entering 1.0 for Initial and Final speeds gave a result that sounded like about 10Hz, and entering anything less than 1.0 didn't seem to make any difference
Thanks for checking it out, and you're correct, the vibrato speed is too fast.
This update should fix it.
vibrato.ny
(1.7 KiB) Downloaded 10479 times
Re. (pwlv), have a play with this code in the Nyquist Prompt:

Code: Select all

(setq L1 0.5)
(setq L2 1.0)
(setq L3 0.0)
(setq L4  0.5)

(setq T2 0.33)
(setq T3 0.67)
(setq T4 1.0)

(control-srate-abs *sound-srate*
   (pwlv L1 T2 L2 T3 L3 T4 L4)
)
The function (control-srate-abs) srate beh) forces beh to be calculated at a sample rate of srate.
In this case, the sample rate is set to *sound-srate*, which is the sample rate of the selected audio.
The reason for having that function here is that envelopes are normally calculated at the control rate, which is normally much lower than the sample rate of the track and so the output of pwlv would be shrunk down to a tiny length when it is returned to the audio track. By forcing pwlv to be calculated at the sound sample rate, the output from pwlv will be such that a time value of 1.0 is equal to the length of the selection. (the time values are relative time values).
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81955
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Vibrato

Post by steve » Tue Dec 09, 2014 7:33 pm

New version. Requires Audacity 2.1 (soon to be released) or later.

The interface is a little different from the previous version.

The default has one numeric value set for "Vibrato speed" and one for "Vibrato depth". This will give a constant vibrato at the specified depth and speed.
The text boxes will also accept multiple numeric values separated by spaces. In this case, the supplied values will be evenly distributed between the start and end of the selection, providing a smooth transition from one value to the next.

Example: Setting the "Vibrato speed" to:

Code: Select all

0 30 0
This will cause the vibrato speed to gradually increase from zero to 30 Hz and back down to zero.

Limitations:

1) This version overcomes the 999,999 sample limit and may now be used on longer audio without error. However, when processing long selections there will be a gradual deterioration in sound quality due to cumulative rounding errors (not that a vibrato effect is often used on sounds much more than a few seconds duration).

2) In common with most other time stretching effects, the length of the selected audio may change slightly as a result of processing (though usually only by a very small amount).
Attachments
vibrato.ny
Version 4 plugin. Requires Audacity 2.1 or later.
(2.68 KiB) Downloaded 21570 times
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81955
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Vibrato

Post by steve » Sat Jun 19, 2021 10:20 am

10 years later...
As indicated here: viewtopic.php?p=428383#p428383
There's an incompatibility with the original version of the effect and current versions of Audacity.

This version fixes the compatibility problem:
vibrato.ny
(1.74 KiB) Downloaded 59 times
Note: This does NOT fix the limited length issue.
Ideally the changes in the previous post should be incorporated to fix the length limitation.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

steve
Site Admin
Posts: 81955
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: Vibrato

Post by steve » Sun Jun 20, 2021 12:57 pm

Updated version:
vibrato.ny
(1.66 KiB) Downloaded 382 times
This version eliminates the 100,000 sample limit, but it should still be used on short selections only.

Limitations:
This plug-in is intended for use on short selections.
Due to cumulative rounding errors, the sound quality will gradually deteriorate on long selections, so it is recommended to apply the effect to selections that are less than 1 minute.

Vibrato.png
Vibrato.png (37.67 KiB) Viewed 1835 times
This effect applies vibrato (a regular pulsating change of pitch) to the selected audio. The speed at which the sound pulsates can be varied over time by selecting an initial speed and a final speed. The vibrato speed will smoothly transition from the initial speed to the final speed. For a constant speed vibrato, set the Initial and Final speed settings to the same value.

The depth of the vibrato (amount of pitch variance) can varied over time by setting initial, mid point and final depth values. The vibrato depth begins at the initial value and smoothly transitions to the mid-point value, then to the final value. The time at which the mid-point depth is achieved can be adjusted. When "Mid point position" is set to 50%, the mid-point depth is reached half way through the selection. Smaller "Mid point position" values shift the mid-point earlier, so that the transition in depth from "Initial" to "Mid point" occurs more quickly, and the transition from "Mid point" to "Final" occurs more slowly. Similarly, larger values shift the mid-point later.

The maximum vibrato depth (100%) is equivalent to a pitch deviation of +/- 1 whole tone. At 50%, the deviation is +/- 1 semitone.

Parameters:
  • Initial speed: [0 to 10, default 1] The initial vibrato speed (wobbles per second).
  • Final speed: [0 to 10, default 5] The vibrato speed at the end of the selection.
  • Initial depth: [0 to 100%, default 10%] The amount of pitch variance at the start of the selection.
  • Mid point depth: [0 to 100%, default 100%] The amount of pitch variance at the mid-point.
  • Final depth: [0 to 100%, default 0%] The amount of pitch variance at the end of the selection.
  • Mid point position: [0 to 100%, default 30%] How far through the selection that the mid-point depth is reached.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

Post Reply