AudioChannelSplitter

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

AudioChannelSplitter divide uno stream audio in canali componenti in modo che ognuno possa essere elaborato in modo indipendente.Fornisce un Input pin, un pin combinato Output, nonché i seguenti pin di uscita secondaria, tutti i quali possono essere connessi a/da : Sinistra, Destra, Centro, Sub, Posteriore sinistra, Posteriore destra, Su, Su, Sinistra superiore, Destra superiore, TopLeft, TopRight, TopBackLeft, e TopBackRight.

Diagram showing position of all potential channels.

Campioni di codice

Splitting & Mixing Channels

local Workspace = game:GetService("Workspace")
local function wireUp(source : Instance, target : Instance, sourceName : string?, targetName : string?)
local wire = Instance.new("Wire", source)
wire.SourceInstance = source
wire.TargetInstance = target
if sourceName then wire.SourceName = sourceName end
if targetName then wire.TargetName = targetName end
return wire
end
local listener = Instance.new("AudioListener")
listener.Parent = Workspace.CurrentCamera
local output = Instance.new("AudioDeviceOutput")
output.Parent = Workspace
local splitter = Instance.new("AudioChannelSplitter")
splitter.Parent = Workspace
local mixer = Instance.new("AudioChannelMixer")
mixer.Parent = Workspace
-- Send what the listener hears to a splitter and send a mix to the final output
wireUp(listener, splitter)
wireUp(mixer, output)
-- Set up both the splitter and mixer to use a quadrophonic layout
splitter.Layout = Enum.AudioChannelLayout.Quad
mixer.Layout = Enum.AudioChannelLayout.Quad
-- Give each of the four channels its own pitch shifter
local frontLeft = Instance.new("AudioPitchShifter")
frontLeft.Name = "Front Left"
frontLeft.Pitch = 1.25
frontLeft.Parent = Workspace
local backLeft = Instance.new("AudioPitchShifter")
backLeft.Name = "Back Left"
backLeft.Pitch = 0.5
backLeft.Parent = Workspace
local frontRight = Instance.new("AudioPitchShifter")
frontRight.Name = "Front Right"
frontRight.Pitch = 1.5
frontRight.Parent = Workspace
local backRight = Instance.new("AudioPitchShifter")
backRight.Name = "Back Right"
backRight.Pitch = 0.75
backRight.Parent = Workspace
wireUp(splitter, frontLeft, "Left")
wireUp(splitter, backLeft, "BackLeft")
wireUp(splitter, frontRight, "Right")
wireUp(splitter, backRight, "BackRight")
wireUp(frontLeft, mixer, nil, "Left")
wireUp(backLeft, mixer, nil, "BackLeft")
wireUp(frontRight, mixer, nil, "Right")
wireUp(backRight, mixer, nil, "BackRight")
-- Configure a part to emit audio
local part = Instance.new("Part")
part.Shape = Enum.PartType.Ball
part.Size = Vector3.new(4, 4, 4)
part.Material = Enum.Material.SmoothPlastic
part.CastShadow = false
part.Position = Vector3.new(0, 4, -12)
part.Anchored = true
part.Parent = Workspace
local analyzer = Instance.new("AudioAnalyzer")
analyzer.Parent = part
local emitter = Instance.new("AudioEmitter")
emitter.Parent = part
local assetPlayer = Instance.new("AudioPlayer")
assetPlayer.Looping = true
assetPlayer.Asset = "rbxassetid://97799489309320"
assetPlayer.Parent = emitter
wireUp(assetPlayer, emitter)
wireUp(assetPlayer, analyzer)
-- Start playing the audio
assetPlayer:Play()
-- Adjust the part's color as the audio plays
while true do
local peak = math.sqrt(analyzer.PeakLevel)
part.Color = Color3.new(peak, peak, peak)
task.wait()
end

Sommario

Metodi

Eventi

Proprietà

Lettura Parallela

Controlla il layout del canale di input da dividere.Quando viene cambiato, tutti gli stream audio prima dell'ingresso di questo divisore di canale potrebbero dover essere up-mixati (allargati a almeno tanti canali quanto l'input richiede).

Il pin Output produce una copia dello stream collegato a Input ma, a seconda del valore di AudioChannelSplitter.Layout

  • Per Mono , il pin Centro produce uno stream audio.
  • Per Stereo , i pin Sinistra e Destra producono flussi audio.
  • Per Quad , il Sinistra , Destra , BackLeft e BackRight pin producono stream audio.
  • Surround_5 è lo stesso di Quad , più Centro produce uno stream audio.
  • Surround_5_1 è lo stesso di Surround_5 , più Sub produce uno stream audio.
  • Surround_7_1 è lo stesso di Surround_5_1 , più SurroundLeft e SurroundRight producono flussi audio.
  • Per Surround_7_1_4 , tutti i pin di output secondari producono stream audio.

Metodi

GetConnectedWires

Instances

Restituisce un array di Wires che sono connessi al pin specificato.

Parametri

pin: string
Valore predefinito: ""

Restituzioni

Instances

GetInputPins

Restituisce una tabella che contiene una stringa, "Input" , che indica il pin di input disponibile per Wire.TargetName .


Restituzioni

GetOutputPins

Restituisce una tabella di stringhe che indica quali pin di output sono disponibili per Wire.SourceName :

  • "Output"
  • "Left"
  • "Right"
  • "Center"
  • "SurroundLeft"
  • "SurroundRight"
  • "BackLeft"
  • "BackRight"
  • "Sub"
  • "TopLeft"
  • "TopRight"
  • "TopBackLeft"
  • "TopBackRight"

Restituzioni

Eventi

WiringChanged

Evento che si attiva dopo che un Wire diventa connesso o disconnesso, e che Wire è ora o era precedentemente connesso a un pin sulla AudioChannelSplitter e a qualche altra istanza wirable.

Parametri

connected: boolean

Se l'istanza è stata connessa o disconnessa.

pin: string

Il pin sul AudioChannelSplitter che i bersagli Wire .

wire: Wire

Il Wire tra la AudioChannelSplitter e l'altra istanza.

instance: Instance

L'altra istanza che è o era connessa attraverso il Wire .