Paul's Extreme Sound Stretch

by Nasca Octavian PAUL

Introduction

This is a program for stretching the audio. It is suitable only for extreme sound stretching of the audio (like 50x) and for applying special effects by "spectral smoothing" the sounds. It can transform any sound/music to a texture. The program is Open-Source and it's released under the version 2 of the General Public License. You can download the source code for Linux or the Windows binaries.

Please note that this is suitable only for extreme time stretching (e.g. if have a melody of 3 minutes and you want to listen it in 3 hours). If you want "less extreme" time stretching, you can use a program which contains the SoundTouch library.


Features


Sound examples

Original sound, generated by ZynAddSubFX

Stretched 20 times

Shortened to 25%


Download

You can download the source code for Linux or binary for Windows from here(click on the “files” tab).


Screenshots





The main window





The Render window



Usage


Before starting, you need to open a WAV, OGG VORBIS or MP3 file. You can open it by using the file menu, by launching the program with a command-line argument or (on linux systems) by drag a file from explorer and drop it on the filename bar(under the menu).


The main window has two main controls: the stretch amount and the audio window.

The stretch amount

There are three modes:

  1. The "Stretch" mode - may stretch up to 10,000 times

  2. The "HyperStretch" mode - may stretch up to 1,000,000,000 times

  3. The "Shorten" mode - it reduces the length of the sound

You can precisely set the amount by pressing the "S" button.

The audio window

This program doesn't process the sound as a single piece: it cuts the sound in small pieces process them. Each small piece is called a "window". The size of the windows controls the size of the window in samples, which affects the frequency and the time resolution of the resulting sounds. The small windows have good time resolution, but poor frequency resolution. Also, large windows has poor time resolution, but they has great frequency resolution. Usually, a window of 7-12k is good for most music. Very big windows (> 100k) can be used for special effects (for smearing the sound very much and transforming it into a sound-texture even if the stretch is closer to 1.0).

If the playback is on and you change the window size, you have to press play again to have effect on the current playback.

Also, the window has another control, which is the type of the window. It set a trade-off between frequency resolution and the noise. The Rectangular/Hamming types has the best frequency resolution, but they produces a lot of noises. The Blackman types produces almost no noise, but has a slightly lower frequency resolution.


The playback controls

You can render/play the sound in real-time, by using the playback buttons in the lower parts of the windows.

The process window

It is possible to use post-processing filters for the audio.


The render window

You can select the desired part of the sound and render it to disk.

The select pos1 and select pos2 sets the limits of the selection from the percents(playback) slider.

While rendering, the interface will be a bit less responsive, but you can still play the current sound or select and play another sound.


Suggestions

It sounds very good on stretching classical music(for finding small errors on choirs :) ). I like very much listening to Vangelis using this effect. I recomand you to try to listen "Movement 1" from "El Greco" album from the 9:00 minutes stretched by 30x, using a window of 10k samples. Also, you can try the "Monastery of La Rabida" soundtrack from the "Conquest of paradise" album.


ToDo

Bugs and issues



History

20060527(0.0.1)

- First release

20060530(0.0.2)

- Ogg Vorbis output support

- Added a wxWidgets graphical user interface

20060812(1.000)

- Removed the wxWidgets GUI and added a FLTK GUI

- Added real-time processing/player

- Added input support for Ogg Vorbis files

- Improved the stretch algorithm and now the amount of stretch is unlimited (and on big stretch amounts, you don't need additional memory)

- Added "Freeze" button to the player

- It is possible to render to file only a selected part of the sound

- Other improvements

20060905(1.024)

- Added MP3 support for input

- Added bypass mode (if you click play with the right mouse button)

- Improved the precision of the position slider (now it shows really what's currenly playing)

- Added the possibility to set the stretch amount by entering the numeric value

- Added pause mode and volume control

- Added post-processing of the spectrum(pitch/frequency shift, octave mixer, compress,filter,harmonics)

- Command line parameter for input filename

- The file can be dragged from the explorer to the file text to open it



Contact:

zynaddsubfx AT YAHOO COM