Skip to main content

Patch notes 1.0.0

Source directivity

  • Source directivity library of sound sources.
  • Source directivity import (.CF2 format)

Device receivers

  • DRTF support
  • Ability to change/rotate device for device receivers in a completed simulation without needing to re-run the simulation.

Material import

  • The ability to create custom materials.

Other changes

  • Remove the ability to create multiple projects with the same name within an organization.
  • Remove the ability to upload models with the same name within a project.
  • tsdk.get_project_by_name added.
  • project.get_model_by_name added.
  • tsdk.device_library.get_device_by_name added.

Breaking changes

Version 1.0 includes a lot of new features and improvements, unfortunately that forced us to make a few changes that are not backwards compatible.

Here is a list of breaking changes combined with code examples on how to update you code.

  • The directive_speech and directive_loudspeaker source types have been folded into the Source Directivity library.
# Old way of creating a directive speech source.
my_source = treble.Source(
x=1,
y=2,
z=3,
source_type=treble.SourceType.directive_speech,
label="source_speech",
)
# New way of creating a directive speech source.
# Load speech directivity from source directivity library.
speech_directivity = tsdk.source_directivity_library.query(
name="Speech",
category=treble.SourceDirectivityCategory.natural
)[0]

my_source = treble.Source(
x=1,
y=2,
z=3,
source_type=treble.SourceType.directive,
label="source_speech",
source_properties=treble.SourceProperties(source_directivity=speech_directivity)
)
  • tsdk.materal_library.get_by_category has been folded into the tsdk.materal_library.get method.
# Old way of fetching by category.
tsdk.materal_library.get_by_category('Porous')
# New way of fetching by category.
tsdk.material_library.get(category='Porous')
  • Devices have been moved from project to tsdk.device_library making it possible to use the same devices in multiple projects, so creating, fetching and deleting devices has changed a bit.
# Old way of fetching devices
project.get_devices()

# Old way of fetching a single device
project.get_device(id)

# Old way of creating a device
project.add_device(device_definition)

# Old way of deleting a device
project.delete_device(device)
# New way of fetching devices
tsdk.device_library.get_devices()

# New way of fetching a single device
tsdk.device_library.get_device(id)

# New way of creating a device
tsdk.device_library.add_device(device_definition)

# New way of deleting a device
tsdk.device_library.delete_device(device)