Waveform Display (revision 21)

Posted on 2014-03-26 at 02:27 in Music, Programs by Robbi-985.

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).

2 Responses to Waveform Display (revision 21)

  1. the2048 says:

    So how would I hook up the LEDs to my parallel port without lighting myself or my computer on fire?

    • Robbi-985 says:


      The 8 data pins D0 to D7 output 5V, and you want to put that through your circuit and have it come back around to the GND pins. But rather than attempt to power the LEDs directly from the parallel port (with a resistor), it’s better to use a transistor to switch the LEDs which are then powered by a separate power supply, to avoid putting so much load on the parallel port. Have a suitable power supply for your LEDs, and a suitable resistor for each LED (depends on the LEDs you’re using and the voltage of your power supply; see “How to Work With 3mm
      and 5mm LEDs” on http://www.theledlight.com/led101.html for more info on that).

      Tie all the GND pins of the LPT cable together (the cable might already do this itself). Connect the ground of your LEDs’ power supply to the GND pins of the cable, too, so they share the same ground. Now for each data pin, do this:
      Connect the base of an NPN transistor (e.g. 2n4400) to the data pin through a resistor (2.2K to 10K should be okay). Connect the transistor’s emitter to the GND pin(s). Connect the positive side of your power supply to the positive side of your LED via your LED’s resistor. Connect the negative side of the LED to the collector of the transistor. Now, the current would like to go through the LED’s resistor, through the LED, through the transistor to ground, but it is only allowed to do so when the transistor is on, which only happens when the parallel port gives 5V to the transistor.

      Using this circuit, you can also switch e.g. 12V LED-based light bulbs, which you don’t need to use an LED resistor for, since they’re designed to run directly on 12V (you will still need the resistor for the transistor, though!), as long as you check the datasheet for your transistors to make sure they’re able to switch the current that the bulbs take.

      I hope this helps!

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>