Issue 6

Issue 6



Broadcast Power Newsletter


Stay up to date with the latest releases
Volume # 6 | 12 SEP 2007
It has been a while since I communicated with you through this newsletter. There are no excuses, but there is certainly a story behind this delay.

I've been extremely busy at work, developing a warehouse sorter simulation, in 3D, for one of our clients in Melbourne. The verdict, a real success...

At home, we've been building an extension to our small unit, adding a fourth bedroom. Well, you can say I've been hammering through the nights, almost every night when back from work. Thank God the neighbours did not start screaming.

In this issue, you will find info on a new release, an invitation to a free webinar and some other goodies.
Announcement!

Version 2.5.4.3 of Broadcast Power 2x has been released to registered users. This version will be available to the general public in a few weeks time.

Get it today from the registered users download section of my website.

Free BP2X webinar sequel
I am planning on conducting another webinar on BP2X next month, early in October. Please register your interest with me on the contact us page and indicate your preference for the date and time in the first or second week of October. I will attempt to accommodate as many of you as possible.

What's new in 2.5.4.3?
This release has two bug fixes, one in the graphical editor and the other in the program elements.
When I added the new option to allow users to play scheduled commercials either on time or when the previous scheduled element is done, the links for adding elements in the graphical editor were broken. The fix resolves this issue.

Related to scheduling, adding new program elements was also failing due to the same reason as above. Also, thanks to Freddy for pointing this out to me, when you add a new program element, the start time and end time for the element was not recalculating to take into consideration any recently added song or media before it. This is also fixed in this new release.
 
How to write a control to play audio files using C++ as COM dll
A few years ago, I attempted to write a COM dll in Visual C++, using the ATL library to play audio files and videos. I know there are heaps of them out there, but I was looking for some specific functionality that isn't expensive, or better yet, free and would not tie you to restrictive licensing (e.g. MP3 decoding).

I had some functionality working then but later on decided to use a commercial library and stop wasting my time working on the nitty gritty details of a low level audio player.

At the time, I found a library written in C which works quite well with .NET written applications and decided to use it. What you get now with Broadcast Power, as an audio player engine, is a C written dll.

There are downsides to using third party components in  your applications, you have limited control over what features the next release will include and whether it will be backward compatible or not.

Furthermore, I  wanted to be able to play video files, mix them, and treat them in a similar way to how I treat audio files in Broadcast Power. The idea behind this overlap was to use Broadcast Power to schedule TV commercials and programs in a similar fashion to audio files, non-linearly and easily. How good would that be, huh?

With good luck and some spare time, I'll get there.

In the last couple of weeks, I have dug out this old program of mine from the dust ridden hard disk in my closet and gave it a bit of a clean up. Boy the code was messy!

I managed to convert it to use UNICODE strings, a necessity for supporting multilingual operating systems and file names, and compile with no errors. Then I managed to tie it to a .NET test application to play an MP3 audio file. I could play the MP3 file in two ways: using DirectShow and using DirectSound.

If you're a programmer you would definitely ask the question of how can you play a compressed audio file like MP3 using DirectSound when it can only support WAV or PCM encoding. The simple answer is using an MP3 decoder. But which one?

Windows ships with the Fraunhofer MP3 decoder, which is licensed to Microsoft and which we can use. This means, we don't have to pay royalties to decode MP3 files, because Mr. Bill Gates has already paid 
Fraunhofer for it. If I had chosen to write the MP3 decoding code in C++ myself, or use one of the freely available open source implementations, I would have had to pay Fraunhofer, break my bank and probably only get back a fraction of the licenses I would have had to pay even if I sold licenses of Broadcast Power. If I did that, you wouldn't be able to get Broadcast Power for free. I'm not a lawyer, but that's my understanding of the MP3 licensing. This is also another reason why I didn't write Broadcast Power for other platforms. Besides, how cool is it to write your own audio and video playback engine?

Now that you have the history, let me tell you why I have bored you with all this blab.
Broadcast Power is always changing and improving. As part of the change, I will be rewriting the audio engine to include both audio and video playback in native C++ (better performance). This will then make Broadcast Power a single source for radio and television post production automation.

As a user of Broadcast Power you will get more features and a better system. If not used with Broadcast Power, it can be used to develop other applications that require audio and video playback. 

Let's hope I will get the spare time I need to finish writing it soon and still manage to put food on the table. This is not a simple undertaking and testing will consume a lot of my time, but you can help me test it too. Let me know if you are interested in testing the new audio and video engine.
©2007 Emile Bassil.