File Uhhyou-Plugins.spec of Package vst3-Uhhyou-Plugins

#
# spec file for package Uhhyou-Plugins
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2023 Konstantin Voinov konstantin.voinov@gmail.com
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           Uhhyou-Plugins
Version:        0.66.0
Release:        0
Summary:        Audio Plugins by ryukau (VST3)
License:        GPL-3.0-only
URL:            https://github.com/ryukau/VSTPlugins
Source0:        %{name}-%{version}.tar.xz
BuildRequires:  cmake
BuildRequires:  fdupes
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(cairo)
BuildRequires:  pkgconfig(gtkmm-3.0)
BuildRequires:  pkgconfig(jack)
BuildRequires:  pkgconfig(liblo)
BuildRequires:  pkgconfig(sqlite3)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcb-cursor)
BuildRequires:  pkgconfig(xcb-keysyms)
BuildRequires:  pkgconfig(xcb-util)
BuildRequires:  pkgconfig(xcb-xkb)
BuildRequires:  pkgconfig(xkbcommon)
BuildRequires:  pkgconfig(xkbcommon-x11)
%if 0%{?suse_version} < 1600
BuildRequires:  gcc12-c++
%else
BuildRequires:  gcc-c++
%endif

%description
https://ryukau.github.io/VSTPlugins/

LightPadSynth - lighter version of CubicPadSynth.
WaveShaper Pack - 4 stereo waveshapers. Waveshaping algorithms are naive, but all provides option for 16x oversampling.
EnvelopedSine - another additive synthesizer which computes 64 sine waves per note.
IterativeSinCluster - an additive synthesizer.
TrapezoidSynth - monophonic synthesizer equipped with trapezoid oscillator which is made from 5th order PTR ramp function.
FDNCymbal - another attempt to make cymbal sounds.
WaveCymbal - banded wave-guide synthesizer.
SyncSawSynth - synthesizer with up to 10th order PTR sawtooth oscillator.
SevenDelay - 7th order lagrange fractional delay.
EsPhaser - phaser with up to 4096 stages of order 2 Thiran all-pass filters.
CubicPadSynth - wavetable synthesizer which uses PADsynth algorithm to generate oscillator tables.
CollidingCombSynth - experimental synthesizer which sounds like bowed string.
FDN64Reverb - reverb equipped with a feedback delay network (FDN).
BasicLimiter - basic single band limiter.
L4Reverb - extended version of LatticeReverb.
LatticeReverb - reverb using lattice structure.
MembraneSynth - synthesizer that resembles sound of percussions with membrane, like bass drum or tom tom.
UltraSynth - ordinary synthesizer except 64-fold oversampling that is the same one used in UltrasonicRingMod.
UltrasonicRingMod -  ring modulator with 64-fold oversampling.
ClangSynth - synthesizer suitable for percussion sounds.
MiniCliffEQ - linear phase FIR filter with 2^15 = 32768 taps.
PitchShiftDelay - time domain pitch shifter based on usual delay.
ParallelComb - comb filter which has 4 different delay time and 1 shared buffer.
GenericDrum - generic drum synthesizer using delays.
GlitchSprinkler - synthesizer specialized to play fast arpeggios.
DoubleLoopCymbal - synthesizer that produces a sound somewhere between hi-hat and triangle.

%package -n vst3-%{name}
Summary:        Audio Plugins by ryukau (VST3)
Obsoletes:      vst3-%{name} <= 20220604

%description -n vst3-%{name}
https://ryukau.github.io/VSTPlugins/

CubicPadSynth - wavetable synthesizer which uses PADsynth algorithm to generate oscillator tables.
EnvelopedSine - another additive synthesizer which computes 64 sine waves per note.
EsPhaser - phaser with up to 4096 stages of order 2 Thiran all-pass filters.
FDNCymbal - another attempt to make cymbal sounds.
IterativeSinCluster - an additive synthesizer.
L4Reverb - extended version of LatticeReverb. This time, lattice structure has 4 * 4 * 4 * 4 = 256 sections per channel.
LatticeReverb - reverb using lattice structure. Equipped with 16 delays per channel.
LightPadSynth - lighter version of CubicPadSynth.
SevenDelay - 7th order lagrange fractional delay.
SyncSawSynth - synthesizer with up to 10th order PTR sawtooth oscillator.
TrapezoidSynth - monophonic synthesizer equipped with trapezoid oscillator which is made from 5th order PTR ramp function.
WaveCymbal - banded wave-guide synthesizer.
WaveShaper Pack - 4 stereo waveshapers. Waveshaping algorithms are naive, but all provides option for 16x oversampling.
CollidingCombSynth - experimental synthesizer which sounds like bowed string.
FDN64Reverb - reverb equipped with a feedback delay network (FDN).
BasicLimiter - basic single band limiter.
L4Reverb - extended version of LatticeReverb.
LatticeReverb - reverb using lattice structure.
MembraneSynth - synthesizer that resembles sound of percussions with membrane, like bass drum or tom tom.
UltraSynth - ordinary synthesizer except 64-fold oversampling that is the same one used in UltrasonicRingMod.
UltrasonicRingMod -  ring modulator with 64-fold oversampling.
ClangSynth - synthesizer suitable for percussion sounds.
MiniCliffEQ - linear phase FIR filter with 2^15 = 32768 taps.
PitchShiftDelay - time domain pitch shifter based on usual delay.
ParallelComb - comb filter which has 4 different delay time and 1 shared buffer.
GenericDrum - generic drum synthesizer using delays.
GlitchSprinkler - synthesizer specialized to play fast arpeggios.
DoubleLoopCymbal - synthesizer that produces a sound somewhere between hi-hat and triangle.

%package -n vst3-%{name}-presets
Summary:        Presets for the VST3 version Plugins by ryukau
Requires:       vst3-%{name}
BuildArch:      noarch

%description  -n vst3-%{name}-presets

Presets for the VST3 version Plugins by ryukau.

%package -n Uhhyou-Plugins-doc
Summary:        Documentation for Plugins by ryukau
BuildArch:      noarch

%description  -n Uhhyou-Plugins-doc

Documentation for the Plugins by ryukau.

%prep
%setup -q

patch -p1 -d lib/vst3sdk/vstgui4 ci/linux_patch/cairographicscontext.patch

%build
export CPATH=/usr/include:/usr/include/X11:/usr/include/libxkbcommon
%cmake -DCMAKE_BUILD_TYPE=Release \
       -DSMTG_RUN_VST_VALIDATOR=0 \
       -DSMTG_CREATE_PLUGIN_LINK=0 \
%if 0%{?suse_version} < 1600
-DCMAKE_CXX_COMPILER=g++-12
%endif

%cmake_build

%install
mkdir -p %{buildroot}%{_datadir}/vst3/presets
cp -r presets/Uhhyou %{buildroot}%{_datadir}/vst3/presets/
mkdir -p %{buildroot}/%{_defaultdocdir}/%{name}
cp -r docs/* %{buildroot}/%{_defaultdocdir}/%{name}
mkdir -p %{buildroot}%{_libdir}/vst3
cp -r build/VST3/Release/*.vst3 %{buildroot}%{_libdir}/vst3/
mkdir -p %{buildroot}%{_datadir}/Uhhyou
cp -r package/style %{buildroot}%{_datadir}/Uhhyou/

%fdupes -s %{buildroot}%{_datadir}
%fdupes -s %{buildroot}%{_libdir}

%files -n vst3-%{name}
%license License/README.md
%doc README.md
%dir %{_libdir}/vst3
%{_libdir}/vst3/*
%dir %{_datadir}/Uhhyou/
%{_datadir}/Uhhyou/

%files -n vst3-%{name}-presets
%dir %{_datadir}/vst3
%dir %{_datadir}/vst3/presets
%{_datadir}/vst3/presets/Uhhyou

%files -n Uhhyou-Plugins-doc
%exclude %{_defaultdocdir}/%{name}/build.py
%dir %{_defaultdocdir}/%{name}
%{_defaultdocdir}/%{name}

%changelog
openSUSE Build Service is sponsored by