Software and APIs: Difference between revisions

From Sofaconventions
Jump to navigation Jump to search
Content deleted Content added
restructed, dirpat added
Line 1: Line 1:
== API for Matlab/Octave ==
== Generic: HDF5View ==


SOFA files are based on [http://en.wikipedia.org/wiki/NetCDF netCDF-4]. NetCDF is based on [http://en.wikipedia.org/wiki/Hdf5 HDF5]. [http://www.hdfgroup.org/hdf-java-html/hdfview/ HDFView] is a generic viewer for [http://en.wikipedia.org/wiki/Hdf5 HDF5] files running in Java.
An application-programming interface (API) for Matlab and Octave.


Thus, SOFA files can be loaded and edited in the HDFView. This is a generic viewer; it allows to browse through all metadata and data in a numeric format only.
The releases are provided at [https://sourceforge.net/projects/sofacoustics/ Sourceforge]. The sources are stored at [https://github.com/sofacoustics/sofa github]


== API: SOFA API for Matlab/Octave ==
If you have questions about this API, please send an email to the [mailto:sofacoustics-devel@lists.sourceforge.net mailing list]. You don't have to be a member of the mailing list to send a message to the list moderator.


SOFA API for Matlab/Octave aims at providing a basic interface for handling SOFA files in Matlab and Octave.
== API for C++ ==

The releases are provided at [https://sourceforge.net/projects/sofacoustics/ Sourceforge]. The sources are stored at [https://github.com/sofacoustics/sofa github]

== API: SOFA API for C++ ==


An API for C++ is available online. The version 1.0 is in accordance with the AES69-2015 standard.
An API for C++ is available online. The version 1.0 is in accordance with the AES69-2015 standard.
Line 15: Line 19:
If you have questions about this API, please send an email to the [mailto:sofacoustics-devel@lists.sourceforge.net mailing list]. You don't have to be a member of the mailing list to send a message to the list moderator.
If you have questions about this API, please send an email to the [mailto:sofacoustics-devel@lists.sourceforge.net mailing list]. You don't have to be a member of the mailing list to send a message to the list moderator.


== API: libmysofa ==
== SOFAlizer: Demo of a SOFA-based audio engine in C++ ==

[https://github.com/hoene/libmysofa Libmysofa] is a light weight C-library intended to read SOFA files for spatial rendering.

It hardly has any library dependencies and is suitable for embedded devices. It can read SOFA files and check whether the data comply the "SimpleFreeFieldHRIR" conventions. In addition, provides functions to look-up and interpolate the filters for a given orientation and to normalize the HRTFs to a reference level. It compiles unter Linux (CMake) and Windows (Visual Studio 2015).

== API: WebSofa ==

[https://github.com/CWBudde/WebSofa WebSofa] is slightly based on the libmysofa research for loading HDF files without much dependencies. However, in contrast to the low level c library this library is meant to be executed in a JavaScript environment (such as any modern browser or [https://nodejs.org/en/ Node.js]). So far it is not completed as it's just a hobby project, but it already allows to display properties of a given SOFA file. Try it out in the [https://rawgit.com/CWBudde/WebSofa/master/Demo/www/index.html online demo]


== Application: Spat ==
[http://forumnet.ircam.fr/product/spat-en/ Spat] is a software suite for spatialization of sound signals in real-time intended for musical creation, postproduction, and live performances made by IRCAM. It supports SOFA for binaural rendering.


== Application: WaveCloud-M ==

[http://www.ee.bgu.ac.il/~sheaffer/wavecloud.html WaveCloud-M] is Matlab-oriented room simulator. Beginning with version 1.0, WaveCloud-M can use HRTFs saved in SOFA to render binaural signals.

== Application: SOFAlizer plug-in for VLC player ==


SOFAlizer is a simple demo of an audio engine as a plugin for the [http://www.videolan.org/vlc/ VLC-Player].
SOFAlizer is a simple demo of an audio engine as a plugin for the [http://www.videolan.org/vlc/ VLC-Player].
Line 33: Line 56:
The source code is available [https://github.com/sofacoustics/SOFAlizer here]. The file [https://github.com/sofacoustics/SOFAlizer/blob/master/modules/audio_filter/sofalizer/sofalizer.c sofalizer.c] can serve as an example of how to load SOFA files in C++.
The source code is available [https://github.com/sofacoustics/SOFAlizer here]. The file [https://github.com/sofacoustics/SOFAlizer/blob/master/modules/audio_filter/sofalizer/sofalizer.c sofalizer.c] can serve as an example of how to load SOFA files in C++.


== WaveCloud-M ==
== Application: DirPat ==


DirPat is a tool to analyze and visualize directivity of acoustic sources like loudspeakers, microphones, singers, talkers, and music instruments. Besides an user interface and signal-processing tools, DirPat provides a database of measured directivities which are handled as SOFA files.
[http://www.ee.bgu.ac.il/~sheaffer/wavecloud.html WaveCloud-M] is Matlab-oriented room simulator. Beginning with version 1.0, WaveCloud-M can use HRTFs saved in SOFA to render binaural signals.

== Spat ==
[http://forumnet.ircam.fr/product/spat-en/ Spat] is a software suite for spatialization of sound signals in real-time intended for musical creation, postproduction, and live performances made by IRCAM. It supports SOFA for binaural rendering.


More details can found at the [https://opendata.iem.at/projects/dirpat/ DirPat project pages].
== HDF5View ==

SOFA files are based on [http://en.wikipedia.org/wiki/NetCDF netCDF-4]. NetCDF is based on [http://en.wikipedia.org/wiki/Hdf5 HDF5]. [http://www.hdfgroup.org/hdf-java-html/hdfview/ HDFView] is a generic viewer for [http://en.wikipedia.org/wiki/Hdf5 HDF5] files running in Java.

Thus, SOFA files can be loaded and edited in the HDFView.

== libmysofa ==

[https://github.com/hoene/libmysofa Libmysofa] is a light weight C-library intended to read SOFA files for spatial rendering.

It hardly has any library dependencies and is suitable for embedded devices. It can read SOFA files and check whether the data comply the "SimpleFreeFieldHRIR" conventions. In addition, provides functions to look-up and interpolate the filters for a given orientation and to normalize the HRTFs to a reference level. It compiles unter Linux (CMake) and Windows (Visual Studio 2015).

== WebSofa ==

[https://github.com/CWBudde/WebSofa WebSofa] is slightly based on the libmysofa research for loading HDF files without much dependencies. However, in contrast to the low level c library this library is meant to be executed in a JavaScript environment (such as any modern browser or [https://nodejs.org/en/ Node.js]). So far it is not completed as it's just a hobby project, but it already allows to display properties of a given SOFA file. Try it out in the [https://rawgit.com/CWBudde/WebSofa/master/Demo/www/index.html online demo]

Revision as of 08:24, 11 June 2018

Generic: HDF5View

SOFA files are based on netCDF-4. NetCDF is based on HDF5. HDFView is a generic viewer for HDF5 files running in Java.

Thus, SOFA files can be loaded and edited in the HDFView. This is a generic viewer; it allows to browse through all metadata and data in a numeric format only.

API: SOFA API for Matlab/Octave

SOFA API for Matlab/Octave aims at providing a basic interface for handling SOFA files in Matlab and Octave.

The releases are provided at Sourceforge. The sources are stored at github

API: SOFA API for C++

An API for C++ is available online. The version 1.0 is in accordance with the AES69-2015 standard.

The sources are stored at github.

If you have questions about this API, please send an email to the mailing list. You don't have to be a member of the mailing list to send a message to the list moderator.

API: libmysofa

Libmysofa is a light weight C-library intended to read SOFA files for spatial rendering.

It hardly has any library dependencies and is suitable for embedded devices. It can read SOFA files and check whether the data comply the "SimpleFreeFieldHRIR" conventions. In addition, provides functions to look-up and interpolate the filters for a given orientation and to normalize the HRTFs to a reference level. It compiles unter Linux (CMake) and Windows (Visual Studio 2015).

API: WebSofa

WebSofa is slightly based on the libmysofa research for loading HDF files without much dependencies. However, in contrast to the low level c library this library is meant to be executed in a JavaScript environment (such as any modern browser or Node.js). So far it is not completed as it's just a hobby project, but it already allows to display properties of a given SOFA file. Try it out in the online demo


Application: Spat

Spat is a software suite for spatialization of sound signals in real-time intended for musical creation, postproduction, and live performances made by IRCAM. It supports SOFA for binaural rendering.


Application: WaveCloud-M

WaveCloud-M is Matlab-oriented room simulator. Beginning with version 1.0, WaveCloud-M can use HRTFs saved in SOFA to render binaural signals.

Application: SOFAlizer plug-in for VLC player

SOFAlizer is a simple demo of an audio engine as a plugin for the VLC-Player.

Currently, Windows binaries of the VLC-Player 2.1 compiled with the SOFAlizer plugin are available. In order to use SOFAlizer:

  • Download the official VLC 2.1 from here and install on your machine
  • Download the SOFAlizer from here, unzip, and copy over your VLC installation
  • Start VLC
  • Goto Tools, Preferences, check "Show settings: All"
  • In the left panel, for Audio/Filters, check "SOFAlizer"
  • In the left panel, for Audio/Filters/SOFAlizer, select at SOFA file 1,2,3 up to three SOFA files
  • Click on Save
  • Goto Tools/Effects and Filters, in that panel, select "SOFAlizer"
  • Enable SOFAlizer
  • Load a audio/video file, enjoy

The source code is available here. The file sofalizer.c can serve as an example of how to load SOFA files in C++.

Application: DirPat

DirPat is a tool to analyze and visualize directivity of acoustic sources like loudspeakers, microphones, singers, talkers, and music instruments. Besides an user interface and signal-processing tools, DirPat provides a database of measured directivities which are handled as SOFA files.

More details can found at the DirPat project pages.