Skip to content
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

bugfix replace deprecated fmod system fft call with future compatible calls #6639

Merged
merged 3 commits into from
Jan 1, 2021

Conversation

ofTheo
Copy link
Member

@ofTheo ofTheo commented Nov 28, 2020

This allows us to update the fmodex.dylib to support Big Sur without getting linker errors.
Also compatible with current fmodex.dylib.

@ofTheo ofTheo mentioned this pull request Nov 28, 2020
48 tasks
@ofTheo
Copy link
Member Author

ofTheo commented Dec 4, 2020

don't merge this yet - latest fmod with Apple Silicon support doesn't have these calls either 🤦‍♂️

@ofTheo
Copy link
Member Author

ofTheo commented Dec 4, 2020

Okay this is now working with the newer FMOD api ( which is needed for Apple Silicon and Big Sur ).
The new approach requires us to do our own binning as the new api doesn't allow us to specify the number of bands so there might be some small changes in the FFT results. Testing against the old approach it actually seems a little better in terms of distribution and we have more options in terms of nBands requested.

NOTE: We'll need to update headers and libs for all platforms even though the api changes are minimal.

Some references which were helpful:
https://www.parallelcube.com/2018/03/10/frequency-spectrum-using-fmod-and-ue4/

FMOD reference for transitioning from older api to newer:
https://www.fmod.com/resources/documentation-api?version=2.0&page=white-papers-transitioning-from-fmodex.html#fmod-studio-core-api-versus-fmod-ex-core-api

@ofTheo
Copy link
Member Author

ofTheo commented Dec 8, 2020

I have all the new fmod platforms libs up here:
http://ci.openframeworks.cc/libs/fmod/

I am thinking to add a fmod.sh formula for apothecary and then update the OF codebase to use fmod instead of fmodex as all the libs are no longer called fmodex ( since the last 9-10 years ). I think this will be a bit clearer than using the old fmodex naming when referring to the newer non fmodex api ( 99% is the same just the few changes in this PR ).

That way fmodex.sh still works as it currently does in apothecary and all the old links / urls will remain for the older fmodex libs.

Before I go down this path I would love some thoughts on this.

The other option would be to rename the fmod libs / folders to be the same as the old one but would sort of mask the library naming and the fact that its a more recent version.

@arturoc
Copy link
Member

arturoc commented Dec 14, 2020

yes that sounds like the way to go.

@oxillo
Copy link
Contributor

oxillo commented Dec 24, 2020

Shouldn't we move fmod to an external addon ? It's licencing is very restrictive (you need a license as soon as you use it for money-making activity including internal use in a company). see also #5490.
If we don't go the addon way, I would suggest that

  • Of is compiled without FMOD support
  • FMOD is only available throudh a dedicated compiler option
  • Licence.md is updated to highlight these license issues/risks.

@ofTheo
Copy link
Member Author

ofTheo commented Dec 24, 2020

@oxillo Hey - I think that makes absolute sense for the future roadmap. Either way as this is a patch release to get OF working on macOS again I think we should keep this in for now.

@danoli3
Copy link
Member

danoli3 commented Dec 28, 2020 via email

@ofTheo ofTheo merged commit dc17c43 into openframeworks:patch-release Jan 1, 2021
@danoli3
Copy link
Member

danoli3 commented Feb 26, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants