GithubHelp home page GithubHelp logo

atsushieno / fluidsynth Goto Github PK

View Code? Open in Web Editor NEW
9.0 6.0 6.0 1.83 MB

fluidsynth fork with Android OpenSLES support. See https://github.com/atsushieno/android-fluidsynth/

CMake 4.21% Shell 1.08% C 90.45% Java 0.24% C++ 0.99% Groff 0.96% Objective-C 0.26% Makefile 0.47% M4 1.33%
music midi fluidsynth opensles fluidsynth-midi-service android

fluidsynth's People

Contributors

antoineschmitt avatar atsushieno avatar carlosolmedo avatar diwic avatar element-green avatar hanappe avatar jaiveer82 avatar makamys avatar pedrolcl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fluidsynth's Issues

calculate appropriate audio spin loop wait using Audio profile

Currently opensles driver runs spin loop to deal with audio buffers, which is waste of CPU resources.

// FIXME: this should be removed.

The usleep() adjustment is not ideal. It should take advantage of some audio hardware profiles introduced at Android 4.2 (or earlier). Research needed.

Also it may be better to introduce additional loop handler that switches to longer pooling (or sleep() instead of usleep() for long pause).

Describe how to include/build this into an actual android app

Hello there :-)

I want to build an Android Application which produces MIDI events (from an on-screen virtual keyboard) and plays these MIDI notes with a custom sf2 soundfont. Therefore I stumbled upon fluidsynth which seems to be what I am looking for.

Sadly its not easy to compile it for android - especially since I have not enough knowledge in doing these kind of things.

I successfully included another fork of fluidsynth into my project: fluidsynth-android. But it does not have support for actually playing anything since the Audio Drivers aren't included. (Or maybe I am just using it wrong?)

Then I stumbled upon your repositories and this one here seems to have support for OpenSL ES. But I don't know how to actually build and/or include it in my android app.

I know this section of GitHub is for issues - but I thought I reach out to you and ask :-) Maybe you can help me.

switch to Google/oboe

oboe switches uses either opensles and AAudio, better one, based on the underlying platform. AAudio is supposedly better in newer platforms, so it's worth trying to switch to oboe and see if improves audio latency etc.

where is the files ?

+#if ANDROID
+#include "android/asset_manager.h"
+#include "android/asset_manager_jni.h"
+#endif

re-evaluate ring buffer implementation

It was once implemented at 55236e1, but at that time it didn't improve the situation that it couldn't generate valid synthesized sound, so it was reverted.

Now that it gives valid output and it has likely nothing to do with buffering implementation, it might be good to reimplement ring buffer and see if it improves general playback latency.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.