├── .github
└── workflows
│ └── python-publish.yml
├── .gitignore
├── .idea
├── PyWwise.iml
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
├── vcs.xml
└── webResources.xml
├── CHANGES.md
├── LICENSE
├── MANIFEST.in
├── NOTICE
├── Pipfile
├── README.md
├── pyproject.toml
├── pywwise
├── __init__.py
├── aliases.py
├── decorators.py
├── descriptors.py
├── enums.py
├── metas.py
├── modules.py
├── objects
│ ├── __init__.py
│ ├── abc.py
│ ├── components
│ │ └── __init__.py
│ ├── effects
│ │ ├── __init__.py
│ │ ├── mastering_suite.py
│ │ ├── wwise_3d_audio_bed_mixer.py
│ │ ├── wwise_compressor.py
│ │ ├── wwise_convolution_reverb.py
│ │ ├── wwise_delay.py
│ │ ├── wwise_expander.py
│ │ ├── wwise_flanger.py
│ │ ├── wwise_gain.py
│ │ ├── wwise_guitar_distortion.py
│ │ ├── wwise_harmonizer.py
│ │ ├── wwise_matrix_reverb.py
│ │ ├── wwise_meter.py
│ │ ├── wwise_parametric_eq.py
│ │ ├── wwise_peak_limiter.py
│ │ ├── wwise_pitch_shifter.py
│ │ ├── wwise_recorder.py
│ │ ├── wwise_reflect.py
│ │ ├── wwise_roomverb.py
│ │ ├── wwise_stereo_delay.py
│ │ ├── wwise_time_stretch.py
│ │ └── wwise_tremolo.py
│ ├── sources
│ │ ├── __init__.py
│ │ ├── impacter.py
│ │ ├── motion_source.py
│ │ ├── soundseed_air_wind.py
│ │ ├── soundseed_air_woosh.py
│ │ ├── soundseed_grain.py
│ │ ├── wwise_silence.py
│ │ ├── wwise_synth_one.py
│ │ └── wwise_tone_generator.py
│ └── types
│ │ ├── __init__.py
│ │ ├── acoustic_texture.py
│ │ ├── action.py
│ │ ├── action_exception.py
│ │ ├── actor_mixer.py
│ │ ├── attenuation.py
│ │ ├── audio_device.py
│ │ ├── audio_source.py
│ │ ├── aux_bus.py
│ │ ├── blend_container.py
│ │ ├── blend_track.py
│ │ ├── bus.py
│ │ ├── control_surface_binding.py
│ │ ├── control_surface_binding_group.py
│ │ ├── control_surface_session.py
│ │ ├── conversion.py
│ │ ├── curve.py
│ │ ├── custom_state.py
│ │ ├── dialogue_event.py
│ │ ├── effect.py
│ │ ├── effect_slot.py
│ │ ├── event.py
│ │ ├── external_source.py
│ │ ├── external_source_file.py
│ │ ├── folder.py
│ │ ├── game_parameter.py
│ │ ├── language.py
│ │ ├── marker.py
│ │ ├── metadata.py
│ │ ├── midi_file_source.py
│ │ ├── midi_parameter.py
│ │ ├── mixing_session.py
│ │ ├── modifier.py
│ │ ├── modulator_envelope.py
│ │ ├── modulator_lfo.py
│ │ ├── modulator_time.py
│ │ ├── multi_switch_entry.py
│ │ ├── music_clip.py
│ │ ├── music_clip_midi.py
│ │ ├── music_cue.py
│ │ ├── music_event_cue.py
│ │ ├── music_fade.py
│ │ ├── music_playlist_container.py
│ │ ├── music_playlist_item.py
│ │ ├── music_segment.py
│ │ ├── music_stinger.py
│ │ ├── music_switch_container.py
│ │ ├── music_track.py
│ │ ├── music_track_sequence.py
│ │ ├── music_transition.py
│ │ ├── object_setting_assoc.py
│ │ ├── panner.py
│ │ ├── path_2d.py
│ │ ├── platform.py
│ │ ├── plugin_data_source.py
│ │ ├── position.py
│ │ ├── project.py
│ │ ├── query.py
│ │ ├── random_sequence_container.py
│ │ ├── rtpc.py
│ │ ├── search_criteria.py
│ │ ├── sound.py
│ │ ├── sound_bank.py
│ │ ├── soundcaster_session.py
│ │ ├── source_plugin.py
│ │ ├── state.py
│ │ ├── state_group.py
│ │ ├── switch.py
│ │ ├── switch_container.py
│ │ ├── switch_group.py
│ │ ├── trigger.py
│ │ ├── user_project_settings.py
│ │ └── work_unit.py
├── primitives.py
├── statics.py
├── structs.py
├── waapi
│ ├── __init__.py
│ └── ak
│ │ ├── __init__.py
│ │ ├── ak.py
│ │ ├── soundengine
│ │ ├── __init__.py
│ │ └── soundengine.py
│ │ └── wwise
│ │ ├── __init__.py
│ │ ├── console
│ │ ├── __init__.py
│ │ ├── console.py
│ │ └── project.py
│ │ ├── core
│ │ ├── __init__.py
│ │ ├── audio.py
│ │ ├── audio_source_peaks.py
│ │ ├── capture_log.py
│ │ ├── core.py
│ │ ├── game_parameter.py
│ │ ├── log.py
│ │ ├── object.py
│ │ ├── profiler.py
│ │ ├── project.py
│ │ ├── remote.py
│ │ ├── sound.py
│ │ ├── soundbank.py
│ │ ├── source_control.py
│ │ ├── switch_container.py
│ │ ├── transport.py
│ │ └── undo.py
│ │ ├── debug
│ │ ├── __init__.py
│ │ └── debug.py
│ │ ├── ui
│ │ ├── __init__.py
│ │ ├── commands.py
│ │ ├── project.py
│ │ └── ui.py
│ │ ├── waapi
│ │ ├── __init__.py
│ │ └── waapi.py
│ │ └── wwise.py
└── waql.py
├── requirements.txt
├── resources
├── data
│ └── SoundBank_DefinitionFile_Test.tsv
├── lua
│ └── main_ut.lua
├── waves
│ └── WaveAsset_Test.wav
└── wwise
│ ├── Actor-Mixer Hierarchy
│ └── Default Work Unit.wwu
│ ├── Add-ons
│ └── Commands
│ │ └── pywwise_dev.json
│ ├── Attenuations
│ └── Default Work Unit.wwu
│ ├── Audio Devices
│ └── Default Work Unit.wwu
│ ├── Control Surface Sessions
│ └── Default Work Unit.wwu
│ ├── Conversion Settings
│ └── Default Work Unit.wwu
│ ├── Dynamic Dialogue
│ └── Default Work Unit.wwu
│ ├── Effects
│ └── Default Work Unit.wwu
│ ├── Events
│ └── Default Work Unit.wwu
│ ├── Game Parameters
│ └── Default Work Unit.wwu
│ ├── Interactive Music Hierarchy
│ └── Default Work Unit.wwu
│ ├── Master-Mixer Hierarchy
│ └── Default Work Unit.wwu
│ ├── Metadata
│ └── Default Work Unit.wwu
│ ├── Mixing Sessions
│ └── Default Work Unit.wwu
│ ├── Modulators
│ └── Default Work Unit.wwu
│ ├── Originals
│ └── Voices
│ │ └── English(US)
│ │ └── UnitTest_OhSheeshSniper.wav
│ ├── Presets
│ ├── Default Work Unit.wwu
│ └── Factory Spatial Audio.wwu
│ ├── PyWwise.wproj
│ ├── Queries
│ └── Default Work Unit.wwu
│ ├── SoundBanks
│ └── Default Work Unit.wwu
│ ├── Soundcaster Sessions
│ └── Default Work Unit.wwu
│ ├── States
│ └── Default Work Unit.wwu
│ ├── Switches
│ └── Default Work Unit.wwu
│ ├── Triggers
│ └── Default Work Unit.wwu
│ └── Virtual Acoustics
│ └── Default Work Unit.wwu
├── setup.cfg
├── setup.py
├── tests
├── constants.py
└── testclass.py
└── upload.py
/.github/workflows/python-publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will upload a Python Package using Twine when a release is created
2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3 |
4 | # This workflow uses actions that are not certified by GitHub.
5 | # They are provided by a third-party and are governed by
6 | # separate terms of service, privacy policy, and support
7 | # documentation.
8 |
9 | name: Upload Python Package
10 |
11 | on:
12 | release:
13 | types: [ published ]
14 |
15 | permissions:
16 | contents: read
17 |
18 | jobs:
19 | deploy:
20 |
21 | runs-on: ubuntu-latest
22 |
23 | steps:
24 | - uses: actions/checkout@v4
25 | - name: Set up Python
26 | uses: actions/setup-python@v3
27 | with:
28 | python-version: '3.x'
29 | - name: Install dependencies
30 | run: |
31 | python -m pip install --upgrade pip
32 | pip install build
33 | - name: Build package
34 | run: python -m build
35 | - name: Publish package
36 | uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
37 | with:
38 | user: __token__
39 | password: ${{ secrets.PYPI_API_TOKEN }}
40 |
--------------------------------------------------------------------------------
/.idea/PyWwise.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/webResources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/CHANGES.md:
--------------------------------------------------------------------------------
1 | # 0.2 (March 15, 2025)
2 | - Support for getting and setting properties in Wwise objects.
3 | - Getters for common paths in ProjectPath and OriginalsPath..
4 | - Enhanced WaqlQuery class (a beginner-friendly way to use WAQL).
5 | - Extended Python support to 3.11, for better compatibility with some versions of Unreal Engine 5.
6 | - Enhanced event data for `ak.wwise.core.soundbank.generated`.
7 |
8 | # 0.1 (October 21, 2024)
9 | - All functions and topics are implemented and functional.
10 | - Complete selection of Enums, Dataclasses, Aliases, and Primitive-like classes.
11 | - Support for context management (`with` statements).
12 | - Basic helper class for WAQL (Wwise Authoring Query Language) statements.
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include pywwise/*.py
2 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | Copyright 2024 Matheus Vilano
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | https://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
--------------------------------------------------------------------------------
/Pipfile:
--------------------------------------------------------------------------------
1 | [[source]]
2 | name = "pypi"
3 | url = "https://pypi.org/simple"
4 | verify_ssl = true
5 |
6 | [requires]
7 | python_version = "3.12"
8 | python_full_version = "3.12.3"
9 |
10 | [packages]
11 | simplevent = "~=2.1.3"
12 | setuptools = "~=70.1.1"
13 | waapi-client = "~=0.7.2"
14 |
15 | [dev-packages]
16 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [build-system]
2 | requires = ["setuptools>=61.0", "wheel"]
3 | build-backend = "setuptools.build_meta"
4 |
5 | [project]
6 | name = "pywwise"
7 | version = "0.2.3"
8 | description = "A comprehensive Wwise Authoring API wrapper - fully documented, with auto-completion in mind."
9 | authors = [{ name = "Matheus Vilano" }]
10 | license = { file = "LICENSE" }
11 | readme = "README.md"
12 | requires-python = ">=3.11"
13 | keywords = ["audiokinetic", "wwise", "waapi", "game", "audio", "sound", "automation", "scripting", "asset", "pipeline"]
14 |
15 | classifiers = [
16 | "Development Status :: 4 - Beta",
17 | "Intended Audience :: Developers",
18 | "Intended Audience :: Education",
19 | "License :: OSI Approved :: Apache Software License",
20 | "Operating System :: OS Independent",
21 | "Programming Language :: Python :: 3",
22 | ]
23 |
24 | dependencies = [
25 | "simplevent~=2.2.0",
26 | "waapi-client~=0.7.2"
27 | ]
28 |
29 | [project.urls]
30 | "Author Website" = "https://www.matheusvilano.com/"
31 | "Git Repository" = "https://github.com/matheusvilano/PyWwise.git"
32 |
33 | [tool.setuptools.packages]
34 | find = { where = ["."], include = ["pywwise", "pywwise.*"] }
35 |
36 | [tool.setuptools.package-data]
37 | "pywwise" = ["**/*.py"]
38 |
--------------------------------------------------------------------------------
/pywwise/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from logging import CRITICAL as _LEVEL_CRITICAL, getLogger as _getLogger
5 |
6 | from waapi import CallbackExecutor, SequentialThreadExecutor
7 |
8 | from pywwise.aliases import *
9 | from pywwise.enums import *
10 | from pywwise.objects import *
11 | from pywwise.primitives import *
12 | from pywwise.structs import *
13 | from pywwise.waapi.ak import Ak as _Ak, WwiseConnection
14 | from pywwise.waql import *
15 |
16 | _getLogger("waapi").setLevel(_LEVEL_CRITICAL)
17 |
18 |
19 | def new_waapi_connection(url: str = "ws://127.0.0.1:8080/waapi", *, allow_exception: bool = False,
20 | callback_executor: CallbackExecutor = SequentialThreadExecutor,
21 | is_debug_build: bool = False, is_console_instance: bool = False,
22 | watch_list: tuple[WwiseObjectWatch, ...] = ()) -> WwiseConnection:
23 | """
24 | Connects to an instance of Wwise.
25 | :param url: URL of the Wwise Authoring API WAMP server, defaults to `ws://127.0.0.1:8080/waapi`.
26 | :param allow_exception: Allow errors on call and subscribe to throw an exception. Default is False.
27 | :param callback_executor: Executor strategy for event callbacks.
28 | :param is_debug_build: Should be set to true if the instance of Wwise is a debug build and debug-only.
29 | :param is_console_instance: Should be set to true if the instance of Wwise is running in a console window.
30 | functions/topics are required.
31 | :param watch_list: A tuple of `WwiseObjectWatch` instances. This will be used to set up the
32 | `ak.wwise.core.object.property_changed` event.
33 | :return: A WAAPI connection.
34 | """
35 | return _Ak(url, allow_exception, callback_executor, is_debug_build, is_console_instance, watch_list)
36 |
37 |
38 | def set_waapi_logging(level: int):
39 | """
40 | Sets the WAAPI logger's level. By default, the logger will only log `CRITICAL` errors, which are rare. Use this
41 | function if you are experiencing issues with any functions/topics and would like more information from the logger.
42 | :param level: The level, represented as an integer. Common values: NOTSET=0, DEBUG=10, INFO=20, WARNING=30,
43 | ERROR=40, CRITICAL=50.
44 | """
45 | _getLogger("waapi").setLevel(level)
46 |
--------------------------------------------------------------------------------
/pywwise/aliases.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pathlib import Path as _Path
5 | from re import Pattern as _Pattern
6 | from typing import (List as _List, Set as _Set, Tuple as _Tuple, TypeAlias as _TypeAlias, TypeVar as _TypeVar,
7 | Union as _Union)
8 |
9 | # region BuiltIn
10 |
11 | SystemPath: _TypeAlias = _Path
12 | """Represents a filesystem path."""
13 |
14 | RegexPattern: _TypeAlias = _Pattern
15 | """Represents a Regex pattern."""
16 |
17 | UnionType: _TypeVar = _TypeVar("UnionType")
18 | """Type variable for Unions."""
19 |
20 | ListOrTuple: _TypeAlias = _Union[_List[UnionType], _Tuple[UnionType, ...]]
21 | """Custom type representing both `List` and `Tuple`."""
22 |
23 | ListOrTupleOrSet: _TypeAlias = _Union[_List[UnionType], _Tuple[UnionType, ...], _Set[UnionType]]
24 | """Custom type representing `List`, `Tuple`, and `Set`."""
25 |
26 | # endregion
27 |
--------------------------------------------------------------------------------
/pywwise/decorators.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from typing import Callable as _Callable
5 |
6 |
7 | def callback(func: _Callable) -> _Callable:
8 | """
9 | A decorator for PyWwise callbacks. Checks if the associated event is valid and has any subscribers. If it has at
10 | least one subscriber, it will be broadcast. For the decorated function to work properly: \n
11 | - its name should start with the prefix `_on_` (e.g. `_on_event_happened`).
12 | - its associated event should have the same name, minus the prefix `_on_` (e.g. `event_happened`).
13 | - both the decorated function and the associated event should be encapsulated within the same object.
14 | :param func: The function to decorate.
15 | :return: The decorated function.
16 | """
17 |
18 | def wrapper(self, **kwargs):
19 | event = getattr(self, func.__name__[4:]) # removing the prefix "_on_" gives the RefEvent
20 | if event is None:
21 | raise NameError(f"Function '{func.__name__}' missing associated event: '{func.__name__[4:]}'.")
22 | if len(event) > 0:
23 | return func(self, event, **kwargs)
24 |
25 | return wrapper
26 |
27 |
28 | def console_instance_only(func: _Callable) -> _Callable:
29 | """
30 | A decorator for functions that can only be called on a console instance of Wwise. Checks the owner object's
31 | `is_console_instance` (or, alternatively, `_is_console_instance`); if `None` or `False`, the decorated function will
32 | NOT be called and an exception is raised. Note: if there is no owner object, the check defaults to `None`. \n
33 | :param func: The function to decorate.
34 | :raise: NameError - if `is_console_instance` does not exist.
35 | :raise: ValueError - if `is_console_instance` is False.
36 | :return: The decorated function.
37 | """
38 | attr_name = "is_console_instance"
39 |
40 | def wrapper(self, *args, **kwargs):
41 | flag = getattr(self, attr_name) \
42 | if hasattr(self, attr_name) \
43 | else getattr(self, f"_{attr_name}", None)
44 | if flag is None:
45 | raise NameError(f"Object '{self}' does not have an attribute named '{attr_name}'.")
46 | if flag is True:
47 | raise ValueError(f"Debug function called on a non-console instance of 'Ak'.")
48 | return func(self, *args, **kwargs)
49 |
50 | return wrapper
51 |
52 |
53 | def debug_build_only(func: _Callable) -> _Callable:
54 | """
55 | A decorator for PyWwise debug-only functions. Checks the owner object's `is_debug_build` (or, alternatively,
56 | `_is_debug_build`); if `None` or `False`, the decorated function will NOT be called and an exception is raised.
57 | Note: if there is no owner object, the check defaults to `None`. \n
58 | :param func: The function to decorate.
59 | :raise: NameError - if `is_debug_build` does not exist.
60 | :raise: ValueError - if `is_debug_build` is False.
61 | :return: The decorated function.
62 | """
63 | attr_name = "is_debug_build"
64 |
65 | def wrapper(self, *args, **kwargs):
66 | flag = getattr(self, attr_name) \
67 | if hasattr(self, attr_name) \
68 | else getattr(self, f"_{attr_name}", None)
69 | if flag is None:
70 | raise NameError(f"Object '{self}' does not have an attribute named '{attr_name}'.")
71 | if flag is True:
72 | raise ValueError(f"Debug function called on a non-debug instance of 'Ak'.")
73 | return func(self, *args, **kwargs)
74 |
75 | return wrapper
76 |
--------------------------------------------------------------------------------
/pywwise/metas.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | class SingletonMeta(type):
5 | """Metaclass for singletons."""
6 |
7 | _instances = dict()
8 | """A dictionary where the keys are classes and the values are instances."""
9 |
10 | def __call__(cls, *args, **kwargs):
11 | """
12 | Operator `()`.
13 | :param args: Positional arguments.
14 | :param kwargs: Keyword arguments.
15 | :return: The singleton instance of the `cls` class.
16 | """
17 | if cls not in cls._instances:
18 | instance = super().__call__(*args, **kwargs)
19 | cls._instances[cls] = instance
20 | return cls._instances[cls]
21 |
22 |
23 | class StaticMeta(type):
24 | """Metaclass for statics."""
25 |
26 | def __call__(cls, *args, **kwargs):
27 | """
28 | Operator `()`. Will prevent the creation of a new instance.
29 | :param args: Positional arguments.
30 | :param kwargs: Keyword arguments.
31 | :raise: TypeError, as a static class must not have any instances of itself.
32 | """
33 | raise TypeError(f"Cannot instantiate a static class. Use '{cls.__name__}.function_name()' instead.")
34 |
--------------------------------------------------------------------------------
/pywwise/modules.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from importlib import import_module as _import_module
5 |
6 |
7 | class LazyModule:
8 | """A proxy for lazy-importing modules."""
9 |
10 | def __init__(self, module_name: str):
11 | """
12 | Stores a module name, which will be lazy-initialized (deferred).
13 | :param module_name: The name of the module.
14 | """
15 | self.module_name = module_name
16 | self._module = None
17 |
18 | def __getattr__(self, name):
19 | """
20 | During the first access,
21 | :param name:
22 | :return:
23 | """
24 | if self._module is None:
25 | self._module = _import_module(self.module_name)
26 | return getattr(self._module, name)
27 |
--------------------------------------------------------------------------------
/pywwise/objects/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.abc import WwiseObject, WwiseObjectType
5 | from pywwise.objects.effects import (MasteringSuite, Wwise3DAudioBedMixer, WwiseCompressor, WwiseConvolutionReverb,
6 | WwiseDelay, WwiseExpander, WwiseFlanger, WwiseGain, WwiseGuitarDistortion,
7 | WwiseHarmonizer, WwiseMatrixReverb, WwiseMeter, WwiseParametricEq,
8 | WwisePeakLimiter, WwisePitchShifter, WwiseRecorder, WwiseReflect, WwiseRoomVerb,
9 | WwiseStereoDelay, WwiseTimeStretch, WwiseTremolo)
10 | from pywwise.objects.sources import (Impacter, MotionSource, SoundSeedAirWind, SoundSeedAirWoosh, SoundSeedGrain,
11 | WwiseSilence, WwiseSynthOne, WwiseToneGenerator)
12 | from pywwise.objects.types import (AcousticTexture, Action, ActionException, ActorMixer, Attenuation, AudioDevice,
13 | AudioSource, AuxBus, BlendContainer, BlendTrack, Bus, ControlSurfaceBinding,
14 | ControlSurfaceBindingGroup, ControlSurfaceSession, Conversion, Curve,
15 | CustomState, DialogueEvent, Effect, EffectSlot, Event, ExternalSource,
16 | ExternalSourceFile, Folder, GameParameter, Language, Marker, Metadata,
17 | MidiFileSource, MidiParameter, MixingSession, Modifier, ModulatorEnvelope,
18 | ModulatorLfo, ModulatorTime, MultiSwitchEntry, MusicClip, MusicClipMidi,
19 | MusicCue, MusicEventCue, MusicFade, MusicPlaylistContainer, MusicPlaylistItem,
20 | MusicSegment, MusicStinger, MusicSwitchContainer, MusicTrack, MusicTrackSequence,
21 | MusicTransition, ObjectSettingAssoc, Panner, Path2D, Platform, PluginDataSource,
22 | Position, Project, Query, RandomSequenceContainer, Rtpc, SearchCriteria, Sound,
23 | SoundBank, SoundcasterSession, SourcePlugin, State, StateGroup, Switch,
24 | SwitchContainer, SwitchGroup, Trigger, UserProjectSettings, WorkUnit)
25 |
--------------------------------------------------------------------------------
/pywwise/objects/abc.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import Any as _Any, TYPE_CHECKING as _TYPE_CHECKING, TypeVar as _TypeVar
7 |
8 | if _TYPE_CHECKING:
9 | from pywwise.structs import WwiseObjectInfo
10 |
11 | from abc import ABC as _ABC
12 | from enum import Enum as _Enum
13 | from types import NoneType as _NoneType
14 |
15 | from pywwise.enums import EObjectType
16 | from pywwise.primitives import GUID, Name, ProjectPath
17 | from pywwise.waapi.ak.ak import WwiseConnection, Ak
18 |
19 |
20 | class WwiseObject(_ABC):
21 | """
22 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wobjects_index.html \n
23 | The base class for any class that serves as interface for getting/setting properties on Wwise objects.
24 | """
25 |
26 | def __init__(self, guid: GUID | WwiseObjectInfo, ak: WwiseConnection = None,
27 | platform: GUID | Name | _NoneType = None):
28 | """
29 | Uses a GUID to initialize a strongly-typed dynamic object, capable of fetching information from Wwise as needed.
30 | :param guid: If you may also pass a `WwiseObjectInfo` instance - this function will extract only the GUID.
31 | :param ak: If you want to use a specific connection, specify it here. If not, the most recent connection will
32 | be used.
33 | :param platform: If you want your object to only be used on a specific platform, specify which one here.
34 | """
35 | self._ak: WwiseConnection = ak if ak is not None else Ak.get_connections()[-1]
36 | self._guid: GUID = guid if isinstance(guid, GUID) else getattr(guid, "guid", GUID.get_null())
37 | self._query: str = f"$ from object \"{self._guid}\" take 1"
38 | self._platform: GUID | Name | _NoneType = platform
39 |
40 | def get_property(self, name: str, default: _Any = None) -> _NoneType | bool | int | float | str | GUID | _Enum:
41 | """
42 | Gets the value of a property, reference, or list from this object in Wwise.
43 | :param name: The name of the property, reference, or list.
44 | :param default: The default value, in case retrieving the value fails.
45 | :return: The value of the property. This *can* be `None`.
46 | """
47 | info = self._ak.wwise.core.object.get(self._query, (name,))[0]
48 | return info.other.get(name, default)
49 |
50 | def set_property(self, name: str, value: _Any, is_reference: bool = False):
51 | if not is_reference:
52 | self._ak.wwise.core.object.set_property(self._guid, name, value, self._platform)
53 | else:
54 | self._ak.wwise.core.object.set_reference(self._guid, name, value, self._platform)
55 |
56 | @property
57 | def is_connected(self) -> bool:
58 | """
59 | Checks if this instance is connected to Wwise.
60 | :return: True if connected, False otherwise.
61 | """
62 | return self._ak.is_connected() if self._ak is not None else False
63 |
64 | @property
65 | def guid(self) -> GUID:
66 | """
67 | Get GUID.
68 | :return: Current GUID.
69 | """
70 | return self._guid
71 |
72 | @property
73 | def name(self) -> Name:
74 | """
75 | Get name.
76 | :return: Current name.
77 | """
78 | return self._ak.wwise.core.object.get(self._query)[0].name
79 |
80 | @name.setter
81 | def name(self, name: Name | str):
82 | """
83 | Set name.
84 | :param name: New name.
85 | """
86 | self._ak.wwise.core.object.set_name(self._guid, name)
87 |
88 | @property
89 | def path(self) -> ProjectPath:
90 | """
91 | Get path.
92 | :return: Current path.
93 | """
94 | return self._ak.wwise.core.object.get(self._query)[0].path
95 |
96 | @path.setter
97 | def path(self, path: ProjectPath):
98 | """
99 | Set path.
100 | :param path: New path.
101 | """
102 | if path[-1] == '\\': # ProjectPath always uses `\\` instead of `/`.
103 | path = path[:-1] # Remove slash.
104 | tokens = path.split('\\')
105 | if tokens[-1] == self.name: # We only need the path up to the parent.
106 | path = tokens[:-1] # Remove name.
107 | self._ak.wwise.core.object.move(self.guid, path)
108 |
109 | @property
110 | def type(self) -> EObjectType:
111 | """
112 | Get type.
113 | :return: The type.
114 | """
115 | return self._ak.wwise.core.object.get(self._query)[0].type
116 |
117 |
118 | WwiseObjectType = _TypeVar("WwiseObjectType", bound=WwiseObject)
119 |
--------------------------------------------------------------------------------
/pywwise/objects/components/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matheusvilano/PyWwise/22f99a985c7bf2c2b11a412a42fa0ecec60168f2/pywwise/objects/components/__init__.py
--------------------------------------------------------------------------------
/pywwise/objects/effects/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.effects.mastering_suite import MasteringSuite
5 | from pywwise.objects.effects.wwise_3d_audio_bed_mixer import Wwise3DAudioBedMixer
6 | from pywwise.objects.effects.wwise_compressor import WwiseCompressor
7 | from pywwise.objects.effects.wwise_convolution_reverb import WwiseConvolutionReverb
8 | from pywwise.objects.effects.wwise_delay import WwiseDelay
9 | from pywwise.objects.effects.wwise_expander import WwiseExpander
10 | from pywwise.objects.effects.wwise_flanger import WwiseFlanger
11 | from pywwise.objects.effects.wwise_gain import WwiseGain
12 | from pywwise.objects.effects.wwise_guitar_distortion import WwiseGuitarDistortion
13 | from pywwise.objects.effects.wwise_harmonizer import WwiseHarmonizer
14 | from pywwise.objects.effects.wwise_matrix_reverb import WwiseMatrixReverb
15 | from pywwise.objects.effects.wwise_meter import WwiseMeter
16 | from pywwise.objects.effects.wwise_parametric_eq import WwiseParametricEq
17 | from pywwise.objects.effects.wwise_peak_limiter import WwisePeakLimiter
18 | from pywwise.objects.effects.wwise_pitch_shifter import WwisePitchShifter
19 | from pywwise.objects.effects.wwise_recorder import WwiseRecorder
20 | from pywwise.objects.effects.wwise_reflect import WwiseReflect
21 | from pywwise.objects.effects.wwise_roomverb import WwiseRoomVerb
22 | from pywwise.objects.effects.wwise_stereo_delay import WwiseStereoDelay
23 | from pywwise.objects.effects.wwise_time_stretch import WwiseTimeStretch
24 | from pywwise.objects.effects.wwise_tremolo import WwiseTremolo
25 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_3d_audio_bed_mixer.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EAudioObjectOptions, EMainMixConfiguration, EPassthroughMixPolicy
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Wwise3DAudioBedMixer(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_3d_audio_bed_mixer.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_3D_AUDIO_BED_MIXER`.
14 | """
15 | main_mix_configuration = WwiseProperty[EMainMixConfiguration]("MainMixConfiguration", EMainMixConfiguration)
16 | passthrough_mix_policy = WwiseProperty[EPassthroughMixPolicy]("PassThroughMixPolicy", EPassthroughMixPolicy)
17 | system_audio_object_limit = WwiseProperty[int]("SystemAudioObjectLimit", int)
18 | system_audio_objects_policy = WwiseProperty[EAudioObjectOptions]("SystemAudioObjectsPolicy", EAudioObjectOptions)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_compressor.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwiseCompressor(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_compressor.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.WWISE_COMPRESSOR`.
13 | """
14 | attack_time = WwiseProperty[float]("AttackTime", float)
15 | channel_link = WwiseProperty[bool]("ChannelLink", bool)
16 | output_gain = WwiseProperty[float]("OutputGain", float)
17 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
18 | ratio = WwiseProperty[float]("Ratio", float)
19 | release_time = WwiseProperty[float]("ReleaseTime", float)
20 | threshold = WwiseProperty[float]("Threshold", float)
21 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_convolution_reverb.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import (EConvolutionReverbAlgorithm, EConvolutionReverbBlockSize,
6 | EConvolutionReverbIrChannelSelection, EConvolutionReverbIrLpfSlope, ESpeakerBitMask)
7 | from pywwise.objects.abc import WwiseObject
8 |
9 |
10 | class WwiseConvolutionReverb(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_convolution_reverb.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.WWISE_CONVOLUTION_REVERB`.
15 | """
16 | algo_type_select = WwiseProperty[EConvolutionReverbAlgorithm]("AlgoTypeSelect", EConvolutionReverbAlgorithm)
17 | centre_level = WwiseProperty[float]("CenterLevel", float)
18 | channel_config_override = WwiseProperty[ESpeakerBitMask]("ChannelConfigOverride", ESpeakerBitMask)
19 | dry_level = WwiseProperty[float]("DryLevel", float)
20 | front_level = WwiseProperty[float]("FrontLevel", float)
21 | front_rear_delay = WwiseProperty[float]("FrontRearDelay", float)
22 | full_precision_media = WwiseProperty[bool]("FullPrecisionMedia", bool)
23 | hardware_acceleration = WwiseProperty[bool]("HardwareAcceleration", bool)
24 | ir_channel_selection = WwiseProperty[EConvolutionReverbIrChannelSelection](
25 | "IRChannelSelect", EConvolutionReverbIrChannelSelection)
26 | ir_convolution_smooth = WwiseProperty[float]("IRConvolutionSmooth", float)
27 | ir_convolution_smooth_max = WwiseProperty[float]("IRConvolutionSmoothMax", float)
28 | ir_convolution_start = WwiseProperty[float]("IRConvolutionStart", float)
29 | ir_convolution_stop = WwiseProperty[float]("IRConvolutionStop", float)
30 | ir_convolution_threshold = WwiseProperty[float]("IRConvolutionThreshold", float)
31 | ir_graphic_eq_automate = WwiseProperty[bool]("IRGraphicEQAutomate", bool)
32 | ir_lpf_automate = WwiseProperty[bool]("IRLPFAutomate", bool)
33 | ir_lpf_slope = WwiseProperty[EConvolutionReverbIrLpfSlope]("IRLPFSlope", EConvolutionReverbIrLpfSlope)
34 | ir_lr_mix = WwiseProperty[float]("IRLRMix", float)
35 | ir_level = WwiseProperty[float]("IRLevel", float)
36 | ir_level_automate = WwiseProperty[bool]("IRLevelAutomate", bool)
37 | ir_stretch = WwiseProperty[float]("IRStretch", float)
38 | input_centre_level = WwiseProperty[float]("InputCenterLevel", float)
39 | input_lfe_level = WwiseProperty[float]("InputLFELevel", float)
40 | input_stereo_width = WwiseProperty[float]("InputStereoWidth", float)
41 | input_threshold = WwiseProperty[float]("InputThreshold", float)
42 | lfe_level = WwiseProperty[float]("LFELevel", float)
43 | pre_delay = WwiseProperty[float]("PreDelay", float)
44 | rear_level = WwiseProperty[float]("RearLevel", float)
45 | sound_engine_block_size = WwiseProperty[EConvolutionReverbBlockSize](
46 | "SoundEngineBlockSize", EConvolutionReverbBlockSize)
47 | sound_engine_sample_rate_default = WwiseProperty[int]("SoundEngineSampleRateDefault", int)
48 | sound_engine_sample_rate_mac = WwiseProperty[int]("SoundEngineSampleRateMac", int)
49 | sound_engine_sample_rate_ios = WwiseProperty[int]("SoundEngineSampleRateiOS", int)
50 | stereo_width = WwiseProperty[float]("StereoWidth", float)
51 | wet_level = WwiseProperty[float]("WetLevel", float)
52 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_delay.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwiseDelay(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_delay.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.WWISE_DELAY`.
13 | """
14 | delay_time = WwiseProperty[float]("DelayTime", float)
15 | feedback = WwiseProperty[float]("Feedback", float)
16 | feedback_enabled = WwiseProperty[bool]("FeedbackEnabled", bool)
17 | output_level = WwiseProperty[float]("OutputLevel", float)
18 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
19 | wet_dry_mix = WwiseProperty[float]("WetDryMix", float)
20 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_expander.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwiseExpander(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_expander.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.WWISE_EXPANDER`.
13 | """
14 | attack_time = WwiseProperty[float]("AttackTime", float)
15 | channel_link = WwiseProperty[bool]("ChannelLink", bool)
16 | output_gain = WwiseProperty[float]("OutputGain", float)
17 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
18 | ratio = WwiseProperty[float]("Ratio", float)
19 | release_time = WwiseProperty[float]("ReleaseTime", float)
20 | threshold = WwiseProperty[float]("Threshold", float)
21 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_flanger.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EModPhaseMode, EModWaveform
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseFlanger(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_flanger.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_FLANGER`.
14 | """
15 | delay_time = WwiseProperty[float]("DelayTime", float)
16 | dry_level = WwiseProperty[float]("DryLevel", float)
17 | enable_lfo = WwiseProperty[bool]("EnableLFO", bool)
18 | feed_back_level = WwiseProperty[float]("FeedBackLevel", float)
19 | feed_forward_level = WwiseProperty[float]("FeedForwardLevel", float)
20 | mod_depth = WwiseProperty[float]("ModDepth", float)
21 | mod_frequency = WwiseProperty[float]("ModFrequency", float)
22 | mod_pwm = WwiseProperty[float]("ModPWM", float)
23 | mod_phase_mode = WwiseProperty[EModPhaseMode]("ModPhaseMode", EModPhaseMode)
24 | mod_phase_offset = WwiseProperty[float]("ModPhaseOffset", float)
25 | mod_phase_spread = WwiseProperty[float]("ModPhaseSpread", float)
26 | mod_smoothing = WwiseProperty[float]("ModSmoothing", float)
27 | mod_waveform = WwiseProperty[EModWaveform]("ModWaveform", EModWaveform)
28 | output_level = WwiseProperty[float]("OutputLevel", float)
29 | process_centre = WwiseProperty[bool]("ProcessCenter", bool)
30 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
31 | wet_dry_mix = WwiseProperty[float]("WetDryMix", float)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_gain.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwiseGain(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_gain.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.WwiseGain`.
13 | """
14 | full_band_gain = WwiseProperty[float]("FullBandGain", float)
15 | lfe_gain = WwiseProperty[float]("LFEGain", float)
16 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_guitar_distortion.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EGuitarDistortionType, EGuitarDistortionFilterType
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseGuitarDistortion(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_guitar_distortion.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_GUITAR_DISTORTION`.
14 | """
15 | distortion_drive = WwiseProperty[float]("DistortionDrive", float)
16 | distortion_tone = WwiseProperty[float]("DistortionTone", float)
17 | distortion_type = WwiseProperty[EGuitarDistortionType]("DistortionType", EGuitarDistortionType)
18 | output_level = WwiseProperty[float]("OutputLevel", float)
19 | post_eq_band1_enable = WwiseProperty[bool]("PostEQBand1Enable", bool)
20 | post_eq_band1_type = WwiseProperty[EGuitarDistortionFilterType]("PostEQBand1FilterType", EGuitarDistortionFilterType)
21 | post_eq_band1_frequency = WwiseProperty[float]("PostEQBand1Frequency", float)
22 | post_eq_band1_gain = WwiseProperty[float]("PostEQBand1Gain", float)
23 | post_eq_band1_q = WwiseProperty[float]("PostEQBand1QFactor", float)
24 | post_eq_band2_enable = WwiseProperty[bool]("PostEQBand2Enable", bool)
25 | post_eq_band2_type = WwiseProperty[EGuitarDistortionFilterType]("PostEQBand2FilterType", EGuitarDistortionFilterType)
26 | post_eq_band2_frequency = WwiseProperty[float]("PostEQBand2Frequency", float)
27 | post_eq_band2_gain = WwiseProperty[float]("PostEQBand2Gain", float)
28 | post_eq_band2_q = WwiseProperty[float]("PostEQBand2QFactor", float)
29 | post_eq_band3_enable = WwiseProperty[bool]("PostEQBand3Enable", bool)
30 | post_eq_band3_type = WwiseProperty[EGuitarDistortionFilterType]("PostEQBand3FilterType", EGuitarDistortionFilterType)
31 | post_eq_band3_frequency = WwiseProperty[float]("PostEQBand3Frequency", float)
32 | post_eq_band3_gain = WwiseProperty[float]("PostEQBand3Gain", float)
33 | post_eq_band3_q = WwiseProperty[float]("PostEQBand3QFactor", float)
34 | pre_eq_band1_enable = WwiseProperty[bool]("PreEQBand1Enable", bool)
35 | pre_eq_band1_type = WwiseProperty[EGuitarDistortionFilterType]("PreEQBand1FilterType", EGuitarDistortionFilterType)
36 | pre_eq_band1_frequency = WwiseProperty[float]("PreEQBand1Frequency", float)
37 | pre_eq_band1_gain = WwiseProperty[float]("PreEQBand1Gain", float)
38 | pre_eq_band1_q = WwiseProperty[float]("PreEQBand1QFactor", float)
39 | pre_eq_band2_enable = WwiseProperty[bool]("PreEQBand2Enable", bool)
40 | pre_eq_band2_type = WwiseProperty[EGuitarDistortionFilterType]("PreEQBand2FilterType", EGuitarDistortionFilterType)
41 | pre_eq_band2_frequency = WwiseProperty[float]("PreEQBand2Frequency", float)
42 | pre_eq_band2_gain = WwiseProperty[float]("PreEQBand2Gain", float)
43 | pre_eq_band2_q = WwiseProperty[float]("PreEQBand2QFactor", float)
44 | pre_eq_band3_enable = WwiseProperty[bool]("PreEQBand3Enable", bool)
45 | pre_eq_band3_type = WwiseProperty[EGuitarDistortionFilterType]("PreEQBand3FilterType", EGuitarDistortionFilterType)
46 | pre_eq_band3_frequency = WwiseProperty[float]("PreEQBand3Frequency", float)
47 | pre_eq_band3_gain = WwiseProperty[float]("PreEQBand3Gain", float)
48 | pre_eq_band3_q = WwiseProperty[float]("PreEQBand3QFactor", float)
49 | rectification = WwiseProperty[float]("Rectification", float)
50 | wet_dry_mix = WwiseProperty[float]("WetDryMix", float)
51 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_harmonizer.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EHarmonizerFilterType, EHarmonizerInput
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseHarmonizer(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_harmonizer.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_HARMONIZER`.
14 | """
15 | dry_level = WwiseProperty[float]("DryLevel", float)
16 | input_format = WwiseProperty[EHarmonizerInput]("Input", EHarmonizerInput)
17 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
18 | sync_dry = WwiseProperty[bool]("SyncDry", bool)
19 | voice1_enable = WwiseProperty[bool]("Voice1Enable", bool)
20 | voice1_filter_frequency = WwiseProperty[float]("Voice1FilterFrequency", float)
21 | voice1_filter_gain = WwiseProperty[float]("Voice1FilterGain", float)
22 | voice1_filter_q = WwiseProperty[float]("Voice1FilterQFactor", float)
23 | voice1_filter_type = WwiseProperty[EHarmonizerFilterType]("Voice1FilterType", EHarmonizerFilterType)
24 | voice1_gain = WwiseProperty[float]("Voice1Gain", float)
25 | voice1_pitch = WwiseProperty[float]("Voice1Pitch", float)
26 | voice2_enable = WwiseProperty[bool]("Voice2Enable", bool)
27 | voice2_filter_frequency = WwiseProperty[float]("Voice2FilterFrequency", float)
28 | voice2_filter_gain = WwiseProperty[float]("Voice2FilterGain", float)
29 | voice2_filter_q = WwiseProperty[float]("Voice2FilterQFactor", float)
30 | voice2_filter_type = WwiseProperty[EHarmonizerFilterType]("Voice2FilterType", EHarmonizerFilterType)
31 | voice2_gain = WwiseProperty[float]("Voice2Gain", float)
32 | voice2_pitch = WwiseProperty[float]("Voice2Pitch", float)
33 | wet_level = WwiseProperty[float]("WetLevel", float)
34 | window_size = WwiseProperty[int]("WindowSize", int)
35 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_matrix_reverb.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EMatrixReverbDelayCount, EMatrixReverbDelayLengthsMode
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseMatrixReverb(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_matrix_reverb.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_MATRIX_REVERB`.
14 | """
15 | delay_lengths_mode = WwiseProperty[EMatrixReverbDelayLengthsMode]("DelayLengthsMode", EMatrixReverbDelayLengthsMode)
16 | delay_time_1 = WwiseProperty[float]("DelayTime1", float)
17 | delay_time_2 = WwiseProperty[float]("DelayTime2", float)
18 | delay_time_3 = WwiseProperty[float]("DelayTime3", float)
19 | delay_time_4 = WwiseProperty[float]("DelayTime4", float)
20 | delay_time_5 = WwiseProperty[float]("DelayTime5", float)
21 | delay_time_6 = WwiseProperty[float]("DelayTime6", float)
22 | delay_time_7 = WwiseProperty[float]("DelayTime7", float)
23 | delay_time_8 = WwiseProperty[float]("DelayTime8", float)
24 | delay_time_9 = WwiseProperty[float]("DelayTime9", float)
25 | delay_time_10 = WwiseProperty[float]("DelayTime10", float)
26 | delay_time_11 = WwiseProperty[float]("DelayTime11", float)
27 | delay_time_12 = WwiseProperty[float]("DelayTime12", float)
28 | delay_time_13 = WwiseProperty[float]("DelayTime13", float)
29 | delay_time_14 = WwiseProperty[float]("DelayTime14", float)
30 | delay_time_15 = WwiseProperty[float]("DelayTime15", float)
31 | delay_time_16 = WwiseProperty[float]("DelayTime16", float)
32 | dry_level = WwiseProperty[float]("DryLevel", float)
33 | hf_ratio = WwiseProperty[float]("HFRatio", float)
34 | number_of_delays = WwiseProperty[EMatrixReverbDelayCount]("NumberOfDelays", EMatrixReverbDelayCount)
35 | pre_delay = WwiseProperty[float]("PreDelay", float)
36 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
37 | reverb_time = WwiseProperty[float]("ReverbTime", float)
38 | wet_level = WwiseProperty[float]("WetLevel", float)
39 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_meter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EMeterMode, EMeterScope
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseMeter(WwiseObject): # TODO: add RTPC property once available
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_meter.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_METER`.
14 | """
15 | apply_downstream_volume = WwiseProperty[bool]("ApplyDownstreamVolume", bool)
16 | attack_time = WwiseProperty[float]("AttackTime", float)
17 | hold = WwiseProperty[float]("Hold", float)
18 | infinite_hold = WwiseProperty[bool]("InfiniteHold", bool)
19 | max = WwiseProperty[float]("Max", float)
20 | meter_mode = WwiseProperty[EMeterMode]("MeterMode", EMeterMode)
21 | meter_scope = WwiseProperty[EMeterScope]("MeterScope", EMeterScope)
22 | min = WwiseProperty[float]("Min", float)
23 | release_time = WwiseProperty[float]("ReleaseTime", float)
24 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_parametric_eq.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EParametricEqFilterType
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseParametricEq(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_parametric_eq.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_PARAMETRIC_EQ`.
14 | """
15 | filter_type_band1 = WwiseProperty[EParametricEqFilterType]("FilterTypeBand1", EParametricEqFilterType)
16 | filter_type_band2 = WwiseProperty[EParametricEqFilterType]("FilterTypeBand2", EParametricEqFilterType)
17 | filter_type_band3 = WwiseProperty[EParametricEqFilterType]("FilterTypeBand3", EParametricEqFilterType)
18 | frequency_band1 = WwiseProperty[float]("FrequencyBand1", float)
19 | frequency_band2 = WwiseProperty[float]("FrequencyBand2", float)
20 | frequency_band3 = WwiseProperty[float]("FrequencyBand3", float)
21 | gain_band1 = WwiseProperty[float]("GainBand1", float)
22 | gain_band2 = WwiseProperty[float]("GainBand2", float)
23 | gain_band3 = WwiseProperty[float]("GainBand3", float)
24 | on_off_band1 = WwiseProperty[bool]("OnOffBand1", bool)
25 | on_off_band2 = WwiseProperty[bool]("OnOffBand2", bool)
26 | on_off_band3 = WwiseProperty[bool]("OnOffBand3", bool)
27 | output_level = WwiseProperty[float]("OutputLevel", float)
28 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
29 | q_band1 = WwiseProperty[float]("QFactorBand1", float)
30 | q_band2 = WwiseProperty[float]("QFactorBand2", float)
31 | q_band3 = WwiseProperty[float]("QFactorBand3", float)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_peak_limiter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwisePeakLimiter(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_peak_limiter.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.WwisePeakLimiter`.
13 | """
14 | channel_link = WwiseProperty[bool]("ChannelLink", bool)
15 | look_ahead = WwiseProperty[float]("LookAhead", float)
16 | output_gain = WwiseProperty[float]("OutputGain", float)
17 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
18 | ratio = WwiseProperty[float]("Ratio", float)
19 | release_time = WwiseProperty[float]("ReleaseTime", float)
20 | threshold = WwiseProperty[float]("Threshold", float)
21 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_pitch_shifter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EPitchShifterFilterType, EPitchShifterInput
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwisePitchShifter(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_pitch_shifter.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_PITCH_SHIFTER`.
14 | """
15 | delay_time = WwiseProperty[float]("DelayTime", float)
16 | dry_level = WwiseProperty[float]("DryLevel", float)
17 | filter_frequency = WwiseProperty[float]("FilterFrequency", float)
18 | filter_gain = WwiseProperty[float]("FilterGain", float)
19 | filter_q = WwiseProperty[float]("FilterQFactor", float)
20 | filter_type = WwiseProperty[EPitchShifterFilterType]("FilterType", EPitchShifterFilterType)
21 | input = WwiseProperty[EPitchShifterInput]("Input", EPitchShifterInput)
22 | pitch = WwiseProperty[float]("Pitch", float)
23 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
24 | sync_dry = WwiseProperty[bool]("SyncDry", bool)
25 | wet_level = WwiseProperty[float]("WetLevel", float)
26 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_recorder.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import ERecorderAmbisonicsChannelOrdering, ERecorderFormat
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseRecorder(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_recorder.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_RECORDER`.
14 | """
15 | ambisonics_channel_ordering = WwiseProperty[ERecorderAmbisonicsChannelOrdering](
16 | "AmbisonicsChannelOrdering", ERecorderAmbisonicsChannelOrdering)
17 | apply_downstream_volume = WwiseProperty[bool]("ApplyDownstreamVolume", bool)
18 | authoring_filename = WwiseProperty[str]("AuthoringFilename", str)
19 | centre = WwiseProperty[float]("Center", float)
20 | downmix_to_stereo = WwiseProperty[bool]("DownmixToStereo", bool)
21 | format = WwiseProperty[ERecorderFormat]("Format", ERecorderFormat)
22 | game_filename = WwiseProperty[str]("GameFilename", str)
23 | lfe = WwiseProperty[float]("LFE", float)
24 | rear = WwiseProperty[float]("Rear", float)
25 | surround = WwiseProperty[float]("Surround", float)
26 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_reflect.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import (EReflectAlgorithm, EReflectChannelConfig, EReflectDecorrelationStrengthSource,
6 | EReflectFilterType, EReflectThresholdMode)
7 | from pywwise.objects.abc import WwiseObject
8 |
9 |
10 | class WwiseReflect(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_reflect.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.WWISE_REFLECT`.
15 | """
16 | base_texture_frequency = WwiseProperty[float]("BaseTextureFrequency", float)
17 | centre_percentage = WwiseProperty[float]("CenterPerc", float)
18 | curve_usage_mask = WwiseProperty[int]("CurveUsageMask", int)
19 | decorrelation_algorithm = WwiseProperty[EReflectAlgorithm]("DecorrAlgorithmSelect", EReflectAlgorithm)
20 | decorrelation_filter_max_reflection_order = WwiseProperty[int]("DecorrFilterMaxReflectionOrder", int)
21 | decorrelation_hardware_acceleration = WwiseProperty[bool]("DecorrHardwareAcceleration", bool)
22 | decorrelation_strength = WwiseProperty[float]("DecorrStrength", float)
23 | decorrelation_strength_source = WwiseProperty[EReflectDecorrelationStrengthSource](
24 | "DecorrStrengthSource", EReflectDecorrelationStrengthSource)
25 | decorrelation_window_width = WwiseProperty[int]("DecorrWindowWidth", int)
26 | diffraction_warping = WwiseProperty[float]("DiffractionWarping", float)
27 | distance_threshold = WwiseProperty[float]("DistanceThreshold", float)
28 | distance_warping = WwiseProperty[float]("DistanceWarping", float)
29 | dry = WwiseProperty[float]("Dry", float)
30 | fade_time = WwiseProperty[float]("FadeTime", float)
31 | fusing_time = WwiseProperty[float]("FusingTime", float)
32 | material_filtering_select = WwiseProperty[EReflectAlgorithm]("MaterialFilteringSelect", EReflectAlgorithm)
33 | max_distance = WwiseProperty[float]("MaxDistance", float)
34 | max_reflections = WwiseProperty[float]("MaxReflections", float)
35 | output_channel_config = WwiseProperty[EReflectChannelConfig]("OutputChannelConfig", EReflectChannelConfig)
36 | param_filter_cutoff = WwiseProperty[float]("ParamFilterCutoff", float)
37 | param_filter_type = WwiseProperty[EReflectFilterType]("ParamFilterType", EReflectFilterType)
38 | pitch_threshold = WwiseProperty[float]("PitchThreshold", float)
39 | speed_of_sound = WwiseProperty[float]("SpeedOfSound", float)
40 | stereo_decorrelation = WwiseProperty[bool]("StereoDecorrelation", bool)
41 | threshold_mode = WwiseProperty[EReflectThresholdMode]("ThresholdMode", EReflectThresholdMode)
42 | wet = WwiseProperty[float]("Wet", float)
43 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_roomverb.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import ERoomVerbFilterType, ERoomVerbInsertPosition
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseRoomVerb(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_roomverb.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_ROOMVERB`.
14 | """
15 | centre_level = WwiseProperty[float]("CenterLevel", float)
16 | dc_filter_cutoff_frequency = WwiseProperty[float]("DCFilterCutFreq", float)
17 | decay_time = WwiseProperty[float]("DecayTime", float)
18 | density = WwiseProperty[float]("Density", float)
19 | density_delay_max = WwiseProperty[float]("DensityDelayMax", float)
20 | density_delay_min = WwiseProperty[float]("DensityDelayMin", float)
21 | density_delay_rdm_percentage = WwiseProperty[float]("DensityDelayRdmPerc ", float)
22 | diffusion = WwiseProperty[float]("Diffusion", float)
23 | diffusion_delay_max = WwiseProperty[float]("DiffusionDelayMax", float)
24 | diffusion_delay_rdm_percentage = WwiseProperty[float]("DiffusionDelayRdmPerc", float)
25 | diffusion_delay_scale_percentage = WwiseProperty[float]("DiffusionDelayScalePerc", float)
26 | dry_level = WwiseProperty[float]("DryLevel", float)
27 | early_reflections_front_back_delay = WwiseProperty[float]("ERFrontBackDelay", float)
28 | early_reflections_level = WwiseProperty[float]("ERLevel", float)
29 | early_reflections_pattern = WwiseProperty[int]("ERPattern", int)
30 | enable_early_reflections = WwiseProperty[bool]("EnableEarlyReflections", bool)
31 | enable_tone_controls = WwiseProperty[bool]("EnableToneControls", bool)
32 | filter1_curve = WwiseProperty[ERoomVerbFilterType]("Filter1Curve", ERoomVerbFilterType)
33 | filter1_frequency = WwiseProperty[float]("Filter1Freq", float)
34 | filter1_gain = WwiseProperty[float]("Filter1Gain", float)
35 | filter1_insert_position = WwiseProperty[ERoomVerbInsertPosition]("Filter1InsertPos", ERoomVerbInsertPosition)
36 | filter1_q = WwiseProperty[float]("Filter1Q", float)
37 | filter2_curve = WwiseProperty[ERoomVerbFilterType]("Filter2Curve", ERoomVerbFilterType)
38 | filter2_frequency = WwiseProperty[float]("Filter2Freq", float)
39 | filter2_gain = WwiseProperty[float]("Filter2Gain", float)
40 | filter2_insert_position = WwiseProperty[ERoomVerbInsertPosition]("Filter2InsertPos", ERoomVerbInsertPosition)
41 | filter2_q = WwiseProperty[float]("Filter2Q", float)
42 | filter3_curve = WwiseProperty[ERoomVerbFilterType]("Filter3Curve", ERoomVerbFilterType)
43 | filter3_frequency = WwiseProperty[float]("Filter3Freq", float)
44 | filter3_gain = WwiseProperty[float]("Filter3Gain", float)
45 | filter3_insert_position = WwiseProperty[ERoomVerbInsertPosition]("Filter3InsertPos", ERoomVerbInsertPosition)
46 | filter3_q = WwiseProperty[float]("Filter3Q", float)
47 | front_level = WwiseProperty[float]("FrontLevel", float)
48 | high_frequency_damping = WwiseProperty[float]("HFDamping", float)
49 | input_centre_level = WwiseProperty[float]("InputCenterLevel", float)
50 | input_lfe_level = WwiseProperty[float]("InputLFELevel", float)
51 | lfe_level = WwiseProperty[float]("LFELevel", float)
52 | pre_delay = WwiseProperty[float]("PreDelay", float)
53 | quality = WwiseProperty[int]("Quality", int)
54 | rear_level = WwiseProperty[float]("RearLevel", float)
55 | reverb_level = WwiseProperty[float]("ReverbLevel", float)
56 | reverb_unit_input_delay = WwiseProperty[float]("ReverbUnitInputDelay", float)
57 | reverb_unit_input_delay_rmd_percentage = WwiseProperty[float]("ReverbUnitInputDelayRmdPerc", float)
58 | room_shape = WwiseProperty[float]("RoomShape", float)
59 | room_shape_max = WwiseProperty[float]("RoomShapeMax", float)
60 | room_shape_min = WwiseProperty[float]("RoomShapeMin", float)
61 | room_size = WwiseProperty[float]("RoomSize", float)
62 | stereo_width = WwiseProperty[float]("StereoWidth", float)
63 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_stereo_delay.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EStereoDelayFilterType, EStereoDelayInput
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseStereoDelay(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_stereo_delay.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_STEREO_DELAY`.
14 | """
15 | dry_level = WwiseProperty[float]("DryLevel", float)
16 | enable_cross_feed = WwiseProperty[bool]("EnableCrossFeed", bool)
17 | enable_feedback = WwiseProperty[bool]("EnableFeedback", bool)
18 | filter_frequency = WwiseProperty[float]("FilterFrequency", float)
19 | filter_gain = WwiseProperty[float]("FilterGain", float)
20 | filter_q = WwiseProperty[float]("FilterQFactor", float)
21 | filter_type = WwiseProperty[EStereoDelayFilterType]("FilterType", EStereoDelayFilterType)
22 | front_rear_balance = WwiseProperty[float]("FrontRearBalance", float)
23 | left_crossfeed = WwiseProperty[float]("LeftCrossfeed", float)
24 | left_delay_time = WwiseProperty[float]("LeftDelayTime", float)
25 | left_feedback = WwiseProperty[float]("LeftFeedback", float)
26 | left_input_type = WwiseProperty[EStereoDelayInput]("LeftInputType", EStereoDelayInput)
27 | right_crossfeed = WwiseProperty[float]("RightCrossfeed", float)
28 | right_delay_time = WwiseProperty[float]("RightDelayTime", float)
29 | right_feedback = WwiseProperty[float]("RightFeedback", float)
30 | right_input_type = WwiseProperty[EStereoDelayInput]("RightInputType", EStereoDelayInput)
31 | wet_level = WwiseProperty[float]("WetLevel", float)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_time_stretch.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import ETimeStretchMode, ETimeStretchStereoProcessing
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseTimeStretch(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect_wwise_time_stretch.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_TIME_STRETCH`.
14 | """
15 | output_gain = WwiseProperty[float]("OutputGain", float)
16 | pitch_shift = WwiseProperty[float]("PitchShift", float)
17 | pitch_shift_random = WwiseProperty[float]("PitchShiftRandom", float)
18 | quality = WwiseProperty[float]("Quality", float)
19 | stretch_mode = WwiseProperty[ETimeStretchMode]("QualityEnable", ETimeStretchMode)
20 | stereo_processing = WwiseProperty[ETimeStretchStereoProcessing]("StereoProcessing", ETimeStretchStereoProcessing)
21 | time_stretch = WwiseProperty[float]("TimeStretch", float)
22 | time_stretch_random = WwiseProperty[float]("TimeStretchRandom", float)
23 | window_size = WwiseProperty[int]("WindowSize", int)
24 |
--------------------------------------------------------------------------------
/pywwise/objects/effects/wwise_tremolo.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EModPhaseMode, EModWaveform
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseTremolo(WwiseObject):
10 | """
11 | \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WWISE_TREMOLO`.
14 | """
15 | mod_depth = WwiseProperty[float]("ModDepth", float)
16 | mod_frequency = WwiseProperty[float]("ModFrequency", float)
17 | mod_pwm = WwiseProperty[float]("ModPWM", float)
18 | mod_phase_mode = WwiseProperty[EModPhaseMode]("ModPhaseMode", EModPhaseMode)
19 | mod_phase_offset = WwiseProperty[float]("ModPhaseOffset", float)
20 | mod_phase_spread = WwiseProperty[float]("ModPhaseSpread", float)
21 | mod_smoothing = WwiseProperty[float]("ModSmoothing", float)
22 | mod_waveform = WwiseProperty[EModWaveform]("ModWaveform", EModWaveform)
23 | output_gain = WwiseProperty[float]("OutputGain", float)
24 | process_centrering = WwiseProperty[bool]("ProcessCenter", bool)
25 | process_lfe = WwiseProperty[bool]("ProcessLFE", bool)
26 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.sources.impacter import Impacter
5 | from pywwise.objects.sources.motion_source import MotionSource
6 | from pywwise.objects.sources.soundseed_air_wind import SoundSeedAirWind
7 | from pywwise.objects.sources.soundseed_air_woosh import SoundSeedAirWoosh
8 | from pywwise.objects.sources.soundseed_grain import SoundSeedGrain
9 | from pywwise.objects.sources.wwise_silence import WwiseSilence
10 | from pywwise.objects.sources.wwise_synth_one import WwiseSynthOne
11 | from pywwise.objects.sources.wwise_tone_generator import WwiseToneGenerator
12 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/impacter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class Impacter(WwiseObject): # TODO: Implement enums for this class once the plugin is not in beta anymore.
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_impacter.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.SOURCE_PLUGIN`. Note: this plugin is in BETA and subject to change. Some
13 | properties might also not work as expected or even be displayed in the Wwise UI.
14 | """
15 | excitation_mask = WwiseProperty[int]("ExcitationMask", int)
16 | excitation_selection_mode = WwiseProperty[int]("ExcitationSelectionMode", int)
17 | fm_depth = WwiseProperty[float]("FMDepth", float)
18 | fm_depth_random = WwiseProperty[float]("FMDepthRandom", float)
19 | file_excitation = WwiseProperty[int]("FileExcitation", int)
20 | file_model = WwiseProperty[int]("FileModel", int)
21 | impact_position = WwiseProperty[float]("ImpactPosition", float)
22 | impact_position_random = WwiseProperty[float]("ImpactPositionRandom", float)
23 | mass = WwiseProperty[float]("Mass", float)
24 | mass_random = WwiseProperty[float]("MassRandom", float)
25 | min_duration = WwiseProperty[float]("MinDuration", float)
26 | model_mask = WwiseProperty[int]("ModelMask", int)
27 | model_selection_mode = WwiseProperty[int]("ModelSelectionMode", int)
28 | num_files = WwiseProperty[int]("NumFiles", int)
29 | output_level = WwiseProperty[float]("OutputLevel", float)
30 | velocity = WwiseProperty[float]("Velocity", float)
31 | velocity_random = WwiseProperty[float]("VelocityRandom", float)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/motion_source.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EMotionChannelConfig, EMotionDriver
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MotionSource(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_motion_source.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOURCE_PLUGIN`.
14 | """
15 | channel_1 = WwiseProperty[EMotionDriver]("Channel1", EMotionDriver)
16 | channel_2 = WwiseProperty[EMotionDriver]("Channel2", EMotionDriver)
17 | channel_3 = WwiseProperty[EMotionDriver]("Channel3", EMotionDriver)
18 | channel_4 = WwiseProperty[EMotionDriver]("Channel4", EMotionDriver)
19 | channel_config = WwiseProperty[EMotionChannelConfig]("ChannelConfig", EMotionChannelConfig)
20 | driver_a = WwiseProperty[float]("DriverA", float)
21 | driver_b = WwiseProperty[float]("DriverB", float)
22 | driver_c = WwiseProperty[float]("DriverC", float)
23 | driver_d = WwiseProperty[float]("DriverD", float)
24 | driver_e = WwiseProperty[float]("DriverE", float)
25 | driver_f = WwiseProperty[float]("DriverF", float)
26 | driver_g = WwiseProperty[float]("DriverG", float)
27 | driver_h = WwiseProperty[float]("DriverH", float)
28 | high_1 = WwiseProperty[EMotionDriver]("High1", EMotionDriver)
29 | high_2 = WwiseProperty[EMotionDriver]("High2", EMotionDriver)
30 | left_trigger = WwiseProperty[EMotionDriver]("LeftTrigger", EMotionDriver)
31 | low_1 = WwiseProperty[EMotionDriver]("Low1", EMotionDriver)
32 | low_2 = WwiseProperty[EMotionDriver]("Low2", EMotionDriver)
33 | right_trigger = WwiseProperty[EMotionDriver]("RightTrigger", EMotionDriver)
34 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/soundseed_air_wind.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.enums import ESoundSeedAirChannelMask
5 | from pywwise.descriptors import WwiseProperty
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class SoundSeedAirWind(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_soundseed_air_wind.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOURCE_PLUGIN`.
14 | """
15 | attenuation_roll_of = WwiseProperty[float]("AttenuationRollOff", float)
16 | average_velocity = WwiseProperty[float]("AverageVelocity", float)
17 | average_velocity_automate = WwiseProperty[bool]("AverageVelocityAutomate", bool)
18 | average_velocity_random = WwiseProperty[float]("AverageVelocityRandom", float)
19 | channel_mask = WwiseProperty[ESoundSeedAirChannelMask]("ChannelMask", ESoundSeedAirChannelMask)
20 | direction = WwiseProperty[float]("Direction", float)
21 | direction_automate = WwiseProperty[bool]("DirectionAutomate", bool)
22 | direction_random = WwiseProperty[float]("DirectionRandom", float)
23 | duration = WwiseProperty[float]("Duration", float)
24 | duration_random = WwiseProperty[float]("DurationRandom", float)
25 | frequency_scale = WwiseProperty[float]("FrequencyScale", float)
26 | frequency_scale_automate = WwiseProperty[bool]("FrequencyScaleAutomate", bool)
27 | frequency_scale_random = WwiseProperty[float]("FrequencyScaleRandom", float)
28 | gain_offset = WwiseProperty[float]("GainOffset", float)
29 | gain_offset_automate = WwiseProperty[bool]("GainOffsetAutomate", bool)
30 | gain_offset_random = WwiseProperty[float]("GainOffsetRandom", float)
31 | gustiness = WwiseProperty[float]("Gustiness", float)
32 | gustiness_automate = WwiseProperty[bool]("GustinessAutomate", bool)
33 | gustiness_random = WwiseProperty[float]("GustinessRandom", float)
34 | max_distance = WwiseProperty[float]("MaxDistance", float)
35 | min_distance = WwiseProperty[float]("MinDistance", float)
36 | playback_rate = WwiseProperty[float]("PlaybackRate", float)
37 | q_factor_scale = WwiseProperty[float]("QFactorScale", float)
38 | q_factor_scale_automate = WwiseProperty[bool]("QFactorScaleAutomate", bool)
39 | q_factor_scale_random = WwiseProperty[float]("QFactorScaleRandom", float)
40 | variability = WwiseProperty[float]("Variability", float)
41 | variability_automate = WwiseProperty[bool]("VariabilityAutomate", bool)
42 | variability_random = WwiseProperty[float]("VariabilityRandom", float)
43 | velocity_dynamic_range = WwiseProperty[float]("VelocityDynamicRange", float)
44 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/soundseed_air_woosh.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.enums import ESoundSeedAirChannelMask, ENoiseColour
5 | from pywwise.descriptors import WwiseProperty
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class SoundSeedAirWoosh(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_soundseed_air_woosh.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOURCE_PLUGIN`.
14 | """
15 | attenuation_roll_of = WwiseProperty[float]("AttenuationRollOff", float)
16 | channel_mask = WwiseProperty[ESoundSeedAirChannelMask]("ChannelMask", ESoundSeedAirChannelMask)
17 | distance_attenuation = WwiseProperty[bool]("DistanceAttenuation", bool)
18 | duration = WwiseProperty[float]("Duration", float)
19 | duration_random = WwiseProperty[float]("DurationRandom", float)
20 | frequency_scale = WwiseProperty[float]("FrequencyScale", float)
21 | frequency_scale_automate = WwiseProperty[bool]("FrequencyScaleAutomate", bool)
22 | frequency_scale_random = WwiseProperty[float]("FrequencyScaleRandom", float)
23 | gain_offset = WwiseProperty[float]("GainOffset", float)
24 | gain_offset_automate = WwiseProperty[bool]("GainOffsetAutomate", bool)
25 | gain_offset_random = WwiseProperty[float]("GainOffsetRandom", float)
26 | min_distance = WwiseProperty[float]("MinDistance", float)
27 | noise_colour = WwiseProperty[ENoiseColour]("NoiseColour", ENoiseColour)
28 | oversampling = WwiseProperty[int]("Oversampling", int)
29 | playback_rate = WwiseProperty[float]("PlaybackRate", float)
30 | q_factor_scale = WwiseProperty[float]("QFactorScale", float)
31 | q_factor_scale_automate = WwiseProperty[bool]("QFactorScaleAutomate", bool)
32 | q_factor_scale_random = WwiseProperty[float]("QFactorScaleRandom", float)
33 | speed = WwiseProperty[float]("Speed", float)
34 | speed_automate = WwiseProperty[bool]("SpeedAutomate", bool)
35 | speed_point_speed_random = WwiseProperty[float]("SpeedPointSpeedRandom", float)
36 | speed_point_time_random = WwiseProperty[float]("SpeedPointTimeRandom", float)
37 | speed_random = WwiseProperty[float]("SpeedRandom", float)
38 | velocity_dynamic_range = WwiseProperty[float]("VelocityDynamicRange", float)
39 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/wwise_silence.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class WwiseSilence(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_wwise_silence.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.SOURCE_PLUGIN`.
13 | """
14 | length = WwiseProperty[float]("Length", float)
15 | length_max = WwiseProperty[float]("LengthMax", float)
16 | length_min = WwiseProperty[float]("LengthMin", float)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/wwise_synth_one.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EFrequencyMode, ENoiseColour, ESynthOneOperationMode, ESynthOneWaveform
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseSynthOne(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_wwise_synth_one.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOURCE_PLUGIN`.
14 | """
15 | base_frequency = WwiseProperty[float]("BaseFrequency", float)
16 | fm_amount = WwiseProperty[float]("FMAmount", float)
17 | frequency_mode = WwiseProperty[EFrequencyMode]("FrequencyMode", EFrequencyMode)
18 | noise_level = WwiseProperty[ENoiseColour]("NoiseLevel", ENoiseColour)
19 | noise_shape = WwiseProperty[float]("NoiseShape", float)
20 | operation_mode = WwiseProperty[ESynthOneOperationMode]("OperationMode", ESynthOneOperationMode)
21 | osc1_invert = WwiseProperty[bool]("Osc1Invert", bool)
22 | osc1_level = WwiseProperty[float]("Osc1Level", float)
23 | osc1_pwm = WwiseProperty[float]("Osc1Pwm", float)
24 | osc1_transpose = WwiseProperty[float]("Osc1Transpose", float)
25 | osc1_waveform = WwiseProperty[ESynthOneWaveform]("Osc1Waveform", ESynthOneWaveform)
26 | osc2_invert = WwiseProperty[bool]("Osc2Invert", bool)
27 | osc2_level = WwiseProperty[float]("Osc2Level", float)
28 | osc2_pwm = WwiseProperty[float]("Osc2Pwm", float)
29 | osc2_transpose = WwiseProperty[float]("Osc2Transpose", float)
30 | osc2_waveform = WwiseProperty[ESynthOneWaveform]("Osc2Waveform", ESynthOneWaveform)
31 | output_level = WwiseProperty[float]("OutputLevel", float)
32 | oversampling = WwiseProperty[bool]("Oversampling", bool)
33 |
--------------------------------------------------------------------------------
/pywwise/objects/sources/wwise_tone_generator.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EToneGenChannelMask, EToneGenDurationMode, EToneGenSweepFrequencyType, EToneGenWaveform
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WwiseToneGenerator(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_source_wwise_tone_generator.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOURCE_PLUGIN`.
14 | """
15 | attack_time = WwiseProperty[float]("AttackTime", float)
16 | channel_mask = WwiseProperty[EToneGenChannelMask]("ChannelMask", EToneGenChannelMask)
17 | decay_time = WwiseProperty[float]("DecayTime", float)
18 | duration_mode = WwiseProperty[EToneGenDurationMode]("DurMode", EToneGenDurationMode)
19 | release_time = WwiseProperty[float]("ReleaseTime", float)
20 | start_frequency = WwiseProperty[float]("StartFreq", float)
21 | start_frequency_random_max = WwiseProperty[float]("StartFreqRandMax", float)
22 | start_frequency_random_min = WwiseProperty[float]("StartFreqRandMin", float)
23 | stop_frequency = WwiseProperty[float]("StopFreq", float)
24 | stop_frequency_random_max = WwiseProperty[float]("StopFreqRandMax", float)
25 | stop_frequency_random_min = WwiseProperty[float]("StopFreqRandMin", float)
26 | sustain_level = WwiseProperty[float]("SustainLevel", float)
27 | sustian_time = WwiseProperty[float]("SustainTime", float)
28 | sweep_frequency = WwiseProperty[float]("SweepFreq", float)
29 | sweep_frequency_type = WwiseProperty[EToneGenSweepFrequencyType]("SweepFreqType", EToneGenSweepFrequencyType)
30 | wave_gain = WwiseProperty[float]("WaveGain", float)
31 | wave_type = WwiseProperty[EToneGenWaveform]("WaveType", EToneGenWaveform)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/types/acoustic_texture.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class AcousticTexture(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_acoustictexture.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.ACOUSTIC_TEXTURE`.
14 | """
15 | absorption_high = WwiseProperty[float]("AbsorptionHigh", float)
16 | absorption_low = WwiseProperty[float]("AbsorptionLow", float)
17 | absorption_mid_high = WwiseProperty[float]("AbsorptionMidHigh", float)
18 | absorption_mid_low = WwiseProperty[float]("AbsorptionMidLow", float)
19 | absorption_offset = WwiseProperty[float]("AbsorptionOffset", float)
20 | colour = WwiseProperty[EColour]("Color", EColour)
21 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
22 | scattering = WwiseProperty[float]("Scattering", float)
23 |
--------------------------------------------------------------------------------
/pywwise/objects/types/action.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EActionType, EScope, ESeekType, ESetterType
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.effect import Effect
8 | from pywwise.objects.types.effect_slot import EffectSlot
9 |
10 |
11 | class Action(WwiseObject):
12 | """
13 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_action.html \n
14 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
15 | the class represented by `EObjectType.ACTION`.
16 | """
17 | absolute_or_relative = WwiseProperty[ESetterType]("AbsoluteOrRelative", ESetterType)
18 | action_type = WwiseProperty[EActionType]("ActionType", EActionType)
19 | apply_to_dynamic_sequence = WwiseProperty[bool]("ApplyToDynamicSequence", bool)
20 | apply_to_state_transition = WwiseProperty[bool]("ApplyToStateTransition", bool)
21 | bypass_flag = WwiseProperty[bool]("BypassFlag", bool)
22 | bypass_game_parameter_internal_transition = WwiseProperty[bool]("BypassGameParameterInternalTransition", bool)
23 | delay = WwiseProperty[float]("Delay", float)
24 | effect_slot = WwiseProperty[EffectSlot]("EffectSlot", EffectSlot)
25 | fade_in_curve = WwiseProperty[int]("FadeInCurve", int)
26 | fade_out_curve = WwiseProperty[int]("FadeOutCurve", int)
27 | fade_time = WwiseProperty[float]("FadeTime", float)
28 | game_parameter_value = WwiseProperty[float]("GameParameterValue", float)
29 | highpass = WwiseProperty[int]("Highpass", int)
30 | inclusion = WwiseProperty[bool]("Inclusion", bool)
31 | lowpass = WwiseProperty[int]("Lowpass", int)
32 | master_resume = WwiseProperty[bool]("MasterResume", bool)
33 | pause_delayed_resume_action = WwiseProperty[bool]("PauseDelayedResumeAction", bool)
34 | pitch = WwiseProperty[float]("Pitch", float)
35 | probability = WwiseProperty[float]("Probability", float)
36 | resume_state_transition = WwiseProperty[bool]("ResumeStateTransition", bool)
37 | scope = WwiseProperty[EScope]("Scope", EScope)
38 | seek_percent = WwiseProperty[float]("SeekPercent", float)
39 | seek_time = WwiseProperty[float]("SeekTime", float)
40 | seek_to_marker = WwiseProperty[bool]("SeekToMarker", bool)
41 | seek_type = WwiseProperty[ESeekType]("SeekType", ESeekType)
42 | target = WwiseProperty[WwiseObject]("Target", WwiseObject)
43 | target_effect = WwiseProperty[Effect]("TargetEffect", Effect)
44 | volume = WwiseProperty[float]("Volume", float)
45 |
--------------------------------------------------------------------------------
/pywwise/objects/types/action_exception.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class ActionException(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_actionexception.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.ACTION_EXCEPTION`
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 | target = WwiseProperty[WwiseObject]("Target", WwiseObject)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/attenuation.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class Attenuation(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_attenuation.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.ATTENUATION`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | cone_attenuation = WwiseProperty[float]("ConeAttenuation", float)
18 | cone_high_pass_filter_value = WwiseProperty[int]("ConeHighPassFilterAngle", int)
19 | cone_inner_angle = WwiseProperty[int]("ConeInnerAngle", int)
20 | cone_low_pass_filter_value = WwiseProperty[int]("ConeLowPassFilterAngle", int)
21 | cone_outer_angle = WwiseProperty[int]("ConeOuterAngle", int)
22 | cone_use = WwiseProperty[bool]("ConeUse", bool)
23 | height_spread_enable = WwiseProperty[bool]("HeightSpreadEnable", bool)
24 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
25 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
26 | radius_max = WwiseProperty[float]("RadiusMax", float)
27 |
--------------------------------------------------------------------------------
/pywwise/objects/types/audio_device.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.effect_slot import EffectSlot
8 | from pywwise.objects.types.rtpc import Rtpc
9 |
10 |
11 | class AudioDevice(WwiseObject):
12 | """
13 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_audiodevice.html \n
14 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
15 | the class represented by `EObjectType.AUDIO_DEVICE`.
16 | """
17 | bypass_effect = WwiseProperty[bool]("BypassEffect", bool)
18 | colour = WwiseProperty[EColour]("Color", EColour)
19 | effects = WwiseProperty[list[EffectSlot]]("Effects", list[EffectSlot])
20 | inclusion = WwiseProperty[bool]("Inclusion", bool)
21 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
22 | rtpc = WwiseProperty[list[Rtpc]]("RTPC", list[Rtpc])
23 |
--------------------------------------------------------------------------------
/pywwise/objects/types/audio_source.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EFadeShape, EMarkerInputMode, ESpeakerBitMask
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.conversion import Conversion
8 | from pywwise.objects.types.marker import Marker
9 |
10 |
11 | class AudioSource(WwiseObject):
12 | """
13 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_audiofilesource.html \n
14 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
15 | the class represented by `EObjectType.AUDIO_SOURCE`.
16 | """
17 | channel_config_override = WwiseProperty[ESpeakerBitMask]("ChannelConfigOverride", ESpeakerBitMask)
18 | colour = WwiseProperty[EColour]("Color", EColour)
19 | conversion = WwiseProperty[Conversion]("Conversion", Conversion)
20 | crossfade_duration = WwiseProperty[float]("CrossfadeDuration", float)
21 | crossfade_shape = WwiseProperty[EFadeShape]("CrossfadeShape", EFadeShape)
22 | fade_in_duration = WwiseProperty[float]("FadeInDuration", float)
23 | fade_in_shape = WwiseProperty[EFadeShape]("FadeInShape", EFadeShape)
24 | fade_out_duration = WwiseProperty[float]("FadeOutDuration", float)
25 | fade_out_shape = WwiseProperty[EFadeShape]("FadeOutShape", EFadeShape)
26 | hdr_envelope = WwiseProperty[float]("HdrEnvelope", float)
27 | loop_begin = WwiseProperty[float]("LoopBegin", float)
28 | loop_end = WwiseProperty[float]("LoopEnd", float)
29 | marker_detection_sensitivity = WwiseProperty[float]("MarkerDetectionSensitivity", float)
30 | marker_input_mode = WwiseProperty[EMarkerInputMode]("MarkerInputMode", EMarkerInputMode)
31 | markers = WwiseProperty[list[Marker]]("Markers", list[Marker])
32 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
33 | override_conversion = WwiseProperty[bool]("OverrideConversion", bool)
34 | override_wav_loop = WwiseProperty[bool]("OverrideWavLoop", bool)
35 | trim_begin = WwiseProperty[float]("TrimBegin", float)
36 | trim_end = WwiseProperty[float]("TrimEnd", float)
37 | volume_offset = WwiseProperty[float]("VolumeOffset", float)
38 |
--------------------------------------------------------------------------------
/pywwise/objects/types/aux_bus.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from typing import Self as _Self
5 |
6 | from pywwise.descriptors import WwiseProperty
7 | from pywwise.enums import (E3DPosition, E3DSpatialization, EBusChannelConfiguration, EColour)
8 | from pywwise.objects.abc import WwiseObject
9 | from pywwise.objects.types.attenuation import Attenuation
10 | from pywwise.objects.types.effect_slot import EffectSlot
11 | from pywwise.objects.types.rtpc import Rtpc
12 | from pywwise.primitives import GUID
13 |
14 |
15 | class AuxBus(WwiseObject):
16 | """
17 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_auxbus.html \n
18 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
19 | the class represented by `EObjectType.AUX_BUS`.
20 | """
21 | position_3d = WwiseProperty[E3DPosition]("3DPosition", E3DPosition)
22 | spatialization_3d = WwiseProperty[E3DSpatialization]("3DSpatialization", E3DSpatialization)
23 | attenuation = WwiseProperty[Attenuation]("Attenuation", Attenuation)
24 | attenuation_distance_scaling = WwiseProperty[float]("AttenuationDistanceScaling", float)
25 | bus_channel_config = WwiseProperty[EBusChannelConfiguration]("BusChannelConfig", EBusChannelConfiguration)
26 | bus_volume = WwiseProperty[float]("BusVolume", float)
27 | bypass_all_effects = WwiseProperty[bool]("BypassEffect", bool)
28 | centre_percentage = WwiseProperty[float]("CenterPercentage", float)
29 | colour = WwiseProperty[EColour]("Color", EColour)
30 | effects = WwiseProperty[tuple[EffectSlot, ...]]("Effects", tuple)
31 | enable_attenuation = WwiseProperty[bool]("EnableAttenuation", bool)
32 | enable_diffraction = WwiseProperty[bool]("EnableDiffraction", bool)
33 | game_aux_send_hpf = WwiseProperty[int]("GameAuxSendHPF", int)
34 | game_aux_send_lpf = WwiseProperty[int]("GameAuxSendLPF", int)
35 | game_aux_send_volume = WwiseProperty[float]("GameAuxSendVolume", float)
36 | highpass = WwiseProperty[int]("Highpass", int)
37 | hold_emitter_position_orientation = WwiseProperty[bool]("HoldEmitterPositionOrientation", bool)
38 | hold_listener_orientation = WwiseProperty[bool]("HoldListenerOrientation", bool)
39 | listener_relative_routing = WwiseProperty[bool]("ListenerRelativeRouting", bool)
40 | lowpass = WwiseProperty[int]("Lowpass", int)
41 | metadata = WwiseProperty[GUID]("Metadata", GUID)
42 | output_bus_highpass = WwiseProperty[int]("OutputBusHighpass", int)
43 | output_bus_lowpass = WwiseProperty[int]("OutputBusLowpass", int)
44 | output_bus_volume = WwiseProperty[float]("OutputBusVolume", float)
45 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
46 | pitch = WwiseProperty[int]("Pitch", int)
47 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
48 | reflections_aux_send = WwiseProperty[_Self]("ReflectionsAuxSend", _Self)
49 | reflections_volume = WwiseProperty[float]("ReflectionsVolume", float)
50 | speaker_panning = WwiseProperty[int]("SpeakerPanning", int)
51 | speaker_panning_3d_spatialization_mix = WwiseProperty[int]("SpeakerPanning3DSpatializationMix", int)
52 | use_game_aux_sends = WwiseProperty[bool]("UseGameAuxSends", bool)
53 | user_aux_send_0 = WwiseProperty[_Self]("UserAuxSend0", _Self)
54 | user_aux_send_1 = WwiseProperty[_Self]("UserAuxSend1", _Self)
55 | user_aux_send_2 = WwiseProperty[_Self]("UserAuxSend2", _Self)
56 | user_aux_send_3 = WwiseProperty[_Self]("UserAuxSend3", _Self)
57 | user_aux_send_hpf_0 = WwiseProperty[int]("UserAuxSendHPF0", int)
58 | user_aux_send_hpf_1 = WwiseProperty[int]("UserAuxSendHPF1", int)
59 | user_aux_send_hpf_2 = WwiseProperty[int]("UserAuxSendHPF2", int)
60 | user_aux_send_hpf_3 = WwiseProperty[int]("UserAuxSendHPF3", int)
61 | user_aux_send_lpf_0 = WwiseProperty[int]("UserAuxSendLPF0", int)
62 | user_aux_send_lpf_1 = WwiseProperty[int]("UserAuxSendLPF1", int)
63 | user_aux_send_lpf_2 = WwiseProperty[int]("UserAuxSendLPF2", int)
64 | user_aux_send_lpf_3 = WwiseProperty[int]("UserAuxSendLPF3", int)
65 | user_aux_send_volume_0 = WwiseProperty[float]("UserAuxSendVolume0", float)
66 | user_aux_send_volume_1 = WwiseProperty[float]("UserAuxSendVolume1", float)
67 | user_aux_send_volume_2 = WwiseProperty[float]("UserAuxSendVolume2", float)
68 | user_aux_send_volume_3 = WwiseProperty[float]("UserAuxSendVolume3", float)
69 | voice_volume = WwiseProperty[float]("Volume", float)
70 |
--------------------------------------------------------------------------------
/pywwise/objects/types/blend_track.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 | from pywwise.objects.types.rtpc import Rtpc
7 |
8 |
9 | class BlendTrack(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_blendtrack.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.BLEND_TRACK`.
14 | """
15 | enable_cross_fading = WwiseProperty[bool]("EnableCrossFading", bool)
16 | highpass = WwiseProperty[int]("Highpass", int)
17 | layer_cross_fade_control_input = WwiseProperty[Rtpc]("LayerCrossFadeControlInput", Rtpc)
18 | lowpass = WwiseProperty[int]("Lowpass", int)
19 | make_up_gain = WwiseProperty[float]("MakeUpGain", float)
20 | pitch = WwiseProperty[int]("Pitch", int)
21 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
22 | volume = WwiseProperty[float]("Volume", float)
23 |
--------------------------------------------------------------------------------
/pywwise/objects/types/control_surface_binding.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EControlSurfaceBindingTargetType
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class ControlSurfaceBinding(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_controlsurfacebinding.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.CONTROL_SURFACE_BINDING`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | hardware_controller_key = WwiseProperty[str]("HardwareControllerKey", str)
17 | object_index_in_view = WwiseProperty[int]("ObjectIndexInView", int)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 | target_class_id = WwiseProperty[int]("TargetClassId", int)
20 | target_name = WwiseProperty[str]("TargetName", str)
21 | target_object = WwiseProperty[WwiseObject]("TargetObject", WwiseObject)
22 | target_type = WwiseProperty[EControlSurfaceBindingTargetType]("TargetType", EControlSurfaceBindingTargetType)
23 |
--------------------------------------------------------------------------------
/pywwise/objects/types/control_surface_binding_group.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EControlSurfaceBindingGroupType, EControlSurfaceBindingTargetType
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class ControlSurfaceBindingGroup(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_controlsurfacebindinggroup.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.CONTROL_SURFACE_BINDING_GROUP`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | group_type = WwiseProperty[EControlSurfaceBindingGroupType]("GroupType", EControlSurfaceBindingGroupType)
17 | hardware_controller_key = WwiseProperty[str]("HardwareControllerKey", str)
18 | object_index_in_view = WwiseProperty[int]("ObjectIndexInView", int)
19 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
20 | target_class_id = WwiseProperty[int]("TargetClassId", int)
21 | target_name = WwiseProperty[str]("TargetName", str)
22 | target_type = WwiseProperty[EControlSurfaceBindingTargetType]("TargetType", EControlSurfaceBindingTargetType)
23 |
--------------------------------------------------------------------------------
/pywwise/objects/types/control_surface_session.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class ControlSurfaceSession(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_controlsurfacesession.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.CONTROL_SURFACE_SESSION`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/conversion.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EChannelConversionSettings, EColour, ESampleRate, ESampleRateConversionQuality
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Conversion(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_conversion.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.CONVERSION`.
14 | """
15 | allow_channel_upmix = WwiseProperty[bool]("AllowChannelUpmix", bool)
16 | channels = WwiseProperty[EChannelConversionSettings]("Channels", EChannelConversionSettings)
17 | colour = WwiseProperty[EColour]("Color", EColour)
18 | lr_mix = WwiseProperty[float]("LRMix", float)
19 | max_sample_rate = WwiseProperty[ESampleRate]("MaxSampleRate", ESampleRate)
20 | min_sample_rate = WwiseProperty[ESampleRate]("MinSampleRate", ESampleRate)
21 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
22 | remove_dc_offset = WwiseProperty[bool]("RemoveDCOffset", bool)
23 | sr_conversion_quality = WwiseProperty[ESampleRateConversionQuality](
24 | "SRConversionQuality", ESampleRateConversionQuality)
25 | sample_rate = WwiseProperty[ESampleRate]("SampleRate", ESampleRate)
26 | use_dither = WwiseProperty[bool]("UseDither", bool)
27 | use_filename_marker = WwiseProperty[bool]("UseFilenameMarker", bool)
28 |
--------------------------------------------------------------------------------
/pywwise/objects/types/curve.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class Curve(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_curve.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.CURVE`.
13 | """
14 | flags = WwiseProperty[int]("Flags", int)
15 |
--------------------------------------------------------------------------------
/pywwise/objects/types/custom_state.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.abc import WwiseObject
5 |
6 |
7 | class CustomState(WwiseObject):
8 | """
9 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_customstate.html \n
10 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
11 | the class represented by `EObjectType.CUSTOM_STATE`.
12 | """
13 | pass # There are no properties, currently.
14 |
--------------------------------------------------------------------------------
/pywwise/objects/types/dialogue_event.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EMatchMode
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.multi_switch_entry import MultiSwitchEntry
8 | from pywwise.objects.types.state_group import StateGroup
9 | from pywwise.objects.types.switch_group import SwitchGroup
10 |
11 |
12 | class DialogueEvent(WwiseObject):
13 | """
14 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_dialogueevent.html \n
15 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
16 | the class represented by `EObjectType.DIALOGUE_EVENT`.
17 | """
18 | arguments = WwiseProperty[tuple[SwitchGroup | StateGroup, ...]]("Arguments", tuple)
19 | colour = WwiseProperty[EColour]("Color", EColour)
20 | entries = WwiseProperty[tuple[MultiSwitchEntry, ...]]("Entries", tuple)
21 | mode = WwiseProperty[EMatchMode]("Mode", EMatchMode)
22 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
23 | probability = WwiseProperty[int]("Probability", int)
24 |
--------------------------------------------------------------------------------
/pywwise/objects/types/effect.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class Effect(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effect.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.EFFECT`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | inclusion = WwiseProperty[bool]("Inclusion", bool)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
20 |
--------------------------------------------------------------------------------
/pywwise/objects/types/effect_slot.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 | from pywwise.objects.types.effect import Effect
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class EffectSlot(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_effectslot.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.EFFECT_SLOT`.
15 | """
16 | bypass = WwiseProperty[bool]("Bypass", bool)
17 | effect = WwiseProperty[Effect]("Effect", Effect)
18 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
19 | render = WwiseProperty[bool]("Render", bool)
20 |
--------------------------------------------------------------------------------
/pywwise/objects/types/event.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Event(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_event.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.EVENT`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | inclusion = WwiseProperty[bool]("Inclusion", bool)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/external_source.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.abc import WwiseObject
5 |
6 |
7 | class ExternalSource(WwiseObject):
8 | """
9 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_externalsource.html \n
10 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
11 | the class represented by `EObjectType.EXTERNAL_SOURCE`.
12 | """
13 | pass # There are no properties, currently.
14 |
--------------------------------------------------------------------------------
/pywwise/objects/types/external_source_file.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EExternalAnalysisType, ELoudnessNormalizationType
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.conversion import Conversion
8 |
9 |
10 | class ExternalSourceFile(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_externalsourcefile.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.EXTERNAL_SOURCE_FILE`.
15 | """
16 | analysis_type = WwiseProperty[EExternalAnalysisType]("AnalysisType", EExternalAnalysisType)
17 | conversion = WwiseProperty[Conversion]("Conversion", Conversion)
18 | loudness_normalization_target = WwiseProperty[float]("LoudnessNormalizationTarget", float)
19 | loudness_normalization_type = WwiseProperty[ELoudnessNormalizationType](
20 | "LoudnessNormalizationType", ELoudnessNormalizationType)
21 | override_conversion = WwiseProperty[bool]("OverrideConversion", bool)
22 |
--------------------------------------------------------------------------------
/pywwise/objects/types/folder.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Folder(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_folder.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.FOLDER`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | inclusion = WwiseProperty[bool]("Inclusion", bool)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/game_parameter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EBuiltInGameParameter, EColour, EInterpolationMode
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class GameParameter(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_gameparameter.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.GAME_PARAMETER`.
14 | """
15 | bind_to_built_in_param = WwiseProperty[EBuiltInGameParameter]("BindToBuiltInParam", EBuiltInGameParameter)
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | filter_time_down = WwiseProperty[float]("FilterTimeDown", float)
18 | filter_time_up = WwiseProperty[float]("FilterTimeUp", float)
19 | initial_value = WwiseProperty[float]("InitialValue", float)
20 | max = WwiseProperty[float]("Max", float)
21 | min = WwiseProperty[float]("Min", float)
22 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
23 | rtpc_ramping = WwiseProperty[EInterpolationMode]("RTPCRamping", EInterpolationMode)
24 | simulation_value = WwiseProperty[float]("SimulationValue", float)
25 | slew_rate_down = WwiseProperty[float]("SlewRateDown", float)
26 | slew_rate_up = WwiseProperty[float]("SlewRateUp", float)
27 |
--------------------------------------------------------------------------------
/pywwise/objects/types/language.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class Language(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_language.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.LANGUAGE`.
13 | """
14 | volume_offset = WwiseProperty[float]("VolumeOffset", float)
15 |
--------------------------------------------------------------------------------
/pywwise/objects/types/marker.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Marker(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_marker.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MARKER`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | label = WwiseProperty[str]("Label", str)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 | time = WwiseProperty[float]("Time", float)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/metadata.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class Metadata(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_metadata.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.METADATA`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | inclusion = WwiseProperty[bool]("Inclusion", bool)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
20 |
--------------------------------------------------------------------------------
/pywwise/objects/types/midi_file_source.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.abc import WwiseObject
5 |
6 |
7 | class MidiFileSource(WwiseObject):
8 | """
9 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_midifilesource.html \n
10 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
11 | the class represented by `EObjectType.MIDI_FILE_SOURCE`.
12 | """
13 | pass # There are no properties, currently.
14 |
--------------------------------------------------------------------------------
/pywwise/objects/types/midi_parameter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class MidiParameter(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_midiparameter.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.MIDI_PARAMETER`.
13 | """
14 | simulation_value = WwiseProperty[float]("SimulationValue", float)
15 |
--------------------------------------------------------------------------------
/pywwise/objects/types/mixing_session.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MixingSession(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_mixingsession.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MIXING_SESSION`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/modifier.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class Modifier(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_modifier.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.MODIFIER`.
13 | """
14 | enabled = WwiseProperty[bool]("Enabled", bool)
15 | max = WwiseProperty[float]("Max", float)
16 | min = WwiseProperty[float]("Min", float)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/modulator_envelope.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import TYPE_CHECKING
7 |
8 | if TYPE_CHECKING:
9 | from pywwise.objects.types.rtpc import Rtpc
10 |
11 | from pywwise.descriptors import WwiseProperty
12 | from pywwise.enums import EColour, EEnvelopeTriggerOn, EModulatorScopeLimited
13 | from pywwise.objects.abc import WwiseObject
14 |
15 |
16 | class ModulatorEnvelope(WwiseObject):
17 | """
18 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_modulatorenvelope.html \n
19 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
20 | the class represented by `EObjectType.MODULATOR_ENVELOPE`.
21 | """
22 | colour = WwiseProperty[EColour]("Color", EColour)
23 | envelope_attack_curve = WwiseProperty[float]("EnvelopeAttackCurve", float)
24 | envelope_attack_time = WwiseProperty[float]("EnvelopeAttackTime", float)
25 | envelope_auto_release = WwiseProperty[bool]("EnvelopeAutoRelease", bool)
26 | envelope_decay_time = WwiseProperty[float]("EnvelopeDecayTime", float)
27 | envelope_release_time = WwiseProperty[float]("EnvelopeReleaseTime", float)
28 | envelope_stop_playback = WwiseProperty[bool]("EnvelopeStopPlayback", bool)
29 | envelope_sustain_level = WwiseProperty[float]("EnvelopeSustainLevel", float)
30 | envelope_sustain_time = WwiseProperty[float]("EnvelopeSustainTime", float)
31 | envelope_trigger_on = WwiseProperty[EEnvelopeTriggerOn]("EnvelopeTriggerOn", EEnvelopeTriggerOn)
32 | modulator_scope = WwiseProperty[EModulatorScopeLimited]("ModulatorScope", EModulatorScopeLimited)
33 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
34 | rtpc: WwiseProperty[tuple[Rtpc, ...]] = WwiseProperty("RTPC", tuple) # Using `:` to avoid circular imports.
35 |
--------------------------------------------------------------------------------
/pywwise/objects/types/modulator_lfo.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import TYPE_CHECKING
7 |
8 | if TYPE_CHECKING:
9 | from pywwise.objects.types.rtpc import Rtpc
10 |
11 | from pywwise.descriptors import WwiseProperty
12 | from pywwise.enums import EColour, EModulatorScope, EWaveformInt
13 | from pywwise.objects.abc import WwiseObject
14 |
15 |
16 | class ModulatorLfo(WwiseObject):
17 | """
18 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_modulatorlfo.html \n
19 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
20 | the class represented by `EObjectType.MODULATOR_LFO`.
21 | """
22 | colour = WwiseProperty[EColour]("Color", EColour)
23 | lfo_attack = WwiseProperty[float]("LfoAttack", float)
24 | lfo_depth = WwiseProperty[float]("LfoDepth", float)
25 | lfo_frequency = WwiseProperty[float]("LfoFrequency", float)
26 | lfo_initial_phase = WwiseProperty[float]("LfoInitialPhase", float)
27 | lfo_pwm = WwiseProperty[float]("LfoPWM", float)
28 | lfo_smoothing = WwiseProperty[float]("LfoSmoothing", float)
29 | lfo_waveform = WwiseProperty[EWaveformInt]("LfoWaveform", EWaveformInt)
30 | modulator_scope = WwiseProperty[EModulatorScope]("ModulatorScope", EModulatorScope)
31 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
32 | rtpc: WwiseProperty[tuple[Rtpc, ...]] = WwiseProperty("RTPC", tuple) # Using `:` to avoid circular imports.
33 |
--------------------------------------------------------------------------------
/pywwise/objects/types/modulator_time.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import TYPE_CHECKING
7 |
8 | if TYPE_CHECKING:
9 | from pywwise.objects.types.rtpc import Rtpc
10 |
11 | from pywwise.descriptors import WwiseProperty
12 | from pywwise.enums import EColour, EEnvelopeTriggerOn, EModulatorScopeLimited
13 | from pywwise.objects.abc import WwiseObject
14 |
15 |
16 | class ModulatorTime(WwiseObject):
17 | """
18 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_modulatortime.html \n
19 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
20 | the class represented by `EObjectType.MODULATOR_TIME`.
21 | """
22 | colour = WwiseProperty[EColour]("Color", EColour)
23 | envelope_stop_playback = WwiseProperty[bool]("EnvelopeStopPlayback", bool)
24 | envelope_trigger_on = WwiseProperty[EEnvelopeTriggerOn]("EnvelopeTriggerOn", EEnvelopeTriggerOn)
25 | modulator_scope = WwiseProperty[EModulatorScopeLimited]("ModulatorScope", EModulatorScopeLimited)
26 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
27 | rtpc: WwiseProperty[tuple[Rtpc, ...]] = WwiseProperty("RTPC", tuple) # Using `:` to avoid circular imports.
28 | time_mod_duration = WwiseProperty[float]("TimeModDuration", float)
29 | time_mod_initial_delay = WwiseProperty[float]("TimeModInitialDelay", float)
30 | time_mod_loops = WwiseProperty[int]("TimeModLoops", int)
31 | time_mod_playback_rate = WwiseProperty[float]("TimeModPlaybackRate", float)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/types/multi_switch_entry.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from typing import Union as _Union
5 |
6 | from pywwise.descriptors import WwiseProperty
7 | from pywwise.objects.abc import WwiseObject
8 | from pywwise.objects.types.blend_container import BlendContainer
9 | from pywwise.objects.types.music_playlist_container import MusicPlaylistContainer
10 | from pywwise.objects.types.music_segment import MusicSegment
11 | from pywwise.objects.types.music_switch_container import MusicSwitchContainer
12 | from pywwise.objects.types.random_sequence_container import RandomSequenceContainer
13 | from pywwise.objects.types.sound import Sound
14 | from pywwise.objects.types.state import State
15 | from pywwise.objects.types.state_group import StateGroup
16 | from pywwise.objects.types.switch import Switch
17 | from pywwise.objects.types.switch_container import SwitchContainer
18 | from pywwise.objects.types.switch_group import SwitchGroup
19 |
20 | _AudioNodeType = _Union[
21 | RandomSequenceContainer, SwitchContainer, BlendContainer, Sound, MusicPlaylistContainer, MusicSegment,
22 | MusicSwitchContainer]
23 |
24 | _AudioNodeTypeTuple = (
25 | RandomSequenceContainer, SwitchContainer, BlendContainer, Sound, MusicPlaylistContainer, MusicSegment,
26 | MusicSwitchContainer)
27 |
28 |
29 | class MultiSwitchEntry(WwiseObject):
30 | """
31 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_multiswitchentry.html \n
32 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
33 | the class represented by `EObjectType.MULTI_SWITCH_ENTRY`.
34 | """
35 | audio_node = WwiseProperty[_AudioNodeType]("AudioNode", _AudioNodeTypeTuple)
36 | entry_path = WwiseProperty[tuple[SwitchGroup | Switch | StateGroup | State, ...]]("EntryPath", tuple)
37 | probability = WwiseProperty[int]("Probability", int)
38 | weight = WwiseProperty[int]("Weight", int)
39 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_clip.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EFadeMode, EFadeShape
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MusicClip(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musicclip.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_CLIP`.
14 | """
15 | begin_trim_offset = WwiseProperty[float]("BeginTrimOffset", float)
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | end_trim_offset = WwiseProperty[float]("EndTrimOffset", float)
18 | fade_in_duration = WwiseProperty[float]("FadeInDuration", float)
19 | fade_in_mode = WwiseProperty[EFadeMode]("FadeInDuration", EFadeMode)
20 | fade_in_shape = WwiseProperty[EFadeShape]("FadeInShape", EFadeShape)
21 | fade_out_duration = WwiseProperty[float]("FadeOutDuration", float)
22 | fade_out_mode = WwiseProperty[EFadeMode]("FadeOutMode", EFadeMode)
23 | fade_out_shape = WwiseProperty[EFadeShape]("FadeOutShape", EFadeShape)
24 | highpass = WwiseProperty[int]("Highpass", int)
25 | lowpass = WwiseProperty[int]("Lowpass", int)
26 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
27 | play_at = WwiseProperty[float]("PlayAt", float)
28 | volume = WwiseProperty[float]("Volume", float)
29 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_clip_midi.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MusicClipMidi(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musicclipmidi.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_CLIP_MIDI`.
14 | """
15 | begin_trim_offset = WwiseProperty[float]("BeginTrimOffset", float)
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | end_trim_offset = WwiseProperty[float]("EndTrimOffset", float)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 | play_at = WwiseProperty[float]("PlayAt", float)
20 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_cue.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EMusicCueType
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MusicCue(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musiccue.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_CUE`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | cue_type = WwiseProperty[EMusicCueType]("CueType", EMusicCueType)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 | time_ms = WwiseProperty[float]("TimeMs", float)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_event_cue.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 | from pywwise.objects.types import Event
7 |
8 |
9 | class MusicEventCue(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musiceventcue.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_EVENT_CUE`.
14 | """
15 | play_at = WwiseProperty[float]("PlayAt", float)
16 | post_event_target = WwiseProperty[Event]("PostEventTarget", Event)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_fade.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EFadeType, EMusicFadeShape
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MusicFade(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musicfade.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_FADE`.
14 | """
15 | fade_curve = WwiseProperty[EMusicFadeShape]("FadeCurve", EMusicFadeShape)
16 | fade_offset = WwiseProperty[float]("FadeOffset", float)
17 | fade_time = WwiseProperty[float]("FadeTime", float)
18 | fade_type = WwiseProperty[EFadeType]("FadeType", EFadeType)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_playlist_item.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EMusicPlaylistItemType, EPlaylistMode, ERandomType
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.music_segment import MusicSegment
8 |
9 |
10 | class MusicPlaylistItem(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musicplaylistitem.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.MUSIC_PLAYLIST_ITEM`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | loop_count = WwiseProperty[int]("LoopCount", int)
18 | normal_or_shuffle = WwiseProperty[ERandomType]("NormalOrShuffle", ERandomType)
19 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
20 | play_mode = WwiseProperty[EPlaylistMode]("PlayMode", EPlaylistMode)
21 | playlist_item_type = WwiseProperty[EMusicPlaylistItemType]("PlaylistItemType", EMusicPlaylistItemType)
22 | random_avoid_repeating_count = WwiseProperty[int]("RandomAvoidRepeatingCount", int)
23 | segment = WwiseProperty[MusicSegment]("Segment", MusicSegment)
24 | weight = WwiseProperty[float]("Weight", float)
25 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_stinger.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import TYPE_CHECKING as _TYPE_CHECKING
7 |
8 | if _TYPE_CHECKING:
9 | from pywwise.objects.types.music_segment import MusicSegment
10 |
11 | from pywwise.descriptors import WwiseProperty
12 | from pywwise.enums import EColour, EMusicSegmentPlayPoint
13 | from pywwise.objects.abc import WwiseObject
14 | from pywwise.objects.types.trigger import Trigger
15 |
16 |
17 | class MusicStinger(WwiseObject):
18 | """
19 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musicstinger.html \n
20 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
21 | the class represented by `EObjectType.MUSIC_STINGER`.
22 | """
23 | colour = WwiseProperty[EColour]("Color", EColour)
24 | custom_cue_match_name = WwiseProperty[str]("CustomCueMatchName", str)
25 | dont_play_again_time = WwiseProperty[float]("DontPlayAgainTime", float)
26 | num_segment_advance = WwiseProperty[bool]("NumSegmentAdvance", bool)
27 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
28 | play_segment_at = WwiseProperty[EMusicSegmentPlayPoint]("PlaySegmentAt", EMusicSegmentPlayPoint)
29 | segment: WwiseProperty[MusicSegment] # Injected via __init__
30 | trigger = WwiseProperty[Trigger]("Trigger", Trigger)
31 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_track_sequence.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, EMusicClipType, ESwitchOrState
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class MusicTrackSequence(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musictracksequence.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.MUSIC_TRACK_SEQUENCE`.
14 | """
15 | clips = WwiseProperty[tuple[EMusicClipType, ...]]("Clips", tuple)
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 | track_sequence_switch = WwiseProperty[ESwitchOrState]("TrackSequenceSwitch", ESwitchOrState)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/music_transition.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from __future__ import annotations
5 |
6 | from typing import TYPE_CHECKING, Union as _Union
7 |
8 | if TYPE_CHECKING:
9 | from pywwise.objects.types.multi_switch_entry import MultiSwitchEntry
10 |
11 | from pywwise.descriptors import WwiseProperty
12 | from pywwise.enums import (EColour, ECustomCueJumpMatchMode, EDestinationContextType, EMusicDestinationJumpTo,
13 | EMusicDestinationSyncTo, EMusicSourceExitPoint)
14 | from pywwise.objects.abc import WwiseObject
15 | from pywwise.objects.types.music_playlist_container import MusicPlaylistContainer
16 | from pywwise.objects.types.music_segment import MusicSegment
17 | from pywwise.objects.types.music_switch_container import MusicSwitchContainer
18 | from pywwise.objects.types.music_track import MusicTrack
19 |
20 | _InteractiveMusicType = _Union[MusicPlaylistContainer, MusicSegment, MusicSwitchContainer, MusicTrack]
21 |
22 | _InteractiveMusicTypeTuple = (MusicPlaylistContainer, MusicSegment, MusicSwitchContainer, MusicTrack)
23 |
24 |
25 | class MusicTransition(WwiseObject):
26 | """
27 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_musictransition.html \n
28 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
29 | the class represented by `EObjectType.MUSIC_TRANSITION`.
30 | """
31 | colour = WwiseProperty[EColour]("Color", EColour)
32 | destination_context_object = WwiseProperty[_InteractiveMusicType]("DestinationContextObject",
33 | _InteractiveMusicTypeTuple)
34 | destination_context_type = WwiseProperty[EDestinationContextType]("DestinationContextType", EDestinationContextType)
35 | destination_jump_position_preset = WwiseProperty[EMusicDestinationSyncTo](
36 | "DestinationJumpPositionPreset", EMusicDestinationSyncTo)
37 | destination_playlist_jump_to = WwiseProperty[EMusicDestinationJumpTo]("DestinationPlaylistJumpTo",
38 | EMusicDestinationJumpTo)
39 | enable_destination_fade_in = WwiseProperty[bool]("EnableDestinationFadeIn", bool)
40 | enable_source_fade_out = WwiseProperty[bool]("EnableSourceFadeOut", bool)
41 | enable_transition_fade_in = WwiseProperty[bool]("EnableTransitionFadeIn", bool)
42 | enable_transition_fade_out = WwiseProperty[bool]("EnableTransitionFadeOut", bool)
43 | entries: WwiseProperty[tuple[MultiSwitchEntry, ...]] = WwiseProperty(
44 | "Entries", tuple) # Using `:` to avoid circular imports.
45 | exit_source_at = WwiseProperty[EMusicSourceExitPoint]("ExitSourceAt", EMusicSourceExitPoint)
46 | exit_source_custom_cue_match_name = WwiseProperty[str]("ExitSourceCustomCueMatchName", str)
47 | is_folder = WwiseProperty[bool]("IsFolder", bool)
48 | jump_to_custom_cue_match_mode = WwiseProperty[ECustomCueJumpMatchMode](
49 | "JumpToCustomCueMatchMode", ECustomCueJumpMatchMode)
50 | jump_to_custom_cue_match_name = WwiseProperty[str]("jumpToCustomCueMatchName", str)
51 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
52 | play_destination_pre_entry = WwiseProperty[bool]("PlayDestinationPreEntry", bool)
53 | play_post_exit = WwiseProperty[bool]("PlayPostExit", bool)
54 | play_transition_post_Exit = WwiseProperty[bool]("PlayTransitionPostExit", bool)
55 | play_transition_pre_entry = WwiseProperty[bool]("PlayTransitionPreEntry", bool)
56 | source_context_object = WwiseProperty[_InteractiveMusicType]("SourceContextObject", _InteractiveMusicTypeTuple)
57 | source_context_type = WwiseProperty[EDestinationContextType]("SourceContextType", EDestinationContextType)
58 | use_transition_object = WwiseProperty[bool]("UseTransitionObject", bool)
59 |
--------------------------------------------------------------------------------
/pywwise/objects/types/object_setting_assoc.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class ObjectSettingAssoc(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_objectsettingassoc.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.OBJECT_SETTING_ASSOC`.
13 | """
14 | continue_play = WwiseProperty[bool]("ContinuePlay", bool)
15 | fade_in_time = WwiseProperty[float]("FadeInTime", float)
16 | fade_out_time = WwiseProperty[float]("FadeOutTime", float)
17 | first_occurrence_only = WwiseProperty[bool]("FirstOccurenceOnly", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/panner.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 | from pywwise.objects.types.rtpc import Rtpc
7 |
8 |
9 | class Panner(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_panner.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.PANNER`.
14 | """
15 | pan_x = WwiseProperty[float]("PanX", float)
16 | pan_y = WwiseProperty[float]("PanY", float)
17 | pan_z = WwiseProperty[float]("PanZ", float)
18 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/path_2d.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class Path2D(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_path2d.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.PATH_2D`.
13 | """
14 | append_offset = WwiseProperty[int]("AppendOffset", int)
15 | duration = WwiseProperty[int]("Duration", int)
16 | flags = WwiseProperty[int]("Flags", int)
17 | linear_time = WwiseProperty[bool]("LinearTime", bool)
18 | random_x = WwiseProperty[float]("RandomX", float)
19 | random_y = WwiseProperty[float]("RandomY", float)
20 | random_z = WwiseProperty[float]("RandomZ", float)
21 |
--------------------------------------------------------------------------------
/pywwise/objects/types/platform.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.objects.abc import WwiseObject
5 |
6 |
7 | class Platform(WwiseObject):
8 | """
9 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_platform.html \n
10 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
11 | the class represented by `EObjectType.PLATFORM`.
12 | """
13 | pass # There are no properties, currently.
14 |
--------------------------------------------------------------------------------
/pywwise/objects/types/plugin_data_source.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.objects.abc import WwiseObject
6 |
7 |
8 | class PluginDataSource(WwiseObject):
9 | """
10 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_plugindatasource.html \n
11 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
12 | the class represented by `EObjectType.PLUGIN_DATA_SOURCE`.
13 | """
14 | data_file_name = WwiseProperty[str]("DataFileName", str)
15 |
--------------------------------------------------------------------------------
/pywwise/objects/types/position.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EMechanismPlayMode, ERandomOrSequence
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class Position(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_position.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.POSITION`.
15 | """
16 | new_path_for_each_sound = WwiseProperty[bool]("NewPathForEachSound", bool)
17 | pan_x = WwiseProperty[float]("PanX", float)
18 | pan_y = WwiseProperty[float]("PanY", float)
19 | pan_z = WwiseProperty[float]("PanZ", float)
20 | play_mechanism_loop = WwiseProperty[bool]("PlayMechanismLoop", bool)
21 | play_mechanism_random_or_sequence = WwiseProperty[ERandomOrSequence](
22 | "PlayMechanismRandomOrSequence", ERandomOrSequence)
23 | play_mechanism_step_or_continuous = WwiseProperty[EMechanismPlayMode]("PlayMechanismStepOrContinuous", EMechanismPlayMode)
24 | play_mechanism_transition_time = WwiseProperty[float]("PlayMechanismTransitionTime", float)
25 | play_mechanism_transition_use = WwiseProperty[bool]("PlayMechanismTransitionUse", bool)
26 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
27 |
--------------------------------------------------------------------------------
/pywwise/objects/types/query.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour, ELogicalOperator, EObjectTypeQuery, EPlatformOption
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Query(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_query.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.QUERY`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | logical_operator = WwiseProperty[ELogicalOperator]("LogicalOperator", ELogicalOperator)
17 | object_type = WwiseProperty[EObjectTypeQuery]("ObjectType", EObjectTypeQuery)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 | platform = WwiseProperty[EPlatformOption]("Platform", EPlatformOption)
20 | start_object = WwiseProperty[WwiseObject]("StartObject", WwiseObject)
21 | waql = WwiseProperty[str]("WAQL", str)
22 |
--------------------------------------------------------------------------------
/pywwise/objects/types/rtpc.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from typing import Union as _Union
5 |
6 | from pywwise.descriptors import WwiseProperty
7 | from pywwise.enums import EColour
8 | from pywwise.objects.abc import WwiseObject
9 | from pywwise.objects.types.curve import Curve
10 | from pywwise.objects.types.game_parameter import GameParameter
11 | from pywwise.objects.types.midi_parameter import MidiParameter
12 | from pywwise.objects.types.modulator_envelope import ModulatorEnvelope
13 | from pywwise.objects.types.modulator_lfo import ModulatorLfo
14 | from pywwise.objects.types.modulator_time import ModulatorTime
15 |
16 | _ControlInputType = _Union[ModulatorLfo, ModulatorEnvelope, ModulatorTime, GameParameter, MidiParameter]
17 |
18 | _ControlInputTypeTuple = (ModulatorLfo, ModulatorEnvelope, ModulatorTime, GameParameter, MidiParameter)
19 |
20 |
21 | class Rtpc(WwiseObject):
22 | """
23 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_rtpc.html \n
24 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
25 | the class represented by `EObjectType.RTPC`.
26 | """
27 | colour = WwiseProperty[EColour]("Color", EColour)
28 | control_input = WwiseProperty[_ControlInputType]("ControlInput", _ControlInputTypeTuple)
29 | curve = WwiseProperty[Curve]("Curve", Curve)
30 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
31 | property_name = WwiseProperty[str]("PropertyName", str)
32 |
--------------------------------------------------------------------------------
/pywwise/objects/types/sound_bank.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class SoundBank(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_soundbank.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOUND_BANK`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | fill = WwiseProperty[bool]("Fill", bool)
17 | maximum = WwiseProperty[int]("Maximum", int)
18 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/soundcaster_session.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class SoundcasterSession(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_soundcastersession.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SOUNDCASTER_SESSION`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/source_plugin.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.rtpc import Rtpc
8 |
9 |
10 | class SourcePlugin(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_sourceplugin.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.SOURCE_PLUGIN`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 | rtpc = WwiseProperty[tuple[Rtpc, ...]]("RTPC", tuple)
19 |
--------------------------------------------------------------------------------
/pywwise/objects/types/state.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 |
5 | from pywwise.descriptors import WwiseProperty
6 | from pywwise.enums import EColour
7 | from pywwise.objects.abc import WwiseObject
8 |
9 |
10 | class State(WwiseObject):
11 | """
12 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_state.html \n
13 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
14 | the class represented by `EObjectType.STATE`.
15 | """
16 | colour = WwiseProperty[EColour]("Color", EColour)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/state_group.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class StateGroup(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_stategroup.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.STATE_GROUP`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | default_transition_time = WwiseProperty[float]("DefaultTransitionTime", float)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/switch.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Switch(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_switch.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SWITCH`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/switch_group.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class SwitchGroup(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_switchgroup.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.SWITCH_GROUP`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 | use_game_parameter = WwiseProperty[bool]("UseGameParameter", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/objects/types/trigger.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class Trigger(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_trigger.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.TRIGGER`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
17 |
--------------------------------------------------------------------------------
/pywwise/objects/types/user_project_settings.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EActionNamePosition, ECaseStyleSimple, ESoundBankDefinitionFormat
6 | from pywwise.objects.abc import WwiseObject
7 | from pywwise.objects.types.conversion import Conversion
8 | from pywwise.primitives import ProjectPath
9 |
10 |
11 | class UserProjectSettings(WwiseObject):
12 | """
13 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_userprojectsettings.html \n
14 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
15 | the class represented by `EObjectType.USER_PROJECT_SETTINGS`.
16 | """
17 | auto_sound_bank_all_events = WwiseProperty[bool]("AutoSoundBankAllEvents", bool)
18 | auto_sound_bank_enabled = WwiseProperty[bool]("AutoSoundBankEnabled", bool)
19 | conversion = WwiseProperty[Conversion]("Conversion", Conversion)
20 | convert_external_sources = WwiseProperty[bool]("ConvertExternalSources", bool)
21 | copy_loose_streamed_media = WwiseProperty[bool]("CopyLooseStreamedMedia", bool)
22 | default_sound_volume = WwiseProperty[float]("DefaultSoundVolume", float)
23 | event_action_name_position = WwiseProperty[EActionNamePosition]("EventActionNamePosition", EActionNamePosition)
24 | event_creation_settings_override = WwiseProperty[bool]("EventCreationSettingsOverride", bool)
25 | event_name_case_type = WwiseProperty[ECaseStyleSimple]("EventNameCaseType", ECaseStyleSimple)
26 | event_name_modify_case = WwiseProperty[bool]("EventNameModifyCase", bool)
27 | external_sources_input_path = WwiseProperty[ProjectPath]("ExternalSourcesInputPath", ProjectPath)
28 | external_sources_output_path = WwiseProperty[ProjectPath]("ExternalSourcesOutputPath", ProjectPath)
29 | generate_main_sound_bank = WwiseProperty[bool]("GenerateMainSoundBank", bool)
30 | generate_multiple_banks = WwiseProperty[bool]("GenerateMultipleBanks", bool)
31 | generate_sound_bank_json = WwiseProperty[bool]("GenerateSoundBankJSON", bool)
32 | generate_sound_bank_xml = WwiseProperty[bool]("GenerateSoundBankXML", bool)
33 | media_auto_bank_sub_folders = WwiseProperty[bool]("MediaAutoBankSubFolders", bool)
34 | override_conversion = WwiseProperty[bool]("OverrideConversion", bool)
35 | post_generate_step_user_override = WwiseProperty[bool]("PostGenerateStepUserOverride", bool)
36 | pre_generate_step_user_override = WwiseProperty[bool]("PreGenerateStepUserOverride", bool)
37 | remove_unused_generated_files = WwiseProperty[bool]("RemoveUnusedGeneratedFiles", bool)
38 | settings_user_override = WwiseProperty[bool]("SettingsUserOverride", bool)
39 | sound_bank_allow_exceeding_sb = WwiseProperty[bool]("SoundBankAllowExceedingSB", bool)
40 | sound_bank_definition_file_format = WwiseProperty[ESoundBankDefinitionFormat]("SoundBankDefinitionFileFormat",
41 | ESoundBankDefinitionFormat)
42 | sound_bank_generate_definition_file = WwiseProperty[bool]("SoundBankGenerateDefinitionFile", bool)
43 | sound_bank_generate_estimated_duration = WwiseProperty[bool]("SoundBankGenerateEstimatedDuration", bool)
44 | sound_bank_generate_header_file = WwiseProperty[bool]("SoundBankGenerateHeaderFile", bool)
45 | sound_bank_generate_max_attenuation_info = WwiseProperty[bool]("SoundBankGenerateMaxAttenuationInfo", bool)
46 | sound_bank_generate_print_colour = WwiseProperty[bool]("SoundBankGeneratePrintColor", bool)
47 | sound_bank_generate_print_guid = WwiseProperty[bool]("SoundBankGeneratePrintGUID", bool)
48 | sound_bank_generate_print_path = WwiseProperty[bool]("SoundBankGeneratePrintPath", bool)
49 | sound_bank_generate_readable_file = WwiseProperty[bool]("SoundBankGenerateReadableFile", bool)
50 | sound_bank_header_file_path = WwiseProperty[ProjectPath]("SoundBankHeaderFilePath", ProjectPath)
51 | sound_bank_include_soundbank_names_strings = WwiseProperty[bool]("SoundBankIncludeSoundbankNamesStrings", bool)
52 | sound_bank_paths = WwiseProperty[str]("SoundBankPaths", str)
53 | sound_bank_post_generate_custom_cmd_description = WwiseProperty[str]("SoundBankPostGenerateCustomCmdDescription",
54 | str)
55 | sound_bank_post_generate_custom_cmd_lines = WwiseProperty[str]("SoundBankPostGenerateCustomCmdLines", str)
56 | sound_bank_pre_generate_custom_cmd_description = WwiseProperty[str]("SoundBankPreGenerateCustomCmdDescription", str)
57 | sound_bank_pre_generate_custom_cmd_lines = WwiseProperty[str]("SoundBankPreGenerateCustomCmdLines", str)
58 | sound_bank_update_audio_files = WwiseProperty[bool]("SoundBankUpdateAudioFiles", bool)
59 | source_control_generated_files = WwiseProperty[bool]("SourceControlGeneratedFiles", bool)
60 | use_action_name_for_event = WwiseProperty[bool]("UseActionNameForEvent", bool)
61 |
--------------------------------------------------------------------------------
/pywwise/objects/types/work_unit.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.descriptors import WwiseProperty
5 | from pywwise.enums import EColour
6 | from pywwise.objects.abc import WwiseObject
7 |
8 |
9 | class WorkUnit(WwiseObject):
10 | """
11 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=wwiseobject_workunit.html \n
12 | A class serving as an interface for getting/setting properties on Wwise objects. This type specifically targets
13 | the class represented by `EObjectType.WORK_UNIT`.
14 | """
15 | colour = WwiseProperty[EColour]("Color", EColour)
16 | inclusion = WwiseProperty[bool]("Inclusion", bool)
17 | override_colour = WwiseProperty[bool]("OverrideColor", bool)
18 |
--------------------------------------------------------------------------------
/pywwise/waapi/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2025 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak import Ak, WwiseConnection
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.ak import Ak, WwiseConnection
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/ak.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from typing import Self as _Self, TypeAlias as _TypeAlias
5 |
6 | from waapi import CallbackExecutor, SequentialThreadExecutor, WaapiClient as _WaapiClient
7 |
8 | from pywwise.aliases import ListOrTuple
9 | from pywwise.structs import WwiseObjectWatch
10 | from pywwise.waapi.ak.soundengine import SoundEngine as _SoundEngine
11 | from pywwise.waapi.ak.wwise import Wwise as _Wwise
12 |
13 |
14 | class Ak:
15 | """ak"""
16 |
17 | _connections = list[_Self]()
18 | """List of all active connections to Wwise."""
19 |
20 | def __init__(self, url: str = "ws://127.0.0.1:8080/waapi", allow_exception: bool = False,
21 | callback_executor: CallbackExecutor = SequentialThreadExecutor,
22 | is_debug_build: bool = False, is_console_instance: bool = False,
23 | watch_list: ListOrTuple[WwiseObjectWatch] = ()):
24 | """
25 | Constructor.
26 | :param url: URL of the Wwise Authoring API WAMP server, defaults to `ws://127.0.0.1:8080/waapi`.
27 | :param allow_exception: Allow errors on call and subscribe to throw an exception. Default is False.
28 | :param callback_executor: Executor strategy for event callbacks.
29 | :param is_debug_build: Should be set to true if the instance of Wwise is a debug build and debug-only.
30 | :param is_console_instance: Should be set to true if the instance of Wwise is running in a console window.
31 | functions/topics are required.
32 | :param watch_list: A tuple of `WwiseObjectWatch` instances. This will be used to set up the
33 | `ak.wwise.core.object.property_changed` event.
34 | """
35 | self._client = _WaapiClient(url, allow_exception, callback_executor)
36 | self.soundengine = _SoundEngine(self._client)
37 | self.wwise = _Wwise(self._client, is_debug_build, is_console_instance, watch_list)
38 | self._connections.append(self)
39 |
40 | def __del__(self):
41 | """Disconnect, then delete this connection object."""
42 | if self.is_connected():
43 | self.disconnect()
44 |
45 | def __enter__(self) -> _Self:
46 | """
47 | Enter the context (re: `with` statement).
48 | :return: This instance of the `Ak` class.
49 | """
50 | return self
51 |
52 | def __exit__(self, exc_type, exc_value, traceback) -> bool:
53 | """
54 | Exit the context (re: `with` statement).
55 | :param exc_type: The exception type, if any.
56 | :param exc_value: The exception value, if any.
57 | :param traceback: The traceback, if any exception(s) were raised.
58 | :return: Whether an exception was raised.
59 | """
60 | if self.is_connected():
61 | self._client.disconnect()
62 | return bool(exc_type)
63 |
64 | @classmethod
65 | def get_connections(cls) -> tuple[_Self, ...]:
66 | """
67 | Get all active connections to Wwise. Intended only for internal use or debugging. Avoid using this function
68 | in your logic. If you need to check if this connection is ative, use **is_connected** instead, or **disconnect**
69 | if you are trying to delete this connection.
70 | :return: The currently active connections to Wwise, in a `tuple`. This container will NOT be updated as
71 | connections are created/destroyed. Also, keep in mind that connections cannot be modified this way.
72 | """
73 | return tuple(cls._connections)
74 |
75 | def is_connected(self) -> bool:
76 | """
77 | Check if this instance is connected to Wwise.
78 | :return: Whether this instance is connected to Wwise.
79 | """
80 | return self._client.is_connected()
81 |
82 | def disconnect(self) -> bool:
83 | """
84 | Disconnect from Wwise.
85 | :return: Whether the disconnection was successful.
86 | """
87 | if self in self._connections:
88 | self._connections.remove(self)
89 | return self._client.disconnect()
90 |
91 |
92 | WwiseConnection: _TypeAlias = Ak # This cannot exist in aliases.py due to a circular import issue.
93 | """Represents a connection to Wwise."""
94 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/soundengine/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.soundengine.soundengine import SoundEngine
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.wwise import Wwise
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/console/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.console.console import Console
5 | from pywwise.waapi.ak.wwise.console.project import Project
6 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/console/console.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.waapi.ak.wwise.console.project import Project as _Project
7 |
8 |
9 | class Console:
10 | """ak.wwise.console"""
11 |
12 | def __init__(self, client: _WaapiClient, is_console_instance: bool = False):
13 | """
14 | Constructor.
15 | :param client: The WAAPI client to use.
16 | :param is_console_instance: Should be set to true if the instance of Wwise is running in a console window.
17 | """
18 | self._client = client
19 | self.project = _Project(self._client, is_console_instance)
20 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/console/project.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.aliases import ListOrTuple, SystemPath
7 | from pywwise.decorators import console_instance_only
8 | from pywwise.enums import EBasePlatform
9 | from pywwise.primitives import Name
10 | from pywwise.structs import PlatformInfo
11 |
12 |
13 | class Project:
14 | """ak.wwise.console.project"""
15 |
16 | def __init__(self, client: _WaapiClient, is_console_instance: bool = False):
17 | """
18 | Constructor.
19 | :param client: The WAAPI client to use.
20 | :param is_console_instance: Should be set to true if the instance of Wwise is running in a console window.
21 | """
22 | self._client = client
23 | self._is_console_instance = is_console_instance
24 |
25 | @console_instance_only
26 | def close(self) -> bool:
27 | """
28 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_console_project_close.html \n
29 | Closes the current project. This operation is synchronous.
30 | :return: True if there was a project open and it closed successfully; otherwise, false.
31 | """
32 | results = self._client.call("ak.wwise.console.project.close")
33 | return results.get("hadProjectOpen", False) if results is not None else False
34 |
35 | @console_instance_only
36 | def create(self, project_path: SystemPath,
37 | platforms: ListOrTuple[PlatformInfo] = (PlatformInfo("Windows", EBasePlatform.WINDOWS),),
38 | languages: ListOrTuple[Name] = tuple(Name("English(US)"))) -> bool:
39 | """
40 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_console_project_create.html \n
41 | Creates, saves and opens new empty project, specified by path and platform. The project has no
42 | factory setting WorkUnit. This operation is synchronous.
43 | :param project_path: The path to the project WPROJ file. Example: "C:/Projects/MyProject/MyProject.wproj".
44 | :param platforms: Specifies the platform(s) supported by the new project. If not specified, only Windows is
45 | used.
46 | :param languages: Array of languages to creates for this project. If not specified, English(US) becomes the
47 | default language. When multiple languages are specified, the first one becomes the default
48 | language.
49 | :return: Whether the call succeeded. True does not necessarily mean the project was successfully created.
50 | """
51 | platforms = list(dict.fromkeys(platforms))
52 | args = {"path": str(project_path), "platforms": list(), "languages": [language for language in languages]}
53 | for platform in platforms:
54 | args["platforms"].append({"name": platform.name, "basePlatform": platform.base})
55 | return self._client.call("ak.wwise.console.project.create", args) is not None
56 |
57 | @console_instance_only
58 | def open(self, project_path: SystemPath,
59 | is_migration_allowed: bool,
60 | version_control_auto_checkout: bool = True) -> bool:
61 | """
62 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_console_project_open.html \n
63 | Opens a project, specified by path. This operation is synchronous.
64 | :param project_path: The path to the project WPROJ file.
65 | :param is_migration_allowed: Whether migration is allowed.
66 | :param version_control_auto_checkout: Determines if Wwise automatically performs a Checkout source control
67 | operation for affected work units and for the project. Only supported in
68 | Wwise 2023 or above.
69 | :return: Whether the call succeeded. True does not necessarily mean the project was successfully opened.
70 | """
71 | migration_action = "migrate" if is_migration_allowed else "fail"
72 | args = {"path": str(project_path),
73 | "onMigrationRequired": migration_action,
74 | **({"autoCheckOutToSourceControl": False} if not version_control_auto_checkout else {})}
75 | return self._client.call("ak.wwise.console.project.open", args) is not None
76 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.core.audio import Audio
5 | from pywwise.waapi.ak.wwise.core.audio_source_peaks import AudioSourcePeaks
6 | from pywwise.waapi.ak.wwise.core.capture_log import CaptureLog
7 | from pywwise.waapi.ak.wwise.core.core import Core
8 | from pywwise.waapi.ak.wwise.core.game_parameter import GameParameter
9 | from pywwise.waapi.ak.wwise.core.log import Log
10 | from pywwise.waapi.ak.wwise.core.object import Object
11 | from pywwise.waapi.ak.wwise.core.profiler import Profiler
12 | from pywwise.waapi.ak.wwise.core.project import Project
13 | from pywwise.waapi.ak.wwise.core.remote import Remote
14 | from pywwise.waapi.ak.wwise.core.sound import Sound
15 | from pywwise.waapi.ak.wwise.core.soundbank import SoundBank
16 | from pywwise.waapi.ak.wwise.core.source_control import SourceControl
17 | from pywwise.waapi.ak.wwise.core.switch_container import SwitchContainer
18 | from pywwise.waapi.ak.wwise.core.transport import Transport
19 | from pywwise.waapi.ak.wwise.core.undo import Undo
20 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/capture_log.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from simplevent import RefEvent as _RefEvent
5 | from waapi import WaapiClient as _WaapiClient
6 |
7 | from pywwise.decorators import callback
8 | from pywwise.enums import ECaptureLogItemType, ECaptureLogSeverity
9 | from pywwise.primitives import GameObjectID, GUID, Name, PlayingID, ShortID
10 | from pywwise.statics import EnumStatics
11 | from pywwise.structs import CaptureLogItem
12 |
13 |
14 | class CaptureLog:
15 | """ak.wwise.core.profiler.capture_log"""
16 |
17 | def __init__(self, client: _WaapiClient):
18 | """
19 | Constructor.
20 | :param client: The WAAPI client to use.
21 | """
22 | self._client = client
23 |
24 | self.item_added = _RefEvent(CaptureLogItem)
25 | """
26 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_profiler_capturelog_itemadded.html
27 | \nSent when a new entry is added to the capture log.
28 | \n**Event Data**:
29 | \n- An instance of CaptureLogItem, which contains information such as type, time, severity, etc.
30 | """
31 |
32 | self._item_added = self._client.subscribe("ak.wwise.core.profiler.captureLog.itemAdded", self._on_item_added)
33 |
34 | @callback
35 | def _on_item_added(self, event: _RefEvent, **kwargs):
36 | """
37 | Callback function for the `itemAdded` event.
38 | :param event: The event to broadcast.
39 | :param kwargs: The event data.
40 | """
41 | item_type = EnumStatics.from_value(ECaptureLogItemType, str(kwargs["type"]).replace(" ", ""))
42 | time_seconds = kwargs["time"]
43 | description = kwargs["description"]
44 | severity = EnumStatics.from_value(ECaptureLogSeverity, kwargs["severity"])
45 | wwise_obj_id = GUID(kwargs["objectId"]) if "objectId" in kwargs else GUID.get_null()
46 | wwise_obj_name = Name(kwargs["objectName"]) if "objectName" in kwargs else Name.get_null()
47 | wwise_obj_short = ShortID(kwargs["objectShortId"]) if "objectShortId" in kwargs else ShortID.get_null()
48 | game_obj_id = GameObjectID(kwargs["gameObjectId"]) if "gameObjectId" in kwargs else GameObjectID.get_null()
49 | game_obj_name = Name(kwargs["gameObjectName"]) if "gameObjectName" in kwargs else Name.get_null()
50 | playing_id = PlayingID(kwargs["playingId"]) if "playingId" in kwargs else PlayingID.get_null()
51 | error_code_name = kwargs.get("errorCodeName", "")
52 | event(CaptureLogItem(item_type, time_seconds, description, severity, wwise_obj_id, wwise_obj_name,
53 | wwise_obj_short, game_obj_id, game_obj_name, playing_id, error_code_name))
54 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/game_parameter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.enums import EGameParameterValueChangeAction
7 | from pywwise.primitives import GUID, Name, ProjectPath
8 |
9 |
10 | class GameParameter:
11 | """ak.wwise.core.GameParameter"""
12 |
13 | def __init__(self, client: _WaapiClient):
14 | """
15 | Constructor.
16 | :param client: The WAAPI client to use.
17 | """
18 | self._client = client
19 |
20 | def set_range(self, game_parameter: GUID | Name | ProjectPath, min_value: float, max_value: float,
21 | on_curve_update: EGameParameterValueChangeAction) -> bool:
22 | """
23 | https://www.audiokinetic.com/en/library/edge/?source=SDK&id=ak_wwise_core_gameparameter_setrange.html \n
24 | Sets the Min and Max properties on a Game Parameter. Modifies the RTPC curves and blend tracks that use this
25 | Game Parameter for their X axis.
26 | :param game_parameter: The GUID, Name, or the project path of the Game Parameter.
27 | :param min_value: The minimum value of the Game Parameter.
28 | :param max_value: The maximum value of the Game Parameter.
29 | :param on_curve_update: Modifying the Min or Max value of a Game Parameter affects the RTPC curves and blend
30 | tracks that use that Game Parameter for their X axis. Two actions are possible, Stretch
31 | or PreserveX.
32 | :return: True if the call was successful, False otherwise.
33 | """
34 | args = {"object": game_parameter, "min": min_value, "max": max_value,
35 | "onCurveUpdate": on_curve_update}
36 |
37 | return self._client.call("ak.wwise.core.gameParameter.setRange", args) is not None
38 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/log.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from simplevent import RefEvent as _RefEvent
5 | from waapi import WaapiClient as _WaapiClient
6 |
7 | from pywwise.aliases import ListOrTuple
8 | from pywwise.decorators import callback
9 | from pywwise.enums import ELogChannel, ELogSeverity
10 | from pywwise.statics import EnumStatics
11 | from pywwise.structs import LogItem
12 |
13 |
14 | class Log:
15 | """ak.wwise.core.log"""
16 |
17 | def __init__(self, client: _WaapiClient):
18 | """
19 | Constructor.
20 | :param client: The WAAPI client to use.
21 | """
22 | self._client = client
23 |
24 | self.item_added = _RefEvent(ELogChannel, LogItem)
25 | """
26 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_log_itemadded.html
27 | \nSent when an item is added to the log. To retrieve the complete log, refer to `ak.wwise.core.log.get`.
28 | \n**Event Data**:
29 | \n- The channel on which the item was added.
30 | \n- The item added to the log.
31 | """
32 |
33 | self._item_added = self._client.subscribe("ak.wwise.core.log.itemAdded", self._on_item_added)
34 |
35 | @callback
36 | def _on_item_added(self, event: _RefEvent, **kwargs):
37 | """
38 | Callback function for the `itemAdded` event.
39 | :param event: The event to broadcast.
40 | :param kwargs: The event data.
41 | """
42 | channel = EnumStatics.from_value(ELogChannel, kwargs["channel"])
43 | item = LogItem(severity=EnumStatics.from_value(ELogSeverity, kwargs["item"]["severity"]),
44 | time=kwargs["item"]["time"],
45 | id=kwargs["item"]["messageId"],
46 | description=kwargs["item"]["message"])
47 | event(channel, item)
48 |
49 | def add_item(self, message: str, severity: ELogSeverity = ELogSeverity.MESSAGE,
50 | channel: ELogChannel = ELogChannel.GENERAL) -> bool:
51 | """
52 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_log_additem.html \n
53 | Adds a new item to the logs on the specified channel.
54 | :param message: The text of the message to add.
55 | :param severity: The severity of the message to add.
56 | :param channel: The channel on which to add the message.
57 | :return: Whether the call succeeded.
58 | """
59 | args = {"message": message, "severity": severity.value, "channel": channel.value}
60 | return self._client.call("ak.wwise.core.log.addItem", args) is not None
61 |
62 | def clear(self, channels: ELogChannel | ListOrTuple[ELogChannel] = None) -> bool:
63 | """
64 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_log_clear.html \n
65 | Clears the logs on one or more channels.
66 | :param channels: The channel or channels to clear. Duplicates will be ignored. If `None`, all channels will be
67 | cleared.
68 | :return: Whether the call succeeded.
69 | """
70 | if channels is None:
71 | channels = tuple(EnumStatics.get_all_members(ELogChannel))
72 | elif isinstance(channels, ELogChannel):
73 | channels = (channels,) # convert single value to a collection, so the loop below still works
74 |
75 | returns = list[bool]()
76 | for channel in channels:
77 | args = {"channel": channel}
78 | returns.append(self._client.call("ak.wwise.core.log.clear", args) is not None)
79 |
80 | return all(returns)
81 |
82 | def get(self, channel: ELogChannel = ELogChannel.GENERAL) -> tuple[LogItem, ...]:
83 | """
84 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_log_get.html \n
85 | Retrieves the latest log for a specific channel. Refer to `ak.wwise.core.log.item_added` to be
86 | notified when an item is added to the log. The log is empty when used in WwiseConsole.
87 | :param channel: The channel to clear.
88 | :return: A tuple of log items. May be empty.
89 | """
90 | args = {"channel": channel.value}
91 | result = self._client.call("ak.wwise.core.log.get", args)
92 | return tuple(LogItem(severity=EnumStatics.from_value(ELogSeverity, item["severity"]),
93 | time=item["time"],
94 | id=item["messageId"],
95 | description=item["message"])
96 | for item in result.get("items", ()))
97 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/project.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from simplevent import RefEvent as _RefEvent
5 | from waapi import WaapiClient as _WaapiClient
6 |
7 | from pywwise.aliases import SystemPath
8 | from pywwise.decorators import callback
9 |
10 |
11 | class Project:
12 | """ak.wwise.core.project"""
13 |
14 | def __init__(self, client: _WaapiClient):
15 | """
16 | Constructor.
17 | :param client: The WAAPI client to use.
18 | """
19 | self._client = client
20 |
21 | self.loaded = _RefEvent()
22 | """
23 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_project_loaded.html
24 | \nSent when the project has been successfully loaded.
25 | """
26 |
27 | self._loaded = self._client.subscribe("ak.wwise.core.project.loaded", self._on_loaded)
28 |
29 | self.post_closed = _RefEvent()
30 | """
31 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_project_postclosed.html
32 | \nSent when the after the project is completely closed.
33 | """
34 |
35 | self._post_closed = self._client.subscribe("ak.wwise.core.project.postClosed", self._on_post_closed)
36 |
37 | self.pre_closed = _RefEvent()
38 | """
39 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_project_preclosed.html
40 | \nSent when the project begins closing.
41 | """
42 |
43 | self._pre_closed = self._client.subscribe("ak.wwise.core.project.preClosed", self._on_pre_closed)
44 |
45 | self.saved = _RefEvent(tuple[SystemPath, ...])
46 | """
47 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_project_saved.html
48 | \nSent when the project has been saved.
49 | \n**Event Data**:
50 | \n- A tuple containing the absolute paths to the Work Unit and Project files that were modified.
51 | """
52 |
53 | self._saved = self._client.subscribe("ak.wwise.core.project.saved", self._on_saved)
54 |
55 | @callback
56 | def _on_loaded(self, event: _RefEvent):
57 | """
58 | Callback function for the `loaded` event.
59 | :param event: The event to broadcast.
60 | """
61 | event()
62 |
63 | @callback
64 | def _on_post_closed(self, event: _RefEvent):
65 | """
66 | Callback function for the `postClosed` event.
67 | :param event: The event to broadcast.
68 | """
69 | event()
70 |
71 | @callback
72 | def _on_pre_closed(self, event: _RefEvent):
73 | """
74 | Callback function for the `preClosed` event.
75 | :param event: The event to broadcast.
76 | """
77 | event()
78 |
79 | @callback
80 | def _on_saved(self, event: _RefEvent, **kwargs):
81 | """
82 | Callback function for the `saved` event.
83 | :param event: The event to broadcast.
84 | :param kwargs: The event data.
85 | """
86 | event(tuple(SystemPath(path) for path in kwargs.get("modifiedPaths", dict())))
87 |
88 | def save(self, version_control_auto_checkout: bool = True) -> bool:
89 | """
90 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_project_save.html \n
91 | Saves the current project.
92 | :param version_control_auto_checkout: Whether to automatically check out changes to version control. Only
93 | supported in Wwise 2023 or above.
94 | :return: Whether the operation succeeded.
95 | """
96 | args = {"autoCheckOutToSourceControl": False} if not version_control_auto_checkout else dict()
97 | return self._client.call("ak.wwise.core.project.save", args) is not None
98 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/sound.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.enums import EObjectType
7 | from pywwise.primitives import GUID, Name, ProjectPath
8 | from pywwise.structs import PlatformInfo
9 |
10 |
11 | class Sound:
12 | """ak.wwise.core.sound"""
13 |
14 | def __init__(self, client: _WaapiClient):
15 | """
16 | Constructor.
17 | :param client: The WAAPI client to use.
18 | """
19 | self._client = client
20 |
21 | def set_active_source(self, sound: GUID | Name | ProjectPath, source: GUID | Name | ProjectPath,
22 | platform: PlatformInfo | Name | GUID = None) -> bool:
23 | """
24 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_sound_setactivesource.html \n
25 | Sets which version of the source is being used for the specified sound. Use `ak.wwise.core.object.get` with the
26 | 'activeSource' return option to get the active source of a sound.
27 | :param sound: The GUID or the project path of the sound for which to set the active source.
28 | :param source: The GUID or the project path of the source.
29 | :param platform: The platform on which to execute this operation. By default, the active platform in the Wwise
30 | instance will be used.
31 | :return: Whether the call succeeded.
32 | """
33 | args = {"sound": f"{EObjectType.SOUND}{sound}" if isinstance(sound, Name) else sound,
34 | "source": f"{EObjectType.AUDIO_SOURCE}{source}" if isinstance(source, Name) else source}
35 | if platform is not None:
36 | args["platform"] = platform
37 | return self._client.call("ak.wwise.core.sound.setActiveSource", args) is not None
38 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/core/undo.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 |
7 | class Undo:
8 | """ak.wwise.core.undo"""
9 |
10 | def __init__(self, client: _WaapiClient):
11 | """
12 | Constructor.
13 | :param client: The WAAPI client to use.
14 | """
15 | self._client = client
16 |
17 | def begin_group(self) -> bool:
18 | """
19 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_undo_begingroup.html \n
20 | Begins an undo group. Make sure to call ak.wwise.core.undo.endGroup exactly once for every
21 | ak.wwise.core.beginUndoGroup call you make. Calls to `ak.wwise.core.undo.begin_group` can be nested.
22 | When closing a WAMP session, a check is made to ensure that all undo groups are closed. If not,
23 | a cancelGroup is called for each of the groups still open.
24 | :return: Whether the call was successful.
25 | """
26 | return self._client.call("ak.wwise.core.undo.beginGroup") is not None
27 |
28 | def cancel_group(self, undo: bool = False) -> bool:
29 | """
30 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_undo_cancelgroup.html \n
31 | Cancels the last undo group.
32 | :param undo: Specify if the operations are undone.
33 | :return: Whether the call was successful.
34 | """
35 | return self._client.call("ak.wwise.core.undo.cancelGroup", {"undo": undo}) is not None
36 |
37 | def end_group(self, display_name: str) -> bool:
38 | """
39 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_undo_endgroup.html \n
40 | Ends the last undo group.
41 | :param display_name: The name that is displayed in the history for this undo group.
42 | :return: Whether the call was successful.
43 | """
44 | return self._client.call("ak.wwise.core.undo.endGroup", {"displayName": display_name}) is not None
45 |
46 | def redo(self) -> bool:
47 | """
48 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_undo_redo.html \n
49 | Redoes the last operation in the Undo stack.
50 | :return: Whether the call was successful.
51 | """
52 | return self._client.call("ak.wwise.core.undo.redo") is not None
53 |
54 | def undo(self) -> bool:
55 | """
56 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_core_undo_undo.html \n
57 | Undoes the last operation in the Undo stack.
58 | :return: Whether the call was successful.
59 | """
60 | return self._client.call("ak.wwise.core.undo.undo") is not None
61 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/debug/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.debug.debug import Debug
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/ui/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.ui.commands import Commands
5 | from pywwise.waapi.ak.wwise.ui.project import Project
6 | from pywwise.waapi.ak.wwise.ui.ui import UI
7 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/ui/project.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.aliases import SystemPath
7 | from pywwise.structs import PlatformInfo
8 |
9 |
10 | class Project:
11 | """ak.wwise.ui.project"""
12 |
13 | def __init__(self, client: _WaapiClient):
14 | """
15 | Constructor.
16 | :param client: The WAAPI client to use.
17 | """
18 | self._client = client
19 |
20 | def close(self, bypass_save: bool = True) -> bool:
21 | """
22 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_ui_project_close.html \n
23 | Closes the current project.
24 | :param bypass_save: Indicates if the user should not be prompted to save the current project.
25 | **Defaults to true.**
26 | :return: True if there was a project open, false otherwise. Note that if there was no project open,
27 | no `ak.wwise.core.project.pre_closed` or `ak.wwise.core.project.post_closed` event is issued.
28 | """
29 | args = {"bypassSave": bypass_save}
30 | result = self._client.call("ak.wwise.ui.project.close", args)
31 | return result.get("hadProjectOpen")
32 |
33 | def create(self, path: SystemPath, platforms: set[PlatformInfo] = None, languages: set[str] = None) -> bool:
34 | """
35 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_ui_project_create.html \n
36 | Creates, saves and opens new empty project, specified by path and platform. The project has no
37 | factory setting WorkUnit. Please refer to `ak.wwise.core.project.loaded` for further explanations
38 | on how to be notified when the operation has completed.
39 | :param path: The path to the project WPROJ file. The path must use the same name for the WPROJ and the parent
40 | directory folder. For example: `C:/PyWwise/Projects/MYPROJECT/MYPROJECT.wproj`.
41 | :param platforms: Specifies the platform or platforms supported by the new project. If not specified, only
42 | Windows is used. Duplicates are not allowed; platforms should have **unique names**.
43 | :param languages: Array of languages to creates for this project. If not specified, the English(US) language is
44 | created. When multiple languages are specified, the first one becomes the default language.
45 | :return: Whether the project creation succeeded. This is done by checking if the specified path now
46 | exists.
47 | """
48 | args = {"path": str(path)}
49 |
50 | if platforms is not None:
51 | args["platforms"] = list()
52 | for platform in platforms:
53 | args["platforms"].append({"name": platform.name, "basePlatform": platform.base})
54 | if languages is not None:
55 | args["languages"] = list(languages)
56 |
57 | self._client.call("ak.wwise.ui.project.create", args)
58 | return path.exists()
59 |
60 | def open(self, path: SystemPath, is_migration_required: bool = False, bypass_save: bool = True,
61 | version_control_auto_checkout: bool = True) -> bool:
62 | """
63 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_ui_project_open.html \n
64 | Opens a project, specified by path. Please refer to `ak.wwise.core.project.loaded` for further
65 | explanations on how to be notified when the operation has completed.
66 | :param path: The path to the project WPROJ file. For using WAAPI on Mac, please refer to Using WAAPI on Mac.
67 | :param is_migration_required: Whether migration is required or not.
68 | :param bypass_save: Indicates if the user should not be prompted to save the current project.
69 | :param version_control_auto_checkout: Determines if Wwise automatically performs a Checkout source control
70 | operation for affected work units and for the project. Only supported
71 | in Wwise 2023 or above.
72 | :return: Returns whether the project was open.
73 | """
74 | if not path.exists():
75 | return False
76 |
77 | migration_action = "migrate" if is_migration_required else "fail"
78 |
79 | args = {"path": str(path),
80 | "onMigrationRequired": migration_action,
81 | "bypassSave": bypass_save,
82 | **({"autoCheckoutToSourceControl": False} if not version_control_auto_checkout else {})}
83 |
84 | return self._client.call("ak.wwise.ui.project.open", args) is not None
85 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/waapi/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from pywwise.waapi.ak.wwise.waapi.waapi import Waapi
5 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/waapi/waapi.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 |
7 | class Waapi:
8 | """ak.wwise.ui.waapi"""
9 |
10 | def __init__(self, client: _WaapiClient):
11 | """
12 | Constructor.
13 | :param client: The WAAPI client to use.
14 | """
15 | self._client = client
16 |
17 | def get_functions(self) -> tuple[str, ...]:
18 | """
19 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_waapi_getfunctions.html \n
20 | Retrieves the list of functions.
21 | :return: A tuple containing the URI of all WAAPI functions.
22 | """
23 | results = self._client.call("ak.wwise.waapi.getFunctions")
24 | return tuple(results.get("functions")) if results is not None else ()
25 |
26 | def get_schema(self, uri: str) -> dict | None:
27 | """
28 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_waapi_getschema.html \n
29 | Retrieves the JSON schema of a Waapi URI.
30 | :param uri: The URI to get the schema for (e.g. "ak.wwise.waapi.getSchema" gets the schema for this function).
31 | :return: If the call succeeded, a JSON-like dictionary representing the schema of the specified URI; else, None.
32 | """
33 | return self._client.call("ak.wwise.waapi.getSchema", {"uri": uri})
34 |
35 | def get_topics(self) -> tuple[str, ...]:
36 | """
37 | https://www.audiokinetic.com/library/edge/?source=SDK&id=ak_wwise_waapi_gettopics.html \n
38 | Retrieves the list of topics to which a client can subscribe.
39 | :return: A tuple containing the URI of all WAAPI topics.
40 | """
41 | results = self._client.call("ak.wwise.waapi.getTopics")
42 | return tuple(results.get("topics")) if results is not None else ()
43 |
--------------------------------------------------------------------------------
/pywwise/waapi/ak/wwise/wwise.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from waapi import WaapiClient as _WaapiClient
5 |
6 | from pywwise.structs import WwiseObjectWatch
7 | from pywwise.waapi.ak.wwise.console import Console as _Console
8 | from pywwise.waapi.ak.wwise.core import Core as _Core
9 | from pywwise.waapi.ak.wwise.debug import Debug as _Debug
10 | from pywwise.waapi.ak.wwise.ui import UI as _UI
11 | from pywwise.waapi.ak.wwise.waapi import Waapi as _Waapi
12 |
13 |
14 | class Wwise:
15 | """ak.wwise"""
16 |
17 | def __init__(self, client: _WaapiClient, is_debug_build: bool = False, is_console_instance: bool = False,
18 | watch_list: tuple[WwiseObjectWatch, ...] = ()):
19 | """
20 | Constructor.
21 | :param client: The WAAPI client to use.
22 | :param is_debug_build: Should be set to true if the instance of Wwise is a debug build and debug-only
23 | functions/topics are required.
24 | :param is_console_instance: Should be set to true if the instance of Wwise is running in a console window.
25 | :param watch_list: A tuple of `WwiseObjectWatch` instances. This will be used to set up the
26 | `ak.wwise.core.object.property_changed` event.
27 | """
28 | self._client = client
29 | self.console = _Console(client, is_console_instance)
30 | self.core = _Core(client, watch_list)
31 | self.debug = _Debug(client, is_debug_build)
32 | self.ui = _UI(client)
33 | self.waapi = _Waapi(client)
34 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | simplevent~=2.2.0
2 | waapi-client~=0.7.2
3 |
--------------------------------------------------------------------------------
/resources/data/SoundBank_DefinitionFile_Test.tsv:
--------------------------------------------------------------------------------
1 | Audio File Object Path Property [Voice Pitch] Reference [Output Bus] Event
2 | C:\My Audio Files\ Minigun\ MnGn_Barrel_Down.wav \Actor-Mixer Hierarchy\ Default Work Unit\ Minigun\ Barrel\ Minigun_Barrel_Stop 50 \Master-Mixer Hierarchy\Default Work Unit\Master Audio Bus\Environmental\SFX\Guns \Events\Minigun\Pay_Minigun@Play
--------------------------------------------------------------------------------
/resources/lua/main_ut.lua:
--------------------------------------------------------------------------------
1 | return "PyWwise"
--------------------------------------------------------------------------------
/resources/waves/WaveAsset_Test.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matheusvilano/PyWwise/22f99a985c7bf2c2b11a412a42fa0ecec60168f2/resources/waves/WaveAsset_Test.wav
--------------------------------------------------------------------------------
/resources/wwise/Add-ons/Commands/pywwise_dev.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 2,
3 | "commands": [
4 | {
5 | "id": "pywwise.dev.open_wwu_with_vscode",
6 | "displayName": "Open With VSCode",
7 | "program": "code",
8 | "args": "${filePath}",
9 | "startMode": "MultipleSelectionSingleProcessSpaceSeparated",
10 | "contextMenu": {
11 | "basePath": "PyWwise/Dev",
12 | "enabledFor": "WorkUnit",
13 | "visibleFor": "WorkUnit"
14 | }
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/resources/wwise/Attenuations/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | 0
17 | 0
18 | 5
19 |
20 |
21 | 100
22 | -200
23 | 37
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/resources/wwise/Audio Devices/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/resources/wwise/Control Surface Sessions/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/resources/wwise/Conversion Settings/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 4
11 |
12 |
13 |
14 |
15 | 0
16 |
17 |
18 |
19 |
20 | 48000
21 |
22 |
23 |
24 |
25 | 0
26 |
27 |
28 |
29 |
30 | 0
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/resources/wwise/Dynamic Dialogue/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Effects/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Events/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/resources/wwise/Game Parameters/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Master-Mixer Hierarchy/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/resources/wwise/Metadata/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Mixing Sessions/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Modulators/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/resources/wwise/Originals/Voices/English(US)/UnitTest_OhSheeshSniper.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/matheusvilano/PyWwise/22f99a985c7bf2c2b11a412a42fa0ecec60168f2/resources/wwise/Originals/Voices/English(US)/UnitTest_OhSheeshSniper.wav
--------------------------------------------------------------------------------
/resources/wwise/Presets/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/resources/wwise/Presets/Factory Spatial Audio.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/resources/wwise/Queries/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/SoundBanks/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/resources/wwise/Soundcaster Sessions/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 50
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/resources/wwise/States/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/resources/wwise/Switches/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/resources/wwise/Triggers/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/wwise/Virtual Acoustics/Default Work Unit.wwu:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [metadata]
2 | description-file=README.md
3 | license_files=LICENSE
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from setuptools import setup
5 |
6 |
7 | def main():
8 | setup()
9 |
10 |
11 | if __name__ == "__main__":
12 | main()
13 |
--------------------------------------------------------------------------------
/tests/testclass.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from asyncio import new_event_loop as asyncio_new_event_loop, set_event_loop as asyncio_set_event_loop
5 | from unittest import TestCase
6 |
7 | from pywwise import new_waapi_connection
8 |
9 |
10 | class PyWwiseTest(TestCase):
11 | """Base class for PyWwise test cases. Handles instantiating and deleting Ak instances automatically."""
12 |
13 | @classmethod
14 | def setUpClass(cls):
15 | super().setUpClass()
16 | asyncio_set_event_loop(asyncio_new_event_loop())
17 | cls.ak = new_waapi_connection()
18 |
19 | @classmethod
20 | def tearDownClass(cls):
21 | super().tearDownClass()
22 | del cls.ak
23 |
--------------------------------------------------------------------------------
/upload.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 Matheus Vilano
2 | # SPDX-License-Identifier: Apache-2.0
3 |
4 | from os import system
5 | from sys import argv
6 |
7 |
8 | def main():
9 | if "--nobuild" not in argv:
10 | system("python setup.py sdist")
11 | system("twine upload dist/*")
12 |
13 |
14 | if __name__ == "__main__":
15 | main()
16 |
--------------------------------------------------------------------------------