## TimeStretch

`TimeStretch` (clip, float "tempo", float "rate", float "pitch", int "sequence", int "seekwindow", int "overlap", bool "quickseek", int "aa")

`TimeStretch` umožňuje změnit tempo a výšku tónů (tonálnost) zvuku pomocí parametrů tempo, pitch a rychlost přehrávání pomocí parametru rate nezávisle jeden na druhém, t.j.:

- tempo může být zvýšeno nebo sníženo při zachování původní výšky (pitch).
- pitch (výška tónů) může být zvýšena nebo snížena při zachování původního tempa.
- Změní rychlost přehrávání rate , která ovlivní tempo a výšku (pitch) současně.
- Vybere jakoukoli kombinaci tempo/pitch/rate.

Parametry:

Parametry rychlosti se zadávají v procentech, a výchozí je 100. Pokud je tempo 200 bude hrát dvakrát rychleji, pokud je 50, bude hrát poloviční rychlostí. Úprava rychlosti rate je ekvivalentní s použitím AssumeSampleRate a ResampleAudio.

Algoritmus time-stretch má několik parametrů, které mohou být laděny pro optimalizaci kvality zvuku pro určité aplikace. Aktuální výchozí parametry mají být voleny iterativní analýzou jestliže-pak (čili metodou: "pokusů a omylů") pro získání nejlepší subjektivní zvukové kvality při zpracování pop/rock hudby, ale v aplikacích zpracovávajících různé druhy zvuků mohou vést výchozí parametry k ne právě optimálnímu výsledku.

Hodnoty výchozích parametrů algoritmu time-stretch jsou:

>     Sequence     82
>     SeekWindow   28
>     Overlap      12

Tyto parametry mají následující vliv na algoritmus timestrech:

- Sequence: Toto je délka jedné sekvence zpracování v milisekundách, která určuje jak je původní zvuk rozřezaný v algoritmu time-stretch. Větší hodnoty znamenají, že je při zpracování použito méně sekvencí. V principu je větší hodnota lepší, když zpomalujete tempo, ale horší, když se tempo zvyšuje a naopak.
- SeekWindow : Délka okna vyhledávání v milisekundách je pro algoritmus, který hledá nejlepší možné místo překrytí. To určuje z jaké šířky "okna" vzorků algoritmus může použít nalezené optimální místo smíchání, když jsou sekvence zvuku spojovány.
  Čím je toto nastavení okna větší, tím je větší možnost nalezení lepší pozice smíchání, ale zároveň větší hodnoty mohou způsobit "ujíždějící - driftující" zvukové artefakty, kvůli tomu, že sousední sekvence mohou být vybrány ve více nestejných intervalech. Pokud jsou tyto artefakty rušivé - zvuky konstantní frekvence se potulují kolem, zkuste snížit toto nastavení.
- Overlap : Délka překrytí v milisekundách. Když jsou zvukové sekvence znovu míchány zpět dohromady do formy nepřetržitého zvuku, tento parametr definuje jak moc budou po sobě jdoucí sekvence překryty.
  Neměl by to být tak kritický parametr. Pokud snížíte nastavení Sequence z velké hodnoty, můžete zkusit menší hodnoty tohoto parametru.
- QuickSeek: Rutina time-stretch má rychlý režim 'quick' který podstatně urychluje algoritmus ale může zhoršit kvalitu zvuku.
- aa: Ovládá počet vývodů (tap) odrušovacího filtru Anti-alias používaného pro změnu rychlosti. Nastavení na 0 vypne filtr. Hodnota musí být násobkem 4.

Tabulka dole shrnuje jak mohou být parametry upraveny pro různé aplikace:

Název parametru | Výchozí hodnota | Větší hodnota ovlivní... | Menší hodnota ovlivní... | Hudba | Řeč | Vliv na ztížení CPU
    Sequence
| Výchozí hodnota je relativně velká, vybráno pro zpomalení tempa zvuku. | Větší hodnota je obvykle lepší pro zpomalení tempa. Rostoucí hodnota přibržďuje "echo" artefakty při zpomalování tempa. | Menší hodnoty by měly být lepší pro zrychlení tempa. Snížení hodnoty urychluje "echo" artefakty při zpomalování tempa | Výchozí hodnota je obvykle vyhovující. | Menší hodnota než výchozí může být lepší. | Zvyšování hodnoty parametru snižuje výpočetní náročnost.
    SeekWindow
| Výchozí hodnota je relativně velká, vybráno pro zpomalení tempa zvuku. | S většími hodnotami se lépe nachází místa překrytí, ale mohou způsobit "drift" artefakty | Menší hodnoty snižují možnost najít dobrou pozici pro smíchání, ale snižuje "drift" artefakty. | Výchozí hodnota je obvykle vyhovující, pokud neruší "drift" artefakty. | Výchozí hodnota je obvykle vyhovující. | Zvyšování hodnoty parametru zvyšuje výpočetní náročnost.
    Overlap
| Výchozí hodnota je relativně velká, vybráno vhodně pro výše uvedené parametry. |  | Pokud snížíte nastavení "sequence ms", můžete zkusit menší hodnotu. |  |  | Zvyšování hodnoty parametru zvyšuje výpočetní náročnost.

Poznámky:

- Toto NENÍ zcela přesný plugin ve vztahu ke vzorkům. Pokud ho použijete, mohou nastat mírné nepřesnosti. Protože se používá desetinných hodnot (float values) mohou se objevit chyby zaokrouhlování, obzvláště na dlouhých audio vzorcích. Obecně by ale nepřesnost neměla překročit několik desítek milisekund pro délku filmu.
- Aktuálně podporuje knihovna SoundTouch pouze 1 a 2 kanály. Při použití s více než 2 kanály, je každý kanál zpracován individuálně v 1 kanálovém režimu. To zničí fázové vztahy mezi kanály. Pro podrobnosti se podívejte na toto vlákno:- TimeStretch in AVISynth 2.5.5 Alpha - Strange stereo effects ?
- SoundTouch je používán v režimu desetinných - float - vzorků.

Příklady:

    TimeStretch(pitch = 200)

Toto vede ke zvýšení pitch (tonálnosti - výšky) o jednu oktávu, při zachování délky původního vzorku.

    TimeStretch(pitch = 100.0*pow(2.0, 1.0/12.0))

Toto vede ke zvýšení pitch o jeden půltón, při zachování délky původního vzorku.

    TimeStretch(tempo = (100.0*25.0*1001.0)/24000.0)

Toto změní tempo z rychlosti Film na PAL beze změny pitch - tonálnosti.

Poděkování:

Tato funkce používá:

SoundTouch library Copyright (c) Olli Parviainen 2002-2006

http://www.iki.fi/oparviai/soundtouch
http://www.surina.net/soundtouch

Historie změn:

v2.55 | Původní vydání
v2.57 | Vystaveny parametry soundtouch

`$English Date: 2008/12/24 22:55:01 $`

`Český překlad:12.2.2009`