AudioFilter

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.

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.

Emitter Filtering

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

  • Baca Paralel

    Apakah aliran audio dilewati tanpa pengaruh oleh efek ini.

  • Tidak Direplikasi
    Keamanan Skrip Roblox
    Baca Paralel
  • Jenis kurva dari band yang diwakili oleh filter.

  • Baca Paralel

    Frekuensi tengah yang dilakukan filter di sekitarnya.

  • Baca Paralel

    Untuk filter puncak dan penyimpanan, kontrol meningkatkan atau mengurangi volume.

  • Baca Paralel

    Untuk puncak, lowpass, highpass, bandpass, dan filter notch, mengontrol selektivitas atau resonansi.

Metode

Acara

Properti

Bypass

Baca Paralel

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

Editor

Tidak Direplikasi
Keamanan Skrip Roblox
Baca Paralel
Baca Paralel

Jenis kurva respons frekuensi yang akan digunakan untuk menyaring sinyal audio.Setiap jenis kurva mempengaruhi konten frekuensi audio dengan cara yang berbeda.

Frequency

Baca Paralel

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

Baca Paralel

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.

Baca Paralel

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

Instances

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

Parameter

pin: string
Nilai Default: ""

Memberikan nilai

Instances

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

frequency: number

Frekuensi, dalam hertz, untuk disampelkan.

Nilai Default: ""

Memberikan nilai

Nilai keuntungan, dalam decibel, pada frekuensi yang diberikan.

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 AudioFilter dan ke beberapa kejadianlain yang dapat ditransmisikan.

Parameter

connected: boolean

Apakah instansi terhubung atau terputus.

pin: string

Pin pada AudioFilter yang menjadi target Wire .

wire: Wire

The Wire antara AudioFilter dan instansi lainnya.

instance: Instance

Instansi lain yang terhubung atau terhubung melalui Wire .