Waveform Utility

Discussion in 'Audio Hardware' started by Anachostic, Jan 9, 2017.

Thread Status:
Not open for further replies.
  1. Anachostic

    Anachostic Forum Resident Thread Starter

    So, I get the impression this may be a hot button topic around here. I've stumbled on a few threads where waveform images were used to illustrate the quality/loudness/differences of various presses. From what I saw, it appeared that not everyone was willing or able to create these waveform images.

    For my own reasons, I wanted to know if a different pressing of a CD was different than one I already had. Although I have the tools to accomplish this, the process seemed tedious. I would rip the entire CD (x2 - old and new)to WAV files, open each in Cool Edit Pro and get screenshots of the waveform, then use Photoshop to layer them over each other mixing the opacity to see the difference. I figured I could make something better.

    And so I have, over the last couple of days. I wrote a utility that would rip a CD or read previously ripped files from a folder, then generate a waveform file from the data. Then, you can select one or more of the waveform files and generate an image from it.

    As a demonstration, the utility looks like this right now (not polished for any general use):

    [​IMG]

    And for illustrative purposes, I ripped two version of Yes - Fragile. The original and the Gastwirt remaster.

    [​IMG]
    [​IMG]

    I selected both together and generated an image of the waveforms blended together to show differences (colors are not the best choices just yet):

    [​IMG]

    When I get this working well enough for anyone else to use, I plan on putting it out on CodePlex, an Open-Source site. You can download the utility or the source code or both.

    What I'm asking for is some feedback. Is this kind of utility even useful to anyone but me? Ignoring the UI clumsiness, what features should such a utility have? Let me know and I'll see what I can incorporate.

    Thank you all for the information in this forum!
     
  2. R. Totale

    R. Totale The Voice of Reason

    Some facility to match the level of the two files at some given point.
     
    Maggie likes this.
  3. Anachostic

    Anachostic Forum Resident Thread Starter

    Are you asking if I can modify the sound files to match the levels between them? This program doesn't do any sound file editing. Or are you asking if there can be a marker in the waveform image to show where the levels of multiple files match?
     
  4. Lucidae

    Lucidae AAD

    Location:
    Australia
    Personally I find waveforms far more telling than a DR score, so I applaud your efforts.
     
  5. qwerty

    qwerty A resident of the SH_Forums.

    Nice work, and thanks for your generosity in sharing it when it's complete.

    - One idea could is to be able to compare the values for the peak and rms values for each track (any maybe other numerical info). This info could be displayed as a table in the output, or as a paired column graph.

    - Have you tried a display of the waveform with the common areas displayed in the background colour? In the above sample pics the lighter purple would be displayed as black. This would leave only the difference info displayed (ie, the lighter purple and green info). Perhaps there can be options for the user's preferred display style.

    - perhaps include markers to indicate track boundaries; these might be easily accessible from a cue sheet.

    - When you have the functionality complete, please don't forget to polish the UI. A well-designed UI gives users confidence that the underlying code is well-written, and makes the program a joy to use.
     
  6. Anachostic

    Anachostic Forum Resident Thread Starter

    I have considered peak and RMS display and I think that info is available to me. I'm torn as to treat the waveform as an entire album or as tracks. EAC gives a peak value for the whole album.

    I'm adding an options screen right now to allow user-selectable colors. You can overlay up to 4 waveforms. It's a pretty simple calculation. The opacity is 100\# of waveforms. Mapping two waveforms draws each one at 50% opacity, three at 33% opacity, four at 25%. So the more in common between waveforms, the darker the color is. It also allows you to see when a particular point is over or under the others.

    I am pretty sure I can add track boundaries. But I would probably make that user-selectable. Because all images are the same size and the waveform is scaled to fit, one of the more curious things you can do is compare a Genesis album to a Metallica album, or different Metallica albums between each other. Drawing track boundaries in those cases would be confusing.

    Agreed. I'll probably change the layout a dozen times along the way.
     
    qwerty likes this.
  7. George P

    George P Notable Member

    Location:
    NYC
    I have figured out another way, which works quite well for me and may be useful to you. I'll share it here.

    1. Using Windows 7 with Aero turned on (the default), I rip the two files that I want to compare to WAV.
    2. Then, I load each into Audacity by right clicking each file and choosing Open with... and choosing Audacity.
    3. By hovering over the files in the taskbar and switching back and forth between them, watching the differences between the waveform, you can visually see if they are the same.
    4. If one happens to be at a different level, you can amplify each to 0 dB and try 3 again.
    5. An additional way to check is to do 1-4 and then use the Plot Spectrum function in the Analyze menu for each file. Then, repeat step 3 above.

    I find this to be a relatively fast and accurate (especially using step 5) to compare two files.
     
  8. Anachostic

    Anachostic Forum Resident Thread Starter

    That is probably very similar as to how I would do it (except using Cool Edit). However, I really wanted to save the results for sharing and future reference. As I'm going through testing, I'm getting a small batch of files I can reuse over and over. That'll save me from having to rip the CD or process the folder again. Come to think of it, before I had the merging of waveform images, I would flip back and forth between two single waveform images in my image viewer to see changes. I wonder if I could export to animated GIF...
     
  9. R. Totale

    R. Totale The Voice of Reason

    You can only compare two things to see where they are different by defining some point where they are the same. It's a basic requirement in doing A/B comparison of amps for example to precisely match their levels before the test. Without this the test tells you nothing. I think you have to choose one point somewhere in the file and make it possible to apply some sort of trim correction to the level of File A to be sure it precisely matches the level at the same point in File B before you can draw any conclusions from what you are seeing. This need not involve editing either of the files, it can be done mathematically.
     
  10. Anachostic

    Anachostic Forum Resident Thread Starter

    I think I understand what you're saying. But, doesn't that make an assumption that the tester knows exactly what point in two different files are the same amplitude? While that may be possible, I haven't seen in the code libraries that I'm using (BASS by un4seen developments) where I can adjust the waveform data after it's calculated. The library is pretty massive, so maybe I just haven't run into it yet.
     
  11. R. Totale

    R. Totale The Voice of Reason

    For your purposes, since there are no reference tones in your files, you will have to choose some point to match for the comparison to be valid. Possibly something like it might be accomplished by normalizing both files to 100%, but that might obscure what you are trying to see here.
     
  12. Anachostic

    Anachostic Forum Resident Thread Starter

    Got the addition of track boundaries added. In my testing of that feature, I pulled my copy of Dennis DeYoung's Desert Moon (don't judge me). I had recently replaced my initial copy with one that was marked "Made in Japan". When I generated the first waveform of the US version, I was surprised at the lack of dynamics. When I merged the US waveform with the one from the Japan pressing, I was amazed at the difference.

    [​IMG]

    You'll notice track 6 was cut at a different point between the releases, too.

    This is precisely why I'm making this utility.
     
  13. qwerty

    qwerty A resident of the SH_Forums.

    Wonderful comparison above - it's a perfect picture to explain brickwalling.

    Another idea for your program: Are you able to take the waveform data and do some statistical comparison to quantify the differences, eg. a correlation or t-test? This would be an innovative feature.
     
  14. Hubert jan

    Hubert jan Forum Resident

    US pressing to the bin.
    Scandal, when will it stop ?
     
  15. Anachostic

    Anachostic Forum Resident Thread Starter

    For anyone interested, I have put the source code and first release on CodePlex:

    CDWaveform - Home »

    Enjoy!
     
  16. Nubben

    Nubben Well-Known Member

    Location:
    London, UK
    Thanks! Is this windows only or can it be run in the mac environment as well?
     
    BeatlesBop likes this.
  17. Anachostic

    Anachostic Forum Resident Thread Starter

    It is Windows. I don't have a Mac to compile with. Sorry. I suppose someone could download the .NET source code and compile it with Mono.
     
  18. psulioninks

    psulioninks Forum Resident

    Location:
    KC Chiefs Kingdom
    Outstanding! I love it and will definitely grab it once it is ready for public consumption. Please keep us informed as to when it will be ready. :wave:
     
  19. Robert C

    Robert C Forum Resident

    Location:
    London, UK
    This is great, thank you @Anachostic ! It might be useful to have dBFS indicators (say 0, -1, -3, -6) to visually compare peak values.

    Also, might you consider designing a similar programme that generates a frequency analysis? Similar to SPEK but a frequency graph rather than spectrum.
     
    Strat-Mangler likes this.
  20. qwerty

    qwerty A resident of the SH_Forums.

    I've just downloaded and installed this. Haven't compared waveforms yet, but (FYI) discovered a (non-critical) bug on my Win7 machine.
    The "eject disk" option causes the program to crash, with this error: "Object reference not set to an instance of an object."
     
  21. Anachostic

    Anachostic Forum Resident Thread Starter

    I'll fix that right away. I can reproduce it if I don't have a CD drive chosen in the dropdown. Once you choose a drive and process a CD, it will remember the last chosen drive. That's probably why I never noticed it.

    Good find! Thanks!
     
    qwerty likes this.
  22. seasonsinthesky

    seasonsinthesky orphan coal, sleep, etc.

    Location:
    Canada
    Simple apps like this usually run fine in Wine.
     
  23. Tim Müller

    Tim Müller Forum Resident

    Location:
    Germany
    Hello,

    to compare the waveforms, it would be a good idea to manually scale the waveform image in vertical direction (equals increase or decrease in volume).
    To compare the waveforms, it would be a good idea, to manually move the waveform images in horizontal direction (equals correction for offset in time).
    Could it be done either with the complete album, or individual songs, by choice of the user?
    To compare waveforms, it would also be a good idea, to scale the images in horizontal direction (equals matching of different tape speeds of the analog or digital master tapes used for mastering of the CDs).
     
  24. Hubert jan

    Hubert jan Forum Resident

    Use Audacity, runs on all OS.
     
  25. Anachostic

    Anachostic Forum Resident Thread Starter

    I'm working on your requests for an amplitude adjustment, starting offset, and time stretch. It sounds similar to R Totale's earlier request. I'm skeptical of the benefits of these features, but I assume they must be needed for comparisons of self-recorded analog sources.
     
Thread Status:
Not open for further replies.

Share This Page

molar-endocrine