AudioEqualizer
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
AudioEqualizer ajuste le contenu fréquentiel des flux audio.Il fournit un entrée pin et un sortie pin qui peut être connecté à/de par Wires .AudioEqualizer a 3 bandes de fréquence dont les valeurs de gain peuvent être contrôlées, et les points de croisement entre les bandes peuvent être déplacés.
Échantillons de code
Un égaliseur audio peut être utilisé pour modifier le contenu fréquentiel des flux audio.Cela peut être fait avant l'émission, ou après écoute, et peut être utilisé pour implémenter votre propre logique RollOff personnalisée ! Dans cet exemple, nous utilisons un égaliseur audio pour rendre les fréquences élevées d'un lecteur audio plus faibles lorsque l'écouteur audio se détourne du diffuseur audio.Nous réduisons également les fréquences basses et élevées à mesure que l'écouteur s'éloigne.
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) -- va de [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- va de [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
Si les flux audio sont transmis sans être affectés par cet effet.
Gagnez de la valeur à appliquer au contenu de fréquence du spectre le plus élevé dans l'égaliseur.
Gain de valeur à appliquer au contenu de fréquence de la 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 plage de fréquence de la bande influencée par MidGain .
Méthodes
Renvoie un tableau de Wires qui sont connectés au épinglerspécifié.
Évènements
Se déclenche lorsqu'une autre instance est connectée ou déconnectée du AudioEqualizer via un Wire .
Propriétés
Editor
HighGain
Gain de valeur, en décibels, à appliquer au contenu de fréquence du spectre le plus élevé dans l'égaliseur. De -80 à 10.
LowGain
Gain de valeur, en décibels, à appliquer au contenu de fréquence du spectre le plus bas dans l'égaliseur. De -80 à 10.
MidGain
Gain de valeur, en décibels, à appliquer au contenu de fréquence de la bande centrale dans l'égaliseur. De -80 à 10.
MidRange
La plage de fréquence en hertz du band influencé par MidGain .La valeur inférieure de la plage détermine la fréquence de croisement entre les bandes basses et moyennes.La valeur plus élevée de la plage détermine la fréquence de croisement entre les bandes moyennes et élevées.Les fréquences de croisement varient de 200 à 20 000.
Méthodes
Évènements
WiringChanged
Événement qui se déclenche après qu'un Wire devienne connecté ou déconnecté, et que Wire soit maintenant ou ait été précédemment connecté à un bouton sur le AudioEqualizer et à une autre instance wirable.
Paramètres
Si l'instance s'est connectée ou déconnectée.
L'épingle sur le AudioEqualizer que les cibles Wire .
Le Wire entre la AudioEqualizer et l'autre instance.