hajimehoshi / go-mp3

An MP3 decoder in pure Go
Apache License 2.0
746 stars 80 forks source link

macOS is supported? #15

Closed gen2brain closed 6 years ago

gen2brain commented 6 years ago

Hi @hajimehoshi , I am trying to use your mp3 library here https://github.com/gen2brain/malgo/blob/master/examples/playback/playback.go , it works on Linux but on macOS ( I am trying in vmware, don't have real hardware :( ) it sounds like 2x or 3x slower. Do you think something can work differently on macOS?

It can be anything really, I am working on https://github.com/dr-soft/mini_al bindings for Go, but I can play wav on macOS with same example, and mp3 works on Linux, but on macOS there is an issue. I thought at first that there is an issue with OpenAL backend, but if I force OpenAL on Linux instead of alsa, again mp3 sounds ok.

btw. https://github.com/dr-soft/mini_al looks great and is in active development, perhaps your oto player can benefit from that library, my bindings are low level, I didn't figure out how I can implement reader/writer. Single header library, public domain, with plan to support CoreAudio and iOS :)

hajimehoshi commented 6 years ago

Hi @gen2brain,

Hi @hajimehoshi , I am trying to use your mp3 library here https://github.com/gen2brain/malgo/blob/master/examples/playback/playback.go , it works on Linux but on macOS ( I am trying in vmware, don't have real hardware :( ) it sounds like 2x or 3x slower. Do you think something can work differently on macOS? It can be anything really, I am working on https://github.com/dr-soft/mini_al bindings for Go, but I can play wav on macOS with same example, and mp3 works on Linux, but on macOS there is an issue. I thought at first that there is an issue with OpenAL backend, but if I force OpenAL on Linux instead of alsa, again mp3 sounds ok.

go-mp3 should work on macOS. Decoding is completely device-independent. I guess there is a problem how to specify sampling rate. Is the sample rate of MP3 same as the sample rate that are specified at your backend?

btw. https://github.com/dr-soft/mini_al looks great and is in active development, perhaps your oto player can benefit from that library, my bindings are low level, I didn't figure out how I can implement reader/writer. Single header library, public domain, with plan to support CoreAudio and iOS :)

Thanks but I'm not sure what kind of benefit oto would get. oto is in pure Go on Windows, so C library is not available there.

gen2brain commented 6 years ago

Actually, I can reproduce issue on Linux with OpenAL backend. Sorry for noise, closing this one.