Posts Tagged ‘Waveform Display’

Waveform Display (revision 21)

Wednesday, March 26th, 2014

This version has just a few little improvements. Firstly, the I’ve removed the title bar and border from the “Picture Waveform” window. You can move the window by clicking anywhere on it and dragging. Right-click to move it to the top-left of the screen. This lets the picture fully cover your entire monitor if you use a picture that is the same resolution as your monitor.

The other changes are to playback via the internal PC speaker.

(Click it to see full-size image)

The two old PWM methods have been combined into one “PWM – Software” method. The old, optimised “unscaled” method is automatically used if volume is set to 100%, and no longer clips. A new “PWM – Hardware” method gives a more stable result (less background noise) especially on slower CPUs, and is also louder. The PWM is controlled by a timer on the motherboard instead of by the CPU. Finally, the volume control now works properly and can give a big boost to the sound level without simply adding distortion (the waveform is no longer shifted off-centre internally). This can massively improve the signal-to-noise ratio, drowning out the background noise. By the way, setting the process priority to a higher level on Task Manager also helps reduce the background noise a lot. Oh, and tooltips have been added to some controls on this window – you can hold the mouse pointer over them to see some more info.

You can grab this new version from here (1.87 MB).

Waveform Display (revision 20)

Saturday, January 25th, 2014

Waveform Display should now run on computers without an EasyLase installed again (the last version would crash on startup on such computers). Also:

  • The size of images when bending the waveform into a picture is no longer limited to 640×480. Of course, bigger images require more CPU time.
  • Parallel port output works again (it was accidentally left disabled in revision 19 again).
  • More effort is made to keep as close to 60 FPS as possible, instead of the frame rate dropping to half if a frame isn’t drawn quickly enough. As a result, more CPU time will be used, but the animation should be smoother.

NOTE: You may need to run “Fix DLL OCX.exe” before this new version will run, as a new DLL file (vbalHTmr6.dll) is now used for timing the drawing of frames.

The following changes to pitch detection were also made in the last version, which most people were not able to run, which I forgot to mention before:

  • Detected pitch should be less likely to jump up/down by a fifth-note (7 semitones, 150% of the frequency).
  • Added an experimental option for pitch detection: “Link to waveform’s horizontal scale”. This attempts to use the knowledge of the pitch of the sound to make the waveform display more stable. More specifically, it stretches and shifts the waveform horizontally so that only 3 cycles of the waveform (at the detected frequency) are shown.

Please grab the new version from here (1.87 MB).

Waveform Display (revision 19)

Saturday, January 18th, 2014

This release focuses on the PC speaker. You can now use the PC speaker even on Windows 7 or Windows 8, and even on 64-bit Windows! Previously, it was only possible on Windows XP or earlier. It also gives you the choice of three different methods of PC speaker control. When ticking the checkbox to enable the PC speaker, options that allow the best sound will automatically be selected. When unticking the checkbox, the options will automatically be reverted back to how they used to be.

You will need to run this version as an administrator (right-click the EXE file) for the first time, if you have never run it or BaWaMI before, so that it can set up the driver for accessing the PC speaker.  (Waveform Display now uses the same driver as Bawami.)

NOTE: Laser projector control is not possible in this version. If you want to output to an EasyLase, please continue to use revision 18.

You can download this new version from here (1.90 MB).

Waveform Display (revision 18)

Thursday, December 15th, 2011

This release fixes parallel port output, and adds an option of which parallel port address to use. The standard addresses 0378 (LPT1), 0278 (LPT2) and 03BC (LPT port on an old graphics card) are available.

I had left the parallel port output disabled by mistake again, while testing revision 16…

Usual download place~

Waveform Display (revision 17)

Thursday, December 15th, 2011

This release fixes the bug where the text of the last file in the playlist would never return to normal (black, not bold) after having become red or blue.

Here’s the usual download place.

Waveform Display (revision 16)

Wednesday, December 14th, 2011

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.

Waveform Display (revision 15)

Saturday, November 26th, 2011

This version mainly fixes a “division by 0″ bug, improves PC speaker output (there’s a new “PC Speaker Settings” window!), and makes parallel port output work again (I accidentally left it disabled while debugging in revision 14). I’ve also got rid of my previous, bug-crazy attempt of getting the playback position while looping – now, playback position simply stops updating after the loop, and seeking continues to work.

Usual download link is here (now 1.97 MB), and full details of changes are below~


Waveform Display (revision 14)

Friday, November 25th, 2011

This version fixes a bug which appeared when loading a new sound while one was still playing. Plus, there are lots of internal changes to improve speed (lower CPU usage), and there’s a new-but-buggy “Loop” function.

Here’s the usual download link! Because of all the changes I made to make the program more efficient, this download is actually half a kilobyte smaller than the previous version, despite me adding lots of text to “version info.txt”!

For details of everything that’s changed, please see below~

EDIT: Whoops, that EXE name had become “Waveform Attempt” again, like it was in ye olden days… Fixed. (more…)

Waveform Display

Monday, November 21st, 2011

I started making this program in late 2008 and pretty much abandoned it in 2009. But a few days ago, someone told me that they wanted a program like this, so I got my finger out and touched up a few parts, and am releasing it to the public now!

Waveform Display plays a sound file (WAV, MP3, OGG, FLAC, WMA) and, as the name suggests, shows a waveform of the sound as it plays. But it can additionally display the waveform on a Logitech G15 LCD, “bend” the waveform into a 640×480 picture, or send the waveform to an EasyLase. There are options to change the waveform scaling width-ways (time) and height-ways (amplitude), and there is also a VU meter with its own scaling options that can be reflected in up to 8 lights controlled via the parallel port. Playback speed can be changed from 1/8x to 8x, and it can handle files which are several hours long since it does not decode the whole file to RAM first. There are also some experimental (read: buggy and given-up on) options such as to play the sound on an internal PC speaker. There’s a very basic and glitchy pitch detection function, but it’s only designed for monophonic sounds such as speech.

(Click it to see full-size image)

You can download the program from here.

The current version is revision 13. The Miku image in the screenshot above is not included, to respect the artist. Instead, please enjoy a photo of my cat as the default picture. “version info.txt” (included in the download) has details about everything that’s new or has changed in each version. I’ve not yet made any documentation (info.txt), but I’ll do this soon and add it to the ZIP download. I’ll also add a section to the Programs page for Waveform Attempt soon.