I wrote a script that will take the output of ‘pidin fd’ and generate a graphviz dot graph showing the dependencies at that point that each process has on others. Here is a sample output from a QNX Car M5 running on vmware:
Cars are getting to be pretty advanced and feature rich. [CNET has an article that talks about how iPods are integrated into more than half of 2009 models](http://reviews.cnet.com/8301-13746_7-10064887-48.html?part=rss&tag=feed&subj=TheCarTechblog “Raising the bar: iPod integration in more than half of 2009 models | Car Tech: An automotive blog from CNET – CNET Reviews”). QNX likely has contributed a large portion to many of these models. Its satisfying to see your work end up in real-world product.
[The article](http://reviews.cnet.com/8301-13746_7-10064887-48.html?part=rss&tag=feed&subj=TheCarTechblog “Raising the bar: iPod integration in more than half of 2009 models | Car Tech: An automotive blog from CNET – CNET Reviews”) also has some interesting stats on hard drives and bluetooth integration in cars. The head units in cars these days are as powerful as many desktop computers and have even more peripherals.
Now unfortunately, the one thing the article has completely wrong is that “Microsoft Automotive Platform … offers the most universal integration”. If I were to compare MS Auto to QNX Car, I’d like to point out:
* CD’s are not dead. MS Auto currently doesn’t do CDs, or CD Changers. QNX is shipping in many cars today with that feature. We also support MP3-CD’s
* Ripping CDs, or USB Sticks. QNX’s MME manages all this for you so that when you ask to rip a CD or list of USB tracks to your hard drive it will do that as fast as possible without interrupting your playback. And if you power off your car, it’ll continue where it left off.
* Embedded hard drive support: without ripping, do you support a hard drive?
* Internet Radio integration.. how connected are you without the internet?
* QNX Car also has the same “most universal integration” features that MS has: USB Mass Storage, iPod, PlaysForSure, Zune, Bluetooth.
* QNX Car is shipping in many other makes than Ford. In fact the last stat I heard is that it is in over 40% of the 2009 models! I should talk to marketing to get a completely accurate number.
As usual, Microsoft has lots of dollars to spend on advertising, but the real question is how good is their product? QNX has always been quality driven, and therefore is chosen to run space equipment, nuclear power plants, and the fancy features in your car.
An important part of multimedia systems is metadata. Audio CDs themselves don’t have metadata
encoded on them and therefore other technologies are important to fill that gap.
There have been several community projects that have taken place over the past few years. CDDB was the first and was started in 1993. There is a very interesting history about CDDB and how it became Gracenote over the years changing from a community project into a commercial one. Even though Gracenote has one of the most restrictive licenses I’ve ever seen they are the defacto standard for commercial CD metadata. For some interesting reading:
FreeDB attempted to be a replacement but it has a fairly polluted database as well as a weak unique ID calculation. This results in being fairly likely to get the information for the wrong Audio CD when you do a lookup.
MusicBrainz is a newer community project that provides metadata for Audio CDs. What makes it better than FreeDB is that it has a better unique ID calculation as well as a moderation and editing system to ensure a higher level of data quality.
The product I’m most interested in is MusicBrainz data which is licensed as Public Domain. This can be downloaded as a PostgreSQL format which makes it very easy to import into other databases. At QNX we’re working on embedded media systems that offer this kind of functionality and it is very nice to have this option available.
I’ve converted the database into SQLite format which is our native database format currently so it fits into our architecture very nicely. The database with all indexes converted into 4.2GB. I dropped most of the data that we wouldn’t need and this resulted in 1.7GB which is still a bit large for an embedded system, but not that much bigger than other options that are available to embedded systems. I suspect that with SQLite’s read-only compression option that this could be significantly reduced in size making it ideal for embedded Audio CD metadata.
If you’re interested in how to convert the PostgreSQL dumps of MusicBrainz into SQLite format download this package. See the makesqliteminimal.sh script as a starting point.