Jump to content

MIDIbox goes RTP-MIDI...


BEBDigitalAudio
 Share

Recommended Posts

Hello to all MIDIBox forum members,

 

I am proud to announce that, thanks to Thorsten work, the last version of MIOS is now RTP-MIDI ready :rolleyes:

If you do not know what is RTP-MIDI, you can take a look there : http://en.wikipedia.org/wiki/RTP_MIDI

 

(In two words, RTP-MIDI is transporting MIDI over IP networks, to take benefit from high speed from Ethernet, plus other new functionnalities like automatic merging/splitting). RTP-MIDI is completely license free, natively supported by Apple in OS-X and iOS, and there is a free driver for Windows too. It's also Plug&Play thanks to the use of Bonjour.

 

The concept is based on the use of the KissBox RTP-MIDI OEM board (http://www.kissbox.nl/products_oem.html), which translates the RTP-MIDI protocol into an high speed SPI based protocol (the protocol being simply the one used for USB transfers)

 

Of course, final users will not need to write their own RTP-MIDI application in the KissBox CPU board, I have written this part (Thorsten included the host part and tested it for the MIDIBox applications)

The first version is in beta state, we are now looking to optimize it, especially the SPI speed.

 

We will demonstrate the board at NAMM in Anaheim in two weeks, if you want to see it operating (we are located at booth 1088 in Hall E, for those who want to visit us)

 

If you have any comment or question, they are of course welcome

 

Benoit

(PS : yes, I am from KissBox, in case you are asking yourself :shifty: )

 

post-20303-0-71221900-1389609098_thumb.j

Link to comment
Share on other sites

Thank you all for these first comments (Thorsten did a great job too)

 

Now to answer your different questions:

 

Whats the Price of that RTP-MIDI OEM board?

Everything depends on the size of the bulk. For now, we estimate the price between 90 and 100 euros for a bulk of 50 pieces

 

 

And will there be a DIY version, similar to what we have for the GM5?

I suppose you mean the possibility of assembling the KissBox CPU yourself?

Then the answer is no. The problem is mainly around the main processor which is a leadless package with a 0.5mm pitch (sorry, but this chip only exists in this format). Moreover, the chip has a grounding pad underneath, which requires reflow soldering (in an oven if you prefer), and this is a SMD board....

So only automated placement is possible

 

 

Makes me wonder about MidiBox to MidiBox communication as well in cases where USB isn't ideal.

 

Yes, this is perfectly possible with RTP-MIDI. You can easily make peer to peer communication.

You can also use very easily RTP-MIDI with iOS and Android devices, since RTP-MIDI is running over a standard IP stack.

By the way, in the specific case of iOS, you have to know that RTP-MIDI is a part of it (you do not need to install any driver or update anything). That means that any RTP-MIDI device can be reached over WiFi by any MIDI application running on iPad/iPhone/iPod (it appears as a standard MIDI interface) You do not need to connect any USB module to the iPad, so you can keep its wireless status

 

And, last but not least, RTP-MIDI is able to merge and split MIDI streams automatically. That means that if you "connect" two or more source devices to the same destination device, the receiving one merges all MIDI streams automatically. And in the other direction, a single RTP-MIDI connected to multiple ones automatically splits data to all destination (like a THRU box)

Link to comment
Share on other sites

Some words from my side: I always found the capabilities of RTP-MIDI very attractive, but refused to implement it natively into MIOS32 because of the high amount of engineering effort for a proper implementation of the RTP and Bonjour protocol. Also the resource requirements (especially RAM and fast response time) are so high, that it was clearly something which can't run in parallel to a typical MIOS32 application like MIDIbox SEQ or MIDIbox NG -> definitely something that has to be offloaded to a second core.

 

I was highly interested on the KissBox OEM after Benoit contacted me (actually because of a different project, but we quickly changed the topic ;-), he sent me a sample PCB, and in the last days we worked out a high performance communication protocol for MIOS32 based cores, which works stable.

For those who are interested: the driver is implemented in mios32_spi_midi.c: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fmios32%2Fcommon%2Fmios32_spi_midi.c

 

The KissBox is connected to the core via J16. It shares the port with a SD Card (almost no disadvantage), and since there is no hardware conflict, it will be available for all MIOS32 applications in future.

 

Note, that the KissBox OEM also supports an alternative firmware for UART based MIDI ports.

This means, that you could upgrade other MIDI devices as well (e.g. MBHP_CORE based -> just connect the Rx/Tx lines to J11)

In this case the connection will be slower (just the common MIDI baudrate), but the network based approach still has advantages.

 

Main advantages (from my point of view):

  • in distance to UART or USB based MIDI, a device can contact any other device over a single cable, and transmit with an extremely stable timing.
    E.g. after experimenting with KissBox I believe that RTP MIDI is the best way to distribute a MIDI clock to multiple computers (and MIDIboxes of course ;-)
  • Better than OSC, especially on a WiFi connection due to guaranteed transmission in the expected order thanks to TCP/IP (instead of UDP) -> no danger for hanging notes!
  • Seamless integration with MacOS, iOS but also Windows computers thanks to Tobias Erichsen's driver
  • in distance to CopperLAN (we had a discussion on this in another thread), the RTP MIDI protocol isn't a closed source protocol which needs proprietary drivers
  • Benoit hasn't mentioned this, but KissBox is ready for HD MIDI, and MIOS32 based devices will probably be the first ones which support the upcoming standard! :smile:

Best Regards, Thorsten.

Link to comment
Share on other sites

MIOS32_SPI_MIDI supports up to 16 independent MIDI IO ports (like USB MIDI), which can be used internally in the application, or which could be forwarded to physical interfaces like UART MIDI or IIC_MIDI.

 

However, Benoit has to answer on the supported maximum number of independent network ports and UART MIDI ports for the alternative firmware.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Just a small comment on what Thorsten saud just before : it's true that the KissBox CPU also allows to use the "classical" UART at 31.25kbps, but this uses a different software. The SPI firmware does not support this mode.

Note that the SPI firmware is a special one, and it is restricted to the OEM version.

 

By the way, I would like to apologize in advance for the time it may take for me to answer requests on this forum. I go to the NAMM next week (we have a booth here), and this takes most of my time.

Moreover, I wanted to make a special and dedicated version of the KissBox Editor for the RTP configuration (the standard KissBox Editor supports the complete range of our products, and it may be too complex to use for the MIOS application)

 

So I will probably be able to release the official SPI firmware and the related KissBox Editor only in the first week of February, when I come back from USA. Thank you all for your understanding

 

Benoit

Link to comment
Share on other sites

Well all that is rather confusing - I see a lot of potential but it is unclear to me what features are there for which version, and how these different versions integrate in a traditional MIDI setup. It's easy to imagine a box with 16 physical MIDI ports that transforms those signals to an RTP-MIDI stream. But then I would need at least one "decoder" at the other end.

 

As far as I understand, a KissBox OEM would allow a single MIDIbox to be integrated into an RTP-MIDI network.
 

Everything depends on the size of the bulk. For now, we estimate the price between 90 and 100 euros for a bulk of 50 pieces

Looking at the picture above it must be a per-piece price, and I'm quite shocked. Given that you need at least two of these (or similar) units, that amounts to a significant sum for a minimal setup... I'd love to be corrected, though!

Link to comment
Share on other sites

Looking at the picture above it must be a per-piece price, and I'm quite shocked. Given that you need at least two of these (or similar) units, that amounts to a significant sum for a minimal setup... I'd love to be corrected, though!

Things are not so simple with RTP-MIDI. The way it works is very different from classical MIDI approach with the IN/OUT/THRU.

 

First, you can perfectly build a setup where you have a single KissBox board on one side, and computers on the other. The KissBox modules can talk to each other, but also to computers. So it's not necessary two modules needed (apart if you want to make a MIDIBox talking to another MIDIBox over the network)

 

Second point : the particularity with RTP-MIDI is that it is based on the concept of session. A session represents a MIDI IN/OUT pair on application side. The difference with "classical" MIDI is that a single session handler can be connected to multiple session handlers in parallel (it's not KissBox specific, this is part of RTP-MIDI itself)

I will try to explain it simply : imagine that you have four RTP-MIDI devices on the network (A, B, C, D). When you want to exchange MIDI data, you need first to open a session (this is part of the firmware or the driver in case of the computer. You do not see it really, it's done transparently).

Let's say that A, B and C open a session with D (inside D sofware, there are "physically" four sessions then, it's not the same session shared between all participants). What is sent by A, B and C is sent automatically to the application, after ebing merged. In the other direction, what is send by application to D is sent automatically to A, B and C. In other terms, with RTP-MIDI, you do not need mergers and splitters, they are implicitely part of the protocol.

But B can also be connected virtually to C for example, etc...

This is called virtual patchbay

 

The current KissBox firmware supports 8 sessions in parallel so 8 devices (which can be computers, not only other KissBox CPU) can talk with a single MIOS application at the same time. The protocol we use on SPI allows up to 16 cables, so basically we can assume that a single RTP-MIDI node represents 16 MIDI cables at the same time (each of them with 16 MIDI channels of course)

 

The protocol we use on SPI uses the notion of Cable Number, which allows to identify the session sender. So, simply said, at a given moment, the MIOS application can see up to 8 devices, while there is only one physically connected....

 

Yes, I know, it's a bit hard to understand since there are many new concepts under RTP-MIDI. If you want, you can take a look on the download page of KissBox website, there are documents which explain more in detail how the configuration process works and what are the possibilities.

 

Sorry if I am not very clear, I work on RTP-MIDI since 2006, and many things are very clear for me, but not necessarily for newcomers in RTP-MIDI.

If you think that something needs to be explained more in detail, please ask, I will do my best to explain things simply.

 

Benoit

Link to comment
Share on other sites

Thanks Benoit for the overview - I got what you explained from reading through the Wikipedia page that you linked to in your first post. When saying that I am confused I was rather refering to the different versions of KissBoxes I can find on your website, and what features (you seem to be referring to those in different terms, like SPI "firmware", UART "software") they support or not, and whether these are changeable by software (apparently, they are not).

 

Apart from the list of advantages that Thorsten gives - what are the arguments you would put forward in favor of RTP-MIDI, and in which application scenarios do you see it being used, considering the price tag for RTP-MIDI modules you are mentioning?

 

Good luck at NAMM!

Link to comment
Share on other sites

One thing I would be interested in is a simpler way to connect my MidiBoxen to various MIDI devices without a computer. RTP-MIDI support for MIDIO128 would be pretty awesome, for instance. Then adding to this an alternative over using OSC for interfacing with, say, a tablet, could be really neat.

Edited by m00dawg
Link to comment
Share on other sites

Thanks for your work, Benoit and TK.!

Despite the price tag, which is quite steep for the MIDIbox land (agreed with ilmenator), I can see some real benefits, when you have loads of synths sitting around and want to integrate them with a local (e.g. small laptop) and a remote DAW (e.g. big screen, powerful machine). In this scenario, the price is more than ok, because you have spent some serious $$$ on the synths and hardware already, and a reliable link with low-latency timing is just what you are looking for.

 

Many greets,

Peter

Edited by Hawkeye
Link to comment
Share on other sites

This is what I have been trying to get my head around: How do you connect your MIDI-interfaced synths with the Kiss-Boxes (or RTP-MIDI in general)? From what I have seen so far: having a significant number of MIDI-capable hardware synths already does not make RTP-MIDI any more attractive. That's why I was asking for specific application scenarios in order to see how much (yes, in the end it's down to cost again...) for this brave new world one would have to shell out...

 

Having all those MIDI hardware devices, I would want them all to be part of the system. I have an infrastructure in place today - it's not perfect but it works. I can see the benefits of RTP-MIDI. Now, how do I make sure these benefits are also shared with the legacy devices?

Link to comment
Share on other sites

For me, the usecase, which TK. has pointed out (thanks!), would be to connect all MIDI hardware legacy synths to MIDIboxes (e.g. the SEQ V4) equipped with RTP-MIDI boards. Then, they are usable on all machines on the network, which would be a big benefit, as my small screen laptop next to the synths is not very well usable for arrangement work, but works fine for basic midi track recording/idea gathering.

 

On the bigger machine, I´d have all the screen real estate necessary to do some fine DAW work, not that I work this way as of yet, but it is a nice option. Also, there is very stable MIDI timing, which may be even better than USB based MIDI timing, as far as I´ve understood (depends on your OS).

 

Many greetings,

Peter

Link to comment
Share on other sites

I'll admit it seem a bit price prohibitive. About $140 US per board if I read the original price estimate right. I can certainly figure out how to interface synths with just regular ole MIDI, minus tablet integration. The idea of connecting DAWs on different computers is pretty neat though!

What I would like to see that would make this more relevant for me is, say, an RTP-MIDI to MIDI solution (ala GM5x5x5 kinda thing) where you can basically expand out to how many MIDI connections you need (within reason). Being able to connect that back to a MIOS32 application could simplify the method of needing to add MIDI connections. I'm at the point with MIDIO128 where I may have to use MIDI Thru in some cases to connect everything eventually. That's more so a limitation of MIDIO128 currently (with standard MIDI ports anyway) but RTP-MIDI could simplify things here. That is, assuming, latency is better in such a scenario.

If the OEM board was cheaper, I could see bolting it onto my synths to simplify connections between them. I haven't seen what the max cable distance is (I assume given it uses the IP stack, it uses the same cabling standards for distance), but that, plus the PoE module, would be really cool for my GameBoy MIDI bridge (powered by ArduinoBoy).

Link to comment
Share on other sites

So to be a bit more specific: imagine an RTP-MIDI equipped SEQv4. If it is LPC17-based then I can hook up 6 MIDI-synths to it, using the regular I/Os plus the IIC ones. The seventh "device" is MBSEQv4 itself, and that means I could potentially connect another single MIDI device if TK added that option (or is that already supported?). Is that how it can work?

 

And then, I would need another MIDIbox with Kiss-Box attached for the remaining synths?

Link to comment
Share on other sites

I must agree. Although it is a pretty cool feature for ipad/mac/pc usage, it would require significant hardware efforts to make a single synth do RTP-midi. An fairly easy way todo this would be to add this feature to the gm5. But i don't see how that is feasible.

Link to comment
Share on other sites

I must agree. Although it is a pretty cool feature for ipad/mac/pc usage, it would require significant hardware efforts to make a single synth do RTP-midi. An fairly easy way todo this would be to add this feature to the gm5. But i don't see how that is feasible.

More like a GM5-like solution. Basically a MIOS32 with maybe some MIDI routing capabilities that can talk MIDI over RTP, USB, and a set of DIN MIDI ports. MIOS32 can already replicate GM5 functionality so I would bet adding RTP might not be too bad given TK is already looking at it. Integrating features found in MIDIO128 (MIDI playback mostly), would make such a device very compelling in my opinion.

Link to comment
Share on other sites

I doublechecked with Benoit, and can confirm that the sessions can be routed to different "virtual cables", so that they are accessible as RTP1..RTP16 in MIOS32, and can be routed to individual MIDI ports (or used internally independent from each other.

 

E.g. the most simple configuration would be something like:

RTP1 ALL -> OUT1 ALL
RTP2 ALL -> OUT2 ALL
RTP3 ALL -> OUT3 ALL
RTP4 ALL -> OUT4 ALL
RTP5 ALL -> IIC1 ALL
RTP6 ALL -> IIC2 ALL
RTP7 ALL -> IIC3 ALL
RTP8 ALL -> IIC4 ALL
RTP9 ALL -> USB1 ALL
RTP10 ALL -> USB2 ALL
RTP11 ALL -> USB3 ALL
RTP12 ALL -> USB4 ALL

and then use RTP13..RTP16 for internal sources and destinations ;-)

 

All MIOS32 applications which use the standard MIDI router will support this, such as MIDIbox SEQ V4, MIDIO128 V3, MIDIbox NG, MIDIbox CV2

 

 

In other words: one of many functions of your MIDIbox will be to act as a gateway to your (Wireless/Wireline) network, and you can connect multiple "common" MIDI devices to it with standard MIDI interface (or USB or CV or...)

And one or more computers/tablets/phones can connect to this network as well, and communicate via the sessions.

And if you've multiple MIDIboxes equipped with the KissBox OEM, they will be part of the sessions as well.

 

 

Integrating features found in MIDIO128 (MIDI playback mostly), would make such a device very compelling in my opinion.

 

No problem, the MIDI player/recorder can send to the RTP ports, and receive   :smile:

 

Best Regards, Thorsten.

Link to comment
Share on other sites

More like a GM5-like solution. Basically a MIOS32 with maybe some MIDI routing capabilities that can talk MIDI over RTP, USB, and a set of DIN MIDI ports. MIOS32 can already replicate GM5 functionality so I would bet adding RTP might not be too bad given TK is already looking at it. Integrating features found in MIDIO128 (MIDI playback mostly), would make such a device very compelling in my opinion.

As i said i don't see how this would be feasible on the gm5. I thought it was fairly obviously considering the lack of I/O on the gm5.

Edited by Shuriken
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...