Skip to content

Materials

Three Steam Audio ships with a small set of frozen acoustic material presets. All absorption and transmission values are three-band [low, mid, high] arrays, and scattering is a single value in [0, 1].

{
absorption: [0.10, 0.05, 0.02],
scattering: 0.05,
}
{
absorption: [0.10, 0.20, 0.30],
scattering: 0.05,
}
{
absorption: [0.13, 0.20, 0.24],
scattering: 0.05,
transmission: [0.06, 0.03, 0.02],
}
{
absorption: [0.20, 0.07, 0.06],
scattering: 0.05,
transmission: [0.03, 0.02, 0.01],
}
{
absorption: [0.11, 0.07, 0.06],
scattering: 0.05,
}

You can define your own materials:

import {
const Materials: Readonly<{
concrete: AcousticMaterial;
generic: AcousticMaterial;
glass: AcousticMaterial;
metal: AcousticMaterial;
wood: AcousticMaterial;
}>
Materials
} from 'three-steam-audio'
const
const carpet: {
readonly absorption: readonly [0.3, 0.45, 0.6];
readonly scattering: 0.2;
readonly transmission: readonly [0.1, 0.05, 0.02];
}
carpet
= {
absorption: readonly [0.3, 0.45, 0.6]
absorption
: [0.30, 0.45, 0.60],
scattering: 0.2
scattering
: 0.20,
transmission: readonly [0.1, 0.05, 0.02]
transmission
: [0.10, 0.05, 0.02],
} as
type const = {
readonly absorption: readonly [0.3, 0.45, 0.6];
readonly scattering: 0.2;
readonly transmission: readonly [0.1, 0.05, 0.02];
}
const
const
const combined: (AcousticMaterial | {
readonly absorption: readonly [0.3, 0.45, 0.6];
readonly scattering: 0.2;
readonly transmission: readonly [0.1, 0.05, 0.02];
})[]
combined
= [
const Materials: Readonly<{
concrete: AcousticMaterial;
generic: AcousticMaterial;
glass: AcousticMaterial;
metal: AcousticMaterial;
wood: AcousticMaterial;
}>
Materials
.
concrete: AcousticMaterial
concrete
,
const carpet: {
readonly absorption: readonly [0.3, 0.45, 0.6];
readonly scattering: 0.2;
readonly transmission: readonly [0.1, 0.05, 0.02];
}
carpet
]

See AcousticMaterial for the full interface.