PaulStretch3 preview(12) release

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

edit : This project is now more or less obsolete, development efforts are now going into the PaulXStretch plugin. But if someone desperately needs a bug fix or a very small feature implemented for this stand alone application, I may consider it.

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)

https://www.youtube.com/watch?v=nI2u3h6Mrms
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
right-click menu
-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.
Download :

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 :

https://bitbucket.org/xenakios/paulstretch2017/src
Last edited by Xenakios on Fri Jan 12, 2018 5:15 pm, edited 24 times in total.

Post

Very cool, thanks!
Tranzistow Tutorials: http://vze26m98.net/tranzistow/
Xenakis in America: http://oneblockavenue.net

Post

cturner wrote:Very cool, thanks!
+1 !!

Post

Awesome
Duh

Post

Cool, tnx.

Definitely having some problems with the playback positioning on some files. I'm Win7-64. I'll try to nail it down a bit better, but, at the moment it doesn't seem to be playing from the start of the wave on certain files. Also, it's not clear what the wave selection is supposed to do? It would be awesome if wave selection would choose an audition/render region.

Post

ghettosynth wrote:at the moment it doesn't seem to be playing from the start of the wave on certain files. Also, it's not clear what the wave selection is supposed to do? It would be awesome if wave selection would choose an audition/render region.
Do you mean the very start seems to be missing from the sound? The stretch algorithm is problematic with the sound start and end, it needs to be checked if anything can be done about those issues. (Of course there's FFT windowing and such involved, the start going missing could be due to that.)

The wave selection currently determines the time area to be rendered. For realtime playback the selection start determines the playback start, but not the end time. (Going to add support for that later as well as make the time selection to loop.)

Post

Xenakios wrote:
ghettosynth wrote:at the moment it doesn't seem to be playing from the start of the wave on certain files. Also, it's not clear what the wave selection is supposed to do? It would be awesome if wave selection would choose an audition/render region.
Do you mean the very start seems to be missing from the sound? The stretch algorithm is problematic with the sound start and end, it needs to be checked if anything can be done about those issues. (Of course there's FFT windowing and such involved, the start going missing could be due to that.)

The wave selection currently determines the time area to be rendered. For realtime playback the selection start determines the playback start, but not the end time. (Going to add support for that later as well as make the time selection to loop.)
I'm not sure because I just grabbed a file at random. Let me play with it some more and see what's happening. It does seem, however, that loading a new file may not reset the selection and/or start because when I loaded a file after setting the region it played almost nothing of the file.

Post

ghettosynth wrote: played almost nothing of the file.
I think that can happen if the input file is rather short and the FFT window size large. So don't go too crazy with the FFT size parameter, especially if the source sound is short...That can possibly be later solved by adding the looping playback. Then even the longest FFTs should be able to grab material out of the file.

Post

Xenakios wrote:
ghettosynth wrote: played almost nothing of the file.
I think that can happen if the input file is rather short and the FFT window size large. So don't go too crazy with the FFT size parameter, especially if the source sound is short...That can possibly be later solved by adding the looping playback. Then even the longest FFTs should be able to grab material out of the file.
Yep, I think that's what happened.

In any case, it's a huge step up in terms of usability. I would like to see the region loop play though, that would make a huge difference in terms of exploration and usability.

Post

Thanks for taking the time to do this Xenakios. Will test it out ...

Post

Oh yes, thank you so much.
"People are stupid" Gegard Mousasi.

Post

Thank you very much bringing this fantastic tool back!

A wet dream, I guess, would be a VSTi version with keyboard and ADSR envelopes.

Post

Wow thank you! real-time tweaking.. damn

Would you accept a couple small feature requests?

- Space bar for play/stop
- Optional looping of the selection during playback

Paulstretch is the shit! and with a good user interface like this... nice work! :party:

Post

Cool thanks

Post

looking good :)

Post Reply

Return to “Effects”