AudioFilter
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
AudioFilter menyesuaikan konten frekuensi audio stream.Ini menyediakan satu Input pin dan satu Output pin yang dapat terhubung ke/dari oleh Wires . AudioFilter menggunakan properti FilterType , Gain , dan Q untuk menentukan apa yang harus dilakukan di sekitar potongan tertentu Frequency .
Contoh Kode
An AudioFilter can be used to change the frequency content of audio streams. In this example, an AudioFilter is used to make the AudioEmitter output more muffled when there's a wall between it and the AudioListener.
-- This assumes the workspace contains a Part with an AudioEmitter and an AudioPlayer, and the camera has an AudioListener
local RunService = game:GetService("RunService")
local part: BasePart = workspace.Part
local camera: Camera = workspace.CurrentCamera
local audioPlayer: AudioPlayer = part.AudioPlayer
local audioEmitter: AudioEmitter = part.AudioEmitter
local audioListener: AudioListener = camera.AudioListener
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = { audioEmitter.Parent }
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
-- Create a new AudioFilter
local filter: AudioFilter = Instance.new("AudioFilter")
filter.FilterType = Enum.AudioFilterType.Lowpass12dB
filter.Frequency = 22000
filter.Q = math.sqrt(2) / 2 -- This Q value produces a flat lowpass for the 12dB slope type
filter.Parent = part
-- Put the AudioFilter between the player and the emitter
local function wireTo(source: Instance, target: Instance): Wire
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = target
end
wireTo(audioPlayer, filter)
wireTo(filter, audioEmitter)
-- Update the filter based on the positions of the emitter and listener
RunService.Heartbeat:Connect(function()
local emitterPos: Vector3 = part.Position
local listenerPos: Vector3 = camera.CFrame.Position
local raycastResult = workspace:Raycast(emitterPos, (listenerPos - emitterPos), raycastParams)
filter.Frequency = if raycastResult then 500 else 22000
end)
Rangkuman
Properti
Apakah aliran audio dilewati tanpa pengaruh oleh efek ini.
Jenis kurva dari band yang diwakili oleh filter.
Frekuensi tengah yang dilakukan filter di sekitarnya.
Untuk filter puncak dan penyimpanan, kontrol meningkatkan atau mengurangi volume.
Untuk puncak, lowpass, highpass, bandpass, dan filter notch, mengontrol selektivitas atau resonansi.
Metode
Kembalikan array dari Wires yang terhubung ke mengepinyang ditentukan.
Kembalikan respons magnitudo filter pada frekuensi yang diberikan.
Acara
Memicu ketika instansi lain terhubung ke atau terputus dari AudioFilter melalui Wire .
Properti
Editor
FilterType
Jenis kurva respons frekuensi yang akan digunakan untuk menyaring sinyal audio.Setiap jenis kurva mempengaruhi konten frekuensi audio dengan cara yang berbeda.
Frequency
Frekuensi tengah dalam hertz dari kurva yang diwakili oleh filter.Secara umum, menyesuaikan nilai ini ke atas atau ke bawah sesuai dengan pergeseran horizontal pada kurva frekuensi keseluruhan.Berada di kisaran 20 hingga 22000.
Gain
Nilai gain dalam decibel yang digunakan untuk menentukan tingkat volume kurva yang diwakili oleh filter.Hanya berlaku ketika FilterType adalah Peak , LowShelf , atau HighShelf .Berada di kisaran -30 hingga 30.
Nilai kualitas yang digunakan untuk menentukan sudut atau resonansi kurva yang diwakili oleh filter.Hanya berlaku ketika FilterType adalah Peak , Lowpass[x]dB , Highpass[x]dB , Bandpass , atau Notch .Berjarak dari 0,1 hingga 10.
Untuk FilterType nilai dari Lowpass12dB dan Highpass12dB , nilai Q dari sqrt(2) / 2 , atau 0.707 , sesuai dengan filter datar pada lereng 12dB/oktaf.
Metode
GetConnectedWires
Kembalikan array dari Wires yang terhubung ke mengepinyang ditentukan. AudioFilter memiliki satu pin "Input" dan satu mengepin"Output".
Parameter
Memberikan nilai
GetGainAt
Kembalikan nilai keuntungan, dalam decibel, dari kurva respons frekuensi yang diwakili oleh filter pada frekuensi yang diberikan, dalam hertz.Ini dapat digunakan untuk mengambil sampel bentuk filter yang tepat di tempat-tempat kunci atau keseluruhan.
Parameter
Frekuensi, dalam hertz, untuk disampelkan.
Memberikan nilai
Nilai keuntungan, dalam decibel, pada frekuensi yang diberikan.
Acara
WiringChanged
Peristiwa yang menembak setelah Wire terhubung atau terputus, dan bahwa Wire sekarang atau sebelumnya terhubung ke pin di AudioFilter dan ke beberapa kejadianlain yang dapat ditransmisikan.
Parameter
Apakah instansi terhubung atau terputus.
Pin pada AudioFilter yang menjadi target Wire .
The Wire antara AudioFilter dan instansi lainnya.