AudioEqualizer
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
AudioEqualizer passt den Frequenzanteil von Audio-Streams an.Es bietet eine Eingabe -Pin und eine Ausgabe -Pin, die von Wires.AudioEqualizer hat 3 Frequenzbänder, deren Gewinnswerte gesteuert werden können, und die Übergangspunkte zwischen den Bändern können verschoben werden.
Code-Beispiele
Ein Audio-Equalizer kann verwendet werden, um den Frequenzanteil von Audio-Streams zu ändern.Dies kann vor der Emission oder nach dem Zuhören durchgeführt werden und kann verwendet werden, um deine eigene, benutzerdefinierte RollOff-Logik zu implementieren! In diesem Beispiel verwenden wir einen AudioEqualizer, um die hohen Frequenzen eines Audioplayers lauter zu machen, während der AudioListener wegschaut vom AudioEmitter.Wir reduzieren auch die niedrigen und hohen Frequenzen, da der Zuhörer weiter weg kommt.
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) -- reichweite von [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- reichweite von [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end
Zusammenfassung
Eigenschaften
Ob Audio-Streams unberührt bleiben, wenn dieser Effekt durchläuft.
Erhalte Wert, der auf den Frequenzinhalt der höchsten Band im Equalizer angewendet werden soll.
Erhalte Wert, der auf den Frequenzinhalt der niedrigsten Band im Equalizer angewendet werden soll.
Erhalte Wert, der auf den Frequenzinhalt des mittleren Bandes im Equalizer angewendet werden soll.
Die Frequenzbereiche des Bandes, die von MidGain beeinflusst wurden.
Methoden
Gibt eine Reihe von Wires, die mit dem angegebenen anheftenverbunden sind, zurück.
Ereignisse
Feuert, wenn eine andere Instanz über einen AudioEqualizer mit der Wire verbunden oder getrennt wird.
Eigenschaften
Bypass
Wenn true , werden Audiodateien unberührt durchlaufen, von diesem Effekt nicht betroffen.
Editor
HighGain
Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des höchsten Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.
LowGain
Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des niedrigsten Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.
MidGain
Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des mittleren Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.
MidRange
Die Frequenzbereiche in Hertz des Bandes, die von MidGain beeinflusst wurden.Der niedrigere Wert der Reichweite bestimmt die Überschneidungsfrequenz zwischen den niedrigen und mittleren Bändern.Der höhere Wert der Reichweite bestimmt die Überschneidungsfrequenz zwischen den mittleren und hohen Bändern.Beide Übergangsfrequenzen liegen zwischen 200 und 20.000.
Methoden
Ereignisse
WiringChanged
Ereignis, das nachdem abgefeuert wird, nachdem ein Wire verbunden oder getrennt wurde, und das Wire jetzt oder zuvor mit einem Pin auf der AudioEqualizer und mit einigen anderen verwendbaren Instanzen verbunden war.
Parameter
Ob die Instanz verbunden oder getrennt wurde.
Die Pins auf der AudioEqualizer, die die Wire Ziele sind.
Die Wire zwischen der AudioEqualizer und der anderen Instanz.