MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

Can MIDI be readily extended beyond its limitations?
MUFF WIGGLER Forum Index -> Music Software  
Author Can MIDI be readily extended beyond its limitations?
gminorcoles
Hi,
I have spent a lot of time googling reading and researching threads here or an gearslutz, of the forums of various software and hardware vendors, trying to learn how to deal with the many facets of MIDI voodoo.

The lack of support for MIDI, in different ways, is bewildering but then not surprising after all.

The cherry on top is when I find threads advocating the purchase of various 500 dollar boxes some of which are no longer in production just to deal with jitter, and then you still have the problem that if you choose your DAW of VST host for its feature list, you might forget to research the tool's ability to support MIDI routing, in/out synchronization of MTC, beat clock, SSP, etc.

Today I was stressing specifically about latency, the pileup of concurrent notes under the serial midi spec.

What if a vendor offered a software and hardware solution that uses a mostly MIDI protocol that jettisons the things like the 24pqn time division, the serial transmission of notes, etc., and just implements whatever is necessary to send messages that are a superset of modern MIDI, so that the message content is compatible with data that all the endpoints understand, but is transmitted in a way that is more expedient, and simply abandons standards compliance in terms of the transport, or the method of getting the messages from point to point.

The solution could be async IO over thunderbolt, or PCI-e, TCP, UDP, whatever works. You could use copperlan or something, though I don't really understand what that is.

I would buy a keyboard controller or a hardware sequencer that locked me into this proprietary implementation if there was come compatibility or conversion in and out, with the understanding that converting to standards compliant mode might cause a degradation of performance.

Any thoughts

for the record I have found this forum and others very educational and have indeed purchased several of the solutions that, at least in the area of synch and jitter reduction, have been mentioned here. But that is just a post hoc fix and I think maybe all in all, simply doing something like "MIDI over ADAT" or something very fast but non standard might be defensible and pragmatic.
Dave Kendall
MIDI 2.0 may well solve most or all of the problems. Let's hope it does.
MIDI 2.0 announcement
rjungemann
MIDI doesn't enforce 24 PPQN. Ableton has a resolution of 960 PPQN from what I've read. Reaper defaults to 960 but it is customizable. Even in hardware, 24 PPQN, as far as I've seen, is incredibly rare. 48 PPQN for late '80s sequencers maybe.

MIDI is "async IO" as well, at least from a coding perspective, although you might be meaning something slightly different? If you play a note on a keyboard, a note on message is generated in response. (MIDI doesn't even have packets as such, a note-on message is 3 bytes.) Unless you are playing back a MIDI file, in which case, note start position is determined relative to the previous note's start position (chords have a relative note start position of 0, usually).

An alternative approach to MIDI would likely act like a single stream for consumers. Some sort of parallel solution introduces problems and doesn't tend to actually solve problems that increasing bandwidth wouldn't (once you have to coordinate, with mutexes or whatever, you lose a lot of the advantages of parallel communication to begin with). It'd be incredibly uncommon to make a device that, for example, uses two Ethernet cables to send data from one device to another, when you could simply use an Ethernet standard that allows for more throughput instead. Ethernet does do some optimizing behind the scenes to send data in parallel, but it still acts like a single stream of packets being transmitted on one end and received on the other.

Besides MIDI 2.0 spec, I think what you're looking for might already exist. MIDI can be transmitted over USB or Ethernet already, and depending on the exact standard isn't limited to the usual limit of 31,250 bits/sec that MIDI usually is limited to.

There's also OSC which is used frequently in music software but less frequently in hardware, at the moment, but it works really well, and any sort of custom message can be made with OSC. OSC is easy to implement and is supported by Max (and therefore Maxforlive), SuperCollider, Pd, ChucK, and dozens of other apps. I really like OSC because it's much easier to implement from a developer standpoint than MIDI is (for example the liblo library has no dependencies other than a C compiler). I've made a few sequencers and also a little livecoding environment that heavily use OSC. OSC is little more than UDP with a fairly open-ended structure for messages, and it doesn't impose any sort of bandwidth limit.

Moving to a new standard will take a lot of effort and cost, which is why nothing has really overtaken MIDI yet, but MIDI 2.0 has a chance, I think.

As far as jitter goes, there's nearly always a solution to reduce it. Have you tried adjusting the buffer size and/or sample rate in your DAW? Have you tried another DAW? Even in hardware, there's usually a way to work around it.
Rotwang
Just ran across this on the new MIDI 2.0

Includes a videos/info on profiles, property exchange, protocol negotiation,...

https://www.midi.org/articles-old/details-about-midi-2-0-midi-ci-profi les-and-property-exchange

Plenty of demos - (scroll all the way down)
Panason
gminorcoles wrote:
Hi,
I have spent a lot of time googling reading and researching threads here or an gearslutz, of the forums of various software and hardware vendors, trying to learn how to deal with the many facets of MIDI voodoo.

The lack of support for MIDI, in different ways, is bewildering but then not surprising after all.

The cherry on top is when I find threads advocating the purchase of various 500 dollar boxes some of which are no longer in production just to deal with jitter, and then you still have the problem that if you choose your DAW of VST host for its feature list, you might forget to research the tool's ability to support MIDI routing, in/out synchronization of MTC, beat clock, SSP, etc.



I can totally sympathize.. I have spent too much time over the last couple of years looking at this stuff. Then I realised a few things that resolved the mystery of the lack of support for MIDI:
- Succesful producers are not likely to tell you how they do what they do- and what most of them do is , they avoid MIDI as much as possible...
It would be awesome to have a little orchestra of synths and drum machines conducted by a MIDI sequencer so you can always go back to individual sequences and edit them as much as you want.
Hovever, in practice, it is better to commit and record the audio of your MIDI parts, and then arrange your full composition in the DAW using the audio clips. This is how most people produce music that gets released and played out as far as I can tell. I'm friends with 3 reasonably sucessful producers in the dance/ bass music genres and none of them use MIDI...

Working with audio clips gives you much tighter timing and the chance to do much more complex rythms and effects. It eliminates all the hassles of MIDI which was not really designed for sequencer applications. It was designed for people playing keyboards.

-Now, the jitter problems that people complain about and then go out and buy 500 buck boxes to deal with are often (not always) a result of people using Windows and/or not optimizing their computer for MIDI. They will have a browser running in the background with their social media, wifi and bluetooth turned on, software updaters, notfications etc... All these things interrupt the MIDI data transmission and create jitter. Modern OSes are tuned to prioritise network activity and do not prioritise USB MIDI communications. A lot of people don't realise that with Ableton Live (and probably other DAWs) you HAVE to set the audio buffer to 64 samples or less to get tight MIDI timing and you do need a MIDI nterface that supports MIDI time-stamping (afaik only some Edirol and the XL range of ESI USB 2.0 interfaces currently do that)

TL;DR: MIDI sucks for modern electronic music production and you're better off not using it whenever posssible.

MIDI 2.0 is not happening any time soon, judging by the glacial speed at which manufacturers move in this area. And, the first MIDI 2.0 machines to hit the market are likely to be bodged jobs given the history of these things...(The Moog One was released in 2018 without working MIDI clock sync, as well as many other boxes since MIDI became a thing.)

These are my thoughts and no doubt someone will disagree with all of it!
gminorcoles
It’s an interesting idea of successful people taking pains to avoid midi. Certainly you can get a long way just keeping everything on one pc and just sequencing, bouncing and manipulating all the resulting tracks internally.

One way or another now i have several hardware synths and a couple of hardware sequencers in addition to a couple of computers and some misc diy embedded devices.

I enjoy sequencing external gear using the mv-8800, it is quite easy and direct. I am sequencing a grab bag of a k2600xs, a wsa1r, a system 1m, a se02, and also some vsts on the computers.

I have um-880s to route midi and a mixer to route audio.

The mv-8800 is pretty tight, not the absolute tightest but I am not really noticing if it’s lacking on the timing front. I bought a couple of different boxes to heal the midi clock but since all my midi is flowing out from the mv-8800 I just put a midigal box between the MV and the other synths and it tightens up the clock and jitter is not an issue.

I also got an mpc-4000 but i don’t have time to get it in the mix yet.

I have songs I am trying to flesh out, I am not just playing with gear. I have a feeling I wil end up getting most of it done using the PC, just because it’s so easy.

My concerns have changed a bit since I first posted because I realized that there are limits at every turn.

I am currently a bit fascinated by the cirklon as a fetish item. I contrast it to an old sequencer from voyetra I found this week which was dos based, and a text only UI. The voyetra has a piano roll driven purely by the keyboard. It is ergonomically pretty amazing. It is abandonware.

I am imagining an ncurses version of the MV 8800 that looks like a beefy computer keyboard with a row of pots above the function keys, and midi usb, and audio io ports on the back, but an HDMI port for a monitor.

The interface is like the mv 8800 but only using the keyboard. Features are more modern like some of the fancy new sequencers p, and you switch between song and patten mode seamlessly like the mv-8800.

There is no audio, no sampler. Maybe there are user plugins for midi. Maybe it runs loomer architect or something like that to provide a stepping off point for users to extend the system in random directions like generative features.
MUFF WIGGLER Forum Index -> Music Software  
Page 1 of 1
Powered by phpBB © phpBB Group