After all a hardware machine is basically a computer. And if your saying that once the clock is generated steadily it can be piped steadily down a copperlan wire then whats the diff? Is it really that even an i7 pc cant do it. Wow!!
The difference is the operating system... Modern computers are using preemptive operating systems (Windows, MacOSX, Linux) running apps in a special "user mode", a kind of sand box virtualizing the computer resources. Under such OS the application is not directly in touch with the hardware, so it has to travel through a lot of layers down from the user mode to the kernel mode and finally the hardware control to send a message on the network. Those OS are not real-time, it means that they can decide to switch from task A to task B for any reason, so the time needed to perform a specific operation is not predictable. Timers are virtual objects managed by the OS, and the time granularity is usually around the millisecond. So if we add the uncertainty of timers triggering time to the time required to cross the layers from the app to the hardware, you get the reason of latency/jitter.
Embedded systems are usually running without operating system, or using a real-time OS. An embedded application can use a hardware timer to be interrupted at very accurate time interval, then it is directly in touch with the hardware so it can drop a message on the network very quickly!
A Core i7 is offering an incredible CPU power, but it is not a guarantee to get accurate timings due to the operating system behavior.
If this is the case then thats one of the major flaws in midi and should be in your mandate as copperlan is the new midi, no?
There a heaps of people complaining about midi jitter. Certainly a way of capturing more market.
I understand your point of view, but I can't transform a preemptive OS into a real-time OS
Maybe a solution would be to use ASIO driver providing accurate timing callbacks calls, but I'm not sure it's possible without disturbing other audio applications, and finally it's just solving a part of the issue.