Developers
The MOD Duo as of today (release 1.1) runs Linux, version 3.4, with real time patch.
ALSA is used for the audio driver. JACK runs inside as audio server backend, with mod-host loading each LV2 plugin as a new JACK client as mod-ui as the web server.
There's no X11 or any other kind of graphical interface. In fact, X11 libs are not even available.
SSH is open by default, user 'root' and password 'mod'.
The CPU is a Cortex A7, running at a constant 912 MHz.
The compiler is GCC 4.9, with the default compilation flags being:
-O3 -mcpu=cortex-a7 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -mvectorize-with-neon-quad
For aggressive optimization, add these:
-ffast-math -fprefetch-loop-arrays -funroll-loops -funsafe-loop-optimizations
Building binaries for the MOD Duo can be easily done using the mod-plugin-builder.
Contents
Linux
Being Linux, developers have access to UNIX and POSIX APIs.
This means <unistd.h>, <pthread.h> and <stdlib.h> for example.
For more information see:
- https://www.kernel.org/doc/man-pages/
- http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html
Toolchain
As of release 1.1, the MOD Duo uses:
- GCC 4.9
- glibc 2.21
- binutils 2.25
JACK
Also known as Jack Audio Connection Kit, is the audio server running inside the MOD.
Developers can create JACK clients to interact with the audio data directly (without being managed by a plugin host).
For more information see:
NOTE: As of release 1.1, MOD Duo uses JACK2.
LV2
Audio and MIDI plugins in MOD Duo are done in LV2 format.
MOD provides custom LV2 extensions (for MOD specific data and HTML interfaces).
For more information see:
- http://lv2plug.in/pages/developing.html
- http://moddevices.com/ns/mod/
- http://moddevices.com/ns/modgui/
Developer mode
MOD's web interface has some hidden features, not really useful for users but useful for developers.
This includes:
- Buffer size change (128 or 256 frames)
- Install-All button in plugin store
- Network statistics
- Xrun counter
To enable developer mode, open the browser developer console and enter:
enable_dev_mode()
Starting from v1.3, this setting is saved within the MOD, and developer mode is enabled the next time the page loads.
To disable developer mode, open the browser developer console and enter:
disable_dev_mode()
Unstable plugins
To see unstable plugins on the plugin store open the browser development console and enter:
$("#cloud-plugins-stable").parent().show()
NOTE: Do not report bugs when using unstable plugins.
They have not been curated or tested, so they might corrupt memory or even crash.
Use with caution.
Libraries
The following libraries are available inside the Duo:
- acl
- alsa
- armadillo
- audiofile
- boost
- cairo
- dbus
- expat
- fftw/fftwf
- ffmpeg
- flac
- fluidsynth
- fontconfig
- freetype
- gio/giomm
- glib/glibmm
- glibc (v2.21)
- icu
- jack
- libffi
- libgig
- libjpeg/libturbojpeg
- liblo
- libogg
- libpng
- libsamplerate
- libsigc
- libsndfile
- libvorbis
- libxml2
- lilv
- lvtk
- mxml
- ncurses
- ne10
- pcre
- pixman
- python (v3.4)
- qt5 (core, network, sql and xml)
- readline
- serd
- sord
- sratom
- systemd (v219)
- zita-convolver
- zita-resampler
USB Device Support
- Several USB-MIDI devices
- Arduino running MocoLufa firmware (to create midi-controllers)
- PlayStation 3 and 4 Controllers
- Guitar Hero Controller (Red Octane Xbox version)
Hardware Specification
CPU:
- Dual Core ARM A7 1.0GHz
- 4GB Flash Storage, 1GB RAM
AUDIO CODEC:
- Cirrus Logic, 24 bit / 48 kHz AD/DA
- DAC/ADC: 104dB Dynamic Range. -90dB THD+N
CONTROLLER:
- 2 knobs with LCD screen
- 2 foot switches with color LEDs
I/O CONNECTIONS:
- MIDI IN/OUT – Standard DIN 5 pins
- Control Chain – RJ45 connector – for additional controllers
- USB HOST – USB 2.0 Standard-A type, supporting: USB Bluetooth, USB Wifi, USB MIDI
- USB DEVICE – USB 2.0 Standard-B type, supporting: USB Ethernet Connection