Waveform Display (revision 16)

Posted on 2011-12-14 at 08:07 in Music, Programs by Robbi-985.

This is a big update, with the most notable change being playlist functionality. I’ve also sorted the playback position bug when looping audio files (until you disable looping…), and added tooltips to most controls (hold the mouse over a control such as a checkbox to see a little explanation about that control). There are also changes and bug fixes related to pitch detection (revision 14 broke logarithmic scaling while pitch detection was enabled, but it’s fixed again). I removed some controls that were broken or never even used in the history of the program, and added one. Full details are a long way below, after the page break below, which is after my waffling about the playlist system.

Here’s the usual download place.

(Click it to see full-size image)

Since the new playlist system introduces some new things, I’ll briefly go over it here. When you browse for an audio file, you can now select more than one (by holding Shift/Ctrl). If you do this, the Playlist window will appear with the queued files in a list. You can drag-and-drop more files to this list without having to use the old “Browse for audio” button. There are 2 special coloured files in the list: currently-playing and next (pre-loaded). At any time, you can double-click a file in the playlist, and the program will pre-load it as the “next” file to play, just like when you browse for an audio file while one’s already playing. However, by default, the program will automatically load the file following the currently-playing one as soon as possible, turning it blue, so that there will be no gap between the end of the current file and the start of the next file. If you like, you can set it to do this only when the current file finishes playing, so that the waveform displays won’t freeze during playback, or you can disable automatic loading entirely. That is the basic idea of the playlist system. Waveform Display has always handled 2 files at once, but it was never possible to see which 2 files you were dealing with until now.

Full list of changes:

  • Added playlist functionality. I feel this is quite a significant change (plus there are lots of other changes), so I’ve increased the version number from 0.2 to 0.3. =)
  • Slightly improved the bug of the playback position displays staying at 0.0 seconds when audio looping is enabled and the audio has looped one or more times. It updates now, but it’s inaccurate, especially with longer files. However, the position displays now show the position to be at the end of the file when you disable looping after the file has looped one or more times…
  • Previously, if you loaded a new audio file while one was playing, you would have to click “Play” when the current file finished playing in order to play the new file. However, now, the new file is automatically played when the current file reaches the end. This is due to the new playlist feature, and can be disabled if you like by unticking “Automatically play next file” on the playlist window.
  • Fixed intermitent bug where playback from the start of the file would sometimes be silent, even though the time was advancing properly (seeking would “fix” it, stopping the silence).
  • Removed the “Detect now” button from the pitch detection area as I noticed this bug introduced in revision 14: Pitch detection using the button was affected by logarithmic waveform scaling (if enabled). This made the algorithm slightly less certain that the detected pitch was correct. As “Continuously detect pitch during playback” works normally, and also enables the “Generate tone” option, I felt that the “Detect now” button was pointless.
  • Added the option to use a sine waveform for the tone that can be generated when pitch detection is enabled. Before, it was sawtooth only. A sine wave means that only the “root frequency” (no harmonics) will be played, which can act as a bass boost if the min and max frequencies are set right. I left out square wave from the options as it sounded terrible when changing frequency (i.e. all the time).
  • Logarithmic scaling of waveform display now works correctly when “Continuously detect pitch during playback” is ticked. This became broken in revision 14 while I was making the speed-ups to the processing of the waveform data (the displays would show the waveform going off the scale).
  • Previously, if “Lights to control on parallel port” slider was dragged to 0, lights would stop being controlled (correectly), but instead of the number displayed in brackets changing to “0″, it would stay at however many lights were previously being controlled. Now, the number in brackets changes as it should.
  • Added tooltips to most controls to help out people who haven’t used the program before. Keep the mouse still on top of a control (button, checkbox, etc) to see a small explanation.
  • The controls in the pitch detection area were moved around a bit due to the new tone waveform option. The “High-freq reduction” and “Boost” sliders have been removed as they have never had any effect (never been used in the code) since their introduction. They were going to be used in an earlier version of the pitch detection algorithm, but I changed the algorithm and they were no longer necessary – I simply never removed the sliders.
  • Changed the text of some messages which could appear in “Fix DLL OCX.exe” where it mentioned my old program “Bleeper Music Maker” instead of “Waveform Display”… that’s my lazy copy-and-pasting for you.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>