Help get this topic noticed by sharing it on Twitter, Facebook, or email.

[MPC LIVE] 4 MIDI OUT Support

Hi.

Like all of you here, I tried to connect a MIDI interface to the USB Host port of the MPC LIVE, only to find out that the additional MIDI OUT ports are not supported. Only PORTs A and B are visible, C & D indicating always "None".

While exploring the site https://niklasnisbeth.gitlab.io/mpc-i..., I understood that all the interface cards on the MPC Live/X went through USB, and lucky for me, the author had the good idea to provide a USB dump ( with an "lsub" command) right after the boot.

https://niklasnisbeth.gitlab.io/mpc-i...

The part that interests me most is the following:

idVendor 0x09e8
idProduct 0x003b
iProduct 2 MPC Live Controller

As an IT engineer, I quite recently developed a 3 I/O USB MIDI interface, and it allows to modify easily the VendorID and ProductID as well as the "Product String", identifying a USB device on a host system.
https://github.com/TheKikGen/USBMidiK...

So I simply modified the parameters of my MIDI interface, so that it would be seen as an internal AKAI controller.

-===========================================-
CURRENT SETTINGS
---------------------------------------------
Magic number: MDK7-1.181219.1306
Next BootMode: 0
=> Vendor Id: 9E8
=> Product Id: 3B
=> Product string : MPC Live Controller

After plugging in the reconfigured MIDI interface, and rebooting the MPC LIVE, I had the joy of seeing that 4 MIDI ports were now visible A, B, corresponding to the 2 internal MIDI ports, and C, D, corresponding to MIDI OUT 1 and 2 of my interface !!
It works !!

In addition, in the setup panel, you can see all MIDI OUT ports in the synchronization options. I haven't done any in-depth tests, but all MIDI OUT ports work directly, either on the tracks or in MIDI Clock sync.

So, this is a workaround allowing 4 MIDI ports on the MPC LIVE.
HOWEVER, It would be so much smarter if external MIDI USB interfaces were directly recognized by the MPC Live !

7 people like
this idea
+1
Reply
  • So, you are the first who publicly "hacked" an MPC. :D More to come brothers and sisters!

    However, nice catch!
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated indifferent, undecided, unconcerned kidding, amused, unsure, silly happy, confident, thankful, excited

  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated indifferent, undecided, unconcerned kidding, amused, unsure, silly happy, confident, thankful, excited

  • This is an interesting idea and surprisingly straightforward. It suggests the internal devices are "class compliant" (otherwise thee driver would crash). It's interesting that the UI shows the extra device; I guess this means the X is just a live with a different control surface (not different software). I wonder how the CV ports are presented to the OS?

    It'd be interesting to know if the same is true of the audio interface. Being able to add a couple of extra audio inputs would be handy. I guess you could put an Arduino (maybe not ideal for USB) or the like between the MPC and external hardware to present the extra ports appropriately... It would be much nicer if Akai just made this available (as clearly the device already has the capability in hardware and software. I guess they need to differentiate the capability of the machines though for me it's more the MPC X benefit is more physical controls and MPC Live benefits from being smaller and portable.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • I'm almost sure that The X and the Live firmwares are the same.

    For USB audio, it is much more complex than USB Midi (audio streaming through USB, DAC for audio inputs, etc...).
    • To call it firmware seems somehow wrong. I'm sure there is a BIOS & bootloader or similar low level elements, but I tend to think of the "MPC firmware" as a base OS image. It includes an OS and inits to a single piece of software (MPC).

      I wouldn't say a USB audio interface is inherently complex in that you aren't looking to create or otherwise reverse engineer a driver or manage any of this process... it's more a matter of, is this done in an equivalent manner for the built in hardware and for any device you attach (and that the UI will present it for use).

      At its core MPC runs a Linux variant. There is equally a "class compliant" implementation for audio interfaces; the whole concept behind class compliance to to remove the implementation details from the driver allowing a high quality robust driver to be written once and used everywhere (vs every maker making questionably stable drivers for every piece of hardware), and to avoid the need to make custom drivers per platform (as one already exists).

      Assuming the inbuilt hardware uses the generic class compliant audio driver and not a custom driver (it's hard to know) other (class) comparable hardware would also be compatible. The vendor/product IDs are how Linux associates an appropriate driver (dynamically loaded or prebuilt kernel module) with a given piece of hardware. If you identify a different piece of hardware with the same code it will use that hardware's driver. In the case of class compliant devices they all use (or at least can use) the same driver. If the driver is incompatible the system will likely crash, or the kernel module (driver) will fail to load.

      In an off the shelf Linux distro the kernel includes a great many drivers for a broad range of hardware. Who knows how extensive the driver set in the MPC is; at the very least it doesn't expose or indicate the presence of other devices (typically functional in linux) other than those explicitly allowed. That is to say the kernel may have been built with a minimal drive set. You equally don't control over the drivers present; they are part of the (fixed) base install. Similarly it's hard to know how devices are enumerated in the software, even if the driver is available.

      In short, if you have the option to try it out, and assuming the in built audio interfaces are connected via USB, it will either work or it won't: there isn't much wiggle room.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated indifferent, undecided, unconcerned kidding, amused, unsure, silly happy, confident, thankful, excited

  • Thanks for interest Daniel.
    The "firmware" term is still appropriate. This is simply not so "firm" than it was 15 years ago ! Embedded Linux distro are used in a broad range of devices (I hacked my Samsung TV to enable file sharing 5 years ago :-) ).

    The MPC Live relies on ALSA, but the MPC Software filters PID & VID to select the right audio interface : no luck for a generic audio usb device to be recognized.

    idVendor 0x09e8
    idProduct 0x203b
    bcdDevice 1.08
    iManufacturer 1 Akai Professional
    iProduct 3 MPC Live Audio

    So it is necessary 1/ to hack an existing one to set the "AKAI/MPC Live" PID/VID or 2/ Build a specific one.

    This was my assumption for MIDI. Not working unless PID & VID are modified.
    On the other hand, the MPC Live USB audio descriptor shows only 2 channels.

    So maybe it should be possible to use Linux facilities to merge devices into a single pseudo-device...but that implies to hack the firmware more deeply.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • Hey Kik Gen,

    Thanks for posting!

    This was a good read - cool work you've done! I do want to caution anyone considering modifying their MPC as this will void any existing manufacturer's warranty but it's your machine and you can do with it as you wish if you're feeling bold!

    Thanks for sharing with us!
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • Hi Nick. This is a non intrusive hack so it doesn't void the warranty.
    As a request, please ask to the dev team to add that small piece of code to recognize external midi usb interface...
    That will not kill at all the X market.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • Certainly an interesting hack. I just got myself a MPC Touch, and (of course) I'm poking around the workings.
    https://github.com/mungewell/mpd-util...

    On Linux I note it presents 3 Midi ports, but on Windows only 2 ('Public' and 'MIDI Port'). The 'Private' one is concealed...

    Does the same happen with the MPC Live when it's in controller mode?
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated indifferent, undecided, unconcerned kidding, amused, unsure, silly happy, confident, thankful, excited

  • I see only 2 enumerated on the Live on Linux but the software supports 4 AKAI only.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned

  • Know that the MPC Live/X are strictly the same software.

    On the MPC Live, the MIDI port 1 is used for SYSEX and the MIDI PORT2 is used to standard MIDI messages with the MPC controller. So only port 3 and 4 are visible in MPC software.

    Even if the MPC standalone software uses standard ALSA Linux sound API, it sends specific SYSEX to the controller. The SYSEX msg are used to initialize, and setup pads lights and color faster

    # Sent at the start of MPC application : F0 7E 00 06 01 F7
    # Controller answer with a msg including a 15 bytes Serial number X X X X X X X X X X X X X X X

    F0 7E 00 06 02 47 3B 00 19 00 01 01 01 7F 00 00 00 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 00 F7

    It seems that only the product string 'MPC Live Controller' is checked when searching the MPC USB midi interface.
  • (some HTML allowed)
    How does this make you feel?
    Add Image
    I'm

    e.g. sad, anxious, confused, frustrated happy, confident, thankful, excited kidding, amused, unsure, silly indifferent, undecided, unconcerned