mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
463 lines
12 KiB
Bash
463 lines
12 KiB
Bash
# Maintainer: David Runge <dvzrv@archlinux.org>
|
|
# Contributor: Lieven Moors <lievenmoors@gmail.com>
|
|
|
|
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
|
# - export OPTIMIZATIONS to override Makefiles without x86isms
|
|
|
|
pkgbase=x42-plugins
|
|
pkgname=(x42-plugins x42-plugins-lv2 x42-plugins-standalone)
|
|
pkgver=20230315
|
|
pkgrel=1
|
|
pkgdesc="Professional audio processing units available as LV2-plugin and JACK-application"
|
|
arch=(x86_64)
|
|
url="https://x42-plugins.com/x42/"
|
|
license=(GPL2 GPL3)
|
|
makedepends=(
|
|
cairo
|
|
fftw
|
|
ftgl
|
|
gendesk
|
|
glib2
|
|
glu
|
|
help2man
|
|
jack
|
|
liblo
|
|
libltc
|
|
libsamplerate
|
|
libsndfile
|
|
lv2
|
|
pango
|
|
ttf-dejavu
|
|
zita-convolver
|
|
)
|
|
checkdepends=(
|
|
kxstudio-lv2-extensions
|
|
lv2lint
|
|
)
|
|
source=(
|
|
https://gareus.org/misc/$pkgname/$pkgname-$pkgver.tar.xz
|
|
$pkgname.png::https://x42-plugins.com/x42/static/img/x42.png
|
|
$pkgname.directory
|
|
$pkgname.menu
|
|
)
|
|
sha512sums=('e767c4c3e1983a6ddc9138bf493e2593062c7e6f09617ffb4804c97b6c3060ea04a1244c9533d45bcdfb51fe212b6198484eba6939d1720713214490961d0c97'
|
|
'956fdd8e04c846d06a5267d1748916744418e0ddfce0ac2e9dd3a1c1376aea61499177af80709d9fe78f8c0c2ddcbf9f9e5b2e413adc9a7eca9b648a87ad4860'
|
|
'fef75b22b2c1fed8586af4dfd01ea291a7c1506e80ce384f05f13dc04c4b7e3e934003c20d89ae94f36ad1021b7ad75097da836ca30ee965b4107b559305b496'
|
|
'411015b0feb8a289272cb821afa7e2a284d3e9d994a446baa73b3a6ce0f0ebd1e94c4cb3392a0afb1d741ce6d8b2d14c9bd124a0684b830275b4ba8e14680aa3')
|
|
b2sums=('8ded52d81fb3ffe3b955dd5c5be6b310bdbab87dfea421f8e289c8cb1c490d59e7c68da874c6ca41634825e0422dbb3e705483cc823d0958aaa7e530f45a3a9a'
|
|
'35a8cfcdf7f8c57ba655049a6d75b3bf9d253c25702a3f191d3f6cab215887f7de5025d025993861ae88c1b4daae132e9cc1ddf083e5b822f1b53a683c0fcaa3'
|
|
'fb6557cd2e8b83dae1cb38503f2a72093085ddcc0a4ba2e5e0375f7063b83b3fb4180091ce10524cd336eeb33cffed45ada93055b960c9189f83d664216b33ee'
|
|
'9c695f58099fcbfdce3e693e491d851ff7894a650ea12e079894176ef054b5f592785467c286bd8feaa340fdcdfb53d930b3a44ea890112e3fc1a4d172beb243')
|
|
|
|
_names=(
|
|
darc
|
|
dpl
|
|
fat1
|
|
fil4
|
|
matrixmixer8x8
|
|
meter
|
|
mixtri
|
|
phaserotate
|
|
scope
|
|
spectr
|
|
stepseq
|
|
tuna
|
|
)
|
|
|
|
_pick() {
|
|
local p="$1" f d; shift
|
|
for f; do
|
|
d="$srcdir/$p/${f#$pkgdir/}"
|
|
mkdir -p "$(dirname "$d")"
|
|
mv "$f" "$d"
|
|
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
|
|
done
|
|
}
|
|
|
|
prepare() {
|
|
declare -A comments=(
|
|
["darc"]="A general purpose audio signal compressor"
|
|
["dpl"]="Look-ahead digital peak limiter intended but not limited to the final step of mastering or mixing"
|
|
["fat1"]="Auto-tuner based on Fons Adriaensen's zita-at1"
|
|
["fil4"]="4 band parametric equalizer with additional low+high shelf filters, Low and High-pass"
|
|
["matrixmixer8x8"]="Matrix Mixer 8x8"
|
|
["mixtri"]="Matrix mixer and trigger processor"
|
|
["phaserotate"]="Audio Phase rotate"
|
|
["scope"]="Simple audio oscilloscope with variable time scale, triggering, cursors and numeric readout"
|
|
["spectr"]="Spectrum Analyzer"
|
|
["stepseq"]="Simple step sequencer for moddevices.com"
|
|
)
|
|
declare -A generic=(
|
|
["darc"]="Dynamic Audio Range Compressor"
|
|
["dpl"]="Peak Limiter"
|
|
["fat1"]="Auto Tune"
|
|
["fil4"]="Parametric Equalizer"
|
|
["matrixmixer8x8"]="Matrix Mixer"
|
|
["mixtri"]="Mixer'n'Trigger"
|
|
["phaserotate"]="Phase Rotation"
|
|
["scope"]="Oscilloscope"
|
|
["spectr"]="Spectrum Analyzer"
|
|
["stepseq"]="Step Sequencer"
|
|
)
|
|
declare -A meter_types=(
|
|
[0]='EBU R128 Meter'
|
|
[1]='K20/RMS Meter (Stereo)'
|
|
[2]='K14/RMS Meter (Stereo)'
|
|
[3]='K12/RMS Meter (Stereo)'
|
|
[4]='BBC Meter (Stereo)'
|
|
[5]='BBC M-6'
|
|
[6]='DIN Meter (Stereo)'
|
|
[7]='EBU Meter (Stereo)'
|
|
[8]='Nordic Meter (Stereo)'
|
|
[9]='VU Meter (Stereo)'
|
|
[10]='True-Peak and RMS Meter (Stereo)'
|
|
[11]='DR-14 - Crest Factor Loudness Range Meter'
|
|
[12]='Stereo Phase-Correlation Meter'
|
|
[13]='Goniometer'
|
|
[14]='Phase/Frequency Wheel'
|
|
[15]='1/3 Octave Spectrum Analyzer'
|
|
[16]='Stereo/Frequency Scope'
|
|
[17]='Signal Distribution Histogram'
|
|
[18]='Bit Meter'
|
|
[19]='Surround Level 8'
|
|
)
|
|
declare -A tuna_types=(
|
|
[0]='Instrument Tuner'
|
|
[1]='Instrument Tuner (Spectrum)'
|
|
)
|
|
|
|
# XDG desktop files
|
|
for name in "${_names[@]}"; do
|
|
case "$name" in
|
|
meter)
|
|
for type in {0..19}; do
|
|
gendesk -n -f \
|
|
--pkgname "com.x42_plugins.x42_meter_$type" \
|
|
--name "x42-meter ${meter_types[$type]}" \
|
|
--pkgdesc "${meter_types[$type]}" \
|
|
--exec "x42-meter $type" \
|
|
--icon "x42-meter" \
|
|
--genericname "Audio Meter"
|
|
done
|
|
;;
|
|
tuna)
|
|
for type in {0,1}; do
|
|
gendesk -n -f \
|
|
--pkgname "com.x42_plugins.x42_${name}_$type" \
|
|
--name "x42-${name} ${tuna_types[$type]}" \
|
|
--pkgdesc "${tuna_types[$type]}" \
|
|
--exec "x42-$name $type" \
|
|
--icon "x42-$name" \
|
|
--genericname "Music Instrument Tuner"
|
|
done
|
|
;;
|
|
*)
|
|
gendesk -n -f \
|
|
--pkgname "com.x42_plugins.x42_$name" \
|
|
--name "x42-$name" \
|
|
--pkgdesc "${comments[$name]}" \
|
|
--exec "x42-$name" \
|
|
--icon "x42-$name" \
|
|
--genericname "${generic[$name]}"
|
|
;;
|
|
esac
|
|
done
|
|
sed -e '/Categories/d' -i *.desktop
|
|
|
|
cd $pkgname-$pkgver
|
|
# moving images to correct location so installation is not such a hassle later on
|
|
mv -v fat1.lv2/img/x42{_,-}fat1.png
|
|
mv -v fil4.lv2/img/x42{_,-}fil4.png
|
|
mv -v mixtri.lv2/img/x42{_,-}mixtri.png
|
|
mv -v meters.lv2/img/x42-meter{s,}.png
|
|
mv -v matrixmixer.lv2/img/x42-matrixmixer{,8x8}.png
|
|
}
|
|
|
|
build() {
|
|
cd $pkgbase-$pkgver
|
|
# replace ttf-freefont with ttf-liberation
|
|
export FONTFILE=/usr/share/fonts/TTF/DejaVuSans-Bold.ttf
|
|
export OPTIMIZATIONS="-ffast-math -fomit-frame-pointer -O3 -fno-finite-math-only"
|
|
make
|
|
}
|
|
|
|
check() {
|
|
local _name _version _convolver _controlfilter _default _meter _midifilter _onsettrigger _sisco _tuna
|
|
local _controlfilters=(
|
|
exp
|
|
invert
|
|
linearscale
|
|
lowpass
|
|
nlog
|
|
)
|
|
local _convolvers=(
|
|
Mono
|
|
MonoToStereo
|
|
Stereo
|
|
)
|
|
local _defaults=(
|
|
mono
|
|
stereo
|
|
)
|
|
local _meters=(
|
|
VUmono
|
|
VUstereo
|
|
BBCmono
|
|
BBCstereo
|
|
BBCM6
|
|
EBUmono
|
|
EBUstereo
|
|
DINmono
|
|
DINstereo
|
|
NORmono
|
|
NORstereo
|
|
COR
|
|
EBUr128
|
|
goniometer
|
|
spectr30mono
|
|
spectr30stereo
|
|
dBTPmono
|
|
dBTPstereo
|
|
K12mono
|
|
K12stereo
|
|
K14mono
|
|
K14stereo
|
|
K20mono
|
|
K20stereo
|
|
phasewheel
|
|
stereoscope
|
|
dr14mono
|
|
dr14stereo
|
|
TPnRMSmono
|
|
TPnRMSstereo
|
|
SigDistHist
|
|
bitmeter
|
|
surround8
|
|
surround5
|
|
surround4
|
|
surround3
|
|
)
|
|
local _midifilters=(
|
|
cctonote
|
|
channelfilter
|
|
channelmap
|
|
chokefilter
|
|
enforcescale
|
|
eventblocker
|
|
keyrange
|
|
keysplit
|
|
mapcc
|
|
mapkeychannel
|
|
mapkeyscale
|
|
midichord
|
|
mididelay
|
|
mididup
|
|
midistrum
|
|
miditranspose
|
|
monolegato
|
|
noactivesensing
|
|
nodup
|
|
notetocc
|
|
notetoggle
|
|
ntapdelay
|
|
onechannelfilter
|
|
passthru
|
|
quantize
|
|
randvelocity
|
|
scalecc
|
|
sostenuto
|
|
velocitygamma
|
|
velocityrange
|
|
velocityscale
|
|
)
|
|
local _onsettriggers=(
|
|
bassdrum_mono
|
|
bassdrum_stereo
|
|
)
|
|
local _siscos=(
|
|
Mono
|
|
Stereo
|
|
3chan
|
|
4chan
|
|
)
|
|
local _tunas=(
|
|
one
|
|
two
|
|
)
|
|
local _zconvolvers=(
|
|
Mono
|
|
CfgMono
|
|
Stereo
|
|
CfgStereo
|
|
MonoToStereo
|
|
CfgMonoToStereo
|
|
)
|
|
local _url="http://gareus.org/oss/lv2/"
|
|
|
|
cd $pkgbase-$pkgver
|
|
|
|
while IFS=" " read -r _name _version; do
|
|
echo "lv2lint test for $_name $_version"
|
|
case "$_name" in
|
|
controlfilter.lv2 )
|
|
for _controlfilter in "${_controlfilters[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_controlfilter"
|
|
done
|
|
;;
|
|
convoLV2 )
|
|
for _convolver in "${_convolvers[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}$_name#$_convolver"
|
|
done
|
|
;;
|
|
darc.lv2|dpl.lv2|fil4.lv2 )
|
|
for _default in "${_defaults[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_default"
|
|
done
|
|
;;
|
|
matrixmixer.lv2 )
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#i8o8"
|
|
;;
|
|
meters.lv2 )
|
|
for _meter in "${_meters[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_meter"
|
|
done
|
|
;;
|
|
midifilter.lv2 )
|
|
for _midifilter in "${_midifilters[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_midifilter"
|
|
done
|
|
;;
|
|
mixtri.lv2 )
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#lv2"
|
|
;;
|
|
onsettrigger.lv2 )
|
|
for _onsettrigger in "${_onsettriggers[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_onsettrigger"
|
|
done
|
|
;;
|
|
sisco.lv2 )
|
|
for _sisco in "${_siscos[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_sisco"
|
|
done
|
|
;;
|
|
spectra.lv2 )
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#Mono"
|
|
;;
|
|
stepseq.lv2 )
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#s8n8"
|
|
;;
|
|
tuna.lv2 )
|
|
for _tuna in "${_tunas[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_tuna"
|
|
done
|
|
;;
|
|
zconvo.lv2 )
|
|
for _zconvolver in "${_zconvolvers[@]}"; do
|
|
lv2lint -Mpack -I "$_name/build" "${_url}zeroconvolv#$_zconvolver"
|
|
done
|
|
;;
|
|
robtk )
|
|
echo "Toolkit. Skipping..."
|
|
;;
|
|
* )
|
|
lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}"
|
|
;;
|
|
esac
|
|
done < plugin.versions
|
|
}
|
|
|
|
package_x42-plugins() {
|
|
depends=(
|
|
"x42-plugins-lv2=$pkgver"
|
|
"x42-plugins-standalone=$pkgver"
|
|
)
|
|
|
|
make install DESTDIR="$pkgdir/" PREFIX=/usr -C $pkgbase-$pkgver
|
|
|
|
(
|
|
cd "$pkgdir"
|
|
_pick $pkgbase-lv2 usr/lib/lv2
|
|
|
|
_pick $pkgbase-standalone usr/bin
|
|
_pick $pkgbase-standalone usr/share
|
|
)
|
|
}
|
|
|
|
package_x42-plugins-lv2() {
|
|
pkgdesc+=" - LV2 plugins"
|
|
depends=(
|
|
cairo
|
|
ftgl
|
|
fftw libfftw3f.so
|
|
gcc-libs
|
|
glib2 libgobject-2.0.so
|
|
glibc
|
|
libglvnd
|
|
libltc libltc.so
|
|
libsamplerate libsamplerate.so
|
|
libsndfile libsndfile.so
|
|
libx11
|
|
lv2-host
|
|
pango libpango-1.0.so libpangocairo-1.0.so
|
|
zita-convolver libzita-convolver.so
|
|
)
|
|
groups=(
|
|
lv2-plugins
|
|
pro-audio
|
|
)
|
|
|
|
mv -v $pkgname/* "$pkgdir"
|
|
}
|
|
|
|
package_x42-plugins-standalone() {
|
|
declare -A _dirs=(
|
|
["darc"]="darc.lv2"
|
|
["dpl"]="dpl.lv2"
|
|
["fat1"]="fat1.lv2"
|
|
["fil4"]="fil4.lv2"
|
|
["matrixmixer8x8"]="matrixmixer.lv2"
|
|
["meter"]="meters.lv2"
|
|
["mixtri"]="mixtri.lv2"
|
|
["phaserotate"]="phaserotate.lv2"
|
|
["scope"]="sisco.lv2"
|
|
["spectr"]="spectra.lv2"
|
|
["stepseq"]="stepseq.lv2"
|
|
["tuna"]="tuna.lv2"
|
|
)
|
|
|
|
pkgdesc+=" - JACK standalones"
|
|
depends=(
|
|
cairo
|
|
fftw libfftw3f.so
|
|
gcc-libs
|
|
glib2 libgobject-2.0.so
|
|
glibc
|
|
hicolor-icon-theme
|
|
jack libjack.so
|
|
libglvnd
|
|
liblo liblo.so
|
|
libltc libltc.so
|
|
libx11
|
|
pango libpango-1.0.so libpangocairo-1.0.so
|
|
)
|
|
groups=(
|
|
pro-audio
|
|
)
|
|
|
|
mv -v $pkgname/* "$pkgdir"
|
|
|
|
# xdg desktop integration
|
|
install -vDm 644 ./*.desktop -t "$pkgdir/usr/share/applications/"
|
|
|
|
cd $pkgbase-$pkgver
|
|
# icons
|
|
for name in "${_names[@]}"; do
|
|
install -vDm 644 "${_dirs[$name]}/img/x42-$name.png" -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/"
|
|
done
|
|
install -vDm 644 ../$pkgbase.png -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/"
|
|
# menu integration
|
|
install -vDm 644 ../$pkgbase.menu -t "$pkgdir/etc/xdg/menus/applications-merged/"
|
|
install -vDm 644 ../$pkgbase.directory -t "$pkgdir/usr/share/desktop-directories/"
|
|
}
|
|
|
|
# vim:set ts=2 sw=2 et:
|