Problem with hilbert() and Makie

Hi, I’m not sure whether this is a Makie or a DSP problem, but here we go:

(jl_SlnPN9) pkg> st
Status `/private/var/folders/gt/z8fycpfs2z7c_mb18zvhjrf00000gp/T/jl_SlnPN9/Project.toml`
  [717857b8] DSP v0.8.7
  [ee78f7c6] Makie v0.24.17

julia> using Makie, DSP
julia> randn(100) |> hilbert
ERROR: MethodError: plan_rfft(::Vector{Float64}, ::Tuple{Int64}) is ambiguous.

Candidates:
  plan_rfft(X::StridedArray{Float64, N}, region; flags, timelimit, num_threads) where N
    @ FFTW ~/.julia/packages/FFTW/uNgRy/src/fft.jl:846
  plan_rfft(x::AbstractArray{T, N}, region::Union{Int64, NTuple{N, Int64}, AbstractVector{Int64}} where N; BLUESTEIN_CUTOFF, _kwargs...) where {T<:Real, N}
    @ FFTA ~/.julia/packages/FFTA/bnEzc/src/plan.jl:102

Possible fix, define
  plan_rfft(::StridedArray{Float64, N}, ::Union{Int64, NTuple{N, Int64} where N, AbstractVector{Int64}}) where N

Stacktrace:
 [1] plan_rfft(X::Vector{Float64}; kws::@Kwargs{})
   @ FFTW ~/.julia/packages/FFTW/uNgRy/src/fft.jl:887
 [2] hilbert(x::Vector{Float64})
   @ DSP.Util ~/.julia/packages/DSP/XtGMj/src/util.jl:36
 [3] |>(x::Vector{Float64}, f::typeof(hilbert))
   @ Base operators.jl:1001
 [4] top-level scope
   @ REPL[13]:1
 [5] top-level scope
   @ REPL[13]:1

julia> versioninfo()
Julia Version 1.14.0-alpha2
Build Info:
  Official https://julialang.org release
  Commit 22d5d63fa18 (2026-10-26 06:08 UTC)
  GC: Built with stock GC
Platform Info:
  OS: macOS (arm64-apple-darwin25.0.0)
  CPU: 10 × Apple M2 Pro (apple-m2)
  WORD_SIZE: 64
  LLVM: libLLVM-23.1.4 (ORCJIT, apple-m2)
Threads: 10 default, 1 interactive, 10 GC (on 10 virtual cores)
Environment:
  JULIA_DEPOT_PATH = /Users/maarhart/.julia
  JULIA_EDITOR = emacsclient

I have the same issue in the latest 1.13.

(post deleted by author)

Looks like it is a problem with neither, but rather FFTA.jl and FFTW.jl conflicting (see link).

I would recommend uninstalling one of them if possible, since complications in selecting the right FFT backend is a known issue with AbstractFFTs.jl:

If uninstalling is not an option, you can monkey-patch the shown signature of plan_rfft to use the correct backend.

My understanding is that KernelDensity in Makie uses FFTA and FFTW is in DSP.

Yeah, my bad. Looks like KernelDensity.jl switched to FFTA in v0.6.11, so downgrading to v0.6.10 can solve the problem.