RoomAcoustics.jl/src/types.jl

45 lines
869 B
Julia
Raw Normal View History

2022-10-13 15:50:42 +02:00
2023-02-17 13:24:19 +01:00
export AbstractRoom, RectangularRoom
export AbstractRIRConfig, ISMConfig
2022-10-13 15:50:42 +02:00
2023-02-17 13:24:19 +01:00
abstract type AbstractRoom end
2022-10-13 15:50:42 +02:00
2023-02-17 13:24:19 +01:00
struct RectangularRoom{T<:Real} <: AbstractRoom
2022-10-13 15:50:42 +02:00
c::T
2023-05-16 11:55:55 +02:00
L::Tuple{T,T,T}
β::Tuple{T,T,T,T,T,T}
2022-10-13 15:50:42 +02:00
end
2023-02-17 13:24:19 +01:00
abstract type AbstractRIRConfig end
2022-10-13 15:50:42 +02:00
"""
"""
2023-05-16 11:55:55 +02:00
struct ISMConfig{T<:Real,I<:Integer,R<:AbstractRNG} <: AbstractRIRConfig
order::Tuple{I,I} # Order of reflection [low, high]
2022-10-13 15:50:42 +02:00
fs::T # Sampling frequency
N::I # Number of samples in impulse response
Wd::T # Single impulse width
hp::Bool # High pass filter
isd::T # Image source distortion (randomized image method)
2022-12-23 10:41:22 +01:00
lrng::R
2022-10-13 15:50:42 +02:00
end
function ISMConfig(
order=(0, -1),
2022-12-23 10:41:22 +01:00
fs=16000.0,
2022-10-13 15:50:42 +02:00
N=4000,
Wd=8e-3,
hp=true,
isd=0.0,
lrng=GLOBAL_RNG
)
ISMConfig(order, fs, N, Wd, hp, isd, lrng)
end