Sunmachine: CopperPhil, I installed the CopperLan Package on both of my computers and it works great, so I obviously did it right.  Still I was wondering if it's enough to install it on only one machine because you actually need the CopperLan Manager only in one place to access the whole network.

CopperPhil: Yeah... many people believe that when they just install a "CopperLan Manager" software. But actually the CopperLan package contains:
- the CopperLan engine (daemon/service)
- the Ethernet protocol driver
- the Virtual MIDI Driver
- the CopperLan USB driver
- the CopperLan Manager (the visible part of the iceberg).

And all of this is necessary at some point. It is not necessary to have the CopperLan Manager running in order to communicate between computers/equipment. This application is just needed if you want to create connections, patch MIDI, assign controllers, edit parameters using the universal editor, grab/restore snapshot... But once you have created your Virtual MIDI cables, assigned your controllers, you can shut down the CopperLan Manager and everything is still working. Similarly you can connect two CopperLan hardwares (two computers, two embedded devices, a computer and an embedded device...) using a straight cable, without switch or router. No IP address configuration is needed, no need of a DHCP server. Out of the box, plug & play. This is one of the most important features in CopperLan!

Sunmachine: Ok, I see! Thanks for the clarification. So the CP USB driver is needed for CP devices that are connected via USB like the upcoming CME keyboard?

CopperPhil: Yes the USB driver is provided for CopperLan USB devices. So it's very easy to deploy such gear. The great thing is you can move your CopperLan USB device from computer A to computer B and continue playing without needing to reconfigure anything! Existing connections are automatically re-routed to the new location. Another feature that is very appreciated by manufacturers is the firmware upgrade sub-system. You have seen that the CopperLan Manager suggests to download and install new versions of CopperLan when available. The concept has been extended to hardware devices. Manufacturers do not need to worry anymore on how to upgrade their firmware, it can be done automatically through CopperLan even for USB or Ethernet devices.

Sunmachine: That's indeed quite cool! What about latency? Do you recommend to connect two computers directly instead of using a router to get lower latency or doesn't it make much difference?

CopperPhil: There is no absolute rule. Linking two computers directly usually gives the best performance, but it is not always the case.  It depends on the ethernet adapter. In some cases it is better to use an Ethernet switch. CopperLan works with any commercial switch, but it is true that the latency is directly depending on the switch quality.  However, it is not a question of price, some very cheap switches have very good performance, you do not need a Cisco managed switch to get very low latency. We made a lot of tests with several switches, measuring latency and jitter between two hardware devices based on Pic32 MCU@80Mhz on a 100Mbit network (embedded devices -> no perturbation due to the operating system + possibility to measure timings using a Scope). The average latency is lower than 500 micro-seconds, and jitter around 150 micro-seconds.  MICRO-seconds!  Then it depends of the application code of course. Latency between two computers through a Gbit network is far less these values.  At this level, most of the latency is due to the non-real-time operating system.  CopperLan is designed to offer very good latency/jitter. But actually it is just software and it depends directly on the hardware and operating system in case of computers.

 

Sunmachine and CopperPhil September 2013