AudioEqualizer

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

AudioEqualizer menyesuaikan konten frekuensi audio stream.Ini menyediakan satu Input pin dan satu Output pin yang dapat terhubung ke/dari oleh Wires . AudioEqualizer memiliki 3 band frekuensi yang nilai gainnya dapat dikontrol, dan titik persimpangan antara band dapat dipindahkan.

Contoh Kode

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.

Listener Equalization

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

Rangkuman

Properti

  • Baca Paralel

    Apakah aliran audio dilewati tanpa pengaruh oleh efek ini.

  • Tidak Direplikasi
    Keamanan Skrip Roblox
    Baca Paralel
  • Baca Paralel

    Dapatkan nilai untuk diterapkan pada konten frekuensi dari band tertinggi di equalizer.

  • Baca Paralel

    Dapatkan nilai untuk diterapkan pada konten frekuensi dari band terendah di equalizer.

  • Baca Paralel

    Dapatkan nilai untuk diterapkan pada konten frekuensi dari band tengah di equalizer.

  • Baca Paralel

    Kisaran frekuensi band yang dipengaruhi oleh MidGain .

Metode

Acara

Properti

Bypass

Baca Paralel

Jika true , aliran audio dilewati tanpa pengaruh oleh efek ini.

Editor

Tidak Direplikasi
Keamanan Skrip Roblox
Baca Paralel

HighGain

Baca Paralel

Dapatkan nilai, dalam decibel, untuk diterapkan pada konten frekuensi dari band tertinggi di equalizer. Berkisar dari -80 hingga 10.

LowGain

Baca Paralel

Dapatkan nilai, dalam decibel, untuk diterapkan pada konten frekuensi dari band terendah di equalizer. Berkisar dari -80 hingga 10.

MidGain

Baca Paralel

Dapatkan nilai, dalam decibel, untuk diterapkan pada konten frekuensi dari band tengah di equalizer. Berkisar dari -80 hingga 10.

MidRange

Baca Paralel

Kisaran frekuensi dalam hertz dari band yang dipengaruhi oleh MidGain .Nilai yang lebih rendah dari rentang menentukan frekuensi persilangan antara band rendah dan sedang.Nilai yang lebih tinggi dari rentang menentukan frekuensi persilangan antara band tengah dan tinggi.Kedua frekuensi krosi berada dari 200 hingga 20.000.

Metode

GetConnectedWires

Instances

Kembalikan array dari Wires yang terhubung ke mengepinyang ditentukan. AudioEqualizer memiliki satu pin "Input" dan satu mengepin"Output".

Parameter

pin: string
Nilai Default: ""

Memberikan nilai

Instances

GetInputPins


Memberikan nilai

GetOutputPins


Memberikan nilai

Acara

WiringChanged

Peristiwa yang menembak setelah Wire terhubung atau terputus, dan bahwa Wire sekarang atau sebelumnya terhubung ke pin di AudioEqualizer dan ke beberapa kejadianlain yang dapat ditransmisikan.

Parameter

connected: boolean

Apakah instansi terhubung atau terputus.

pin: string

Pin pada AudioEqualizer yang menjadi target Wire .

wire: Wire

The Wire antara AudioEqualizer dan instansi lainnya.

instance: Instance

Instansi lain yang terhubung atau terhubung melalui Wire .