Skip to content

Commit

Permalink
add some new rack plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
ycollet committed Jan 16, 2024
1 parent 77ad320 commit e877542
Show file tree
Hide file tree
Showing 4 changed files with 442 additions and 0 deletions.
78 changes: 78 additions & 0 deletions rack/rack-v2/MUS-X_plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"slug": "MUS-X",
"name": "MUS-X",
"version": "2.0.0",
"license": "GPL-3.0-or-later",
"brand": "MUS-X",
"author": "Dr. Johannes Rauch",
"authorEmail": "vcv@mus-x.de",
"authorUrl": "http://mus-x.de",
"pluginUrl": "https://github.com/Jojosito/MUS-X",
"manualUrl": "https://github.com/Jojosito/MUS-X",
"sourceUrl": "https://github.com/Jojosito/MUS-X",
"donateUrl": "https://www.paypal.com/donate/?hosted_button_id=U5Y8KAXCCMH6N",
"changelogUrl": "",
"modules": [
{
"slug": "ADSR",
"name": "ADSR",
"description": "ADSR envelope generator.",
"tags": [
"Envelope generator",
"Polyphonic"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#adsr"
},
{
"slug": "Tuner",
"name": "Tuner",
"description": "Tune a V/Oct signal by octaves, semitones and cents.",
"tags": [
"Tuner",
"Polyphonic"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#tune"
},
{
"slug": "Oscillators",
"name": "Oscillators",
"description": "Massively oversampled analog oscillator pair with sync, FM and ringmod.",
"tags": [
"Oscillator",
"Low-frequency oscillator",
"Polyphonic"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#oscillators"
},
{
"slug": "Delay",
"name": "Delay",
"description": "Bucket-brigade ping-pong delay.",
"tags": [
"Delay",
"Effect"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#delay"
},
{
"slug": "OnePole",
"name": "OnePole",
"description": "Simple one-pole highpass and lowpass filters.",
"tags": [
"Filter",
"Polyphonic"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#onepole"
},
{
"slug": "Drift",
"name": "Drift",
"description": "Random constant offset and drift.",
"tags": [
"Random",
"Polyphonic"
],
"manualUrl": "https://github.com/Jojosito/MUS-X#drift"
}
]
}
156 changes: 156 additions & 0 deletions rack/rack-v2/rack-v2-library-MUS-X.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# Tag: Modular, Rack
# Type: Rack
# Category: Audio, Synthesizer

%define use_static_glfw 0
%define use_static_rtaudio 0

# Global variables for github repository
%global commit0 74967f786f8de85f3684091c650ac2b3e9276b40
%global gittag0 2.0.0
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})

# Disable production of debug package.
%global debug_package %{nil}

Name: rack-v2-MUS-X
Version: 2.0.0
Release: 2%{?dist}
Summary: MUS-X plugin for Rack
License: GPL-2.0-or-later
URL: https://github.com/Jojosito/MUS-X

Vendor: Audinux
Distribution: Audinux

# ./rack-source.sh <tag>
# ./rack-source.sh v2.1.3

Source0: Rack.tar.gz
Source1: https://github.com/Jojosito/MUS-X/archive/%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz
Source2: MUS-X_plugin.json
Patch0: rack-v2-aarch64.patch

BuildRequires: gcc gcc-c++
BuildRequires: cmake sed
BuildRequires: alsa-lib-devel
BuildRequires: libsamplerate-devel
BuildRequires: libzip-devel
BuildRequires: glew-devel
BuildRequires: glfw-devel
BuildRequires: portmidi-devel
BuildRequires: portaudio-devel
BuildRequires: libcurl-devel
BuildRequires: openssl-devel
BuildRequires: jansson-devel
BuildRequires: gtk3-devel
BuildRequires: rtmidi-devel
%if !%{use_static_rtaudio}
BuildRequires: rtaudio-devel
%endif
BuildRequires: speex-devel
BuildRequires: wget
BuildRequires: simde-devel
BuildRequires: speexdsp-devel
BuildRequires: gulrak-filesystem-devel
BuildRequires: libarchive-devel
BuildRequires: libzstd-devel
BuildRequires: Rack-v2
BuildRequires: jq

%description
MUS-X plugin for Rack.
ADSR envelope generator.

%prep
%setup -n Rack

%ifarch aarch64
%patch0 -p1
%endif

CURRENT_PATH=`pwd`

# Remove some architectures optimization
sed -i -e "s/-march=nehalem//g" compile.mk
sed -i -e "s/-march=nehalem//g" dep.mk
# For -O2 usage
sed -i -e "s/-O3/-O2/g" compile.mk
sed -i -e "s/-O3/-O2/g" dep.mk
sed -i -e "s/DEP_FLAGS += -g -O2/DEP_FLAGS += -g -O2 \$(CFLAGS)/g" dep.mk

# Remove static gcc lib
sed -i -e "s/-static-libstdc++ -static-libgcc//g" Makefile
sed -i -e "s/-static-libstdc++ -static-libgcc//g" plugin.mk

%if !%{use_static_glfw}
NEW_FLAGS="-I/usr/include/GLFW"
%endif
%if !%{use_static_rtaudio}
NEW_FLAGS="$NEW_FLAGS -I/usr/include/rtaudio"
%endif

echo "CXXFLAGS += $NEW_FLAGS -O2 -fPIC -funsafe-math-optimizations -fno-omit-frame-pointer -mtune=generic `pkg-config --cflags gtk+-x11-3.0` -I$CURRENT_PATH/include -I$CURRENT_PATH/dep/include -I$CURRENT_PATH/dep/nanovg/src -I$CURRENT_PATH/dep/nanovg/example -I/usr/include/rtmidi -I$CURRENT_PATH/dep/tinyexpr -I$CURRENT_PATH/dep/nanosvg/src -I$CURRENT_PATH/dep/oui-blendish -I$CURRENT_PATH/dep/osdialog -I$CURRENT_PATH/dep/pffft -I$CURRENT_PATH/dep/include -I$CURRENT_PATH/dep/fuzzysearchdatabase/src" >> compile.mk

%if %{use_static_glfw}
echo "Use Static GLFW"
%else
echo "Do not use static GLFW"
%endif
%if %{use_static_rtaudio}
echo "Use Static RTAUDIO"
%else
echo "Do not use static RTAUDIO"
%endif

sed -i -e "s/-Wl,-Bstatic//g" Makefile

sed -i -e "s/dep\/lib\/libGLEW.a/-lGLEW/g" Makefile
%if !%{use_static_glfw}
sed -i -e "s/dep\/lib\/libglfw3.a/-lglfw/g" Makefile
%else
sed -i -e "s/dep\/lib\/libglfw3.a/dep\/%{_lib}\/libglfw3.a/g" Makefile
%endif
sed -i -e "s/dep\/lib\/libjansson.a/-ljansson/g" Makefile
sed -i -e "s/dep\/lib\/libcurl.a/-lcurl/g" Makefile
sed -i -e "s/dep\/lib\/libssl.a/-lssl/g" Makefile
sed -i -e "s/dep\/lib\/libcrypto.a/-lcrypto/g" Makefile
sed -i -e "s/dep\/lib\/libzip.a/-lzip/g" Makefile
sed -i -e "s/dep\/lib\/libz.a/-lz/g" Makefile
sed -i -e "s/dep\/lib\/libspeexdsp.a/-lspeexdsp/g" Makefile
sed -i -e "s/dep\/lib\/libsamplerate.a/-lsamplerate/g" Makefile
sed -i -e "s/dep\/lib\/librtmidi.a/-lrtmidi/g" Makefile
sed -i -e "s/dep\/lib\/libarchive.a/-larchive/g" Makefile
sed -i -e "s/dep\/lib\/libzstd.a/-lzstd/g" Makefile
# We use provided RtAudio library because Rack hangs when using jack and fedora rtaudio
%if !%{use_static_rtaudio}
sed -i -e "s/dep\/lib\/librtaudio.a/-lrtaudio -lpulse-simple -lpulse/g" Makefile
%else
sed -i -e "s/dep\/lib\/librtaudio.a/dep\/%{_lib}\/librtaudio.a -lpulse-simple -lpulse/g" Makefile
%endif

# Remove rpath
sed -i -e "/-rpath/d" Makefile
sed -i -e "/-rpath/d" plugin.mk

mkdir MUS-X_plugin
tar xvfz %{SOURCE1} --directory=MUS-X_plugin --strip-components=1

cp -n %{SOURCE2} MUS-X_plugin/plugin.json || true

%build

cd MUS-X_plugin
%make_build RACK_DIR=.. PREFIX=/usr STRIP=true LIBDIR=%{_lib} dist

%install

mkdir -p %{buildroot}%{_libexecdir}/Rack2/plugins/MUS-X/
cp -r MUS-X_plugin/dist/MUS-X/* %{buildroot}%{_libexecdir}/Rack2/plugins/MUS-X/

%files
%{_libexecdir}/*

%changelog
* Tue Nov 30 2021 Yann Collette <ycollette.nospam@free.fr> - 2.0.0-1
- initial specfile
156 changes: 156 additions & 0 deletions rack/rack-v2/rack-v2-library-sn.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# Tag: Modular, Rack
# Type: Rack
# Category: Audio, Synthesizer

%define use_static_glfw 0
%define use_static_rtaudio 0

# Global variables for github repository
%global commit0 4acab42eafc196758a4ff628e22fd29508dc4652
%global gittag0 2.0.0
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})

# Disable production of debug package.
%global debug_package %{nil}

Name: rack-v2-sn
Version: 2.0.0
Release: 2%{?dist}
Summary: sn plugin for Rack
License: GPL-2.0-or-later
URL: https://github.com/transcriptaze/sn-vcv

Vendor: Audinux
Distribution: Audinux

# ./rack-source.sh <tag>
# ./rack-source.sh v2.1.3

Source0: Rack.tar.gz
Source1: https://github.com/transcriptaze/sn-vcv/archive/%{commit0}.tar.gz#/%{name}-%{shortcommit0}.tar.gz
Source2: sn_plugin.json
Patch0: rack-v2-aarch64.patch

BuildRequires: gcc gcc-c++
BuildRequires: cmake sed
BuildRequires: alsa-lib-devel
BuildRequires: libsamplerate-devel
BuildRequires: libzip-devel
BuildRequires: glew-devel
BuildRequires: glfw-devel
BuildRequires: portmidi-devel
BuildRequires: portaudio-devel
BuildRequires: libcurl-devel
BuildRequires: openssl-devel
BuildRequires: jansson-devel
BuildRequires: gtk3-devel
BuildRequires: rtmidi-devel
%if !%{use_static_rtaudio}
BuildRequires: rtaudio-devel
%endif
BuildRequires: speex-devel
BuildRequires: wget
BuildRequires: simde-devel
BuildRequires: speexdsp-devel
BuildRequires: gulrak-filesystem-devel
BuildRequires: libarchive-devel
BuildRequires: libzstd-devel
BuildRequires: Rack-v2
BuildRequires: jq

%description
sn plugin for Rack.
sn experimental additive synthesizer VCO

%prep
%setup -n Rack

%ifarch aarch64
%patch0 -p1
%endif

CURRENT_PATH=`pwd`

# Remove some architectures optimization
sed -i -e "s/-march=nehalem//g" compile.mk
sed -i -e "s/-march=nehalem//g" dep.mk
# For -O2 usage
sed -i -e "s/-O3/-O2/g" compile.mk
sed -i -e "s/-O3/-O2/g" dep.mk
sed -i -e "s/DEP_FLAGS += -g -O2/DEP_FLAGS += -g -O2 \$(CFLAGS)/g" dep.mk

# Remove static gcc lib
sed -i -e "s/-static-libstdc++ -static-libgcc//g" Makefile
sed -i -e "s/-static-libstdc++ -static-libgcc//g" plugin.mk

%if !%{use_static_glfw}
NEW_FLAGS="-I/usr/include/GLFW"
%endif
%if !%{use_static_rtaudio}
NEW_FLAGS="$NEW_FLAGS -I/usr/include/rtaudio"
%endif

echo "CXXFLAGS += $NEW_FLAGS -O2 -fPIC -funsafe-math-optimizations -fno-omit-frame-pointer -mtune=generic `pkg-config --cflags gtk+-x11-3.0` -I$CURRENT_PATH/include -I$CURRENT_PATH/dep/include -I$CURRENT_PATH/dep/nanovg/src -I$CURRENT_PATH/dep/nanovg/example -I/usr/include/rtmidi -I$CURRENT_PATH/dep/tinyexpr -I$CURRENT_PATH/dep/nanosvg/src -I$CURRENT_PATH/dep/oui-blendish -I$CURRENT_PATH/dep/osdialog -I$CURRENT_PATH/dep/pffft -I$CURRENT_PATH/dep/include -I$CURRENT_PATH/dep/fuzzysearchdatabase/src" >> compile.mk

%if %{use_static_glfw}
echo "Use Static GLFW"
%else
echo "Do not use static GLFW"
%endif
%if %{use_static_rtaudio}
echo "Use Static RTAUDIO"
%else
echo "Do not use static RTAUDIO"
%endif

sed -i -e "s/-Wl,-Bstatic//g" Makefile

sed -i -e "s/dep\/lib\/libGLEW.a/-lGLEW/g" Makefile
%if !%{use_static_glfw}
sed -i -e "s/dep\/lib\/libglfw3.a/-lglfw/g" Makefile
%else
sed -i -e "s/dep\/lib\/libglfw3.a/dep\/%{_lib}\/libglfw3.a/g" Makefile
%endif
sed -i -e "s/dep\/lib\/libjansson.a/-ljansson/g" Makefile
sed -i -e "s/dep\/lib\/libcurl.a/-lcurl/g" Makefile
sed -i -e "s/dep\/lib\/libssl.a/-lssl/g" Makefile
sed -i -e "s/dep\/lib\/libcrypto.a/-lcrypto/g" Makefile
sed -i -e "s/dep\/lib\/libzip.a/-lzip/g" Makefile
sed -i -e "s/dep\/lib\/libz.a/-lz/g" Makefile
sed -i -e "s/dep\/lib\/libspeexdsp.a/-lspeexdsp/g" Makefile
sed -i -e "s/dep\/lib\/libsamplerate.a/-lsamplerate/g" Makefile
sed -i -e "s/dep\/lib\/librtmidi.a/-lrtmidi/g" Makefile
sed -i -e "s/dep\/lib\/libarchive.a/-larchive/g" Makefile
sed -i -e "s/dep\/lib\/libzstd.a/-lzstd/g" Makefile
# We use provided RtAudio library because Rack hangs when using jack and fedora rtaudio
%if !%{use_static_rtaudio}
sed -i -e "s/dep\/lib\/librtaudio.a/-lrtaudio -lpulse-simple -lpulse/g" Makefile
%else
sed -i -e "s/dep\/lib\/librtaudio.a/dep\/%{_lib}\/librtaudio.a -lpulse-simple -lpulse/g" Makefile
%endif

# Remove rpath
sed -i -e "/-rpath/d" Makefile
sed -i -e "/-rpath/d" plugin.mk

mkdir sn_plugin
tar xvfz %{SOURCE1} --directory=sn_plugin --strip-components=1

cp -n %{SOURCE2} sn_plugin/plugin.json || true

%build

cd sn_plugin
%make_build RACK_DIR=.. PREFIX=/usr STRIP=true LIBDIR=%{_lib} dist

%install

mkdir -p %{buildroot}%{_libexecdir}/Rack2/plugins/sn/
cp -r sn_plugin/dist/sn/* %{buildroot}%{_libexecdir}/Rack2/plugins/sn/

%files
%{_libexecdir}/*

%changelog
* Tue Nov 30 2021 Yann Collette <ycollette.nospam@free.fr> - 2.0.0-1
- initial specfile
Loading

0 comments on commit e877542

Please sign in to comment.