All Projects → Mach1Studios → m1-web-spatialaudioplayer

Mach1Studios / m1-web-spatialaudioplayer

Licence: other
Consolidated Mach1 spatial audio player focused on collecting all headtracking input methods and defining best practices

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to m1-web-spatialaudioplayer

binaural-audio-editor
This is an audio application that produces 3D binaural audio from 2D mono audio samples and positional information given by the graphical user interface. Listen to 3D audio through stereo headphones. Video Demo:https://www.youtube.com/watch?v=peF9cZSwVGw
Stars: ✭ 37 (+42.31%)
Mutual labels:  spatial, spatial-audio
Cavern
Object-based audio engine and codec pack with Dolby Atmos rendering, room correction, HRTF, one-click Unity audio takeover, and much more.
Stars: ✭ 132 (+407.69%)
Mutual labels:  spatial-audio
Thst
Templated hierarchical spatial trees designed for high-peformance.
Stars: ✭ 84 (+223.08%)
Mutual labels:  spatial
Doctrine Postgis
Spatial and Geographic Data with PostGIS and Doctrine.
Stars: ✭ 161 (+519.23%)
Mutual labels:  spatial
Regionmask
plotting and creation of masks of spatial regions
Stars: ✭ 97 (+273.08%)
Mutual labels:  spatial
Geostatspy
GeostatsPy Python package for spatial data analytics and geostatistics. Mostly a reimplementation of GSLIB, Geostatistical Library (Deutsch and Journel, 1992) in Python. Geostatistics in a Python package. I hope this resources is helpful, Prof. Michael Pyrcz
Stars: ✭ 200 (+669.23%)
Mutual labels:  spatial
Tinspin Indexes
Spatial index library with R*Tree, STR-Tree, Quadtree, CritBit, KD-Tree, CoverTree
Stars: ✭ 64 (+146.15%)
Mutual labels:  spatial
geodaData
Data package for accessing GeoDa datasets using R
Stars: ✭ 15 (-42.31%)
Mutual labels:  spatial
Mathnet Spatial
Math.NET Spatial
Stars: ✭ 246 (+846.15%)
Mutual labels:  spatial
Openrailwaymap
An OpenStreetMap-based project for creating a map of the world's railway infrastructure.
Stars: ✭ 150 (+476.92%)
Mutual labels:  spatial
H2gis
A spatial extension of the H2 database.
Stars: ✭ 152 (+484.62%)
Mutual labels:  spatial
Openlayers Editor
OpenLayers Editor
Stars: ✭ 138 (+430.77%)
Mutual labels:  spatial
Depthai
DepthAI Python API utilities, examples, and tutorials.
Stars: ✭ 203 (+680.77%)
Mutual labels:  spatial
Linemap
♒️ Create maps made of lines
Stars: ✭ 96 (+269.23%)
Mutual labels:  spatial
SpatGRIS
Sound spatialization tool
Stars: ✭ 37 (+42.31%)
Mutual labels:  spatial
Leaflet Ng2
Angular.io integration of Leaflet
Stars: ✭ 66 (+153.85%)
Mutual labels:  spatial
Landscapemetrics
Landscape Metrics for Categorical Map Patterns 🗺️ in R
Stars: ✭ 151 (+480.77%)
Mutual labels:  spatial
Googleway
R Package for accessing and plotting Google Maps
Stars: ✭ 187 (+619.23%)
Mutual labels:  spatial
pygeopackage
A Python package to read/write spatial data to a geopackage.
Stars: ✭ 33 (+26.92%)
Mutual labels:  spatial
GeoArrays.jl
Simple geographical raster interaction built on top of ArchGDAL, GDAL and CoordinateTransformations
Stars: ✭ 42 (+61.54%)
Mutual labels:  spatial

Mach1 Spatial Headtracking Examples

Demos

List of already deployed demos utilizing concepts of Mach1 Spatial and facetracking

Description

A consolidated web spatial audio player for Mach1 Spatial playback with two goals:

  • Exploration of different methods of orientation sensing and best practices for headtracking UX as an ongoing R&D project for spatial and multichannel audio playback
  • Simplified playback tool that in concert with Mach1Transcode API can aggregate all soundfield formats and play them back with a simple single player object

Setup

  • Use ./download-audiofiles.sh (or ./download-audiofiles.bat if on WIN) to download some prepared debug playback audio

Usage

We have exposed some settings to extend usability of the facetracker mode.

  • yawMultiplier - Multiplies the yaw rotation to allow experimentation with extending the limited range of motion from "facetracking", making it 1.0 is recommended for natural headtracking however raising it up to 2.0 is still believable in terms of associating the audio results with your headtracking motion; anything past 2.0 breaks immersion
  • pitchMultiplier - Multiplies the pitch rotation to allow experimentation with extending the limited range of motion from "facetracking", we found it to be best to keep it as close to 1.0 as possible
  • rollMultiplier - Multiplies the roll rotation to allow experimentation with extending the limited range of motion from "facetracking", we found it to be best to keep it as close to 1.0 as possible
  • FOV - We clamp the yaw range from "facetracking" to lessen low confidence results from causing large rotation jumps when unable to view full face
  • filterSpeed - An additional filter to smooth results applied to Mach1Decode during audio playback to stereo
  • oneEuroFilterBeta - The filter beta for the 1Euro implementation

Orientation Inputs

Facetracking

After exploring several web based facetrackers we have had the most success with MediaPipe FaceMesh. Landmark tracking with FaceMesh wasn't designed for us to calculate orientation rotations to be applied to something as sensitive as spatial audio playback, so we had to apply a filter to the motion results to "smooth" out any low frequency jitters. This can be seen via the 1Euro filter implementation:

window.createOneEuroFilters = function createOneEuroFilters() {
    fYaw = OneEuroFilter(60, 1.0, window.controls.oneEuroFilterBeta, 1.0);
    fPitch = OneEuroFilter(60, 1.0, window.controls.oneEuroFilterBeta, 1.0);
    fRoll = OneEuroFilter(60, 1.0, window.controls.oneEuroFilterBeta, 1.0);
};

Mobile Device IMU

Running this demo on a mobile device will now use the device's IMU sensor with gimbal rotations to ensure holding in portrait mode will have a smooth and expected full 3DOF rotations.

Mouse UI

When utilizing Touch mode a simple mouse control bound to width of window will be used as the input orientation for the Mach1Decode object(s) and for the OSC output.

Bose AR IMU

When utilizing Bose AR mode a connection prompt and handler supplied by the BoseAR Web SDK will be utilized for the input orientation for the Mach1Decode object(s) and for the OSC output.

License

Use of the Mach1Decode API in this example falls under the license supplied in this repo and derived from the Mach1 Spatial SDK viewable here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].