AudioEqualizer
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Class.AudioEqualizer ajuste le contenu de fréquence des flux audio. Il fournit un entrée pin et un sortie pin qui peut être connecté/de la sorte que 0> Class.Wire|Wires0> . AudioEqualizer3> a 3 bandes de fréquence dont les valeurs de gain peuvent être contr
Échantillons de code
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
Résumé
Propriétés
Whether les flux audio sont-ils passés à travers sans être affectés par cet effet.
Gagnez de la valeur à appliquer au contenu de fréquence du plus haut band dans l'égaliseur.
Gagnez de la valeur à appliquer au contenu de fréquence du bande la plus basse dans l'égaliseur.
Gagnez de la valeur à appliquer au contenu de fréquence de la bande centrale dans l'égaliseur.
La fréquence de la bande influencée par MidGain .
Méthodes
Retourne un tableau de Wires qui sont connectés à l'épinglerspécifié.
Propriétés
Editor
HighGain
Gagnez de la valeur, en décibels, à appliquer au contenu de fréquence du plus haut bande dans l'égaliseur. Les valeurs vont de -80 à 10.
LowGain
Gagnez de la valeur, en décibels, à appliquer au contenu de fréquence du bande la plus basse dans l'égaliseur. Les valeurs vont de -80 à 10.
MidGain
Gagnez de la valeur, en décibels, à appliquer au contenu de fréquence du milieu dans l'égaliseur. Les valeurs vont de -80 à 10.
MidRange
La bande de fréquence dans hertz de laquelle elle est influencée par MidGain . Le valeur inférieure de la bande détermine la fréquence de crosse entre les bandes basse et moyenne. La valeur supérieure de la bande détermine la fréquence de crosse entre les bandes basse et moyenne. Les deux valeurs de crosse se portent de 200 à 20,000.
Méthodes
GetConnectedWires
Retourne un tableau de Wires qui sont connectés à l'épinglerde l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'écart de l'épinglerde l'