AudioEqualizer
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
AudioEqualizer dostosowuje częstotliwość zawartości audio strumieni.Zapewnia jeden Wejściowy przewód i jeden Wyjściowy przewód, które mogą być podłączone do/od Wires .AudioEqualizer ma 3 pasmy częstotliwości, których wartości zysku można kontrolować, a punkty przecięcia między pasmami można przesuwać.
Przykłady kodu
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
Podsumowanie
Właściwości
Czy strumienie audio są przekazywane bez wpływu na ten efekt.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości najwyższej płyty w equalizerze.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości najniższej płyty w equalizerze.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości środkowej pasma w equalizerze.
Zakres częstotliwości pasma wpływającego na MidGain .
Metody
Zwraca tablicę Wires, która jest połączona z określonym przypinać.
Zdarzenia
Wystrzeliwuje, gdy inna instancja jest połączona z lub odłączona od AudioEqualizer za pomocą Wire .
Właściwości
Editor
HighGain
Zyskaj wartość, w decybelach, którą należy zastosować do częstotliwości zawartości najwyższej płyty w equalizerze. Zakres od -80 do 10.
LowGain
Zyskaj wartość, w decybelach, którą należy zastosować do częstotliwości zawartości najniższej płyty w equalizerze. Zakres od -80 do 10.
MidGain
Zdobądź wartość, w decybelach, którą należy zastosować do częstotliwości zawartości środkiego pasma w equalizerze. Zakres od -80 do 10.
MidRange
Zakres częstotliwości w hercach pasma wpływającego na MidGain .Mniejsza wartość zakresu określa częstotliwość przecięcia między niskimi i średnimi pasmami.Wyższa wartość zakresu określa częstotliwość przecięcia między średnimi i wysokimi pasmami.Obie częstotliwości przejścia wahają się od 200 do 20 000.
Metody
Zdarzenia
WiringChanged
Wydarzenie, które wystrzeliwuje po tym, jak Wire łączy się lub odłącza się, a które Wire jest teraz połączone lub było wcześniej połączone z przypinką na AudioEqualizer i z niektórymi innymi dostępnymi instancjami.
Parametry
Czy instancja została połączona czy odłączona.
Przypinka na AudioEqualizer , która jest przeznaczona dla celów Wire.
The Wire pomiędzy AudioEqualizer i inną instancja.