davidmoreno / rtpmidid

RTP MIDI (AppleMIDI) daemon for Linux
Other
183 stars 41 forks source link

MPC Port #81

Closed DatanoiseTV closed 9 months ago

DatanoiseTV commented 2 years ago

@davidmoreno As you might now, the MPC is running a buildroot-based Linux and it is possible to install 3rd party utilities onto the Filesystem (and activate SSH). I have found your project and I think it would be interesting to create a statically-linked version for the armhf architecture so it can be used on the MPC. I've seen your comment about the MPC on one of the releases, and I think it would be a nice addon!

davidmoreno commented 2 years ago

sorry, closed by mistake.

i would totally love it... currently i have my mpc one connected all the time to a orange pi juat to use rtpmidid.

i will try to have a version tomorrow, could you try it? im scared of rooting my mpc... does it lose any funcionality?

DatanoiseTV commented 2 years ago

I can try it. No, everything stays the same and no disadvantages found so far (also, not possible to brick it).

Todo for that would be:

davidmoreno commented 2 years ago

Got it!

First I attach a bin file that adds RTP MIDI support to MPC One! Woo, I'm so happy about it!

rtpmidid.gz

BUT. It does not announce on MDNS, so its difficult to connect, it has to be by IP (rtpmidid-cli connect 192.168.1.146 in my case). If using other avahi implementations there is always a similar option to connect by IP.

This is because avahi so far is a no go. It really needs dynamic libs.

I experimented with resurrecting the mostly working custom MDNS implementation I dd at the beginning of rtpmidid coding, and it should work.. but the recovery is not complete (ie. sources files are there but fail to compile). But it should be possible 100% to have this working too.

Latency says 0.50 ms.. which is impressive!

Development is up to date in the mdns-options branch.

I will try to make the custom mdns work during the week, but no promises.

DatanoiseTV commented 2 years ago

@davidmoreno You could use this lib for mDNS-SD https://github.com/gocarlos/mdns_cpp Also, there is no python on the mpc, so rtpmidid-cli needs to be reimplemented in C/C++ (or better, extend rtpmidid with a web interface. Implementing a web inteface is anyway on my near-future roadmap, as I want to implement a file browser / upload inteface for the mpc. I will write it in Go probably, as I want to also allow to use an S3-API (using minio).

davidmoreno commented 2 years ago

Got it!

It uses PATH and LD_LIBRARY_PATH, creates an user, and copy some files to make avahi work, and then plain rtpmidid works.

To use it, uncompress the attached tar.gz file to just a tar file, copy the file to the MPC and:

tar fx mpc-one-rtpmidid.tar
cd mpc-one-rtpmidid
./test.sh

It will work until close terminal or reboot.

I had some problems with the installer, if I can advance on this will keep an installer too.

BTW, if someone knows somebody a AKAI, or somebody from AKAI reads this, please consider just using rtpmidid. Just 25 files and rtpmidi is available and just works! No even need to change anything at the UI.

mpc-one-rtpmidid.tar.gz

DatanoiseTV commented 2 years ago

@davidmoreno I didn't look into it properly, but I see that the binary /bin/DeviceControlServer.bin is actually already announcing the proprietary network midi service. We should look what ldd tells. Maybe it already uses a system library for avahi.

davidmoreno commented 2 years ago

Arg! I didnt know. That may conflict with anything mdns related (avahi, or custom implementation). I saw avahi complaining but wasn't sure.

For now I would ignore the conflict, as it looked like working on my MPC properly.

DatanoiseTV commented 2 years ago

@davidmoreno I tried the same way now of rsync'ing the dist folder to my modified firmware, but the MPC didn't like that and soft-bricked it. I was able to reflash it with stock firmware via fastboot, so I will have to investigate.

davidmoreno commented 2 years ago

How do you do the fastboot firmware reflash?

DatanoiseTV commented 2 years ago

How do you do the fastboot firmware reflash?

Power On while Holding Pad Group C, Browser + Full Level. Then it goes to recovery mode screen. Afterwards, the fastboot steps described in the other repos.

TheKikGen commented 2 years ago

I have included rtpmidid in the MPC bootstrap here : https://github.com/TheKikGen/MPC-LiveXplore-bootstrap, so it can be started without modifying too deeply original Akai image.