Skip to content
A library and set of applications to interface with the Snyderphonics Manta
C++ Pure Data CSS Max CMake C Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitmodules adds harmonic table mapping file Nov 25, 2011




libmanta is a library and set of example programs, and a PD/Max object for interfacing with the Snyderphonics Manta, a touch-sensitive usb controller with LED feedback.

libmanta is currently in beta stage, and the examples are intended simply as starting points to show how the library may be used. The [manta] object for Pure Data and Max/MSP will be a user-facing release released in both source and binary forms.

manta the pd/max object is built on an abstraction layer called flext by Thomas Grill. It allows an external to be compiled for both PD and Max and on OS X, Linux, and Windows. You will need to build and install flext using the included instructions before building and installing the external.


If you'd like to develop an application using libmanta, there's developer documentation available at


liblo (only for MantaOSC example) CMake (to build standalone library or non-flext examples) flext (for the PD/Max object) is included with this source package. If you have another version installed feel free to use that instead, and modify the instructions accordingly.

PureData / Max/MSP Object Build and Install Instructions

Note: commands to be typed into the terminal will appear in single quotes with no other instruction.

PureData on Linux or OS X

  1. Download the pd source from and remember where you extract it.
  2. Navigate to extern/flext in the libmanta directory
  3. './ pd gcc'
  4. Edit buildsys/config-lnx-pd-gcc.txt (or config-mac-pd-gcc.txt) and change:
    1. (Linux ONLY) the last line to OFLAGS+=-march=native
    2. PDPATH to point to the "pd" subdirectory of the pd source package you extracted in step 2
    3. INSTPATH to point to where your PD externals live
  5. './ pd gcc'
  6. (Mac Only) Edit config.txt and comment out the line "SIMD=1"
  7. './ pd gcc' (yes, again)
  8. './ pd gcc install'
  9. 'cd ../..'
  10. 'extern/flext/ pd gcc'
  11. 'sudo extern/flext/ pd gcc install'

Max/MSP on OS X

  1. Download Max/MSP SDK from and put it somewhere easy to find
  2. Place the MaxAPI.framework folder found in source/c74support/max-includes into Library/Frameworks
  3. in Terminal, navigate to MantaFlext/extern/flext in the libmanta directory
  4. './ max gcc'
  5. Edit buildsys/config-mac-max-gcc.txt and change:
    1. MAXSDKPATH to point to the subdirectory of the Max SDK you extracted in step 1 (should be the directory right above the max-includes directory, like MaxSDK-5.1.6/c74support/)
    2. INSTPATH to point to where your Max externals live
    3. change the ARCH= line to read only ARCH=i386
  6. './ max gcc'
  7. Edit config.txt and comment out the line "SIMD=1"
  8. './ max gcc' (yes, again)
  9. 'sudo ./ max gcc install'
  10. Open the included xcode project manta.xcodeproj
  11. In the Build Settings tab set the variable maxsdk to be the c74support folder inside the Max/MSP SDK
  12. Build the project
  13. copy the manta.mxo object from the Products folder on the left into your Max externals directory

Troubleshooting FAQ

ld: framework not found vecLib

It looks like that name has been deprecated for some time and now doesn't work any more. Change vecLib to Accelerate in buildsys/mac/

No rule to make target '../core/extern/hidapi/hidapi/hidapi.h'

hidapi is included as a git submodule. Go to the root of the libmanta repository and run:

git submodule update --init

error: unable to open output file 'max-darwin/release-multi/../core/extern/hidapi/mac/hid.o_i386'

Due to some weird path handling you need to run: mkdir -p max-darwin/core/extern/hidapi/mac to manually create the right destination directory

Can't connect to Manta

If the Manta is not recognised on your system, try to run the program with sudo. If this works, it is a permission problem that can be fixed with a udev rule.

Linux (e.g. Ubuntu)

Copy the file 99-manta.rules from platform/linux into your system's /etc/udev/rules.d directory.

Unplug the Manta, run sudo /etc/init.d/udev restart, then plug in the Manta.

If that doesn't work, try editing the file and changing ATTRS to ATTR and/or try changing MODE:="0666" to MODE="0666".

Arch Linux

On Arch Linux, the udev system works a bit differently. To see the used variables, attach a manta and run the following command

udevadm info -a -p /sys/class/hidraw/hidraw0

It shows all udev-related items attached to ´´´hidraw0´´´, The manta should show up here. According to the udev system description on the arch linux wiki, config files have to end on .rules. The config file therefore will be something like /etc/udev/rules.d/50-manta.rules. According to the output of the udevadm info from above, its content should be something like

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2424", ATTRS{idProduct}=="2424", MODE="0666"

To reload the udev rules, run

sudo udevadm control --reload-rules

Re-plug the manta and re-run your libmanta-based application.

Something went wrong with that request. Please try again.