[Note: Adjust for ~5 years of development]
Mr. Luczkiewicz's points on a "Perfect Experience" are noteworthy.
brianBrian LuczkiewiczRoon Labs: CTO6 Apr '15
It feels like the answer to most “will it work?” questions is going to be “It’ll work, but it won’t be as good as it could be”, because lets be honest, no-one is going to wonder whether a Mac Pro works flawlessly or not.
I want to expand a little bit more to help you guys understand where the tradeoffs are so you can make good hardware decisions. As we’ve said above, Roon will run on just about anything vaguely recent. How much hardware you need to get an impeccable experience depends on how you’re going to be using it.
Most of the time, the software we run isn’t very performance intensive. Web browsers, productivity software, operating systems, communication software, and so forth. No big deal on today’s hardware.
Likewise, there are a few categories where performance really does matter all the time. One is gaming. Another is professional software, like that used for graphic design, video production, and CAD.
Roon has one foot in each camp.
The user interface is driven by a piece of technology that could be best described as a game engine. It supports fluid animations, and we are trying to keep the frame rate at 60 frames per second (fps), just like a game. It renders graphics using OpenGL and hardware acceleration, just like a game, too.
Under the hood, Roon is a professional grade database that manages hundreds of thousands to millions of metadata entities in order to represent a typical music collection. This degree of data management and indexing is almost unprecedented in typical desktop applications. And as a goal, we are trying to fetch and display whatever piece of data you ask for, no matter how complex the requirements, onto your screen in 50ms or less.
At the same time, we’re trying to push high-resolution audio out to your DAC in real time. If you can believe it, this is the “easy” part.
What does a perfect experience look like?
- The application loads in a few seconds
- Screens displaying local content populate instantaneously, regardless of complexity.
- Audio plays without glitches or dropouts
- Animations and graphics are completely fluid
- All of this remains true even when Roon is doing work in the background, like importing new content, loading metadata/artwork, analyzing audio content, etc.
Perfection is something we aspire to and performance is an area where we work really, really hard. But, as much work as we put into making this stuff perform, if the hardware isn’t up to the task, there’s no getting around it. In 2007 we took control of the user experience by dictating exactly what the hardware would be. Now, we’re trusting our users to make good choices instead.
If you’re thinking about buying new PC or Mac hardware, consider the following:
- Is the hardware going to be shared with other resource-intensive applications?
- How much music do you have? Managing 20,000 albums is way more demanding than managing 2,000.
- Are you going to be browsing from this device, or using it headless?
- How long do you intend to keep using this hardware before upgrading?
With a small 1500 album library and a headless use case on a dedicated device, a very modest piece of hardware will run Roon really well.
If you’re in the middle, say 3,000-5,000 albums, something similarly midrange–on par with the current (Apr 2015) mid-range Mac-Mini (Core i5, 2.x Ghz, SSD) will give a great experience.
If you’ve got a 4k monitor and 20,000 albums, look for a big scary Core i7 with plenty of ram, an SSD, and discrete graphics.
Most people will fall somewhere between those extremes. Not everyone cares as much as we do about “perfect” performance either. That makes it really hard to talk about what “suggested hardware” should be to everyone at once, but it should give you some idea of what we consider “extreme” and where you fall.
Some more specific points:
Flash/SSD storage is a big win. The metadata and artwork databases I was talking about are sitting in your home directory on your boot drive. If you have a small amount of music (lets say, less than about 1500 albums), it barely matters, but as your collection creeps up towards 5,000 or 10,000 albums or more, storage performance begins to matter a lot.
As a very rough estimate, plan to set aside about 2gb of disk space on your boot drive per 1000 albums. Expect the app to use somewhat less at first, growing over time as we expand music metadata capabilities and improve artwork quality.
RAM isn’t a huge deal. 8gb is basically par for the course on a new PC sold today: <$400 laptops have that much. That should be fine for just about anyone.
Graphics performance is very important to Roon unless you’re in a headless configuration. We run very well on Intel’s integrated graphics chips starting with the Ivy Bridge architecture, which goes back to mid 2012. It will run OK on the couple of generations before that, too, with minor compromises. Generally, anything with a discrete graphics card is going to be even better. We require OpenGL 3.0 as a bare minimum, so anything too old to support that is a no-go.
CPU cache is also really important to an app like Roon. Some CPU series (Celeron, Atom) are severely cache constrained. Once you get into Core i5 territory, there’s enough cache to go around, and as usual, a top-end CPU will confer an incremental performance benefit above that.
Another thing to keep in mind: Roon is not static. It will receive software updates over time, and as always, we’re going to continue pushing the functionality forward as hardware improves. Buying something that’s just barely sufficient today is a recipe for a sub-par experience in a year. Likewise, the hardware we’ll be recommending six months from now (April 10, 2015) will be six months better than what we’re recommending today.
Also, in case you didn’t notice, I didn’t say anything about audio. That’s because audio is the “easy” part. Anything that meets the rest of the application’s other needs is going to play music just fine.
I hope this helps.