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

replace fmod #167

Open
ofTheo opened this issue Apr 6, 2010 · 18 comments
Open

replace fmod #167

ofTheo opened this issue Apr 6, 2010 · 18 comments

Comments

@ofTheo
Copy link
Member

ofTheo commented Apr 6, 2010

can we do it?
we need cross platform:
playback
streaming
pitch
pan
multiplay

for us to be compatible with what exists.
OpenAL seems like the best choice.
What other options are there?

@arturoc
Copy link
Member

arturoc commented Apr 6, 2010

using quicktime/gstreamer?

@dopuskh3
Copy link

quicktime/gstreamer will not add additional dependencies

@ofTheo
Copy link
Member Author

ofTheo commented May 23, 2010

okay we're doing this - working with the swappable renderer

@underdoeg
Copy link
Contributor

What is the current state on this? I have a project where I keep copying these .so files around without even using sound. I think losing them would improve usability quite a lot. Of course I'd be willing to help...

@benben
Copy link
Member

benben commented Jul 17, 2011

+1 for dropping fmodex!

@DomAmato
Copy link
Contributor

dusting this one off. Has there been any ideas about how to address this? the most current master uses fmod for VS 32/64 bit builds

@arturoc arturoc modified the milestones: 0.10.0, 0.9.1 Nov 9, 2015
@oxillo
Copy link
Contributor

oxillo commented Feb 13, 2016

Fmod removed from MSYS2 in PR #4807

@oxillo
Copy link
Contributor

oxillo commented Dec 26, 2019

Hi,

We are trying to clean out the many issues that we have.
Many versions of OF have been released since this was issued.

Can you help us by checking if this feature is still requested for a next OF version ?

In case of inactivity, we'll close this issue by end of january, 2020.

Thanks

@ofTheo
Copy link
Member Author

ofTheo commented Mar 25, 2021

Reviving one of the oldest issues for 0.12.0 :)

Hoping we can remove fmod as the default player for macOS and Windows.

For macOS I am working on an AVAudioEngine player which I think can be a 1:1 swap for ofFmodSoundPlayer. I believe it will also work on iOS / tvOS and be a good update for the iOS / tvOS sound player.

For Windows I imagine a Media Foundation replacement sound player could provide similar functionality. But I know a bit less about that.

Would be open if anyone Windows focused wanted to take a stab at it.
@oxillo @DomAmato @paulhoux

@ofTheo ofTheo mentioned this issue Mar 25, 2021
77 tasks
@danoli3
Copy link
Member

danoli3 commented Mar 25, 2021 via email

@ofTheo
Copy link
Member Author

ofTheo commented Mar 25, 2021

oh yeah @danoli3 I just meant we could eventually remove the ofxiOSSoundPlayer and have iOS use the AVAudioEngine one which has some nice additional features ( multiplay, setSpeed able to go below 0.5 and above 2.0 etc )

@danoli3
Copy link
Member

danoli3 commented Mar 26, 2021

Sounds great!

@ofTheo
Copy link
Member Author

ofTheo commented Mar 27, 2021

@danoli3 @julapy here is the wip sound player.
https://github.com/ofTheo/openFrameworks/blob/AVEngine-SoundPlayer/libs/openFrameworks/sound/ofAVEngineSoundPlayer.m

It has pretty much all the ofFmodSoundPlayer functionality.
I just need to add multiplay ( easy-ish ) and FFT ( harder ).

If you want to give it a try you can use the soundPlayerExample and replace the top of ofApp.cpp with:

#include "ofAVEngineSoundPlayer.h"

//--------------------------------------------------------------
void ofApp::setup(){
	
	synth.setPlayer(make_shared<ofAVEngineSoundPlayer>());
	beats.setPlayer(make_shared<ofAVEngineSoundPlayer>());
	vocals.setPlayer(make_shared<ofAVEngineSoundPlayer>());

For it to work on iOS I believe you just need to remove this line:
https://github.com/ofTheo/openFrameworks/blob/AVEngine-SoundPlayer/libs/openFrameworks/sound/ofAVEngineSoundPlayer.m#L13

@arturoc
Copy link
Member

arturoc commented Mar 29, 2021

FFT is done with a separate library in ofOpenALSoundPlayer, the code might be relatively straightforward to refactor into it's own class and use it from both players i guess

@kritzikratzi
Copy link

sorry i don't have time to implement a prototype, but i've made pretty good experiences with miniaudio in combination with src resample ... just throwing it in the ring if ppl are still looking for alternatives to the current rtaudio/fmod/etc.: https://github.com/mackron/miniaudio (stream to audio interface and file playback) http://www.mega-nerd.com/SRC/ (resampling)

@pzoltowski
Copy link

sorry i don't have time to implement a prototype, but i've made pretty good experiences with miniaudio in combination with src resample ... just throwing it in the ring if ppl are still looking for alternatives to the current rtaudio/fmod/etc.: https://github.com/mackron/miniaudio (stream to audio interface and file playback) http://www.mega-nerd.com/SRC/ (resampling)

FWIW, I also tested miniaudio and its quite popular and works really cross platform. It also has different backends that can be chosen. I also played with LabSound (https://github.com/LabSound/LabSound) that is graph based and used Miniaudio as Engine under the mask. Seems really powerful as well and API is based on Web Audio so easy to find docs.

related to LabSound there as sister projects:
LabSynthToy (https://github.com/LabSound/LabSynthToy) - sampler that plays sf2 files (using TinySoundFont)
LabMidi (https://github.com/meshula/LabMidi) - for playing midi
LabSoundGraphToy (https://github.com/LabSound/LabSoundGraphToy) - exploring nodes

Babylon.js team seems also planning to use LabSound in their BabylonNative/BabylonReactNative projects

@paulhoux
Copy link
Contributor

paulhoux commented Nov 8, 2021

@ofTheo : sorry, I didn't notice your mention of Mar25, Theo.

I'm currently not in a position to help out with this, since I am fully booked for the next couple of months. Additionally, I don't have a huge amount of experience with Windows audio.

oxillo pushed a commit to oxillo/openFrameworks that referenced this issue Mar 18, 2023
@pierre-aimi
Copy link

pierre-aimi commented Jan 30, 2024

Can we not use OpenAL on all platforms? I've been doing some work on the streaming side making improvements. I have previously gotten OpenAL to work everywhere. Is it the license? I believe it's LGPL. We definitely need to get rid of FMOD though.

BTW I could have a go at this if interest is there.

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

No branches or pull requests