Jabrudian Missing Link Wireless OSC<>MIDI Translator

Started by ForestCat, July 05, 2013, 07:36:31 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ForestCat

UPDATE 2:  The thing is passing DIN midi from the input to the output, which is a soft merge/thru function, so the AVR is alive.  Does anyone know the MIDI SysEx command (as opposed to the OSC command...) to set the WiFi mode????  I'm stuck in infrastructure here...
Thanks

ForestCat

Has anyone had any luck w/ pilink on the Raspberry?

I have the script running on my Raspberry, I am trying to send OSC from Lemur & TouchOSC templates previously working with the Missing Link.  I have changed the Lemur OSC out port to 8000, I can see the pilink script receiving the OSC data, but no MIDI output from a USB MIDI interface installed as /dev/MIDI1.
If I send CC or sysex information from Lemur, I get "ValueError: Invalid literal for int() with base 16: '0xb0_1_x'\n"

I can find no documentation on the expected/supported OSC msg syntax for pilink, other than that it tries to replicate some of the ML functionality, which implies syntax compatibility???

Thanks for any experiences/insight

Quote from: Elantric on May 06, 2015, 06:55:00 AM
asb2m10

Thanks for sharing your efforts with us here!

====
https://github.com/asb2m10/PiLink
PiLink - OSC to midi for the Raspberry Pi
PiLink is a simple python script that enable to route OSC messages to midi. It has been designed to be run headless on a Raspberry Pi to avoid to setup a computer between a device that sends OSC messages (like a iPad running TouchOSC) and a midi instrument.

PiLink tries to mimick some of the functionalities of the "defunc" Missing Link device.

Upon startup, the script will wait until /dev/midi1 is available. To stop the script simply send CTRL-C. If it is running at startup, simply kill it via SSH.

Installation

Copy the script to /home/pi
Set the script to executable: $ chmod +a+x /home/pi/pilink.py
In /etc/rc.local, add this line /home/pi/pilink.py
Configuration

Most of the configuration is done directly in the script :

MIDI_DEV : change this to the configured midi device (usally /dev/midi1)
UDP_PORT : the port that pilink listen for OSC messages


ForestCat

#27
Guys, forgive me posting this in "General", but it will hopefully have the greatest exposure here.

I know a number of you were dabbling w/ the now defunct Missing Link.  I'm posting this like a lost puppy sign wherever I can remember any Missing Link users...
If by any miracle, anyone has any previous firmware versions on their hard drives, old laptops, old emails, etc., please post here or contact me. There is a bug in the current firmware which will lock you out of the device and not allow it to be reset once you change certain network params, namely infrastructure mode. It bricks the device, and the only way to reset it back to factory defaults is to flash a different firmware version, flashing the same version preserves your settings, which are the reason it's bricked. I have had zero luck trying to change the version#  & recompile from the sourcecode, etc. It won't compile. You guys are my last hope, if anyone's listening... Thanks.

Elantric

I have an original missing link , but lack ability to extract its firmware. 

Is this documented anywhere?

Is there high risk it might "brick" my working Missing Link?

ForestCat

Steve,
           Whatever you do, DO NOT change the networking mode from Adhoc to Infrastructure.  There are bugs in the firmware which appear to prevent proper WPA/WEP/etc password negotiation w/ your existing WiFi router.  The device forever attempts to associate, and it can't. Red LED.  Result:  You can't connect to the ML via WiFi to re-configure it with the TouchOSC template, etc.  MIDI In port is still active (passes through MIDI to the out), but it DOES NOT RESPOND to the sysex master reset string, or, if it does, it doesn't reset the network params back to AdHoc.  Classic catch-22.

Re: extracting firmware, maybe w/ an AVR development system, jtag, etc. 

Trying to switch over to the raspberry pilink, but progress has been slow.  This doth bloweth.

Elantric

Quoteextracting firmware, maybe w/ an AVR development system, jtag, etc. 

I have access to PIC, Altera, TI, Freescale JTAG, but no Atmel AVR. 

Also it's likely an encryption bit was set by Jabrudian

ForestCat

Yep.  I'm thinking the chances of hard-bricking (because of the custom sysex-based firmware loader, etc.)  are substantial.  So the SOS is out there.  There must be somebody out there like me who saves EVERYTHING, lol. 

Elantric

I agree  - there is high risk on extracting firmware from old unit.

I owned the Missing link since they were first available  - but never dabbled in upgrading firmware.

Elantric

#33
QuoteTrying to switch over to the raspberry pilink, but progress has been slow.  This doth bloweth.
FWIW - if you are seeking wireless control of GR-55, the QuiccoSound mi.1 is full Wireless Ipad to MIDI hardware interface $49
https://www.vguitarforums.com/smf/index.php?topic=11231.msg112607#msg112607

Supports Bi-Directional MIDI Sysex, NRPN, compatible . Might be worth exploring dumping Touch OSC, and use the mi.1 interface with iPad running TB Stuff or MIDI designer



mbenigni

QuoteThere are bugs in the firmware which appear to prevent proper WPA/WEP/etc password negotiation w/ your existing WiFi router.  The device forever attempts to associate, and it can't. Red LED.

Yikes.  I'm not sure whether we're running the same f/w revision, but this makes me glad I never established a secure WEP password.  I had planned on doing so after noticing that our drummer could kill the link between the ML and my GR-55 by simply turning on his MacBook in the same room(!)   Potential disaster at a gig.

Unfortunately, I'm in the same boat as Steve - I have a MissingLink, but no firmware installation files.  (And I see Jabrudian's old website has vanished.  Yikes again.)

QuoteFWIW - if you are seeking wireless control of GR-55, the QuiccoSound mi.1 is full Wireless Ipad to MIDI hardware interface $49
https://www.vguitarforums.com/smf/index.php?topic=11231.msg112607#msg112607

Supports Bi-Directional MIDI Sysex, NRPN, compatible . Might be worth exploring dumping Touch OSC, and use the mi.1 interface with iPad running TB Stuff or MIDI designer

In hindsight, I really wish I'd gone with a different app and avoided OSC altogether for my GR55 editor.  At the time I didn't really understand the difference; just picked the first app that worked and ran with it.  And now I really don't use the GR55 enough to warrant starting over.  :/

Elantric

#35
QuoteI had planned on doing so after noticing that our drummer could kill the link between the ML and my GR-55 by simply turning on his MacBook in the same room(!)   Potential disaster at a gig.

Explains the reason many are returning  / reselling these
Behringer X Air XR18 Tablet-controlled Digital Mixer
http://www.sweetwater.com/store/detail/XR18?adpos=1t1&creative=83305671481&device=c&matchtype=b&network=g&gclid=CjwKEAjwi4yuBRDX_vq07YyF7l8SJAAhm0rp4w_BZbQLUaoiJdimf2OjsLtCf62PH3MkBL_RDn_zYRoC49fw_wcB


ForestCat

Is that bluetooth device robust?  What's the range?  If it shows up as a coreMidi device, it will work w/ Lemur.  If the former are true, and the range is 20' line of sight, what is the FASTEST way for me to get one??? I'm NOT married to OSC at all.  If I'm at a gig where time/space permit, I ALWAYS use a laptop w/ rtpMIDI to convert WiFi CoreMidi from iDevice <<--->> DIN MIDI.

I would KILL for a robust, complete rtpMidi implementation on Linix/Raspberry.  I have flushed hundreds and hundreds of hours down the toilet trying to learn enough c/python/arduino etc. to replicate what the Missing Link would have done IF IT WERE EVER FINISHED.  If I could do it w/ CoreMidi to DIN MIDI, I'm a happy camper.

I'm at the point where I just want to play my damn guitar

ForestCat

Did a little more research, looks like this is not a native CoreMIDI solution?  Requires iOS8/Bluetooth4 and a background app on the IOS device?? I have quite a few older iOS devices(and no new ones...), so I guess that's out for me.

I am amazed that there is as of yet, no fully implemented rtpMIDI solution for 'nix.  I have a Raspberry, and it is wicked cool, and boots to a command prompt about as fast as my VG-99.

I may have to see if Windows 10 will run rtpMIDI, but I doubt it.  Maybe have to try PureData on the Pi to do OSC--->MIDI if the pilink s/w isn't operational soon.  Plan B is an old iPhone, iConnectMIDI, and nanorouter on the pedalboard.  Not ideal or bulletproof, but it will allow the iPod on the guitar to control the VG-99. Feels like I'm so close...  but I've been saying that for years.

BTW, Marc, re: the WiFiMIDI website being gone, that is a travesty.  It was the sole respository for every worthwhile bit of information or template that ever existed for the ML, and 99% of my searches dead-end there.  That entire site could not have been more than a couple hundred megs, if that.  The fact that that whole thing & the forum mysql database wasn't zipped up and archived before the site was taken down defies description, but I'll be kind & just call it a travesty.  It is, apparently, gone forever, and a TON of really useful information with it.  Including the only copies of the older firmware I so desperately need to unbrick my ML.  I think that in 2015, it is fair to say that almost all websites need to outlive their authors & products.  Case in point:  all of Tim Corardy's fantastic Atari stuff.  He lives on through it. It costs almost nothing to host a read-only php forum.  Hell, I would have hosted the WiFiMIDI site as a public service if I had only known...

Elantric

suggest read wiki rtpMIDI page

https://en.wikipedia.org/wiki/RTP-MIDI
RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message.History of RTP-MIDI[edit]
In 2004, John Lazzaro and John Wawrzynek, from UC Berkeley, made a presentation in front of AES named "An RTP payload for MIDI".[1] In 2006, the document was submitted to IETF and received the number RFC 4695.[2] In parallel, another document was released by Lazzaro and Wawrzynek to give details about practical implementation of the RTP-MIDI protocol, especially the journalling mechanism.[3]
RFC 4695 has been obsoleted by RFC 6295 in 2011 (the protocol has not changed between the two version of the RFC documents, the last one contains correction of errors found in RFC 4695)[4]
The MMA (MIDI Manufacturers Association) has created a page on its website in order to provide basic informations related to RTP-MIDI protocol.[5] A central information website (aiming end users and implementors) has also been created in order to answer questions related to RTP-MIDI.[6]
AppleMIDI[edit]
Apple Computer introduced RTP-MIDI as a part of their operating system, Mac OS X v10.4, in 2005. The RTP-MIDI driver is reached using the Network icon in the MIDI/Audio Configuration tool (in the Utilities folder). Apple's implementation strictly follows the RFC 4695 for RTP payload and journalling system, but uses a dedicated session management protocol (they do not follow the RFC 4695 session management proposal). This protocol is displayed in Wireshark as "AppleMIDI" (see below).
Apple also created a dedicated class in their mDNS implementations (known as "Bonjour"). Devices which comply with this class appear automatically in Apple's RTP-MIDI configuration panel as the Participants directory, making the Apple MIDI system fully 'Plug & Play'. However, it's possible to manually enter IP addresses and ports in this directory to connect to devices which do not support Bonjour.
Apple also introduced RTP-MIDI support in iOS4, but such devices cannot be session initiators.
The RTP-MIDI driver from Apple creates virtual MIDI ports (named "Sessions") which are available as MIDI ports in any software (like sequencers or software instruments) using CoreMIDI, where they appear as a pair of MIDI IN / MIDI OUT ports (like any other MIDI 1.0 port or USB MIDI ports).
Implementations[edit]
Embedded devices[edit]
In 2006, the Dutch company Kiss-Box presented a first embedded implementation of RTP-MIDI, in different products like MIDI or LTC interfaces.[7] These devices comply with AppleMIDI implementation (using the same session management protocol), in order to be compatible with the other devices and operating system using this protocol.
A proprietary driver was initially developed by this company for Windows XP, but it was restricted to the communication with their devices (it was not possible to connect a PC with a Mac computer using this driver). The support of this driver was dropped in 2012 in favor of the standard approach when rtpMIDI driver for Windows became available.
Kiss-Box announced released in 2012 a new generation of CPU boards (named "V3") which support the session initiator functionnalities (these models are able to establish sessions with other RTP-MIDI devices without requiring a computer as a control point).
During NAMM2013, the Canadian company iConnectivity presented a new interface named iConnectivity4+ which supports RTP-MIDI and allows direct bridging between USB and RTP-MIDI devices.
Windows[edit]
Tobias Erichsen released in 2010 a Windows implementation of Apple's RTP-MIDI driver.[8] This driver works under XP, Vista, Windows 7, and Windows 8, 32 and 64 bit versions. The driver uses a configuration panel very similar to the Apple's one, and is fully compliant with Apple's implementation. It can then be used to connect a Windows machine with a Macintosh computer, but also embedded systems. As with Apple's driver, the Windows driver creates virtual MIDI ports, which become visible from any MIDI application running on the PC (access is done through mmsystem layer, like all other MIDI ports).
Linux[edit]
RTP-MIDI support for Linux has been reactivated after an idle period in February 2013. Availability of drivers have been announced on some forums, based on the original work of Nicolas Falquet and Dominique Fober,.[9][10] A specific implementation for Raspberry PI computer is also being developed, based on the MIDIKit open source project. [11] A full implementation of RTP-MIDI (including the journalling system) is available within the Ubuntu distribution, in the Scenic software package.[12]
iOS[edit]
Apple added full CoreMIDI support in their iOS devices in 2010, allowing the development of MIDI applications for iPhone, iPad and iPods. MIDI became then available from the docking port in form of a USB controller (to allow connection of USB MIDI devices using the "Apple Camera Kit"), but it was also available in form of a RTP-MIDI session listener over WiFi. iOS devices do not support session initiation functionnalities, which requires the use of an external session initiator on the network to open a RTP-MIDI session with the iPad. This session initiator can be a Mac computer or a Windows computer with the RTP-MIDI driver activated, or an embedded RTP-MIDI device. The RTP-MIDI session appears under the name "Network MIDI" to all CoreMIDI applications on iOS, and no specific development is required to add RTP-MIDI support in the iOS application (the MIDI port is virtualized by CoreMIDI, so the programmer just need to open a MIDI connection. He does not need to care if the port is connected to USB or RTP-MIDI)
It shall be noticed that some complaints arose about the use of the MIDI over USB with iOS devices,[13] since the iPad/iPhone must provide power supply to the external device. Some USB MIDI adapters are drawing too much current for the iPad, which limits the current and blocks the startup of the device (which does not appear as available to the application). This problem is avoided by the use of RTP-MIDI.
Javascript[edit]
Since June 2013, a Javascript implementation of RTP-MIDI, created by J.Dachtera, is available as an open-source project.[14] The source code is based on Apple's session management protocol, and can act as a session initiator and session listener.
Java[edit]
Cross-platform Java implementations of RTP-MIDI are possible, particularly 'nmj' library.[15]
WinRT[edit]
The WinRTP-MIDI project [16] is an open-source implementation of RTP-MIDI protocol stack under Windows RT. The code was initially designed to be portable between the various versions of Windows, but the last version has been optimized for WinRT, in order to simplify the design of applications for Windows Store.
Arduino and MIDIBox[edit]
In December 2013, two members of the MIDIBox DIY (Do It Yourself) group started to work on a first software version of MIOS (MIDIBox Operating System) including RTP-MIDI support over a fast SPI link. In order to simplify integration, it was decided to use an external network processor board handling the whole protocol stack. A first beta version was released in the second week of January 2014.[17] The first official software has been released during first week of March 2014.
The protocol used on the SPI link between the MIOS processor and the network processor is based on the same format as USB (using 32 bits words containing a complete MIDI message) and has been proposed as an open standard for communication between network processor modules and MIDI application boards.
RTP-MIDI has been included in Arduino open platform in November 2013 (under the name "AppleMIDI library").[18] The software module can run either on Arduino modules with integrated Ethernet adapter (like the pcDuino) or run on the "Ethernet shield" and does not require a dedicated "shield" like for proprietary protocols.
Driverless use[edit]
Since RTP-MIDI is based on UDP/IP, any application can implement the protocol directly, without needing any driver. The drivers are needed only when users want to make the networked MIDI ports appear as a standard MIDI port. For example, some Max/MSP objects and VST plugins have been developed following this methodology.
RTP-MIDI over AVB[edit]
AVB is a set of technical standards which define specifications for extremely low latency streaming services over Ethernet networks. AVB networks are able to provide latencies down to one audio sample across a complete network.
RTP-MIDI is natively compatible with AVB networks (like any other IP protocol), since AVB switches (also known as "IEEE802.1 switches") manage automatically the priority between real-time audio/video streams and IP traffic (IP traffic is assigned a lower priority to avoid any disturbance on the streams)
RTP-MIDI protocol can also use the real-time capabilities of AVB if the device implements the RTCP payload described in IEEE-1733 document.[19] The RTP-MIDI applications can then correlate the "presentation" timestamp (provided by IEEE-802.1 Master Clock) with the RTP timestamp, ensuring a sample-accurate time distribution of the MIDI events.
Protocol[edit]
RFC 4695/RFC 6295 split the RTP-MIDI implementation in different parts. The only mandatory one (which defines compliance to RTP-MIDI specification) is the payload format. The journalling part is optional (but RTP-MIDI packets shall indicate that they have an empty journal, so the journal is always present in the RTP-MIDI packet, even if it is empty) The session initiation/management part is purely informational (and was not used by Apple, who created its own session management protocol)

Elantric

and check this PiLink info at GitHub - updated downloads just 4 days ago
https://github.com/asb2m10/PiLink




PiLink - OSC to midi for the Raspberry Pi
PiLink is a simple python script that enable to route OSC messages to midi. It has been designed to be run headless on a Raspberry Pi to avoid to setup a computer between a device that sends OSC messages (like a iPad running TouchOSC) and a midi instrument.

PiLink tries to mimick some of the functionalities of the "defunc" Missing Link device.

You can configure the device by using : http::8080

Prerequisites

Raspberry Pi with WIFI connection (note the WIFI IP of your Pi)
Compatible midi devices that works with Linux (the vast majority of midi interface; eg. the Roland GR-55 is plug and play)
Source applications from TouchOSC or Lemur
Installation

Download source from github (see [Download ZIP] button on the right)
Copy the zip (PiLink-master.zip) to /home/pi on the Pi
Unzip the content ~ $ unzip PiLink-master.zip
Set the script to executable: ~ $ chmod +a+x /home/pi/PiLink-master/pilink.sh
Run the script in console to test if it works : ~ $ /home/pi/PiLink-master/pilink.sh before putting it in the startup scripts
In /etc/rc.local, add this line /home/pi/PiLink-master/pilink.sh & to start PiLink at startup
TODO

More stats and logging
Make a WIFI access point configuration out of the box for PiLink

ForestCat

#40
Yep.  I'm emailing back & forth with Pascal, been at this a few weeks now.  It still has ways to go, but I have my fingers crossed...  I'm trying to get my head around the python to try to speed up development, but the string parsing, and pythons string handling/syntax is pretty alien to me.

Been through the rtpmidi wiki, followed all the linux leads, dead ends, or partial implementations, no sysex, etc.



Elantric

#41
http://www.tobias-erichsen.de/software.html

  RTP Payload Format for MIDI
https://tools.ietf.org/html/rfc4695


https://en.wikipedia.org/wiki/Bonjour_(software)


How to setup WiFi rtpMIDI on a PC (Windows) ?
How to setup WiFi rtpMIDI on a Mac ?
How to use The Missing Link™ with TB MIDI Stuff ?

http://www.thiburce.com/TBStuff/?page_id=472



http://www.kissbox.nl/products_midi.html




CM-MIDI - Low cost MIDI transceiver for RTP-MIDI networks

The CM-MIDI is a low-cost compact version of the KissBox MIDI2TR transceiver, ideal for musical applications for which options like Power over Ethernet is not necessary. It provides 2 RTP-MIDI endpoints, each of them supporting up to 16 sessions in parallel.

The CM-MIDI can be used directly with Apple Macintosh computer (RTP-MIDI support is fully integrated in OS X). It can be used also on any Windows machine thanks to our free driver. The CM-MIDI appears on these machines as two independent MIDI interfaces, which can be used with any MIDI software like Sequencers, Digital Audio Workstations, SYSEX Editor/librarian, etc...

The CM-MIDI is the ideal partner of the VSTizer product range. It can be installed directly near your favorite hardware synthesizers, without the need to care about the distance between the computer and synthesizers. And of course, the CM-MIDI can be controlled directly by any other RTP-MIDI device, like a master keyboard, without involving a computer in the network path.

IMPORTANT : KissBox Editor V11 is required for CM-MIDI!

• Ultra-compact ruggedized design (aluminium alloy), ideal for live/stage applications
• Fully compliant with RTP-MIDI open protocol
• Two RTP-MIDI endpoints (1 endpoint = 1 MIDI IN + 1 MIDI OUT)
• Appears in MIDI applications as two independent MIDI interfaces
• Plug&Play using Apple's Bonjour protocol
• "Session initiator" functionnality, for direct peer to peer application with iOS devices (iPad, iPhone, iPod) over WiFi, without needing any USB adapter connected to the iOS machine
• Supports both peer-to-peer and computer controlled communication
• Interoperable with any other RTP-MIDI product
• Powered by USB charger
• Ready for the new MMA "HD" protocol


Downloads
See "Downloads" page for latest CM-MIDI firmware

• CM-MIDI User's Manual (English)


CMMIDI
MIDI2TR - Dual MIDI/RTP-MIDI Transceiver

The DUAL RTP-MIDI Transceiver allows you to use a standard Ethernet network to distribute the MIDI protocol to any part of your setup, whatever its size. RTP-MIDI is an open standard, supported natively by Mac OS-X (no driver to install), and free driver is available for Windows (XP to Win8, 32 and 64 bits). It is also compatible with iPad/iPhone over WiFi!
The DUAL RTP-MIDI is seen on these systems as a standard MIDI interface, compatible with any existing MIDI application.
The DUAL RTP-MIDI supports also Plug&Play operation, using Bonjour protocol.

IMPORTANT : KissBox Editor V11 is required for the new MIDI2TR firmware!
• Full-Duplex MIDI communication over RTP-MIDI open protocol
• Two independent MIDI IN/MIDI OUT ports
• Plug&Play using Bonjour protocol
• No driver required on Mac, free driver available for Windows
• Compatible with WiFi MIDI on iPad/iPhone
• Supports multi-session with full merging
• Operating power over the network cable.– IEEE 802-3af
• RTP-MIDI sync accuracy : 0.1 millisecond
• Easy software configuration using KissBox Editor
• Ready for the new MMA "HD" protocol


Downloads
See "Downloads" page for latest MIDI2TR RTP-MIDI firmware



This video shows how to use a KissBox MIDI2TR as a MIDI interface for the iPad, over a WiFi link.This solution makes possible to use the iPad MIDI applications without any MIDI cable between the iPad and the MIDI setup, giving back to the iPad its wireless device status.
No specific software is required within the iPad (thanks to the standard and open RTP-MIDI protocol)
The video also demonstrates that the latency can be very small with a correct defined configuration, and proves that the IP configuration process is far from being complex.
All technical details and user's manuals are available on the RTP-MIDI products page of KissBox : http://www.kissbox.com