AudioGraph, a module that manages roblox's new audio api for you

Notice: In order to understand how to use this aswell as find examples, I highly recommend reading my audio graphing concept tutorial.

The Code

You can download/contribute to this module from github here:

Audio API Documentation

The Audio module provides functionality for managing audio streams in Roblox.

Classes

AudioGraph

Represents a graph for managing audio streams.

Properties

  • ProducerInstance: AudioProducerInstance, start of the chain
  • Modifiers: array with all connected modifiers
  • ModifierRemoving: BindableEvent that fires when a modifier is being removed
  • ModifierAdded: BindableEvent that fires when a modifier has been added
  • Consumers: array with all connected consumers
  • ConsumerRemoved: BindableEvent that fires when a consumer has been removed
  • ConsumerAdded: BindableEvent that fires when a consumer has been added
  • Wires: dictionary containing keys for every instance that has wires connecting to it
  • SidechainWires: dictionary containing keys for every compressor using a sidechain
  • Branches: array with all branches connected to current graph
  • BranchingFrom: audiograph that the branch is connected to, nil if not branching from anything

Methods

  • NewGraph(Producer: AudioProducerInstance): AudioGraph

    Creates a new audio graph.

    • Producer (AudioProducerInstance): The audio producer instance for the graph.
  • CreateModifier(ModifierName: string, Properties: {}): AudioModifierInstance

    Creates a new audio modifier instance and connects it to the graph.

    • ModifierName (string): The name of the audio modifier.
    • Properties (table): Properties to initialize the modifier with.
    local MicInput = Audio.NewGraph(Instance.new("AudioDeviceInput"))
    MicInput.ProducerInstance.Player = game.Players.LocalPlayer
    
    local MicReverb = MicInput:CreateModifier("Reverb")
    
  • SetVolume(Volume: number)

    Sets the volume of the audio graph.

    • Volume (number): The volume level to set.
  • ConnectModifier(Modifier: AudioModifierInstance): AudioGraph

    Connects an audio modifier to the graph.

    • Modifier (AudioModifierInstance): The audio modifier instance to connect.
  • RemoveModifier(Modifier: AudioModifierInstance): AudioGraph

    Removes an audio modifier from the graph. Does not delete it.

    • Modifier (AudioModifierInstance): The audio modifier instance to remove.
  • ConnectConsumer(Consumer: AudioConsumerInstance): AudioGraph

    Connects an audio consumer to the graph.

    • Consumer (AudioConsumerInstance & Instance): The audio consumer instance to connect.
  • RemoveConsumer(Consumer: AudioConsumerInstance): typeof(AudioGraph)

    Removes an audio consumer from the graph.

    • Consumer (AudioConsumerInstance): The audio consumer instance to remove.
  • GetAudioInstance(Name: string): AudioModifierInstance | AudioConsumerInstance

    Retrieves an audio instance connected to the graph by name. Returns nil if it is not connected.

    • Name (string): The name of the audio instance.
  • Branch(Modifier: AudioModifierInstance & Instance, DestroyAllOnCleanup: boolean): typeof(AudioGraph)

    Creates a branch from an existing audio modifier.

    • Modifier (AudioModifierInstance & Instance): The audio modifier to branch from.
    • DestroyAllOnCleanup (boolean): Determines whether to destroy all connected instances when cleaning up.
  • Cleanup(DestroyAll: boolean)

    Cleans up the audio graph.

    • DestroyAll (boolean): Determines whether to destroy all connected instances.
  • Duck(AudioInstance: AudioProducerInstance | AudioModifierInstance, CompressorProperties: {}): typeof(AudioGraph)

    Ducks the audio.

    • AudioInstance (AudioProducerInstance | AudioModifierInstance): The audio instance to duck.
    • CompressorProperties (table): Properties to initialize the compressor with.
  • ReleaseDuck(): typeof(AudioGraph)

    Releases the ducked audio.

  • GetFirstGraph(Producer: AudioProducerInstance): typeof(AudioGraph) | nil

    Retrieves the first audio graph associated with the given audio producer.

    • Producer (AudioProducerInstance): The audio producer instance.

Data Types

AudioProducerInstance

Represents an audio producer instance.
AudioPlayers, AudioDeviceInputs, and AudioListeners

AudioModifierInstance

Represents an audio modifier instance.
AudioCompressors, AudioFaders, AudioDistortions, AudioEchos, AudioEqualizers, AudioFlangers, AudioPitchShifters, AudioReverbs, and AudioChoruses

AudioConsumerInstance

Represents an audio consumer instance.
AudioEmitters, AudioAnalyzers, and AudioDeviceOutputs

8 Likes