# Maintainer: David Runge # Contributor: Lieven Moors # ALARM: Kevin Mihelich # - export OPTIMIZATIONS to override Makefiles without x86isms pkgname=x42-plugins pkgver=20220923 pkgrel=1 pkgdesc="Collection of LV2 plugins" arch=(x86_64) url="https://github.com/x42/x42-plugins" license=(GPL2 GPL3) groups=(lv2-plugins pro-audio) depends=(cairo ftgl gcc-libs glibc hicolor-icon-theme libglvnd libx11 lv2-host) makedepends=(fftw gendesk glib2 help2man jack liblo libltc libsamplerate libsndfile lv2 pango ttf-dejavu zita-convolver) checkdepends=(kxstudio-lv2-extensions lv2lint) optdepends=( 'jack: for standalone applications' 'liblo: for standalone applications' ) options=(debug) source=( http://gareus.org/misc/$pkgname/$pkgname-$pkgver.tar.xz $pkgname.png::https://x42-plugins.com/x42/static/img/x42.png $pkgname.directory $pkgname.menu ) sha512sums=('7669dd9c5e1bfda52ec0919881348747d054d0e64e2ec45a2fc06a1037592d3aba2d992726a549c3f514caf51dd372bc735cac24fe3706955255c815c1d360b0' '956fdd8e04c846d06a5267d1748916744418e0ddfce0ac2e9dd3a1c1376aea61499177af80709d9fe78f8c0c2ddcbf9f9e5b2e413adc9a7eca9b648a87ad4860' 'fef75b22b2c1fed8586af4dfd01ea291a7c1506e80ce384f05f13dc04c4b7e3e934003c20d89ae94f36ad1021b7ad75097da836ca30ee965b4107b559305b496' '411015b0feb8a289272cb821afa7e2a284d3e9d994a446baa73b3a6ce0f0ebd1e94c4cb3392a0afb1d741ce6d8b2d14c9bd124a0684b830275b4ba8e14680aa3') b2sums=('9c6f866066c1a7bacc00a05f7e46280473a102d476eb93ffac2c6cf8f752626ae12bcf96963deba1d7d412a2261799bb4437f5ceece3a4e82dad4bf5ca08b4d3' '35a8cfcdf7f8c57ba655049a6d75b3bf9d253c25702a3f191d3f6cab215887f7de5025d025993861ae88c1b4daae132e9cc1ddf083e5b822f1b53a683c0fcaa3' 'fb6557cd2e8b83dae1cb38503f2a72093085ddcc0a4ba2e5e0375f7063b83b3fb4180091ce10524cd336eeb33cffed45ada93055b960c9189f83d664216b33ee' '9c695f58099fcbfdce3e693e491d851ff7894a650ea12e079894176ef054b5f592785467c286bd8feaa340fdcdfb53d930b3a44ea890112e3fc1a4d172beb243') _names=(darc dpl fat1 fil4 matrixmixer8x8 meter mixtri phaserotate scope spectr stepseq tuna) prepare() { cd $pkgname-$pkgver 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 # 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 $pkgname-$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) cd $pkgname-$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" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_controlfilter" done ;; convoLV2 ) for _convolver in "${_convolvers[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/$_name#$_convolver" done ;; darc.lv2|dpl.lv2|fil4.lv2 ) for _default in "${_defaults[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_default" done ;; matrixmixer.lv2 ) lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#i8o8" ;; meters.lv2 ) for _meter in "${_meters[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_meter" done ;; midifilter.lv2 ) for _midifilter in "${_midifilters[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_midifilter" done ;; mixtri.lv2 ) lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#lv2" ;; onsettrigger.lv2 ) for _onsettrigger in "${_onsettriggers[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_onsettrigger" done ;; sisco.lv2 ) for _sisco in "${_siscos[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_sisco" done ;; spectra.lv2 ) lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#Mono" ;; stepseq.lv2 ) lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#s8n8" ;; tuna.lv2 ) for _tuna in "${_tunas[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_tuna" done ;; zconvo.lv2 ) for _zconvolver in "${_zconvolvers[@]}"; do lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/zeroconvolv#$_zconvolver" done ;; robtk ) echo "Toolkit. Skipping..." ;; * ) lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}" ;; esac done < plugin.versions } package() { depends+=(libfftw3f.so libgobject-2.0.so libltc.so libpango-1.0.so libpangocairo-1.0.so libsamplerate.so libsndfile.so libzita-convolver.so) 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" ) cd $pkgname-$pkgver make install DESTDIR="$pkgdir/" PREFIX=/usr # xdg desktop integration install -vDm 644 ./*.desktop -t "$pkgdir/usr/share/applications/" # 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 ../$pkgname.png -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/" # menu integration install -vDm 644 ../$pkgname.menu -t "$pkgdir/etc/xdg/menus/applications-merged/" install -vDm 644 ../$pkgname.directory -t "$pkgdir/usr/share/desktop-directories/" install -vDm 644 plugin.news -t "$pkgdir/usr/share/doc/$pkgname" } # vim:set ts=2 sw=2 et: