-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Polar to Cartesian and vice-versa conversion #25
Comments
I would be inclined to recommend the EBU recommendation (the "inflated balloon" filling up the XYZ volume).
This means that a perfect azimuth circle with nul elevation and a distance of 1 becomes a rectangular XY trajectory following the XY perimeter.
See section 7.3.2.1 of this document: https://tech.ebu.ch/docs/tech/tech3388v1.pdf
…________________________________
From: lzwicker ***@***.***>
Sent: 29 September 2023 17:22
To: immersive-audio-live/ADM-OSC ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [immersive-audio-live/ADM-OSC] Polar to Cartesian and vice-versa conversion (Issue #25)
We probably cannot settle on an aligned approach on how to convert Polar to Cartesian systems and vice-versa. However can we at least propose something everybody can stand behind so that when someone uses ADM-OSC, the same results are achieved?
—
Reply to this email directly, view it on GitHub<#25>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAPEOR27KPZ3ZB3PLPU7A3LX43YUFANCNFSM6AAAAAA5MWNP3I>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
More detail in section 10.1 of this: https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.2127-0-201906-I!!PDF-E.pdf These maths are part of the EBU renderer here: https://github.com/ebu/ebu_adm_renderer/blob/master/ear/core/objectbased/conversion.py |
That is the only official recommendation for conversion I'm aware of. That is what we should recommend if we want to be most compatible with ADM. Note that this projects polar coordinates onto a 5.0.4 layout with corner speakers at (0º, +/-30ª, +/-110ª). Elevation is idiosyncratic, too. |
Perhaps we should supply some boiler-plate code to help implementations? The EBU reference is Python. Should we add C/C++ too? |
This is good for implicit listener position at x=0, y=0, z=0 and straight to the front (Y axis) head orientation. |
I have created an open source project, written in Swift, that performs the conversion between polar and cartesian coordinate systems. You can find a link to the source code here. I have attempted to keep the implementation as simple as possible, with the conversion happening within two small functions. The project comes with a demo app that allows the user to view the conversion. I hope that this approach will allow people to easily convert the maths to other languages, or use directly within their application. |
We probably cannot settle on an aligned approach on how to convert Polar to Cartesian systems and vice-versa. However can we at least propose something everybody can stand behind so that when someone uses ADM-OSC, the same results are achieved?
The text was updated successfully, but these errors were encountered: