AudioEqualizer

Veraltete anzeigen

*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.

Ausgleich des Zuhörers

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

  • Parallel lesen

    Ob Audio-Streams unberührt bleiben, wenn dieser Effekt durchläuft.

  • Nicht repliziert
    Roblox-Skript-Sicherheit
    Parallel lesen
  • Parallel lesen

    Erhalte Wert, der auf den Frequenzinhalt der höchsten Band im Equalizer angewendet werden soll.

  • Parallel lesen

    Erhalte Wert, der auf den Frequenzinhalt der niedrigsten Band im Equalizer angewendet werden soll.

  • Parallel lesen

    Erhalte Wert, der auf den Frequenzinhalt des mittleren Bandes im Equalizer angewendet werden soll.

  • Parallel lesen

    Die Frequenzbereiche des Bandes, die von MidGain beeinflusst wurden.

Methoden

Ereignisse

Eigenschaften

Bypass

Parallel lesen

Wenn true , werden Audiodateien unberührt durchlaufen, von diesem Effekt nicht betroffen.

Editor

Nicht repliziert
Roblox-Skript-Sicherheit
Parallel lesen

HighGain

Parallel lesen

Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des höchsten Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.

LowGain

Parallel lesen

Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des niedrigsten Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.

MidGain

Parallel lesen

Erhalte Wert, in Dekibel, der auf den Frequenzinhalt des mittleren Bandes im Equalizer angewendet wird. Reichweite von -80 bis 10.

MidRange

Parallel lesen

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

GetConnectedWires

Instances

Gibt eine Reihe von Wires, die mit dem angegebenen anheftenverbunden sind. AudioEqualizer hat eine "Eingabe"-Pin und eine "Ausgabe"anheften.

Parameter

pin: string
Standardwert: ""

Rückgaben

Instances

GetInputPins


Rückgaben

GetOutputPins


Rückgaben

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

connected: boolean

Ob die Instanz verbunden oder getrennt wurde.

pin: string

Die Pins auf der AudioEqualizer, die die Wire Ziele sind.

wire: Wire

Die Wire zwischen der AudioEqualizer und der anderen Instanz.

instance: Instance

Die andere Instanz, die über die Wire verbunden ist oder war.