Which libs really needed for Android

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Which libs really needed for Android

Stanislav Kokorev
Hello,

Sorry for stupid question. I have no experience in C/C++.

I made an xamarin forms app for Android. The app is midi controller.
It sends notes to Fluidsynth by VolcanoMobile and works fine with
custom soundfont (sf2) with drum samples.
But, my users are lazy and want my app to play directly without
installing additional app.and loading sountfont manually.
That's why I'm trying to integrate fluidsynth to my app.

I have downloaded fluidsynth-2.1.5-android.zip. It contains a lot of libs.
Firstly I have added just libfluidsynth.so  as AndroidNativeLibrary.
But that was not enough to play sound. That generates unknown exception..

Then I have added to the project all  these ".so" files that were in zip .
Now fluidsynth works inside my app. I managed to sent NoteOn and
NoteOff and hear sound.
But my questions is - why there are so many ".so" files.
Looks like i don't need them all to my very limited needs.
Which of the following libs are really needed ?

1 libfluidsynth.so
2 liboboe.so
3 libfluidsynth-assetloader.so
4 libc++_shared.so
5 libcharset.so
6 libffi.so
7 libFLAC.so
8 libgio-2.0.so
9 libglib-2.0.so
10 libgmodule-2.0.so
11 libgobject-2.0.so
12 libgthread-2.0.so
13 libiconv.so
14 libintl.so
15 libogg.so
16 libsndfile.so
17 libvorbis.so
18 libvorbisenc.so
19 libvorbisfile.so
20 libz.so
21 preloadable_libiconv.so

Thanks in advance,
BR,
Stas

_______________________________________________
fluid-dev mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/fluid-dev
Reply | Threaded
Open this post in threaded view
|

Re: Which libs really needed for Android

fluid-dev mailing list
> why there are so many ".so" files.

Because fluidsynth itself depends on 3rd party software, most notably
glib. And this 3rd party software depends on other software. And that
software depends on software which... ultimately... depends on the
Android NDK.

VolcanoMobile has customized fluidsynth, by removing parts of it,
stripping away functionality, and therefore getting rid of many 3rd
party software, getting rid of many dependency dependencies. But this
approach is unmaintainable and thus not supported by upstream
fluidsynth.

> Which of the following libs are really needed ?

All of them, in case you intend to use the prebuilt Android libraries.

Ofc feel free to cross-compile fluidsynth by yourself, which contains
only the things you really need. That way, you'd get rid of liboboe.so
and its dependency libc++_shared.so . This however only applies to
fluidsynth 2.1.5, because starting from version 2.2.0, C++ will be
required by fluidsynth. You may be able to get rid of more libs by
customizing fluidsynth. However, this will be very tricky for someone
with no experience in C/C++.

Tom

_______________________________________________
fluid-dev mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/fluid-dev
Reply | Threaded
Open this post in threaded view
|

Re: Which libs really needed for Android

Stanislav Kokorev
Hi Tom,

Thanks a lot for the detailed explanations!
This sounds even more complex then expected..
And, yep, customization is too much for me.

Tried to use very compact version of libfluidsynth.so extracted from
VolcanoMobile app, but failed.
It almost works, but for some reason there were no audiodrivers.
That was a bit strange because Volcano sources on github are
containing opensles and oboe files.

Thanks a lot !

BR,
Stas

пн, 12 окт. 2020 г. в 14:30, Tom M. <[hidden email]>:

>
> > why there are so many ".so" files.
>
> Because fluidsynth itself depends on 3rd party software, most notably
> glib. And this 3rd party software depends on other software. And that
> software depends on software which... ultimately... depends on the
> Android NDK.
>
> VolcanoMobile has customized fluidsynth, by removing parts of it,
> stripping away functionality, and therefore getting rid of many 3rd
> party software, getting rid of many dependency dependencies. But this
> approach is unmaintainable and thus not supported by upstream
> fluidsynth.
>
> > Which of the following libs are really needed ?
>
> All of them, in case you intend to use the prebuilt Android libraries.
>
> Ofc feel free to cross-compile fluidsynth by yourself, which contains
> only the things you really need. That way, you'd get rid of liboboe.so
> and its dependency libc++_shared.so . This however only applies to
> fluidsynth 2.1.5, because starting from version 2.2.0, C++ will be
> required by fluidsynth. You may be able to get rid of more libs by
> customizing fluidsynth. However, this will be very tricky for someone
> with no experience in C/C++.
>
> Tom

_______________________________________________
fluid-dev mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/fluid-dev