Skip to content
This repository has been archived by the owner on Sep 3, 2021. It is now read-only.

Latest commit

 

History

History
47 lines (31 loc) · 2.15 KB

README.md

File metadata and controls

47 lines (31 loc) · 2.15 KB

FluidsynthMidiService is an Android 6.0 MIDI Device Service for Fluidsynth.

FluidsynthMidiService is based on Xamarin.Android.

Trying it out

It is still at very early development stage, but the core fluidsynth OpenSLES support is working. The sample app around it, on the other hand, is super lame so far.

In case you want to try, here is a demo version of it. https://deploygate.com/distributions/2fc9721e74ab2b5434b675def671f7840097b580

(DeployGate is a service where we Android devs can easily publish alpha versions without slow Google Play reviews and approvals.)

Build

The repo consists of a couple of modules and it is complicated, but in general "make" should take care. The modules are explained later.

Hack

Currently it expects that there is some *.sf2 file under /data/local/tmp/name.atsushieno.fluidsynthmidideviceservice. "make obb" would create an .obb file under FluidsynthMidiService/bin/Release.

"make hackinstall" will try to build fluidsynth for Android and then reruns xbuild.

Modules

FluidsynthMidiService consists of several components, and they are submoduled under ./external directory.

  • external/android-fluidsynth - it is to build and set up fluidsynth for Android. It subsequently submodules:
    • external/cerbero - builds fluidsynth and its dependencies. It is forked from Gstreamer project.
      • This fork adds build script for fluidsynth, and it actually pulls from my fork of fluidsynth that adds Android/OpenSLES support. (Note that the origin does not support any audio output for Android.)
  • external/managed-midi - it brings a set of MIDI utility API that is used to implement several examples in the Activities.
  • external/nfluidsynth - it is the cross platform binding for fluidsynth API.
  • external/mugene - it is a music macro compiler that makes it easy to compose and play MIDI based songs by offering human-friendly instruction set.