zoomasm-2.0

Claude Heiland-Allen

2020-12-08

zoomasm

Zoom videos are a genre of 2D fractal animation. The rendering of the final video can be accelerated by computing exponentially spaced rings around the zoom center, before reprojecting to a sequence of flat images.

Some fractal software supports rendering EXR keyframes in exponential map form, which zoomasm can assemble into a zoom video. zoomasm works from EXR, including raw iteration data, and colouring algorithms can be written in OpenGL shader source code fragments.

Home: https://mathr.co.uk/zoomasm

Code: https://code.mathr.co.uk/zoomasm

Support: mailto:zoomasm@mathr.co.uk?subject=zoomasm

Donate: https://ko-fi.com/claudeha

Download: zoomasm-2.0

Example Videos

Prerequisites

Prepare Input

Using Kalle’s Fraktaler 2 +

Soundtrack

User Guide

Screenshot of zoomasm example session.

Quick Start

Session

Audio

Input

Colour

Timeline

Waypoints in the zoom animation are shown below.

The first (at the start of the soundtrack) and last (at the end of the soundtrack) cannot be deleted, the rest have a - button to remove them (permanently, no undo). If the Audio/Time slider is between two waypoints, a cursor appears in red, pressing its + button adds a new waypoint at that time. Each waypoint has a Z slider to set zoom depth (in terms of input EXR keyframe index) at the corresponding time (displayed on the left). The interpolation between waypoints is set by the Interpolation dropdown combo box, defaulting to (monotone) Cubic for smoother speed changes (other options are Step and Linear). Instantaneous zoom speed in 2x and 10x zooms per second is displayed below the cursor.

Output

Keyboard Controls

When no widget is active:

You can press Tab to navigate between widgets, and Ctrl-clicking a slider allows to enter numbers more precisely.

Command Line

Build Guide

From Linux

Prerequisites

Whether you are building for Windows or for Linux, you need:

sudo apt install git wget xz-utils build-essential p7zip pandoc texlive-latex-recommended

For Linux

Prerequisites

sudo nano /etc/apt/sources.list
# add the line:
deb-src http://deb.debian.org/debian unstable main contrib non-free
# then save and exit nano
sudo apt update
sudo apt install devscripts debhelper
sudo apt build-dep ilmbase
sudo apt build-dep openexr
apt source ilmbase
cd ilmbase-*/
debuild -uc -us -b -d
cd ..
sudo dpkg -i *.deb
sudo apt --fix-broken install
apt source openexr
cd openexr-*/
debuild -uc -us -b -d
cd ..
sudo dpkg -i *.deb
sudo apt --fix-broken install

Build

sudo apt install git libglew-dev libglfw3-dev libz-dev libopenexr-dev libfftw3-dev ffmpeg pkg-config
mkdir z
cd z
git clone https://code.mathr.co.uk/zoomasm.git
git clone https://github.com/ocornut/imgui.git
git clone https://github.com/AirGuanZ/imgui-filebrowser.git
git clone https://github.com/mackron/miniaudio.git
git clone https://github.com/marzer/tomlplusplus.git
cd zoomasm
make zoomasm

Run

./zoomasm

For Windows From Linux

Prerequisites

sudo apt install mingw-w64 wine64 cmake unzip
/usr/bin/x86_64-w64-mingw32-ld: \
/usr/lib/gcc/x86_64-w64-mingw32/8.3-win32/libstdc++fs.a(path.o):(.text$\
_ZNSt12experimental10filesystem2v17__cxx1116filesystem_error11_M_gen_whatEv+0x639):\
undefined reference to `std::filesystem::fs_err_concat(\
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, \
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, \
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
update-alternatives --set x86_64-w64-mingw32-gfortran /usr/bin/x86_64-w64-mingw32-gfortran-posix
update-alternatives --set x86_64-w64-mingw32-gnat /usr/bin/x86_64-w64-mingw32-gnat-posix
update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
update-alternatives --set i686-w64-mingw32-gfortran /usr/bin/i686-w64-mingw32-gfortran-posix
update-alternatives --set i686-w64-mingw32-gnat /usr/bin/i686-w64-mingw32-gnat-posix
mkdir -p ~/win64-posix/src
cd ~/win64-posix/src
wget -c https://zlib.net/zlib-1.2.11.tar.xz
tar xaf zlib-*.tar.xz
cd zlib-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
CC=x86_64-w64-mingw32-gcc ./configure --static --prefix=$HOME/win64-posix
CC=x86_64-w64-mingw32-gcc make -j "$(nproc)"
CC=x86_64-w64-mingw32-gcc make install

For 32bit:

mkdir -p ~/win32-posix/src
cd ~/win32-posix/src
wget -c https://zlib.net/zlib-1.2.11.tar.xz
tar xaf zlib-*.tar.xz
cd zlib-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
CC=i686-w64-mingw32-gcc ./configure --static --prefix=$HOME/win32-posix
CC=i686-w64-mingw32-gcc make -j "$(nproc)"
CC=i686-w64-mingw32-gcc make install
mkdir -p ~/win64-posix/src
cd ~/win64-posix/src
wget -c https://github.com/AcademySoftwareFoundation/openexr/archive/v2.5.3.tar.gz \
  -O openexr-2.5.3.tar.gz
tar xaf openexr-*.tar.gz
cd openexr-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
mkdir -p build
cd build
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw.cmake \
  -DCMAKE_INSTALL_PREFIX=$HOME/win64-posix -DCMAKE_CXX_FLAGS=-I$HOME/win64-posix/include \
  -DZLIB_INCLUDE_DIR=$HOME/win64-posix/include -DZLIB_LIBRARY=$HOME/win64-posix/lib/libz.a ..
make -j "$(nproc)"
make install

For 32bit:

mkdir -p ~/win32-posix/src
cd ~/win32-posix/src
wget -c https://github.com/AcademySoftwareFoundation/openexr/archive/v2.5.3.tar.gz \
  -O openexr-2.5.3.tar.gz
tar xaf openexr-*.tar.gz
cd openexr-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
sed -i "s/x86_64/i686/g" cmake/Toolchain-mingw.cmake
mkdir -p build
cd build
cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw.cmake \
  -DCMAKE_INSTALL_PREFIX=$HOME/win32-posix -DCMAKE_CXX_FLAGS=-I$HOME/win32-posix/include \
  -DZLIB_INCLUDE_DIR=$HOME/win32-posix/include -DZLIB_LIBRARY=$HOME/win32-posix/lib/libz.a ..
make -j "$(nproc)"
make install
mkdir -p ~/win64-posix/src
cd ~/win64-posix/src
wget -c http://fftw.org/fftw-3.3.8.tar.gz
tar xaf fftw-*.tar.gz
cd fftw-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
./configure --host=x86_64-w64-mingw32 --prefix="${HOME}/win64-posix" \
  --enable-static --disable-shared --disable-doc --disable-alloca \
  --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-avx-128-fma \
  --enable-generic-simd128 --enable-generic-simd256 --enable-fma \
  --disable-dependency-tracking --disable-fortran --disable-threads \
  --with-our-malloc --with-our-malloc16 --with-incoming-stack-boundary=2 \
  --enable-portable-binary
make -j "$(nproc)"
make install
make check

For 32bit:

mkdir -p ~/win32-posix/src
cd ~/win32-posix/src
wget -c http://fftw.org/fftw-3.3.8.tar.gz
tar xaf fftw-*.tar.gz
cd fftw-*/
export CPPFLAGS="-D__USE_MINGW_ANSI_STDIO=1"
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic -lpthread -Wl,-Bdynamic"
./configure --host=i686-w64-mingw32 --prefix="${HOME}/win32-posix" \
  --enable-static --disable-shared --disable-doc --disable-alloca \
  --enable-sse2 --enable-avx --enable-avx2 --disable-avx512 --enable-avx-128-fma \
  --enable-generic-simd128 --enable-generic-simd256 --enable-fma \
  --disable-dependency-tracking --disable-fortran --disable-threads \
  --with-our-malloc --with-our-malloc16 --with-incoming-stack-boundary=2 \
  --enable-portable-binary
make -j "$(nproc)"
make install
make check

Build

mkdir -p ~/win64-posix/src
cd ~/win64-posix/src
git clone https://code.mathr.co.uk/zoomasm.git
git clone https://github.com/ocornut/imgui.git
git clone https://github.com/AirGuanZ/imgui-filebrowser.git
git clone https://github.com/mackron/miniaudio.git
git clone https://github.com/marzer/tomlplusplus.git
wget -c https://github.com/nigels-com/glew/releases/download/glew-2.1.0/glew-2.1.0.tgz
wget -c https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN32.zip
wget -c https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.bin.WIN64.zip
tar xaf glew-2.1.0.tgz
unzip glfw-3.3.2.bin.WIN32.zip
unzip glfw-3.3.2.bin.WIN64.zip
cd zoomasm
make zoomasm.32.exe
make zoomasm.64.exe

Run

wine zoomasm.32.exe
wine zoomasm.64.exe

To encode videos, zoomasm.exe needs ffmpeg.exe. Builds are available via: https://ffmpeg.org/download.html#build-windows.

To Do

Audio

Colour

Timeline

Miscellaneous

Hacking

zoomasm/

zoomasm/src/

Tips

handle SIGPIPE nostop noprint pass

Releases

Releases are signed with GPG key id EC470ECD90DDE39B6ED67CA6EBC1FED7E3FA39B0.

2.0

1.1

1.0

Legal

zoomasm

zoomasm – zoom video assembler

Copyright (C) 2019,2020 Claude Heiland-Allen

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

GLEW

GLEW is used under the Modified BSD License, the Mesa 3-D License (MIT) and the Khronos License (MIT). http://glew.sourceforge.net/

The OpenGL Extension Wrangler Library

Copyright (C) 2008-2016, Nigel Stewart <nigels[]users sourceforge net>

Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>

Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>

Copyright (C) 2002, Lev Povalahev

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Mesa 3-D graphics library

Version: 7.0

Copyright (C) 1999-2007 Brian Paul All Rights Reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Copyright (c) 2007 The Khronos Group Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the “Materials”), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials.

THE MATERIALS ARE PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

GLFW

GLFW is used under zlib/libpng license (BSD-style) https://www.glfw.org/

Copyright © 2002-2006 Marcus Geelnard

Copyright © 2006-2019 Camilla Löwy

This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

imgui

imgui is used under MIT license (with public domain portions) https://www.dearimgui.org/

The MIT License (MIT)

Copyright (c) 2014-2020 Omar Cornut

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

imgui-filebrowser

imgui-filebrowser is used under MIT license https://github.com/AirGuanZ/imgui-filebrowser

MIT License

Copyright (c) 2019-2020 Zhuang Guan

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

zlib

zlib is used under zlib license (BSD-style) https://zlib.net/

Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler

This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly Mark Adler

jloup[]gzip.org madler[]alumni.caltech.edu

OpenEXR

OpenEXR is used under OpenEXR license (BSD-style) https://www.openexr.com/

Copyright Contributors to the OpenEXR Project. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  1. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  1. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

miniaudio

miniaudio is used under MIT-0 license (or public domain) https://miniaud.io/

This software is available as a choice of the following licenses. Choose whichever you prefer.

ALTERNATIVE 1 - Public Domain

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

For more information, please refer to http://unlicense.org/

ALTERNATIVE 2 - MIT No Attribution

Copyright 2020 David Reid

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

FFTW

FFTW is used under GPL license (version 2 or later) http://fftw.org/

FFTW is Copyright © 2003, 2007-11 Matteo Frigo, Copyright © 2003, 2007-11 Massachusetts Institute of Technology.

FFTW is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. You can also find the GPL on the GNU web site: http://www.gnu.org/licenses/gpl-2.0.html

toml++

toml++ is used under MIT license https://github.com/marzer/tomlplusplus

MIT License

Copyright (c) 2019-2020 Mark Gillard <mark.gillard[]outlook.com.au>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


https://mathr.co.uk