EMAP

About

EMAP (Easy Midi Audio Production) is a graphical user interface for the fluidsynth soundfont synthesizer. It functions as a Jack compatible 1) stand alone application (gtkmm) or 2) an lv2-plugin (gtk2 or gtk3) that can be used inside any lv2 host such as ardour and qtractor.

EMAP is meant to be a simple UI and puts a majority of the control of the fluidsynth into the capabilities of the connected midi device. Designed to be an alternative to the popular qsynth UI it is especially useful for working with a large collection of soundfonts. It's FREE and Open Source with the Apache License! It can be compiled for any OS which uses jack including Linux, Mac and Windows.

Note: Currently (in my opinion) the stand alone is more stable than the lv2 but the lv2 is more convenient.

EMAP is built with maven using the nar-maven-plugin. There is a binary version of the stand alone version of the amd64 linux platform here. All other versions of EMAP must be compiled from the source. See the build instructions below...

Screenshots

EMAP stand alone img EMAP lv2 image

toggle stand-alone v.s. lv2

Video

Build Instructions

  1. install Java, maven, fluidsynth, lv2 and optionally jalv.gtk for testing / using the gtk3 version of the lv2 plugin and likely a few other C/C++ dependencies. These should all be available in most linux distributions, i'm not sure about Mac and Windows.
  2. get a copy of the code
    								'git clone https://github.com/bill-brown/emap.git'
    						
  3. inside the project folder compile the application or shared library in one of three ways: NOTE (please look at the #include directives in the source files and the pom.xml file in the root of the project. You may need to adjust some of the path locations to point to where the dependencies are for your system.)
    1. a) the stand alone application.
      								'mvn clean package'
      								
    2. the gtk2 version of the lv2-plugin (for use with ardour and qtractor)
      								'git checkout lv2'
      'mvn clean package -Pgtk2'
      								
    3. the gtk3 version of the lv2-plugin (for use with jalv.gkt3 and other gtk3 lv2 hosts).
      								'git checkout lv2'
      'mvn clean package -Pgtk3'
      								
  4. copy the lv2 plugin to a folder where it can be used by the lv2 host. I copy it to the ~/.lv2/ folder but can also be un /usr/lib/lv2 and is distribution dependent. Dont forget to copy over the ttl files for the plugin because the lv2 host needs to read these to know what your plugin can do.
    								'mkdir ~/.lv2/emap.lv2'
    'cp target/nar/emap-0.0.2-SNAPSHOT-amd64-Linux-gpp-shared/lib/amd64-Linux-gpp/shared/libemap-0.0.2-SNAPSHOT.so  ~/.lv2/emap.lv2/'
    'cp src/main/include/*.ttl ~/.lv2/emap.lv2'
    						
    NOTE (inside of the emap.ttl file we just copied over, we have to swap between GtkUI and Gtk3UI depending on which version of Gtk we are using. Gtk3UI is for gtk3 and GtkUI is for everything else.)
  5. run the standalone app or lv2 plugin in and lv2 host.
    								'./target/nar/emap-0.0.2-SNAPSHOT-amd64-Linux-gpp-executable/bin/amd64-Linux-gpp/emap' (executable)
    'jalv.gtk http://www.colorfulsoftware.com/emap/lv2' (for gtk2)
    'jalv.gtk3 http://www.colorfulsoftware.com/emap/lv2' (for gtk3)

Code

Source Code can be found at github.com: Source Code
Pre-built versions coming some day to Maven Central and other locations. Please let me know if you find it working for your platform and or are interested in contributing a packaged version to any linux distributions or other operating system.
For now you can find a few I've made below.
Development shout outs go to the people on the Gtk and Ardour mailing lists and IRC channels. Your help has been greatly appreciated. Now go make some music! Contact me with any issues comments or concerns (see homepage) or if you would like to add a build for another system to this page.