AudioEqualizer

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Class.AudioEqualizer 調整音頻流的頻率內容。提供一個 輸入 輸入針和一個 輸出 輸出針,可以連接到/從 0> Class.Wire|Wires0> 。 AudioEqualizer3> 有 3 個�

範例程式碼

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.

Listener Equalization

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

概要

屬性

  • 平行讀取

    音頻流量是否會因此效果而被通過。

  • 未複製
    Roblox 指令碼安全性
    平行讀取
  • 平行讀取

    獲得價值,可適用於等化器中最高帶的頻率內容。

  • 平行讀取

    獲得值,可適用於等化器中最低帶的頻率內容。

  • 平行讀取

    獲得值,可適用於中央帶的音頻內容。

  • 平行讀取

    Class.AudioEqualizer.MidGain|MidGain 的頻率範圍。

方法

屬性

Bypass

平行讀取

如果 true ,音頻流量將不受此效果的影響。

Editor

未複製
Roblox 指令碼安全性
平行讀取

HighGain

平行讀取

以德西貝爾的價值獲得值,並應用到同等器中最高帶的內容。範圍從 -80 到 10。

LowGain

平行讀取

以德西貝爾的價值獲得值,並應用到等化器中最低帶的頻率內容。範圍從 -80 到 10。

MidGain

平行讀取

以公分的價值獲得值,並應用到中央帶的頻率內容。範圍從 -80 至 10。

MidRange

平行讀取

在帶上受到 MidGain 的影響的頻率範圍。低值的頻率範圍決定低帶和中帶之間的交叉頻率。高值的頻率範圍決定中帶和高帶之間的交叉頻率。兩個頻率範圍的頻率範圍由

方法

GetConnectedWires

Instances

返回連接到指定釘置頂的 Wires 的陣列。AudioEqualizer 有一個「輸入」釘子和一個「輸出」釘置頂。

參數

pin: string

返回

Instances

活動