Tramway SDK
definitions.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_AUDIO_SPATIAL_DEFINITIONS_H
4#define TRAM_SDK_AUDIO_SPATIAL_DEFINITIONS_H
5
6#include <framework/math.h>
7
9
11
12const size_t PATHS_FOR_RENDERING = 10;
13const size_t PATHS_FOR_SOURCE = 5;
14const size_t PATHS_FOR_LISTENER = 5;
15
16const size_t BUFFER_COUNT = 1000;
17const size_t SOURCE_COUNT = 200;
18
19const size_t SOURCE_DEPTH_LIMIT = 3;
20const size_t LISTENER_DEPTH_LIMIT = 6;
21
22// actually this might be useful!!! for both. or not
24 float force;
27};
28
29// this is the successful path that might need to be revalidated
31 float force;
32 float distance;
36
40
41 struct {
44};
45
47 struct {
50 float force;
53};
54
55// this is handed over to the rendering algorithm
57 float force;
58 float panning;
61};
62
63enum AudioSourceFlags : uint16_t {
66};
67
68enum AudioSampleRate : uint16_t {
72};
73
76 uint32_t channels;
77 size_t length;
78 float* data;
79};
80
81// Audio source information for path tracing
84
85 PathFromAudioSource* paths; // bidirectional paths
86
88 size_t last_path;
89};
90
91// Audio source information for rendering
94 uint16_t flags;
95 uint32_t sample;
98};
99
103
106
107extern int32_t listener_reverb_delay[5];
108extern float listener_reverb_distance[5];
109extern float listener_reverb_force[5];
110extern float listener_reverb_normalized[5];
111
112}
113
114#endif // TRAM_SDK_AUDIO_SPATIAL_DEFINITIONS_H
Definition: spinlock.h:13
Experimental path tracing audio system.
Definition: definitions.h:10
AudioBuffer audiobuffers[BUFFER_COUNT]
AudioSource audiosources[SOURCE_COUNT]
AudioRender audiorenders[SOURCE_COUNT]
const size_t SOURCE_COUNT
Definition: definitions.h:17
AudioSourceFlags
Definition: definitions.h:63
@ SOURCE_REPEATING
Definition: definitions.h:65
@ SOURCE_PLAYING
Definition: definitions.h:64
float listener_reverb_normalized[5]
const size_t SOURCE_DEPTH_LIMIT
Definition: definitions.h:19
int32_t listener_reverb_delay[5]
const size_t PATHS_FOR_RENDERING
Definition: definitions.h:12
float listener_reverb_distance[5]
const size_t LISTENER_DEPTH_LIMIT
Definition: definitions.h:20
const size_t PATHS_FOR_SOURCE
Definition: definitions.h:13
float listener_reverb_force[5]
const size_t PATHS_FOR_LISTENER
Definition: definitions.h:14
const size_t BUFFER_COUNT
Definition: definitions.h:16
AudioSampleRate
Definition: definitions.h:68
@ SAMPLERATE_22050
Definition: definitions.h:70
@ SAMPLERATE_11025
Definition: definitions.h:71
@ SAMPLERATE_44100
Definition: definitions.h:69
glm::vec3 vec3
Definition: math.h:11
glm::quat quat
Definition: math.h:12
Definition: definitions.h:74
AudioSampleRate sample_rate
Definition: definitions.h:75
float * data
Definition: definitions.h:78
uint32_t channels
Definition: definitions.h:76
size_t length
Definition: definitions.h:77
Definition: definitions.h:92
uint16_t flags
Definition: definitions.h:94
PathRenderingInfo * paths
Definition: definitions.h:97
uint32_t sample
Definition: definitions.h:95
AudioBuffer * buffer
Definition: definitions.h:96
Spinlock lock
Definition: definitions.h:93
Definition: definitions.h:82
PathFromAudioSource * paths
Definition: definitions.h:85
vec3 position
Definition: definitions.h:83
size_t last_path
Definition: definitions.h:88
PathTracingResult * result_paths
Definition: definitions.h:87
float force
Definition: definitions.h:24
vec3 sampling_direction
Definition: definitions.h:25
uint32_t cycles_since_last_hit
Definition: definitions.h:26
Definition: definitions.h:46
vec3 direction
Definition: definitions.h:49
float force
Definition: definitions.h:50
vec3 source_direction
Definition: definitions.h:52
vec3 point
Definition: definitions.h:48
struct tram::Audio::Spatial::PathFromAudioSource::@7 reflections[LISTENER_DEPTH_LIMIT]
Definition: definitions.h:56
int32_t panning_delay
Definition: definitions.h:59
float panning
Definition: definitions.h:58
float force
Definition: definitions.h:57
int32_t distance_delay
Definition: definitions.h:60
Definition: definitions.h:30
vec3 source_ideal_angle
Definition: definitions.h:39
uint32_t reflection_count
Definition: definitions.h:34
float force
Definition: definitions.h:31
uint32_t cycles_since_last_hit
Definition: definitions.h:33
vec3 point
Definition: definitions.h:42
vec3 listener_ideal_angle
Definition: definitions.h:38
struct tram::Audio::Spatial::PathTracingResult::@6 reflections[SOURCE_DEPTH_LIMIT *LISTENER_DEPTH_LIMIT]
vec3 arrival_direction
Definition: definitions.h:35
float distance
Definition: definitions.h:32
float reflection_absorption
Definition: definitions.h:37