Git Product home page Git Product logo

mididriver-1's Introduction

Logo Midi Driver Build Status JitPack Join the chat at https://gitter.im/mididriver/Lobby

Android midi driver using Sonivox EAS library. The library is available in Releases.

Licensed under GPL or Apache license - your choice.

Includes Sonivox EAS library rebuilt without spurious references to libutils and libcutils. The ARM versions have been build with the assembler source files.

Bugs

Google has fixed the 64 bit reverb bug: #15 - Fix math functions for 64-bit. The driver should now work correctly on all 64 bit devices.

The Sonivox library is now built as a static library and linked with the midi library. This should resolve problems with various android versions.

Use

Add the driver to your build.gradle with

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

and:

dependencies {
    implementation 'com.github.billthefarmer:mididriver:v1.15'
}

This will currently add all versions of the native library.

Methods

    void start() // Start the driver. Call from onResume().

    void stop()  // Stop the driver. Call from onPause();

    void addOnMidiStartListener(OnMidiStartListener l);

    void queueEvent(byte[]) // Send a midi message. This method now just
                            // calls write()

Listener

    void onMidiStart() // This is called when the driver has started so
                       // that program change messages, etc, may be sent.
                       // This is now somewhat redundant but has been left in.

Native Methods

    boolean init()  // Return true on success, or false on failure.
	
    int[] config()  // Return a four element array of ints with part of
                    // the EAS onfig:

        config[0] = pLibConfig->maxVoices;
        config[1] = pLibConfig->numChannels;
        config[2] = pLibConfig->sampleRate;
        config[3] = pLibConfig->mixBufferSize;

    boolean write(byte buffer[]) // Writes midi data to the Sonivox
                                 // synthesizer. The length of the array
                                 // should be the exact length of the
                                 // message or messages. Returns true
                                 // on success, false on
                                 // failure.

    boolean setVolume(int volume) // Set master volume for EAS
                                  // synthesizer (between 0 and 100).
                                  // Returns true on success, false on
                                  // failure.

    boolean shutdown() // Shut down the synthesizer. Returns true on
                       // success, false on failure.

C/C++ Native Functions

#include "midi.h"

    jboolean midi_init()  // Return true on success, or false on failure.
    jboolean midi_write(EAS_U8 *bytes, jint length)
                                 // Writes midi data to the Sonivox
                                 // synthesizer. The length of the array
                                 // should be the exact length of the
                                 // message or messages. Returns true
                                 // on success, false on
                                 // failure.
    jboolean midi_setVolume(jint volume)
                                  // Set master volume for EAS
                                  // synthesizer (between 0 and 100).
                                  // Returns true on success, false on
                                  // failure.
    jboolean midi_shutdown() // Shut down the synthesizer. Returns true on
                             // success, false on failure.

mididriver-1's People

Contributors

billthefarmer avatar tacothedank avatar amitayd avatar gitter-badger avatar yonitsafir avatar

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.