Skip to content
Hack #75 from Swing Hacks book
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
README.md
pom.xml

README.md

Hack #75 from Swing Hacks book

This is a significant reworking of the example code for Hack #75, Build an Audio Waveform Display from the book Swing Hacks: Tips & Tools for Building Killer GUIs by Joshua Marinacci & Chris Adamson, ISBN 978-0-596-00907-6.

This particular hack appears to have been originally authored by Jonathan Simon, who also contributed to the book.

The original example code is available from O'Reilly's git repo: https://resources.oreilly.com/examples/9780596009076/tree/master/Ch10-Audio/75

What's different?

  • Making use of Java 7 features
  • More narrow exception handling
  • Using a JFileChooser dialog instead of command line args to select a file to view.
  • More intuitive naming of variables, methods, and classes throughout
  • Reworked the convoluted technique for reading audio files
  • The method to draw the waveform is largely different, both eliminating code that served no purpose and scaling the y axis in a more meaningful way.

Build

Run mvn package to compile and produce the artifact.

Run

Run java -jar target/swing-hacks-75-0.1.0.jar to start the program.

Sample output

This is the waveform for the classic Windows 3.1 chimes.wav, in a narrow window:

narrow waveform

and the same window after being stretched wider:

wide waveform

You can’t perform that action at this time.