AudioEqualizer
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
AudioEqualizer điều chỉnh nội dung tần suất của dòng audio.Nó cung cấp một đầu nối Nhập và một đầu nối Xuất có thể kết nối với/từ bởi Wires .AudioEqualizer có 3 băng tần có giá trị tăng có thể được kiểm soát, và các điểm chồng lấp giữa các băng có thể được di chuyển.
Mẫu mã
An AudioEqualizer can be used to change the frequency content of audio streams. This can be done before emission, or after listening, and can be used to implement your own, custom RollOff logic! In this example, we use an AudioEqualizer to make an AudioPlayer's high frequencies more muffled as the AudioListener looks away from the AudioEmitter. We also reduce both the low and high frequencies as the listener gets further away.
local function wireUp(source: Instance, target: Instance): Wire
local wire = Instance.new("Wire")
wire.Parent = target
wire.SourceInstance = source
wire.TargetInstance = target
return wire
end
local function getCFrameFrom(inst: Instance): CFrame?
local parent = inst.Parent
if not parent then
return nil
elseif parent:IsA("Model") then
return parent.WorldPivot
elseif parent:IsA("BasePart") then
return parent.CFrame
elseif parent:IsA("Attachment") then
return parent.WorldCFrame
elseif parent:IsA("Camera") then
return parent.CFrame
else
return nil
end
end
local function rescale(value: number, oldRange: NumberRange, newRange: NumberRange): number
local clamped = math.clamp(value, oldRange.Min, oldRange.Max)
local normalized = clamped - oldRange.Min / (oldRange.Max - oldRange.Min)
return normalized * (newRange.Max - newRange.Min) + newRange.Min
end
local assetPlayer = Instance.new("AudioPlayer")
assetPlayer.AssetId = "rbxassetid://142376088"
assetPlayer.Parent = workspace
local equalizer = Instance.new("AudioEqualizer")
equalizer.MidRange = NumberRange.new(400, 3000)
equalizer.Parent = workspace
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 5, 0)
emitterPart.Parent = workspace
local emitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local listener = Instance.new("AudioListener")
listener.Parent = workspace.CurrentCamera
local output = Instance.new("AudioDeviceOutput")
output.Parent = workspace
wireUp(assetPlayer, equalizer)
wireUp(equalizer, emitter)
wireUp(listener, output)
assetPlayer.Looping = true
assetPlayer:Play()
while true do
local emitterFrame = getCFrameFrom(emitter)
local listenerFrame = getCFrameFrom(listener)
if emitterFrame and listenerFrame then
local towardEmitter = emitterFrame.Position - listenerFrame.Position
local look = towardEmitter.Unit:Dot(listenerFrame.LookVector) -- ranges from [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- ranges from [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end
Tóm Tắt
Thuộc Tính
Liệu dòng âm thanh có bị ảnh hưởng bởi hiệu ứng này hay không.
Nhận giá trị để áp dụng cho nội dung tần số của dải cao nhất trong equalizer.
Nhận giá trị để áp dụng cho nội dung tần số của dải thấp nhất trong equalizer.
Nhận giá trị để áp dụng cho nội dung tần số của dải giữa trong equalizer.
Phạm vi tần số của dải ảnh hưởng bởi MidGain .
Phương Pháp
Trả về một array của Wires được kết nối với ghimđược chỉ định.
Sự Kiện
Bắt lửa khi một instance khác được kết nối hoặc thoát kết nối với AudioEqualizer thông qua một Wire .
Thuộc Tính
Editor
HighGain
Nhận giá trị, bằng decibel, để áp dụng cho nội dung tần số của băng tần cao nhất trong equalizer. Phạm vi từ -80 đến 10.
LowGain
Nhận giá trị, bằng decibel, để áp dụng cho nội dung tần số của dải thấp nhất trong equalizer. Phạm vi từ -80 đến 10.
MidGain
Nhận giá trị, bằng decibel, để áp dụng cho nội dung tần số của dải giữa trong equalizer. Phạm vi từ -80 đến 10.
MidRange
Phạm vi tần số trong hertz của dải ảnh hưởng bởi MidGain .Giá trị thấp hơn của phạm vi xác định tần suất chồng lấp giữa các dải thấp và trung bình.Giá trị cao hơn của phạm vi xác định tần suất chồng lấp giữa các dải trung và cao.Cả hai phạm vi tần số chồng lấp dao động từ 200 đến 20,000.
Phương Pháp
Sự Kiện
WiringChanged
Sự kiện xảy ra sau khi một Wire được kết nối hoặc mất kết nối, và sự kiện Wire bây giờ hoặc đã từng kết nối với một chốt trên AudioEqualizer và một số ví ví dụ / trường hợpkhác có thể kết nối được.
Tham Số
Whether ví dụ đã kết nối hay mất kết nối.
Chốt trên AudioEqualizer mà mục tiêu Wire nhắm.
Các Wire giữa AudioEqualizer và ví dụ / trường hợpkhác.