CICM / HoaLibrary-Light

:globe_with_meridians: High Order Ambisonics library
http://hoalibrary.mshparisnord.fr/en
GNU General Public License v3.0
100 stars 10 forks source link

3d rotations #12

Open danieleghisi opened 4 years ago

danieleghisi commented 4 years ago

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

pierreguillot commented 4 years ago

Hello Daniele,

In fact, the library is no more maintained. Eliott and I are both working in other places and we don't have enough time to work on it. When we were working on the library, we planned to add the 3D rotation even with order limitation so, indeed, it would be great to integrate this feature. But even if you do the best pull request in the world, I'm afraid that I won't be able to merge it before a while because I've already so many pull requests to merge on other projects :( I could discuss with the CICM what would be the best strategy for these repositories that are not maintained and keep you informed.

Cheers, Pierre

danieleghisi commented 4 years ago

I understand. Too bad it is not maintained any longer...