# Reverb, using FFTW if available and BQN-based FFT if not Reverb ← { lw‿lx ← (¯1⊑≢)¨ 𝕨‿𝕩 ! 0" ∾ plan ← "*:i32" Fn ← "/usr/lib/libfftw3.so.3"⊸(•BQN"•FFI") createPlan ← Fn plan‿"fftw_plan_r2r_1d"‿"i32"‿"*f64"‿"&f64"‿"i32"‿"i32" destroyPlan ← Fn ""‿"fftw_destroy_plan"‿pl executePlan ← Fn ""‿"fftw_execute"‿pl FFTR ← { 𝕊⁼𝕩: 1𝕊𝕩 ; plan‿out ← CreatePlan ⟨≠𝕩,𝕩,0¨𝕩,𝕨⊣0,2⋆6⟩ ExecutePlan plan DestroyPlan plan out } { mh←-nh←1-˜2÷˜n←≠𝕗 M ← (mh(↓-0∾0∾˜⌽∘↑)×) ∾ nh(⌽∘↑+-⊸↑)×⟜⌽○(1⊸↓) # Scrambled complex × (n ÷˜ FFTR 𝕗)⊸M⌾FFTR n⊸↑ } }⎊{𝕊 fft ← •Import "fft.bqn" M ← -˝∘× ≍ +˝∘×⟜⌽ # Complex multiplication {⊏ · (FFT 𝕗)⊸M⌾FFT (≠𝕗)⊸↑} }@ Reverb