View Single Post
  #30  
Old 01.09.2013, 09:49 PM
MBTC MBTC is offline
This forum member lives here
This forum member lives here
 
Join Date: 16.04.2010
Posts: 1,082
Default

To the best of my knowledge (and memory, since it's been a long time since I spent any time researching this), "Full Speed" refers to the mode (overall speed of throughput, basically) rather than being tied to a specific USB version; it's more or less a short cut to avoid saying "the mode that maxes out at 12mbps". USB 1.1 compatible devices can run in Full Speed, as can USB 2.0 and 3.0, and if they are running in that mode they are all said to be running at Full Speed.

That said, the upper throughput ceiling of each mode is just that -- it's an "up to" number, meaning that is where throughput would max out under absolutely pristine conditions. The average throughput for any operation on any given device is typically much less than the maximum for that mode. The only thing you see consistently in benchmarking articles is that throughput is significantly faster as the ceiling increases; in other words if you took something like a storage device or media player, and compared the same device at Full Speed to its throughput in High Speed, it might perform on average 4x-7x faster in High Speed (certainly enough to justify the upgrade, but not the 40x improvement that the specification implies on paper). I don't think I've ever seen a USB 2.0 High Speed device achieve anywhere near 480Mbps even though its fair to say the cable spec facilitates such speeds.

In other words the labeling of modes gives us a good relative measure, when all other things are equal, but load predictions are difficult to impossible, I'd say.

There are a number of things that can affect actual throughput, most notably (and easy to envision) is the idea of how fast can the sending device push the data down, and how fast can the receiving device receive it? Best analogy there is let's say you've got a really fast Internet connection like 50mbps and you're streaming a HD movie from some device, and it still pauses and buffers, even though 10mbps should be plenty for movie bandwidth. There can be other things like other devices in the house using bandwidth, server delays and your neighbors competing for bandwidth in some cases that affect the ability to stream the movie smoothly.

Things like the polling rate and technique the software uses to actually transfer data, handle timeouts, etc. add more variance.

In a real-time audio streaming scenario like a synth, I can imagine a number of other things that could get in the way, some of which you mentioned like MIDI bandwidth, which needs to travel both ways across the wire.

Then you have other factors that affect performance, for example how many bytes per transfer? We've been discussing mostly throughput here, without even talking about latency, and in many applications optimizing for throughput versus latency can almost be at odds with each other. For example lots of audio streaming seems to lend itself to more bytes per transfer, however for better latency I would think smaller packet sizes would be preferable.

Then of course you have factors that neither the source nor destination of data have full control over, for example the USB bus and its specific handling of other devices on same bus (this is one reason a dedicated USB card is never a bad idea IMO).

One thing that Access could do is create a software utility that runs on the PC or Mac host that "exercises" the connection, simulating a high-load audio and MIDI scenario, which would allow the user to test their connectivity/latency/throughput to the Virus. Just send a fully-loaded audio and MIDI stream and measure throughput and latency. This might not identify every possible problem, but it should eliminate lots, if not most scenarios, by removing the DAW configuration from the list of possible culprits, it would identify things like bad cables or USB hubs causing problems, problem with the Virus hardware itself, etc.
Reply With Quote