# Maintainer: David Runge # Contributor: Lieven Moors # ALARM: Kevin Mihelich # - export OPTIMIZATIONS to override Makefiles without x86isms pkgname=x42-plugins pkgver=20210407 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') 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=('b3462e0b5db65c7909b52eae628fd92687cac5a3c69672d054715b99db3f6d87a14dc44489989d5da21145c7e8ba7a815d7a7e8f990c2a0bacd16fa12d68aa15' '956fdd8e04c846d06a5267d1748916744418e0ddfce0ac2e9dd3a1c1376aea61499177af80709d9fe78f8c0c2ddcbf9f9e5b2e413adc9a7eca9b648a87ad4860' 'fef75b22b2c1fed8586af4dfd01ea291a7c1506e80ce384f05f13dc04c4b7e3e934003c20d89ae94f36ad1021b7ad75097da836ca30ee965b4107b559305b496' '411015b0feb8a289272cb821afa7e2a284d3e9d994a446baa73b3a6ce0f0ebd1e94c4cb3392a0afb1d741ce6d8b2d14c9bd124a0684b830275b4ba8e14680aa3') b2sums=('0dbbd06fda44144359e4f9d34fa8ab43dad66971dcde7e4a8f79cbe952fbc575244786144e97e4cf7606dc990a041783effce5c3acc74013b3c0d9d19a378325' '35a8cfcdf7f8c57ba655049a6d75b3bf9d253c25702a3f191d3f6cab215887f7de5025d025993861ae88c1b4daae132e9cc1ddf083e5b822f1b53a683c0fcaa3' 'fb6557cd2e8b83dae1cb38503f2a72093085ddcc0a4ba2e5e0375f7063b83b3fb4180091ce10524cd336eeb33cffed45ada93055b960c9189f83d664216b33ee' '9c695f58099fcbfdce3e693e491d851ff7894a650ea12e079894176ef054b5f592785467c286bd8feaa340fdcdfb53d930b3a44ea890112e3fc1a4d172beb243') _names=('darc' 'dpl' 'fat1' 'fil4' 'matrixmixer8x8' 'meter' 'mixtri' '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" ["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" ["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 \ --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 \ --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 \ --pkgname "com.x42_plugins.x42_${name}" \ --name "x42-${name}" \ --pkgdesc "${comments[$name]}" \ --exec "x42-${name}" \ --icon "x42-${name}" \ --genericname "${generic[$name]}" ;; esac done # moving images to correct location so installation is not such a hassle later on mv -v fat1.lv2/img/x42{_,-}fat1.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" ["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 if [[ "$name" != 'fil4' ]]; then install -vDm 644 "${_dirs[$name]}/img/x42-${name}.png" \ -t "${pkgdir}/usr/share/icons/hicolor/256x256/apps/" fi 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: