Welcome to the MultiStream Player version 2.00


Control layout

Layout


This is a unique audio player and you’ll find nothing like it. In keeping with being fast loading and ultra light-weight, nothing is installed and nothing is added to your Window's registry. Simply extract the contents of the zip file to its own folder and click on "MStream.exe", load up the play list with your favourite music, sit back, and enjoy! You may wish to create a short cut to this and place it on your desk top.

One of the features most appreciated is the capability of overlapping the end of the outgoing song with the start of the next song in the play list. Rather than the limited “gapless play” feature that you have seen in some players, this gives you a professional DJ kind of live mix such that one song smoothly fades into the next, depending on the overlap duration you set in the options menu (from 0 to 20 seconds). You will also notice a brief fade down on Pause and fade up on Continue, and a short fade out when you skip to the next song (also configurable).



The Options Menu

OptionsScrn


In the options menu you can select which sound card to use from the "Select device" drop down list, and check which driver to use from among the options presented. If ASIO is not installed on your computer, that option will not be available. (ASIO only gets installed along with more professional sound cards.) If you are using ASIO, I recommend a buffer size that is evenly dividable by 8 - such as 1024, 512, 256, etc. You must select this from the ASIO Control Panel for your sound card. Choose the lowest value that works reliably without a crackling sound for minimum latency.

The driver defaults to the old Windows multimedia system waveformat driver - always reliable, but almost all computers have DirectSound from the DirectX suite, and you may choose that for slightly better performance in most cases. You don't need to mess with "Sound buffer size samples" unless you hear skipping in the audio being played (tiny dropouts). If this should occur, you need to increase the sound buffer size until it goes away. If you are a perfectionist, you can set this to 512 for minimum latency. If that works reliably for you, that would be perfection.

You may select up to 20 seconds for overlap from one song to the next but I can't imagine you would want to use so much overlap. Normally from 4 to 10 seconds should be satisfactory for most music. There are no fades applied during the overlap. The smooth cross-fade effect relies on the fact that most popular music is originally mixed with a long fade down of around 4 seconds at the end of the track, and often the next song will start with a lead-in, slowly rising in volume. Even if it starts out "hot" it sounds great on top of the fade down from the previous track. Adding any kind of fades at play time on top of the fades mixed in by the track's producer would be counter productive.

The maximum value for skip fade down is 2 seconds (2000 ms), but you should find the default adequate. This only affects the fade when you manually skip to the next track.

The MStream Player will mix and play 16 bit audio streams, stereo or mono, at any sample rate (since version 2.00). It currently supports Windows PCM wave files, IMA, ADPCM, and most mp3 formats. It will not play .wma or .ogg files, free bit rate mp3, and will not play 8 bit audio. An audio test signal generator is included, accessible from the front control panel (see diagram at top).

Besides using the skip button, you can switch tracks at random by left mouse clicking on the desired item in the play list. If the previous item was playing, it will stop and the newly selected item will start to play. You may delete an item currently selected in the play list by pressing the Delete key on your keyboard. If the song deleted was currently playing, the next item in the list will take its place and automatically start playing. Any of the controls may be operated from the keyboard following the normal Window's keyboard interface convention - ie: with the application window currently selected, you can move the focus rectangle via the Tab key to the desired control and press the Space bar to activate its function.

This player does not have all the features you will find on many consumer players. It is not my intention to compete with the many fine players available. The object of this player is to simply demonstrate some of the capabilities of my sound libraries. In the end, it is up to the developer who employs my libraries to determine the desired feature set.

You should check back on my web site from time to time to see if there are updates. Right mouse click on the title bar of the application and select 'About MStream...' to view the current version number, and compare that with the version of the currently available download on my web site. Your feedback about how well this works out for you, being more than welcomed, is an essential part of the development process.


What's new in version 1.04...

With version 1.04 we now have the capability of loading play lists of the form "MyPlayList.m3u", such as created via Winamp or other play list editors. To load a play list, click on the Browse button in MultiStream Player, and near the bottom of the resulting Open File Dialog, where it says "File types", select "Play list". Suddenly all files of type .m3u will become visible, and you may select as many as you wish to load at one time. You must remember that any file types within that play list that are not supported by MultiStream Player (such as .wma) will be ignored, along with any URLs. MultiStream Player will also ignore all comment lines (these begin with a '#').

Beyond this, we have another new capability, and that is the ability to employ the MultiStream Player as the default player for your system. Simply enter the Configurations Control Panel and select "Folder Options". From there, in the tab "File Types", you may set the MultiStream Player as the default player to open files of type .wav and .mp3, and even type .m3u, though this last is better left to open with your favourite play list editor. You can always play an .m3u play list by right mouse clicking on the file in Windows Explorer, then choosing to open it with the MultiStream Player. With MultiStream Player set as the default player, you may now double click on music files in Windows Explorer with the appropriate extension, and MultiStream Player should pop up and play them. It opens much faster than other players when doing this - very useful for previewing songs. We must note here, that since the MultiStream Player does not write anything to your Registry, the only way it knows the path to its configuration files is if it is actually opened within the folder where you keep it. If called from Windows or another application, it will look for configuration files on the path from which it was called, and will of course not find them there. The simple work-around is to open the MultiStream Player in the folder where it resides first, before you begin clicking on music files to preview them. Files selected will then be sent to the opened copy of the application. MultiStream Player will now also work as the external player in file organizers such as "MP3Toys". However, again it will lose knowledge of the path to its configuration files. The solution is to reconfigure your preferences the first time MultiStream Player is opened by MP3Toys. These files will then be saved in the MP3Toys application folder, and thereafter be found whenever opened by MP3Toys.


What's new in version 1.05... Version 1.05 is mainly a bug fix version. Though mp3s at 32,000 samples per second resolution are not supported, it was discovered that if such a file was loaded inadvertently it would crash the application. That is now fixed so that such a file will merely play at the wrong speed (44.1 K sample per second) and no longer crash. There is one more additional feature added. When the MultiStream Player is first opened or shutdown, it plays a brief sound effect to announce itself. Though this little swept tone is less than half a second in duration and attenuated to 24 dBs down, at least one user commented that the sound effect almost knocked him out of his socks when he initialized the application with his speaker volume up full. If you don't like that little sound effect, simply place an empty text file titled "NoZap.txt" created with Notepad or whatever and place it into the folder with MStream.exe. This will turn off the sound effect.


What's new in version 1.06... Version 1.06 has improved code for the VU meters and the shuffle algorithm. Beyond that, now it remembers where the volume control was positioned last time the application ran. It also has improved compatibility with MP3Toys - detecting more messages sent by that application, and improved capability in command line mode. It has more robust code behind the OpenFileDialog, as one person reported a strange bug here that I was unable to duplicate.

Since there is a fair amount of change, I will continue to make the previous version available in case I broke something in this latest version. Please let me know immediately if you find a bug in this new version! I have been surprised by the growing popularity of this application, and for this reason felt compelled to add some improvements. However, at this point, the code base has grown too complex to add any new features, and is badly in need of thorough charting and refactoring. Therefore, I am no longer inviting suggestions for new features. There is one thing more I would like to do though, and that is to add interpolation so that we can listen to files at any sample rate. I don't know if I will get the chance to do this in the end or not yet.


What's new in version 2.00... This is a major version change. I have added the capability to play files of any sample rate via 8 point Lagrange interpolation. All audio is interpolated to CD quality 44100 samples per second.

Since this is a major version change, I will continue to make the previous version available in case I broke something in this latest version. Please let me know immediately if you find a bug in this new version!

George W. Taylor
http://www.TropicalCoder.com
27/August/2008