I would like to use Juce for audio decoding and encoding (I have written a wav encoder and decoder before and it was a lot of work that I would rather avoid + I want to support other formats).
I have a local copy of the library and updated some include paths so it all links properly. I was getting some Target Platform errors when compiling. My first thought was set WIN32 as target and work through some functional errors but I found most errors could be resolved using ANDROID as platform target. Emscripten compiles the project with 1 warning
missing function: _ZN4juce78this_will_fail_to_link_if_some_of_your_compile_units_are_built_in_release_modeC1Ev
warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling
But project fails to run in web. I have tried on and offing Demangle support with no joy.
Is there anything else I can do without 3rd party libs? or writing my own encoder/decoder
Well primarily for encoding decoding. DSP would be useful but not essential as I have all my own DSP libs.
I have currently made WAV decoder which works with 16 / 24 and 32 bit but I know it’s probably not as good as juce’s as I’m assuming little endian e.t.c. I am able to do the same with AIFF but again I don’t want to reinvent the wheel and other formats would be handy.
I’m just struggling scaffolding between juce and emscripten. Not using any IDE and just using Atom to code the project and command line to build…
I ported JUCE to emscripten in the past demo, maybe this helps:
PS.: I also have a more recent version with support for Web Audio API, Web MIDI API and fast GUI rendering via HTML5 Canvas. The more recent version uses CMake so one can use CLion for a not-too-shabby development experience. The following is a CMakeLists.txt that may get you started (it of course needs tweaking!):
Yes, I know but this will be back very soon, so I am sure we could start developing now. I know I could start a fork myself, but I do see any reason to make doubled work for this. That’s why I asked for your current work. After some time and testing it might go upstream to the main branch of JUCE as well.