AudioEqualizer
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Class.AudioEqualizer ajusta o conteúdo de frequência dos fluxos de áudio. Ele fornece um entrada pino e um saída pino que pode ser conectado/a partir por 0> Class.Wire|Wires0> . AudioEqualizer3> tem 3 bandas de frequência
Amostras de código
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
Resumo
Propriedades
Se as transmissões de áudio são passadas através de efeitos não afetados por este efeito.
Ganhe valor para ser aplicado ao conteúdo de frequência do maior banda no equalizador.
Ganhe valor para ser aplicado ao conteúdo de frequência do menor banda no equalizador.
Ganhe valor para ser aplicado ao conteúdo de frequência da faixa média no equalizador.
A faixa de frequência da banda afetada por MidGain .
Métodos
Retorna um array de Wires que estão conectados ao marcarespecificado.
Propriedades
Editor
HighGain
Ganhe valor, em decíbeis, a ser aplicado ao conteúdo de frequência da faixa mais alta no equalizador. Vá de -80 a 10.
LowGain
Ganhe valor, em decíbeis, a ser aplicado ao conteúdo de frequência da faixa mais baixa no equalizador. Vá de -80 a 10.
MidGain
Ganhe valor, em decíbeis, para ser aplicado ao conteúdo de frequência da faixa média no equalizador. Vá de -80 a 10.
MidRange
A faixa de frequência em hertz da banda é afetada por MidGain. O valor mais baixo da faixa determina a frequência de cruzamento entre as bandas baixas e médias. O valor mais alto da faixa determina a frequência de cruzamento entre as bandas médias e altas. Ambas as faixas de frequência variam de 200 a 20.000.
Métodos
GetConnectedWires
Retorna um array de Wires que estão conectados ao marcarespecificado. AudioEqualizer tem um pino de "Entrada" e um marcarde "Saída".