AudioChannelMixer
AudioChannelMixer mixes multiple audio streams into a single, multichannel stream. It provides one combined Input pin, one Output pin, as well as the following secondary input pins, all of which can be connected to/from by Wires: Left, Right, Center, SurroundLeft, SurroundRight, Sub, BackLeft, BackRight, TopLeft, TopRight, TopBackLeft, and TopBackRight.

Échantillons de code
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
Résumé
Propriétés
Controls the output channel layout to be mixed to.
Méthodes
Returns an array of Wires that are connected to the specified pin.
Returns the input pins that can be selected by Wire.TargetName.
Returns the output pin available for Wire.SourceName.
Évènements
Fires when another instance is connected to or disconnected from the AudioChannelMixer via a Wire.
Propriétés
Layout
Controls the output channel layout to be mixed to. The Input pin of AudioChannelMixer is always forwarded "as-is" to Output, but depending on the value of Layout:
- For Mono, the Center pin consumes audio streams.
- Surround_7_1 is the same as Surround_5_1, plus SurroundLeft and SurroundRight consume audio streams.
- For Surround_7_1_4, all secondary input pins consume audio streams.
Méthodes
GetConnectedWires
Returns an array of Wires that are connected to the specified pin.
Paramètres
Retours
GetInputPins
Returns a table of strings indicating which input pins are available for Wire.TargetName:
- "Input"
- "Left"
- "Right"
- "Center"
- "SurroundLeft"
- "SurroundRight"
- "BackLeft"
- "BackRight"
- "Sub"
- "TopLeft"
- "TopRight"
- "TopBackLeft"
- "TopBackRight"
Retours
GetOutputPins
Returns a table containing one string, "Output", indicating the output pin available for Wire.SourceName.
Retours
Évènements
WiringChanged
Event that fires after a Wire becomes connected or disconnected, and that Wire is now or was previously connected to a pin on the AudioChannelMixer and to some other wirable instance.
Paramètres
Whether the instance got connected or disconnected.
The pin on the AudioChannelMixer that the Wire targets.
The Wire between the AudioChannelMixer and the other instance.