updated readmes and added linux build scripts
This commit is contained in:
parent
b5492f2f60
commit
8ae5a82c99
81
README.md
81
README.md
@ -4,31 +4,90 @@ This application/plugin is based on the PaulStretch algorithm. (Paul’s Extreme
|
|||||||
|
|
||||||
PaulXStretch is only suitable for radical transformation of sounds. It is not suitable at all for subtle time or pitch corrections and such. Ambient music and sound design are probably the most suitable use cases. It can turn any short audio into an hours long ambient soundscape without batting an eye!
|
PaulXStretch is only suitable for radical transformation of sounds. It is not suitable at all for subtle time or pitch corrections and such. Ambient music and sound design are probably the most suitable use cases. It can turn any short audio into an hours long ambient soundscape without batting an eye!
|
||||||
|
|
||||||
|
<img src="https://sonosaurus.com/assets/images/paulxstretch_screenshot.png" width="938" />
|
||||||
|
|
||||||
|
# Installing
|
||||||
|
|
||||||
|
## Windows and Mac
|
||||||
|
There are binary releases for macOS and Windows available at [sonosaurus.com/paulxstretch](https://sonosaurus.com/paulxstretch) or in the releases of this repository on GitHub.
|
||||||
|
|
||||||
|
## Linux
|
||||||
|
|
||||||
|
For now, you can build it yourself following the [build instructions](#on-linux) below.
|
||||||
|
|
||||||
|
|
||||||
# Building
|
# Building
|
||||||
|
|
||||||
Source code is now maintained at:
|
Source code is now maintained at:
|
||||||
|
|
||||||
https://github.com/essej/paulxstretch
|
https://github.com/essej/paulxstretch
|
||||||
|
|
||||||
Requirements for building from source code :
|
To build from source on macOS and Windows, all of the dependencies are a part of this GIT repository, including prebuilt FFTW libraries (for Mac/Win only)
|
||||||
- A modern C++ compiler and standard library (C++14, some C++17 needs to be supported)
|
The build now uses [CMake](https://cmake.org) 3.15 or above on macOS, Windows, and Linux platforms, see
|
||||||
- JUCE 6.X is included in deps/juce and is a slightly modified branch with
|
details below.
|
||||||
some improvements/augmentations. It is managed via the tool git-subrepo
|
|
||||||
and the original repository is: https://github.com/essej/JUCE in the
|
|
||||||
```sono6good``` branch
|
### On macOS
|
||||||
- FFTW >= 3.3.6
|
|
||||||
|
Make sure you have [CMake](https://cmake.org) >= 3.15 and XCode. Then run:
|
||||||
|
```
|
||||||
|
./setupcmake.sh
|
||||||
|
./buildcmake.sh
|
||||||
|
```
|
||||||
|
The resulting application and plugins will end up under `build/PaulXStretch_artefacts/Release`
|
||||||
|
when the build completes. If you would rather have an Xcode project to look
|
||||||
|
at, use `./setupcmakexcode.sh` instead and use the Xcode project that gets
|
||||||
|
produced at `buildXcode/PaulXStretch.xcodeproj`.
|
||||||
|
|
||||||
|
### On Windows
|
||||||
|
|
||||||
|
You will need [CMake](https://cmake.org) >= 3.15, and Visual Studio 2019
|
||||||
|
installed. You'll also need Cygwin installed if you want to use the scripts
|
||||||
|
below, but you can also use CMake in other ways if you prefer.
|
||||||
|
|
||||||
|
```
|
||||||
|
./setupcmakewin.sh
|
||||||
|
./buildcmake.sh
|
||||||
|
```
|
||||||
|
The resulting application and plugins will end up under `build/PaulXStretch_artefacts/Release`
|
||||||
|
when the build completes. The MSVC project/solution can be found in
|
||||||
|
build/PaulXStretch_artefacts as well after the cmake setup step.
|
||||||
|
|
||||||
|
|
||||||
|
### On Linux
|
||||||
|
|
||||||
|
The first thing to do in a terminal is go to the Linux directory:
|
||||||
|
|
||||||
|
cd linux
|
||||||
|
|
||||||
|
And read the [BUILDING.md](linux/BUILDING.md) file for
|
||||||
|
further instructions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Contributors
|
# Contributors
|
||||||
|
|
||||||
Copyright (C) 2006-2011 Nasca Octavian Paul, Tg. Mures, Romania
|
Copyright (C) 2022 Jesse Chappell
|
||||||
|
|
||||||
Copyright (C) 2017-2018 Xenakios
|
Copyright (C) 2017-2018 Xenakios
|
||||||
|
|
||||||
Copyright (C) 2022 Jesse Chappell
|
Copyright (C) 2006-2011 Nasca Octavian Paul, Tg. Mures, Romania
|
||||||
|
|
||||||
|
|
||||||
|
# License and 3rd Party Software
|
||||||
|
|
||||||
# License
|
|
||||||
Released under GNU General Public License v.3 license with App Store license
|
Released under GNU General Public License v.3 license with App Store license
|
||||||
exception.
|
exception. The full license text is in the LICENSE and LICENSE_EXCEPTION files.
|
||||||
|
|
||||||
|
It is built using JUCE 6 (slightly modified on a public fork), I'm using the very handy tool `git-subrepo` to include the source code for my forks of those software libraries in this repository.
|
||||||
|
FFTW is required, but statically built libraries are included in `deps` for easier building on Mac and Windows.
|
||||||
|
|
||||||
|
My github forks of these that are referenced via `git-subrepo` in this repository are:
|
||||||
|
|
||||||
|
> https://github.com/essej/JUCE in the sono6good branch.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
50
linux/BUILDING.md
Normal file
50
linux/BUILDING.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Building and installing PaulXStretch on GNU/Linux
|
||||||
|
Follow these steps in order to build (and install) PaulXStretch on GNU/Linux.
|
||||||
|
|
||||||
|
### Installing build dependencies
|
||||||
|
To build PaulXStretch you'll need to install the necessary development dependencies.
|
||||||
|
|
||||||
|
If you're using Debian or a Debian-based distro like Ubuntu, run this script:
|
||||||
|
```
|
||||||
|
./deb_get_prereqs.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
On Fedora run this script:
|
||||||
|
```
|
||||||
|
./fedora_get_prereqs.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
On other distros you'll have to insall the following development packages manually through your package manager:
|
||||||
|
* `libfftw3f-dev`
|
||||||
|
* `libjack-jackd2-dev`
|
||||||
|
* `libasound2-dev`
|
||||||
|
* `libx11-dev`
|
||||||
|
* `libxext-dev`
|
||||||
|
* `libxinerama-dev`
|
||||||
|
* `libxrandr-dev`
|
||||||
|
* `libxcursor-dev`
|
||||||
|
* `libgl-dev`
|
||||||
|
* `libfreetype6-dev` or `libfreetype-dev`
|
||||||
|
* `libcurl4-openssl-dev` or `libcurl4-gnutls-dev`
|
||||||
|
|
||||||
|
### Building
|
||||||
|
Run the build script, both the standalone application and the VST3 plugin will be built:
|
||||||
|
```
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
When the build finishes, the executable will be at
|
||||||
|
`../build/PaulXStretch_artefacts/Release/paulxstretch`. You can install it
|
||||||
|
and the VST3 plugins by running the install script:
|
||||||
|
```
|
||||||
|
sudo ./install.sh
|
||||||
|
```
|
||||||
|
It defaults to installing in /usr/local, but if you want to install it
|
||||||
|
elsewhere, just specify the base directory as the first argument on the commandline of the script.
|
||||||
|
|
||||||
|
### Uninstalling
|
||||||
|
If you wish to uninstall you can run the uninstall script:
|
||||||
|
```
|
||||||
|
sudo ./uninstall.sh
|
||||||
|
```
|
11
linux/build.sh
Executable file
11
linux/build.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
./setupcmake.sh
|
||||||
|
|
||||||
|
#make -C build clean
|
||||||
|
|
||||||
|
./buildcmake.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
53
linux/deb_get_prereqs.sh
Executable file
53
linux/deb_get_prereqs.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Install prerequisite packages for SonoBus build on Debian based distros
|
||||||
|
|
||||||
|
GITREPO="https://github.com/essej/paulxstretch.git"
|
||||||
|
|
||||||
|
PREREQS="libjack-jackd2-dev \
|
||||||
|
libasound2-dev \
|
||||||
|
libx11-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libfftw3f-def \
|
||||||
|
cmake
|
||||||
|
"
|
||||||
|
FREETYPES=$(apt-cache pkgnames libfreetype)
|
||||||
|
if [[ $FREETYPES == *"libfreetype6-dev"* ]]; then
|
||||||
|
PREREQS+="libfreetype6-dev "
|
||||||
|
elif [[ $FREETYPES == *"libfreetype-dev"* ]]; then
|
||||||
|
PREREQS+="libfreetype-dev "
|
||||||
|
else
|
||||||
|
echo "Couldn't find libfreetype dev package"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ $(apt-cache pkgnames libcurl4-openssl-dev) == *"libcurl4-openssl-dev"* ]]; then
|
||||||
|
PREREQS+="libcurl4-openssl-dev"
|
||||||
|
elif [[ $(apt-cache pkgnames libcurl4-gnutls-dev) == *"libcurl4-gnutls-dev"* ]]; then
|
||||||
|
PREREQS+="libcurl4-gnutls-dev"
|
||||||
|
else
|
||||||
|
echo "Couldn't find libcurl ssl/tls dev package"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Installing prerequisites - " $(date)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
sudo apt -y install git build-essential $PREREQS
|
||||||
|
|
||||||
|
function ver { printf "%03d%03d%03d%03d" $(echo "$1" | tr '.' ' '); }
|
||||||
|
|
||||||
|
cmakever=$(cmake --version | head -1 | cut -d" " -f3)
|
||||||
|
|
||||||
|
if [ $(ver $cmakever) -lt $(ver 3.16) ] ; then
|
||||||
|
echo "Your CMake is too old! You need version 3.16 or higher. Try to get a newer version, or compile CMake from source."
|
||||||
|
exit 1
|
||||||
|
fi
|
37
linux/fedora_get_prereqs.sh
Executable file
37
linux/fedora_get_prereqs.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Install prerequisite packages for SonoBus build on Fedora
|
||||||
|
|
||||||
|
GITREPO="https://github.com/essej/paulxstretch.git"
|
||||||
|
|
||||||
|
PREREQS="jack-audio-connection-kit \
|
||||||
|
jack-audio-connection-kit-devel \
|
||||||
|
alsa-lib-devel \
|
||||||
|
libX11-devel \
|
||||||
|
libXext-devel \
|
||||||
|
libXinerama-devel \
|
||||||
|
libXrandr-devel \
|
||||||
|
libXcursor-devel \
|
||||||
|
freetype-devel \
|
||||||
|
libcurl-devel \
|
||||||
|
cmake
|
||||||
|
"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Installing prerequisites - " $(date)
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
sudo dnf update
|
||||||
|
sudo dnf -y groupinstall "Development Tools" "Development Libraries"
|
||||||
|
sudo dnf -y install git $PREREQS
|
||||||
|
|
||||||
|
|
||||||
|
function ver { printf "%03d%03d%03d%03d" $(echo "$1" | tr '.' ' '); }
|
||||||
|
|
||||||
|
cmakever=$(cmake --version | head -1 | cut -d" " -f3)
|
||||||
|
|
||||||
|
if [ $(ver $cmakever) -lt $(ver 3.16) ] ; then
|
||||||
|
echo "Your CMake is too old! You need version 3.16 or higher. Try to get a newer version, or compile CMake from source."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
36
linux/install.sh
Executable file
36
linux/install.sh
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PREFIX=/usr/local
|
||||||
|
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
PREFIX="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Installing PaulXStretch to ${PREFIX} ... (specify destination as command line argument if you want it elsewhere)"
|
||||||
|
|
||||||
|
BUILDDIR=../build/PaulXStretch_artefacts/Release
|
||||||
|
|
||||||
|
mkdir -p ${PREFIX}/bin
|
||||||
|
if ! cp ${BUILDDIR}/Standalone/paulxstretch ${PREFIX}/bin/paulxstretch ; then
|
||||||
|
echo
|
||||||
|
echo "Looks like you need to run this as 'sudo $0'"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p ${PREFIX}/share/applications
|
||||||
|
cp paulxstretch.desktop ${PREFIX}/share/applications/paulxstretch.desktop
|
||||||
|
chmod +x ${PREFIX}/share/applications/paulxstretch.desktop
|
||||||
|
|
||||||
|
mkdir -p ${PREFIX}/share/pixmaps
|
||||||
|
cp ../images/paulxstretch_logo@2x.png ${PREFIX}/share/pixmaps/paulxstretch.png
|
||||||
|
|
||||||
|
if [ -d ${BUILDDIR}/VST3/PaulXStretch.vst3 ] ; then
|
||||||
|
mkdir -p ${PREFIX}/lib/vst3
|
||||||
|
cp -a ${BUILDDIR}/VST3/PaulXStretch.vst3 ${PREFIX}/lib/vst3/
|
||||||
|
|
||||||
|
echo "PaulXStretch VST3 plugin installed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo "PaulXStretch application installed"
|
||||||
|
|
11
linux/paulxstretch.desktop
Normal file
11
linux/paulxstretch.desktop
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=PaulXStretch
|
||||||
|
Comment=Extreme Time Stretching
|
||||||
|
GenericName=Extreme Time Stretching
|
||||||
|
Exec=paulxstretch %u
|
||||||
|
Icon=paulxstretch
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=AudioVideo;Audio;Mixer;
|
||||||
|
Keywords=live;online;music;conference;
|
||||||
|
MimeType=x-scheme-handler/paulxstretch
|
25
linux/uninstall.sh
Executable file
25
linux/uninstall.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PREFIX=/usr/local
|
||||||
|
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
PREFIX="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Un-Installing PaulXStretch from ${PREFIX} ... (specify destination as command line argument if you have it elsewhere)"
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f ${PREFIX}/bin/paulxstretch ] ; then
|
||||||
|
if ! rm -f ${PREFIX}/bin/paulxstretch ; then
|
||||||
|
echo
|
||||||
|
echo "Looks like you need to run this with 'sudo $0'"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f ${PREFIX}/share/applications/paulxstretch.desktop
|
||||||
|
rm -f ${PREFIX}/pixmaps/paulxstretch.png
|
||||||
|
|
||||||
|
rm -rf ${PREFIX}/lib/vst3/PaulXStretch.vst3
|
||||||
|
|
||||||
|
echo "PaulXStretch uninstalled"
|
Loading…
Reference in New Issue
Block a user