This repository contains Unity packages for the Sonosthesia project. It aims to provide modular and composable tools to create immersive and interactive audio visual experiences.
A number of demo applications provide example usage for these packages
Signals are the main building blocks of the Sonosthesia framework architecture. They are based on UniRx data streams and used to generate, modify, map, receive and transfer data between different components. Signals are templated to allow for use with any value type.
Channels are an extension of the MIDI channel concepts, which create and destroy UniRx data streams dynamically. Channels are templated to allow for use with any value type.
Mappings allow signals and channels to be connected to each other, potentially accross heterogeneous data types. They are used to create data flows accross different domains (sound, MIDI, graphics, touch).
Interactions in XR are crucial to the project, multi modal interaction is encouraged.
- com.sonosthesia.trajectory
- com.sonosthesia.noise
- com.sonosthesia.mesh
- com.sonosthesia.deform
- com.sonosthesia.deforminteraction
These packages are hosted on npm and have a dependency on UniTask and/or UniRx. In order to add them to your dependencies, you must add the following scoped registeries.
{
"scopedRegistries": [
{
"name": "Neuecc",
"url": "https://package.openupm.com",
"scopes": [
"com.neuecc.unirx",
"com.cysharp.unitask"
]
},
{
"name": "Sonosthesia",
"url": "https://registry.npmjs.com",
"scopes": [
"com.sonosthesia"
]
}
]
}
Some packages require additional scoped registeries, namely
{
"scopedRegistries": [
// ...
{
"name": "Keijiro",
"url": "https://registry.npmjs.com",
"scopes": [
"jp.keijiro"
]
}
]
}
{
"scopedRegistries": [
// ...
{
"name": "Hadashikick",
"url": "https://package.openupm.com",
"scopes": [
"jp.hadashikick.vcontainer"
]
}
]
}