Skip to content

Project Architecture

An Amplitude project is resumed to a set of .json files organized in dedicated directories. The complete architecture of an Amplitude project can be described by this hierarchy:

📁 amplitude_project_name/
├ 📁 attenuators/
├ 📁 collections/
├ 📁 effects/
├ 📁 events/
├ 📁 pipelines/
├ 📁 rtpc/
├ 📁 soundbanks/
├ 📁 sounds/
├ 📁 switch_containers/
├ 📁 switches/
├ 📄 pc.config.json
├ 📄 android.config.json
├ 📄 buses.json
└ 📄 .amproject

Engine configuration files

The Amplitude engine settings are provided through a JSON file at the root of the project. In our previous example, we had two engine configuration files according to the runtime platform: pc.config.json and android.config.json. The config file to use should be given when initializing Amplitude.

The config files store all the needed settings for the audio device setup, memory allocation, and mixer configuration. Learn more on how to configure the engine in the Engine Configuration page.

Info

At least one engine configuration file should exist in an Amplitude project directory, and should match this flatbuffers schema.

Buses file

An Amplitude project should have a file (or files) where the different buses used at runtime are defined. In our previous example, the buses.json file plays this role.

You can only use one bus file per engine configuration, by setting his path in that engine configuration file. Learn more on how to configure buses in the Buses Configuration page.

Info

At least one buses file is expected in an Amplitude project. If no file is specified in the engine settings, the default expected path is ./buses.json. If the buses file is not found during the engine initialization, the library will throw an exception.

attenuators/

The attenuators directory stores all the configuration files for custom Attenuation models. Each .json file of this directory should match this flatbuffers schema. Learn more about attenuators in the Attenuations page.

collections/

The collections directory contains the configuration files for Collection sound objects. Each .json file of this directory should match this flatbuffers schema. Learn more about collections in the Collections page.

effects/

The effects directory contains the configuration files for sound Effects. Each .json file should match this flatbuffers schema. Learn more about effects in the Effects page.

events/

The events directory contains the configuration files for Events. Each .json file of this directory should match this flatbuffers schema. Learn more about events in the Events page.

pipelines/

The pipelines directory contains the configuration files for each Amplimix Pipeline you want to use with the engine. Each .json file of this directory should match this flatbuffers schema. Learn more about pipelines in the Pipelines page.

rtpc/

The rtpc directory stores the configuration files to create RTPC values. Each .json file of this directory should match this flatbuffers schema. Learn more about RTPC values in the Real-Time Parameter Control page.

soundbanks/

The soundbanks directory is the place where you define all of your game [SoundBank]s. Each .json file of this directory should match this flatbuffers schema. Learn more about sound banks in the Sound Banks page.

sounds/

The sounds directory contains the definition files for Sound objects. Those files are used to describe raw audio sample assets to make them usable as standalone objects or in Collections and Switch Containers. Each .json file of this directory should match this flatbuffers schema. Learn more on how to create sounds in the Sounds page.

switch_containers/

The switch_containers directory contains configuration files for SwitchContainer sound objects. Each .json file of this directory should match this flatbuffers schema. Learn more about switches and switch containers in the Switch Container guide.

switches/

The switches directory contains configuration files for Switch objects, that will be used in SwitchContainers. Each .json file of this directory should match this flatbuffers schema. Learn more about switches and switch containers in the Switch State guide.