As a "little" side project, I've worked on modernizing the PaulStretch application (originally by Nasca Octavian Paul) for extreme time stretching and other processing of sound files.
If someone cares to test and comment, it is now available for
-64 bit Windows 7 or newer
-64 bit OS-X 10.9 or newer.
-64 bit Linux (Tested by me to run only with Ubuntu 16.10)
Download :20170914(3.0.0beta1, Xenakios fork)
- GUI and audio IO (sound files, audio hardware) code replaced with JUCE based code.
- Not all of the existing features are yet available from the GUI, but hopefully eventually they will be.
- Audio file reading code changed to use floating point samples to get
the benefits of the extended dynamic range of floating point files.
- Resample audio to interface samplerate, if needed
- Allow choosing prebuffering amount. Smaller amounts allow faster response to parameter
changes while realtime playing
- Efforts to modernize the code base to use smart pointers, std::vector for audio buffers etc.
20170914(3.0.0beta2, Xenakios fork)
-Added wav file format options for rendering
-Added some keyboard shortcuts : Space bar for play/stop, 'F' for toggle freeze, Home for seek to beginning
-Allow drag and drop of audio file into app window
-Menu button menu shows recently used files
-Audio in realtime playback is clipped after volume adjustment
20170914(3.0.0beta3, Xenakios fork)
-Fixed buffer size bug in offline rendering code
-Prevent rendering over the input file
-Added audio output visualizer (can hide if takes too much CPU)
-Added feature to allow recording live audio to disk
-Disable FFT size slider while playing back. (Need to be determined later if the FFT size can be changed in real time.)
2017-09-15 (3.0.0beta4, Xenakios fork)
-When audio stopped, refresh the GUI components less often to reduce CPU consumption
-If opening audio output device fails, show error message on application start-up
-Preliminary audio looping support (does not crossfade yet, so may cause additional noise)
2017-09-19 (3.0.0beta5, Xenakios fork)
-New playback code that is shared for realtime and offline rendering use.
-Multichannel input files, audio output device and rendering support.
-Allow toggling looping playback.
-Most processing parameters now exposed in the GUI.
-Delete previously existing file when rendering.
-Binary built with FFTW3 library. Optionally allow FFTW3 to do its plans slowly to
possibly result in faster FFTs. (May take several seconds before playback will start.)
-Use Mersenne Twister random generator for the spectral phases.
-CPU and prebuffering ready meters. (Note that on faster machines the CPU meter may never show any load,
as it measures the time spent in the realtime audio callback.)
2017-09-26 (3.0.0beta6, Xenakios fork)
-Spectral processing stages can be reordered (all reorderings won't sound very different, but some will).
-Added smoothing to main output volume processing.
-Loop playback crossfade.
-Fixes and optimizations.
-MacOs version now requires OS-X 10.9 at minimum.
2017-09-26 (3.0.0beta7, Xenakios fork)
-Rebuilt FFTW for Windows with only SSE2 instructions required.
-New prebuffering option Huge added.
-If above enabled, the FFT processing size can go up to around 60 seconds.
-Shortcut key 0 restores default parameter values except main volume. (FFT size still won't update while playing back, though.)
-Logic to handle appropriate playback/render stop point improved
2017-10-13 (3.0.0preview8, Xenakios fork)
-Allow changing FFT size while playing back. (Setting is applied when mouse button released from slider,
not while moving the mouse due to complicated technical reasons.)
-Changing input file while playing back crossfades to the new file.
-Show a more correct output duration in the GUI. (With huge FFT sizes and a short input file, the FFT size
can affect the final output duration much more than the stretch factor.)
-Allow up to 32 output channels.
-Import support for Wavpack, Monkey's Audio, Musepack, Shorten, TAK, MP4, MKV, AVI and various other files by
converting them into WAV with ffmpeg.
-Settings window instead of the popup menu.
-Added ability to choose FFT windowing type. Just leaving it as Hamming is recommended, though.
-Added tooltips to some parameters. (Shown when hovering over the parameter name.)
2017-10-30 (3.0.0preview9, Xenakios fork)
-MIDI CC learn support by right-click on parameter slider/button/dropdown. (FFT size parameter not yet supported.)
Also allows changing the mapping curve from MIDI CC value to parameter value.
-Added saving and loading of paulstretch3 projects.
-Added zoom/scrollbar to waveform component
-Main volume applied when offline rendering.
-Added option to enable/disable clipping for 32 bit floating point renders (16 and 24 bit outputs are always clipped).
-Can change harmonics base frequency parameter to Herz based by right-clicking the slider.
-Changed GUI layout so that the parameters of the different spectral processing modules
are inside group components. (Needs tweaking...)
-Format output duration as minutes, hours etc as needed
2017-11-10 (3.0.0preview10, Xenakios fork)
-Allow stretch amounts lower than 1.0 for shortening
-Optimizations to avoid unnecessary deallocations/reallocations of buffers and objects
-Rendering now opens a window that has rendering options, including an approximate loop count
setting when looping has been enabled.
-Added shortcut keys for waveform zooming
-Waveform time selection edges can be dragged to adjust the selection
-Project files can be passed into command line argument
-Project files can be drag and dropped into application window
-MIDI note based harmonics generator base frequency calculation fix and allow setting tuning from slider
-Prevent importing 64 bit floating point files as those are not supported by JUCE
2017-11-17 (3.0.0.preview11, Xenakios fork)
-Fix bug with multichannel input files in shortening mode
2018-01-11 (3.0.0.preview12, Xenakios fork)
-Increase maximum stretch amount to 1024x.
64 bit Windows 7 or higher :
preview 12 : https://goo.gl/t3m4ys
64 bit Mac OS-X 10.9 or higher :
preview 12 : https://goo.gl/wvSLRP
64 bit Linux (only confirmed to be running in Ubuntu 16.10 so far) :
preview 11 : https://goo.gl/YCTDe8
Source code :