Skype Auto Recorder 1.3.4 released

icon

Today I've released version 1.3.4 of Skype Auto Recorder!

The first change that you can notice - new unique images and an icon created by me! :) It was quite difficult to paint them with proper quality.

status-icons

Tray icons are now just big well distinguishable dots that is good, for instance, in a conference room.

After the release of the previous version I've found that the application is quite popular among similar free software. There were written many reviews for it. It was very interesting to read what people like in my recorder and what they want to see to be improved or added. So, I've created a list of features to implement and bugs to fix according to reviews:

  • Produce high-quality sound.
  • A possibility to start recording manually.
  • A possibility to cancel the current recording.
  • A possibility to quickly find and open the recorded files.
  • Fix the issues when recording doesn't start, doesn't stop or the application hangs.

Sound quality

The interesting fact, that many reviewers compare sound files from my recorder against files from other recorders. They remark that my MP3-files are mono when other recorders produce stereo. Well, it's very strange. How Skype can record stereo sound if you have only one microphone?! Of course, Skype can't do this! Here are some proofs:

  • Wikipedia has a good article about stereo sound and recording methods. The only what you can achieve having just one microphone - pseudo-stereo. But I really don't see any reason to get the twice bigger file (second fake channel) because of a small difference in the sound.
  • In my first article about Skype API I explained that Skype produces WAV files. If you check them you will find out that they are mono.

So, I don't know what other recorders do, but for me it doesn't make sense.

But I've done some improvements to sound too.

sound-settings

In the previous version I used Lame for encoding MP3 in automatic mode. It produces a low-quality mono sound. In this version I've added a possibility to set high quality and even choose some characteristics: 32, 44.1 or 48 kHz, and 192, 256 or 320 kbps. It's not a fake or a pseudo-encoding because the initial WAV sound file has a really high quality. But note, that the output file is much bigger and encoding takes more time (that's actually not a problem because encoding runs in the background).

The second feature is the possibility to separate sound from your microphone and from speakers. The output MP3 is a stereo with two channels. When you listen to it, you can turn on/off one channel using advanced players and listen to only one side of the conversation. I'm not sure that such files have any advantages over regular records, but maybe it will be useful for someone.

Manual recording

I saw some complaints about starting recording. For example, you record only calls from certain contacts, and recording of any other is disabled. But someday your partner has to call you from another Skype account. Recorder simply ignores the call in this case. To enable recording we have to open settings, add an additional contact to the filter, save settings, and restart the recorder. And do all this during the call that is already in progress! I understand the inconvenience and had such troubles too.

recording-menu

In the new version there is a button called Start recording in the context menu. If the call was ignored for any reason you can always click it and the recording will start. The name for the output file is the file name for unfiltered calls set in settings. Moreover, this feature has a system-wide hotkey Ctrl+Shift+F5 or you can simply double click on the tray icon.

There are also situations when you want to cancel the recording. Of course, you could just exit the recorder, but this way there will be trash WAV files left in the Temp folder. From now there is a convenient way to do this: button Cancel recording in the menu. It has a global hotkey too - Ctrl+Shift+F10. When you cancel recording recorder starts a background thread that waits for the call end and just removes produced WAV files. That's it. Unfortunately, you won't be able to start canceled recording again: because of some reason Skype throws an error message via API when we try to redirect sound back to files during the call that is already in progress.

Navigating to records

I've added two menu buttons for navigating to the records.

browse-menu

The first one, Browse records, opens the folder where all unfiltered calls are recorded to. If the path contains any placeholders application removes them and opens the closest root folder. For example, the recorder saves unfiltered calls as D:\Records\Calls with {contact}\{date-time} {duration}.mp3. In this case folder D:\Records\ will be opened.

The second button, Browse last record, opens and selects the last recorded file. The button becomes enabled only after recording. If the file can't be found (for example, it was moved or renamed by the user) then only the folder will be opened.

These buttons are quite useful if you want to listen to what was recorded just after the call, or simply open your records archive.

Bug fixes

The previous recorder version works incorrectly with Skype 5.6 and higher. Sometimes it ignores calls, sometimes doesn't stop recording. I've spent a lot of time investigating the problem. As I figured out, it was caused by some strange behavior of Skype API. Normally, when a conversation starts Skype sends the message CALL 1234 STATUS INPROGRESS. During the call it sends CALL 1234 DURATION 1234 every second. And message CALL 1234 STATUS FINISHED finishes the call. New Skype versions send sometimes DURATION message after STATUS FINISHED. Of course, the recorder works incorrectly with such incorrect messages order. The new version handles this behavior properly.

There were also some bugs in my code (in connection to Skype, in handling the closing of the Skype process, logging out, and other rare situations). The new version has completely refactored code of GUI side (it is separated now from the core) and many improvements inside SkypeConnector (the logic is cleaner and simpler).

The process of starting recording was also reworked because of new buttons for manual start and cancellation.

Moreover, I've added an internal checking of connection with Skype. Now the recorder regularly sends PING message to Skype. Skype normally answers with PONG message. This is a special Skype API command. If such PING-PONG game stops a few times in a row, the recorder starts reconnecting to Skype.

Skype Auto Recorder was tested at my work for a few months by different people and in a conference room in real situations: regular calls, conferences. There were different real issues: lost connection from both sides, problems with devices, etc. For now, the recorder works stably. That's why I've finally made the release.

Thanks to all who helped me to test the application and reported bugs! :)

I hope you will enjoy using the new version. Feel free to share your feedback on Skype Auto Recorder's page! ;)