Several of my Web MIDI tools might be useful when working with Montage and MODX:
System exclusive tool — a browser-based shell for transmitting and receiving MIDI messages including system exclusive parameters and bulk dumps
Performance scratchpad — a simple patch librarian which can receive, save, load and transmit performances to/from a MIDI-attached Montage or MODX
See the main page for instructions as the UI is quite minimal. Web MIDI requires Chrome/Chromium or another Blink-based browser, although Firefox/Gecko may also work with the Jazz plugin and extension.
Some brief notes on undocumented system exclusive messages supported by the instrument are here:
Contributions to these would be gratefully received.
Montage X7U/X7L/X7A and MODX X8U/X8L/X8A file formats are reverse-engineered and partially documented below:
My 2012 notes on Motif XF files are still available, and may be interesting for comparison purposes:
Again, corrections and additions would be gratefully received.
The following subdirectory of https://github.com/arachsys/montage has instructions and an image build tree for launching a shell using the firmware upgrade path in the instrument’s initramfs.
This makes tinkering a lot easier, and simple demo scripts are included to clean up preset part names and fix some buggy preset performances.
Montage runs an antediluvian Linux kernel and armhf userspace. Even the
recent v3.51 firmware has a 3.12.10 armv7l kernel from a vendor tree tagged
ti2013.12.01”, with a similarly aged glibc 2.19. To build binaries for
Montage, it may be easier to link statically than find a museum with a
sufficiently antique toolchain. This is not entirely Yamaha’s fault: many
hardware manufacturers fall for SoC vendors’ terrible advice to use their
‘board support’ abandonware instead of actively-maintained mainline kernels.
The main CPU is a Texas Intruments AM3352 (ARM Cortex-A8, 32-bit ARMv7-A architecture) with 256MB of DDR3 SDRAM and 4GB eMMC. The USB-to-device interface is that of the AM3352, but the USB-to-host audio/MIDI interface is driven by a separate “SSP2” DSP containing a Renesas SH-2A core.
Tone generation and effects are handled by two large “SWP70” ASICs in a master/slave configuration with their own SDRAM (48MB and 16MB respectively) and 4GB of direct-connected NAND flash for wave data. The CPU, SWP70s and SSP2 are interconnected both by the main address/data bus and also by I2S.
Embedded Linux hackers should probably think of Montage as a Beaglebone Black with 4GB eMMC, 256MB RAM, and some exotic DSP peripherals which have their own 4GB of flash storage for wave data.
I have a Montage 8 service manual (including schematics) and am happy to answer questions. These can be purchased in PDF format direct from Yamaha 24x7 in the US. However, Yamaha UK Parts are less helpful, only supplying manuals to ‘authorised service engineers’ to maintain a profitable but user-hostile monopoly.
Some additional information on electrical compatibility of controller pedals, capturing screenshots and attaching external displays is below:
The official documentation corresponding to Montage version 3.51 can be found at:
Firmware images can be found here:
Please send any questions, corrections or other contributions to Chris Webb <firstname.lastname@example.org>.
GitHub discussions are also enabled for this repository to provide a more public forum to chat about Montage from a technical perspective.