|
Because there are several sound system options (especially under Windows), we've put together this document to tell you why we think you should use the Miles Sound System. There are many ways to judge the relative quality of an SDK, but we think the critical factors are: feature set, ease of use, support, vitality, and cost.
Feature Set
The feature set of an API is usually the first thing a programmer will investigate. The Miles Sound System has been the most complete sound system for years. It includes digital samples, digital streaming, interactive MIDI, 3D audio, Internet Voice Chat, and Red Book (CD) support. Some sound systems support a few of these technologies, but only Miles supports them all.
The Miles 3D audio API will let your game support all of the important 3D technologies in as few as four function calls! Miles supports discrete multichannel software mixing, DirectSound3D, Creative's EAX 2, 3 and 4, Dolby Surround, and SRS Circle Surround. And with the Miles API, you can even switch between any of
these technologies at run-time!
Miles's 2D digital features are also unmatched. It supports DirectSound or waveOut drivers and can switch between the two technologies on-the-fly. This allows you to take advantage of DirectSound's better latency without sacrificing the waveOut driver's better compatibility.
Miles also uses its own mixer - even under DirectSound. This means you get all the benefits of the Miles mixer - MMX support, filtering, on-the-fly decompression, etc. And, even cooler, because of the silly way that DirectSound remixes its internal output buffers whenever new sounds are started, or when volume, pan, or pitch is changed, Miles can dramatically increase the performance of your game (John Ratcliff, for example, experienced a huge increase in frame rate just by switching to Miles)!
There are actually two components to DirectSound - the driver layer and the API layer (Microsoft recently starting calling these layers the foundation layer and the media layer). The DirectSound driver layer is, for the most part, terrific - it gives developers low-level access to the sound card hardware - something that's been necessary for a long time. This is the layer that Miles uses, so that we can provide super low latency under Windows.
The DirectSound API layer, however, is just plain horrible. Right off the bat, you are required to add 50 to 60 lines of code just to play your first sound! And, unfortunately, that's about where the API ends - you will still have to write your own library for common tasks like pausing, resuming, sample buffering and restoration, sound streaming, sound callbacks, sub-block looping and more.
And that doesn't even include decompression (which DirectSound needs an entire additional API for)! With Miles, both MPEG Layer-3 and ADPCM data are handled as native sound types - you don't even have to decompress the data first!
This is why using Miles's digital services with DirectSound is such a good option - you get the breadth, completeness, and power of the Miles API, with the low-latency of the DirectSound driver layer.
Also handy on the digital front, Miles's streaming API makes streaming sound just as simple as playing in-memory samples! Miles handles all buffering, file I/O, and buffer streaming - you just give us the filename! ADPCM,
Ogg Vorbis, MP3 (MPEG Layer-3) and uncompressed wave files are all supported!
Streaming with DirectSound and other sound systems can take hundreds of lines (read Jeff Roberts' article on how to stream using DirectSound alone in the June 1996 issue of Game Developer - you'll be amazed at how something as common as streaming is so complicated to implement using only the DirectSound API).
Miles's MIDI features have long been the industry's best. Miles includes everything to make interactive MIDI a reality - multiple file playback, a built-in DLS software synthesizer, looping, branching, controller locking/releasing, all manner of callbacks, digital triggered samples and more.
Miles's DLS support includes the first royalty-free DLS-1 compatible software synthesizer. Now your MIDI files will sound the same regardless of the playback platform. And with DLS compatibility, you are able to add your own custom instruments and samples using a DLS editor.
Miles's Red Book API makes something that should have always been simple just that - simple! Why bother figuring out all of the under-documented MCI functions or the complicated MSCDEX interrupt calls, when you can be playing CD audio tracks in three calls!
The Miles Sound System can handle any audio task that you need to tackle. There is simply no other sound system that has its breadth, power, and feature set.
Ease of Use
One of RAD's most important API design mottos is, "Ease-of-use can always be obtained, even in complicated products." We spell out this motto specifically because of "the game developer trap."
Game developers are probably the smartest developers out there. It's easy to fall into the trap of poor API design, because game people will still be able to figure out and use the product. That's why RAD strives for ease-of-use - just because someone can use a bad API doesn't mean they should have to!
Quick aside: A good example of these types of design decisions is the whole Direct3D versus OpenGL flap. Central to the pro-OpenGL folks' argument is the assertion that, given two APIs with similar long-term potential functionality, you should use the one that is easier-to-use. And this is coming from the cleverest programmers on earth. There is no doubt that the OpenGL proponents could figure out Direct3D, they just choose to do something better with their time!
The Miles API has been refined and streamlined again and again over the last seven years! Using our quick API, you can have sound playing in three calls. Using our streaming API, you can have streamed audio in another three calls. This is what a sound system should provide - powerful functionality through an API that simply makes sense.
Support
At RAD, we believe that technical support should be the most important factor when choosing any development product, and this is especially so with sound systems. Due to the asynchronous nature of sound software (both the sound system and the application), and sound hardware, good technical support is a must - if for no other reason than because the problems that you may encounter can be so complicated.
At RAD, we're particularly proud of our technical support - when you have a problem, you will usually work with the developer that wrote the product. This means you aren't going to be talking to someone who is handling DirectSound today, Excel tomorrow, and Visual Basic next week!
Our programmers actually answer their email. We will work with you to duplicate the problem, figure out if it's your application or Miles, and then get it fixed!
Miles also helps support itself - it has built-in debugging capabilities that can log every single function call (including parameters) during a trial run. We solve many problems just by examining this dump. Miles also comes with complete source code - if you want to know how something works in Miles, just look it up!
The bottom line is that RAD cares that you ship quality games on schedule. It is important to us that Miles works for you.
Vitality
Vitality is that unusual sense that a product is constantly getting better, becoming less buggy, and gaining neat new features. The opposite of vitality is stagnation - a product that isn't being developed anymore, a product that even the developers don't have any passion for, or a product that is just in maintenance mode.
Miles is a living, healthy product. We generally release one or two major upgrades per year accompanied by several minor updates. The idea behind our "release often" policy is to handle new technologies
and platforms, to include workarounds for buggy sound drivers, and to make sure our customers
have access to the latest, most reliable version of the system that we have in-house.
Miles sales have continues to grow even after ten years of market presence! Sales volume is important even from a technical point of view, because more sales means more people are using Miles, which means more people are thinking about Miles, and that translates into new ideas, fewer problems, and a better sound system!
Cost
Yes, Miles does cost money, and that puts us at a disadvantage under Windows, where systems like DirectSound are available for free. However, as you make your decision, consider whether using DirectSound is really cheaper than paying one of your better programmers to write an API layer over DirectSound.
Consider whether using DirectSound is cheaper when you can't get any meaningful technical support and you're shipping next week. Consider whether using DirectSound is cheaper when you find a bug in DirectSound, but the next version of DirectX isn't available until next year!
Remember that with Miles you really aren't buying just a product - you are buying industry-leading technical support and all updates and fixes for a year. You are buying the ability to contact the author of the code and ask for help.
More than anything, you are buying the security of having specific people, like John Miles and Jeff Roberts, accountable for your sound system.
And, finally, remember that Miles can be much less expensive if you create multiple products per-site. In this case, after the first year, you can renew your site license and your cost per title becomes very inexpensive!
We are excited by what Miles does now and what it will do in the future. We hope to be working with you soon.
|