GithubHelp home page GithubHelp logo

cicm / hoalibrary-light Goto Github PK

View Code? Open in Web Editor NEW
95.0 16.0 10.0 9.34 MB

:globe_with_meridians: High Order Ambisonics library

Home Page: http://hoalibrary.mshparisnord.fr/en

License: GNU General Public License v3.0

C++ 99.88% CMake 0.12%
high-order-ambisonics spatialization header-only ambisonics hoa-library cpp

hoalibrary-light's People

Contributors

claudiocabral avatar eliottparis avatar pierreguillot avatar thomaslemeur avatar uliss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hoalibrary-light's Issues

ambix?

In all the repositories it does not specify anywhere what order you are using (ACN or FuMa)?

Furthermore, on the website, there is an updated SN3D set of patches which leads me to believe the ordering is ACN but the normalization was updated from N3D to SN3D?

What about the Faust version? Could you update these details on all your different compilations?

Sorry if I am ignorant, still new to this ambisonics thing. Been at it for three years...

ToDo v3

  • change the license to GPL v2 ?
  • encoder: improve for 1st, 2nd & 3rd orders at least
  • optim: check the Max-Re 2d and 3d

hoa.2d.decoder~ help file crashes Max

Hi,

Title says it all ... steps to repro : open the help file!
Happens with Max8.1.8 (and Max8.2.0 beta as well) on a Mac running Mojave.
Does not happen with Max8.1.7.

Incompatibility with existing HOA Ambisonics implementations

Hi,
as already discussed via Email the implementation of the spherical harmonics has some problems..
The 3d implementation is not compatible to other implementations that have become standard (ambix) - as implemented in the ambix vst plugins and O3A by blueripplesound.

One cause:
In https://github.com/CICM/HoaLibrary-Light/blob/master/Sources/Encoder.hpp#L1208 you write
m_cos_theta = std::cos(HOA_PI2 + m_elevation);, this is a wrong conversion from elevation to zenith angle and results in flipping top/bottom. Correctly it should be: m_cos_theta = std::cos(HOA_PI2 - m_elevation);

Condon Shortley phase:
You are using somewhere the term (-1)^degree, which no other Ambisonics implementation I know of uses. Please remove for compatibility reasons.

Normalization:
the channels with degree=0 seems to be not scaled by 1/sqrt(4*pi).
I would recommend removing the term 1/sqrt(4*pi) completely, however if you decide to include it please do it consequently.

Best,
Matthias

3d rotations

Hello HOAlibrary crew,

I am in the process of linking the HOA library to an offline audio processing library I am writing, and in doing so I noticed that you had no implementation for 3d rotations. I have set up in a couple of days a barebone implementation, based on yaw/pitch/roll; there's a little convention mismatch with the axis of my library, but I will handle it outside. One could certainly imagine a direct quaternion input (as a matter of fact, that's probably almost a one liner, given that my current implementation uses Eigen's quaternionToEuler conversions).

Not sure if the 3d rotation was already in your pipeline. Also, I'm no expert in this 3d rotational geometry, euler angles, quaternions, etc. So what I did is definitely error prone, and should be perhaps checked by someone more skilled than I am. Another limitation is that only orders up to 21 are supported (in practice this is not a limitation, of course, but in theory it is...), since I am relying on the Ry90 matrices Frank Zotter provided (and they exist up to the 21st order). That being said, for my application it seems to work nicely, although I'm sure that you would have implemented it ten times better than I did.

In any case, if that was not in your pipeline and you are interested to merge it, let me know and I can perhaps make a pull request at some point.

Thanks for your amazing work!
Daniele

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.