Here are some of the most important differences:
- MIDI defines a hardware interface (i.e., the MIDI cable), but OSC does not. OSC is typically transmitted over ethernet.
- MIDI uses a compact binary message format with a limited number of fields, e.g. channel, note, velocity, etc. OSC has a binary data section, but a human readable, URL-style address that looks like "/foo/bar".
- OSC allows one to transmit multiple data types commonly used on modern computers including 32-bit integers, floating point numbers, strings and more. MIDI only transmits integers.
- OSC includes a high-precision timestamp with picosecond-resolution that allows OSC messages to be scheduled, recorded and reproduced with minimal jitter. The MIDI beat-clock is a low-resolution clock having a precision on the order of several milliseconds at best.
For more information, see this poster: http://opensoundcontrol.org/files/OSC-Demo.pdf