All Projects → AppliedAcousticsChalmers → sound_field_analysis-py

AppliedAcousticsChalmers / sound_field_analysis-py

Licence: MIT License
Analyze, visualize and process sound field data recorded by spherical microphone arrays.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to sound field analysis-py

Andes
Python toolbox / library for power system transient dynamics simulation with symbolic modeling and numerical analysis 🔥
Stars: ✭ 68 (+11.48%)
Mutual labels:  package, analysis
Aubio
a library for audio and music analysis
Stars: ✭ 2,601 (+4163.93%)
Mutual labels:  analysis, sound
badgecreatr
Quickly place relevant badges at the top of your readme, stop copy pasting, start on your project
Stars: ✭ 61 (+0%)
Mutual labels:  package
Arch-Data-Science
Archlinux PKGBUILDs for Data Science, Machine Learning, Deep Learning, NLP and Computer Vision
Stars: ✭ 92 (+50.82%)
Mutual labels:  package
cookiecutter-pypackage
A cookiecutter template for Python package with heavy use of Github actions
Stars: ✭ 19 (-68.85%)
Mutual labels:  package
clana
CLANA is a toolkit for classifier analysis.
Stars: ✭ 28 (-54.1%)
Mutual labels:  analysis
normalize-pkg
Normalize values in package.json to improve compatibility, programmatic readability and usefulness with third party libs.
Stars: ✭ 18 (-70.49%)
Mutual labels:  package
golib
Golang packages used in frp and fft.
Stars: ✭ 43 (-29.51%)
Mutual labels:  package
bg-sound
Web Component to emulate the old-school <bgsound> HTML element
Stars: ✭ 93 (+52.46%)
Mutual labels:  sound
LiteOTP
Multi OTP Spam Amp/Paralell threads
Stars: ✭ 50 (-18.03%)
Mutual labels:  package
RWorkflow
📑 My approach to an analysis or product produced with R
Stars: ✭ 25 (-59.02%)
Mutual labels:  analysis
taint-with-frida
just an experiment
Stars: ✭ 17 (-72.13%)
Mutual labels:  analysis
angular-package-builder
[DEPRECATED] Packages your Angular 4+ library based on the Angular Package Format.
Stars: ✭ 25 (-59.02%)
Mutual labels:  package
ReplAPI.it-NodeJS
[DEPRECIATED] 𝙀𝙫𝙚𝙧𝙮𝙩𝙝𝙞𝙣𝙜 𝙍𝙚𝙥𝙡𝙞𝙩, 𝙖𝙡𝙡 𝙖𝙩 𝙮𝙤𝙪𝙧 𝙙𝙞𝙨𝙥𝙤𝙨𝙖𝙡. This is the single most extensive Replit package, allowing you to access various parts of the site with just a few classes and methods. Maintained by @RayhanADev.
Stars: ✭ 32 (-47.54%)
Mutual labels:  package
timbre painting
Hierarchical fast and high-fidelity audio generation
Stars: ✭ 67 (+9.84%)
Mutual labels:  sound
action-autotag
Automatically generate a new tag when the manifest file (package.json, Dockerfile, custom file, etc) version changes.
Stars: ✭ 45 (-26.23%)
Mutual labels:  package
channelHelper
基于walle工具的多渠道打包脚本
Stars: ✭ 35 (-42.62%)
Mutual labels:  package
version-check
An action that allows you to check whether your npm package version has been updated
Stars: ✭ 65 (+6.56%)
Mutual labels:  package
SoundProcesses
A computer music framework to describe, create and manage sound processes in the Scala programming language. Issue tracker: https://codeberg.org/sciss/SoundProcesses/issues
Stars: ✭ 29 (-52.46%)
Mutual labels:  sound
sonipy
Sonification tool for turning scatter plots into perceptually uniform sound files for science and science access.
Stars: ✭ 20 (-67.21%)
Mutual labels:  sound

Sound Field Analysis toolbox for Python

Mentioned in Awesome Python for Scientific Audio icon_travis icon_appveyor

The sound_field_analysis toolbox (short: sfa) is a Python port of the Sound Field Analysis Toolbox (SOFiA) toolbox, originally by Benjamin Bernschütz [1]. The main goal of the sfa toolbox is to analyze, visualize and process sound field data recorded by spherical microphone arrays. Furthermore, various types of test-data may be generated to evaluate the implemented functions. It is an essential building block of ReTiSAR, an implementation of real time binaural rendering of spherical microphone array data.

Requirements

We use Python 3.9 for development. Chances are that earlier version will work too but this is currently untested.

The following external libraries are required:

Installation

For performance and convenience reasons we highly recommend to use Conda (miniconda for simplicity) to manage your Python installation. Once installed, you can use the following steps to receive and use sfa, depending on your use case:

  • From PyPI / pip:

    Install into an existing environment (without example Jupyter Notebooks):
    pip install sound_field_analysis
  • By cloning (or downloading) the repository and setting up a new environment:

    git clone https://github.com/AppliedAcousticsChalmers/sound_field_analysis-py.git
    cd sound_field_analysis-py/
    Create a new Conda environment from the specified dependencies:
    conda env create --file environment.yml --force
    Activate the environment:
    source activate sfa
    Optional: Install additional dependencies for development purposes (locally run Jupyter Notebooks with example, run tests, generate documentation):
    conda env update --file environment_dev.yml

Documentation

https://appliedacousticschalmers.github.io/sound_field_analysis-py/ and offline as PDF.

Note: Verify the version number of the documentation to see if it reflects the latest changes.

Examples

The following examples are available as Jupyter Notebooks, either statically on GitHub or interactively on nbviewer. You can of course also simply download the examples and run them locally!

Exp1: Ideal plane wave

Ideal unity plane wave simulation and 3D plot.

View interactively on nbviewer

AE1_img

Exp2: Measured plane wave

A measured plane wave from AZ=180°, EL=90° in the anechoic chamber using a cardioid mic.

View interactively on nbviewer

AE2_img

Exp4: Binaural rendering

Render a spherical microphone array impulse response measurement binaurally. The example shows examples for loading miro or SOFA files.

View interactively on nbviewer

AE4_img

Version history

unreleased
  • Improve read_miro_struct() to give warnings in case elevation data is found
  • Fix Exp4 loading of MIRO files and improve documentation table formatting
  • Update README to reflect the name change of master branch to "main"
v2022.1.10
  • Update miro_to_struct() to work in modern Matlab versions
  • Update MIRO struct loading for SphericalGrid (forgiving empty radius and quadrature weights)
  • Add optional automatic limitation of y-axis range in plot2D()
  • Implement frac_oct_smooth_fd() with fractional octave smoothing of magnitude spectra
  • Add option for fractional octave smoothing of magnitude spectra to plot2D()
  • Fix Exp4 to replace removed deg2rad and rad2deg utility functions
  • Add option to generate unlimited radial filters
  • Add Radial Filter Improvement DC-component estimation for all orders where the 0 Hz bin is NaN
v2021.2.4
  • Implement option to use real spherical harmonic basis functions
  • Update Exp4 to optionally utilize real spherical harmonics
  • Fix testing of spherical harmonics against reference Matlab implementation
  • Add testing for generation of real spherical harmonics
  • Add evaluation of performance for generation of complex and real spherical harmonics
  • Add evaluation of performance for spatial sound field decomposition
  • Remove deg2rad and rad2deg utility functions (replaced by NumPy equivalent)
  • Update Conda environment setup to combine all development dependencies
  • Update online and offline documentation
v2021.1.12
  • Update MIRO struct loading for SphericalGrid (quadrature weights are now optional)
  • Fix to prevent Python 3.8 syntax warnings
  • Improve Exp4 (general code structure and utilizing Spherical Head Filter and Spherical Harmonics Tapering)
v2020.1.30
  • Update README and PyPI package
v2019.11.6
  • Update internal documentation and string formatting
v2019.8.15
  • Change version number scheme to CalVer
  • Improve Exp4
  • Update read_SOFA_file()
  • Update 2D plotting functions
  • Improve write_SSR_IRs()
  • Improve Conda environment setup for Jupyter Notebooks
  • Update miro_to_struct()
2019-07-30 (v0.9)
  • Implement SOFA import
  • Update Exp4 to contain SOFA import
  • Delete obsolete Exp3
  • Add named tuple HRIRSignal
  • Implement cart2sph() and sph2cart() utility functions
  • Add Conda environment file for convenient installation of required packages
2019-07-11 (v0.8)
  • Implement Spherical Harmonics coefficients tapering
  • Update Spherical Head Filter to consider tapering
2019-06-17 (v0.7)
  • Implement Bandwidth Extension for Microphone Arrays (BEMA)
  • Edit read_miro_struct(), named tuple ArraySignal and miro_to_struct.m to load center measurements
2019-06-11 (v0.6)
2019-05-23 (v0.5)
  • Implement Spherical Head Filter
  • Implement Spherical Fourier Transform using pseudo-inverse
  • Extract real time capable spatial Fourier transform
  • Extract reversed m index function (Update Exp4)

Contribute

See CONTRIBUTE.rst for full details.

License

This software is licensed under the MIT License (see LICENSE for full details).

References

The sound_field_analysis toolbox is based on the Matlab/C++ Sound Field Analysis Toolbox (SOFiA) toolbox by Benjamin Bernschütz. For more information you may refer to the original publication:

[1] Bernschütz, B., Pörschmann, C., Spors, S., and Weinzierl, S. (2011). SOFiA Sound Field Analysis Toolbox. Proceedings of the ICSA International Conference on Spatial Audio

The Lebedev grid generation was adapted from an implementation by Richard P. Muller.

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].