Support and discussion for all of Akai’s modern standalone MPCs including the MPC X / X SE, MPC Live 1, 2 & 3, MPC One / One+, MPC Key 37/61.
User avatar
By Ultros Mon Sep 18, 2023 7:16 pm
So I noticed while poking around 2.12.1 there was an issue in the remote midi service. In the script that initalizes the remote midi instance it was missing device id's for MPC One+ as well as MPC X SE. If any of you have one of those units and are running a custom firmware you can replace /usr/bin/start-remote-midi.sh with this one, and your remote midi server should initalize properly.

Code: Select all#!/bin/sh
#
# Noticed this wasnt updated so i took the liberty of correcting it
#

set -ex

NAME_PATH=/var/lib/inMusic/9E0C3419-93E1-4E92-B8E3-79141B049228/DCS_UserDefinedDeviceName.var
SERIAL_NUM_PATH=/sys/firmware/devicetree/base/serial-number

mkdir -p /var/lib/inMusic/9E0C3419-93E1-4E92-B8E3-79141B049228/

if [ ! -f $NAME_PATH ]; then
    DEVICE="<UNKNOWN DEVICE> "
    # Check USB control surface for it's ID.
    for LINE in `lsusb`
    do
        if [[ $LINE == "09e8:003a" ]]; then
            DEVICE="MPC X "
            break
         ## was missing from mpc 2.12.1
        elif [[ $LINE == "09e8:0052" ]]; then
            DEVICE="MPC X SE "
            break
        elif [[ $LINE == "09e8:003b" ]]; then
            DEVICE="MPC Live "
            break
        elif [[ $LINE == "09e8:0040" ]]; then
          DEVICE="Force "
            break
        elif [[ $LINE == "09e8:0046" ]]; then
            DEVICE="MPC One "
            break
        ## was missing from mpc 2.12.1
        elif [[ $LINE == "09e8:0056" ]]; then
            DEVICE="MPC One+ "
            break
        elif [[ $LINE == "09e8:0047" ]]; then
            DEVICE="MPC Live Mk II "
            break
        elif [[ $LINE == "09e8:004b" ]]; then
            DEVICE="MPC Key 61 "
            break
        fi
    done

    if [ -f $SERIAL_NUM_PATH ]
    then
        echo -n "$DEVICE " > $NAME_PATH && cat $SERIAL_NUM_PATH >> $NAME_PATH
    else
        # If is likely some development units won't have serial numbers
        echo -n "$DEVICE INVALID SERIAL NUMBER" > $NAME_PATH
    fi
fi

exec /bin/DeviceControlServer.bin DeviceID=\"DeviceID01020304E8090000534D0000DECAFBAD00000000000000000000000000000001\"