This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Audio Change Log

GS_Audio version changelog.

Logs


Audio 0.7.0

GS_Audio is now the free tier of the audio system. The visual authoring, music, voice and geometric acoustics features moved to GS_AudioPro; everything below is what the free gem carries.

Audio Events

  • GS_AudioEvent is now an abstract base, and event libraries hold a polymorphic list — the type dropdown offers every registered event kind.
  • GS_AudioEvent_Pool — a pool of sound assets, one picked at random per fire.
  • GS_AudioEvent_Noise — procedural noise with selectable colour and duration.
  • GS_AudioEvent_Sfxr — procedural chiptone driven by a pool of .sfxrprofile assets.
  • Shared machinery on the base: pooling, concurrency limits, re-fire suppression, distance settings, 3D tracking and spatialization back-end resolution.
  • Extension hooks for writing a new event source, with the asset hooks optional so generators need only three methods.
  • RerouteSounds re-points pooled and future instances when a mix target registers late.

SFXR Sound Profiles

  • New .sfxrprofile asset — 24 parameters describing one procedural sound.
  • Import from sfxr.me / jsfxr by pasting the Serialize JSON.
  • 27 profiles ship with the gem: 7 canonical presets and 20 named custom sounds.

Mixing and Mix Effects

  • MixEffectComponent — an ordered effect chain registered under a name, with a configurable output target.
  • 22 mix effect types: 7 biquad filters, Echo, Reverb, Binaural, 8 character and modulation effects, and 4 utility effects.
  • Named routing shared with volume channels, so a source targets either by name.
  • Order-independent wiring — a chain pointing at a target that does not exist yet resolves when it registers.
  • Runtime control: RerouteMixEffect, SetMixEffectParam, SetMixEffectParamOn, plus manual registration and wiring.

Spatialization

  • Steam Audio integration, vendored and loaded at runtime.
  • Per-voice HRTF binaural placement, recomputed each frame, replacing the built-in spatializer rather than stacking with it.
  • Distance attenuation and air absorption via Steam’s direct effect.
  • Bounded distance curve — the direct signal reaches true silence at max distance, and the reverb send eases to zero over the last quarter of the range.
  • HRTF interpolation modes, HRTF volume, and frame-size mode with an automatic match to the device period.

Audio Manager

  • GS_AudioProjectSettings reflected on the manager, making the component panel the configuration surface.
  • The authoritative listener now supports split targets — position from one entity, facing from another, for third-person games.
  • Listener target defaults to the manager entity with a warning when unset.
  • Accessor surface for GS_AudioPro: engine, node graph, endpoint, mixing buses, Steam Audio context, HRTF and frame size.
  • Spatial-simulator registration and reverb send, null in a base-only install.
  • Options apply targets for master volume and named volume channels.
  • The base manager no longer ticks.

Debug

  • GS_AudioImGuiDebugComponent — an Audio Mixer window with master and per-channel sliders.

Audio 0.6.0

Audio Event Graph

  • Visual node-based editor for authoring complex sound events using the gs_graphcanvas framework (DataFlowGraph topology).
  • Entry nodes (Start/Loop/Finish) for phase-gated audio lifecycle.
  • Source nodes: Aud_SoundNode, Aud_AudioPoolNode — single and pooled audio playback with volume, pitch, delay, looping, and 3D spatialization.
  • Filter nodes: LowPass, HighPass, BandPass, Notch, PeakingEQ, LowShelf, HighShelf — miniaudio filter processing.
  • Effect nodes: Aud_EchoNode, Aud_DelayNode.
  • Routing via gs_graphcanvas built-in IfNode and SwitchNode for conditional audio paths.
  • Aud_OutputNode terminal wiring to mixing bus.
  • Variable-driven sound control — runtime variable API for filter parameters, routing, and source selection.
  • AudioGraphTemplateCache — graph instance pooling and caching per asset path.
  • AudioSoundPool — ma_sound pooling with claim/release pattern, configurable pad and trim thresholds.
  • AudioFilterPool — filter node pooling by type.
  • Phase lifecycle management (Start/Loop/Finish) with TransitionToPhase().
  • Runtime API: PlayAudioGraph, AcquireAudioGraph, FireAudioGraph, StopAudioGraph, FinishAudioGraph, SetAudioGraphVariable*, SetAudioGraphLooping, SetAudioGraphEntity, SetAudioGraphPosition, StopAudioGraphFade.
  • 3D spatialization per-instance via AudioGraphSpatialMode (None, Position, Entity).

Audio 0.5.0

First official base release of GS_Audio.

Audio Manager

  • GS_AudioManagerComponent — audio engine lifecycle management, event library loading
  • AudioManagerRequestBus / AudioManagerNotificationBus
  • Master volume control and engine-level audio settings

Audio Events

  • AudioEventLibrary asset — pools of named audio events
  • GS_AudioEvent — pool selection, concurrent instance limiting, and 3D spatialization
  • AudioManagerRequestBus playback interface

Mixing & Effects

  • GS_MixingBus — mixing bus component with configurable effects chain
  • Filters, EQ, and environmental influence effects per bus

Score Arrangement

  • ScoreArrangementTrack — multi-layer music system
  • ScoreLayer — individual music layers toggled by gameplay state
  • TimeSignatures enum for bar-aligned transitions

Klatt Voice Synthesis

  • KlattVoiceSystemComponent — shared SoLoud engine, 3D listener management
  • KlattVoiceComponent — per-entity text-to-speech with phoneme mapping and segment queue
  • KlattVoiceRequestBus / KlattVoiceNotificationBus / KlattVoiceSystemRequestBus
  • Full 3D spatial voice audio with configurable voice parameters