This post describes my attempts to use various free MP3-checking tools. The conclusion (below) summarizes what I found.
MP3 Validation Tools
Several years earlier, I had extensively reviewed some utilities for verifying or validating MP3 files. This post updates some aspects of that previous effort.
A search led to a couple of discussions in which people recommended a handful of programs with MP3-checking capabilities. Those discussions, plus my previous post and a few hits from another search that used several of those programs’ names, suggested that the primary contenders (and their Softpedia links) were Foobar2000 (rated 4.5 stars by 926 raters, although presumably mostly for its use as an MP3 player), MP3-Check (3.6 stars by 69 raters), MP3val (with the wxMP3val frontend) (3.6 stars by 16 raters), and MP3 Diags (3.4 stars by 19 raters). Other possibilities (rated below three stars or by fewer than ten users) included EncSpot, AudioTester, Portable MP3 Repair Tool, MP3 Checker, Checkmate MP3 Checker, Mr QuestionMan, MP3Utility, and MP3 Tester. There were no doubt many additional possibilities (e.g., batch files dating from 2006).
I was fairly sure that my MP3s were in good shape. I had just completed a process of using a batch file to test some of my MP3s, one at a time, and to record error messages along the way. Things had checked out. Now I just wanted a seemingly solid program as a double-check. I decided to try the first four listed above: MP3-Check, Foobar2000, MP3val, and MP3 Diags. Soon, however, I would find myself looking at others.
Before discussing what it was like to use the programs, and what results they produced, this section explains why Foobar2000 dropped out of the competition.
In my previous review, I had noted that Foobar2000 and other programs (including Winamp) were capable of doing mass conversions, and that perhaps the conversion process would highlight major file problems. Having already tinkered with that approach, this time I was curious about the File Integrity Verifier plugin for Foobar2000. That plugin may not have existed (or at least I hadn’t been aware of it) at the time of my previous review.
The instructions for that plugin said that, in Foobar2000, I should go into File > Preferences > Components > Install (or just drag the component from Windows Explorer to that Components list). I right-clicked on it and got this: “Usage: Select one or more tracks to test, choose ‘Utils / Verify Integrity’ from context menu.” The idea seemed to be that, first, I would choose the target directory via File > Add Folder. This triggered a “Processing Files” window. The directory I had specified was, again, an entire drive. Unlike MP3-Check (above), Foobar2000 seemed to be examining every single file on the drive — not just searching for MP3 file extensions, as MP3-Check seemed to have done. Later, I would discover that Foobar2000 had actually investigated the contents of zipped files as well, and had added audio files contained in those archives to its list. That behavior may have been due to the checkmark (either originally there or, I suspect, added by me) in File > Preferences > Advanced > Tools > Include hidden files & subfolders when adding whole folders (though I wouldn’t have expected that checkbox to result in searches of non-hidden zip archives).
Finally, the files that Foobar2000 had processed, from those drives, appeared in the default playlist. I found that I could add a second drive to the playlist, producing one very long list of audio files. On that large drive, this initial file processing phase took hours. (I summarized some of these instructions in the plugin’s help wiki.) I saved the resulting playlist (File > Save Playlist), so that I would not have to wait additional hours in case I somehow shut the program down before I was finished with it. Foobar2000 did not display file extensions, so I could not tell, from its listing, whether a given file was an MP3, WAV, WMA, or some other format. But that and other aspects of its display were adjustable: I just had to right-click on a column heading to select the columns I wanted to see. And then I did observe that Foobar2000 had detected and was displaying files in all sorts of audio formats: not only MP3 and WAV, but also WMV, WMA, and others. I used Ctrl-A to select the whole playlist. (I found that I could also have used Ctrl-click or Shift-click to select individual files.) Then I right-clicked and chose Utilities > Verify Integrity.
This integrity verification part proceeded very slowly. For instance, Foobar2000 took 20 seconds, according to my stopwatch, to analyze a single MP3 file of 84KB, when the file itself was only 12 seconds long. I did not know how many days’ or weeks’ worth of audio it might be testing, but it appeared likely that my system would crash for some unpredictable reason long before Foobar2000 finished. With great regret — because the program really was impressing me — I aborted the comparison and posted a question about this. When I aborted, Foobar2000 did go ahead and provide a box listing File Integrity Verifier Results, with an option to export its contents as a text file. The list indicated the name of each file, its status (e.g., “Decoded with minor problems”), an apparent explanation of that status in the Warnings column (e.g., “Reported length is inaccurate,” with an indication of the precise problem — showing time discrepancies down to one-millionth of a second!), and the results of MD5 and CRC32 checks, which I apparently did not request (i.e., my list just said “N/A”). The list did not indicate the path name, and there did not appear to be an option to add a Path column, so it would be hard to tell which file was at issue if several in different folders shared the same name. The list seemed to include all of the detected files, but for the vast majority the Warnings column said “User abort.” The warnings for most files were just that “Reported length is inaccurate,” and it looked like almost all of the checked files had that warning. There did not seem to be a way to filter for desired warnings (e.g., show only those with large discrepancies in reported length, or only those with serious problems).
My working conclusion was that Foobar2000 was ambitious and seemed solid, but was incomplete and useless for present purposes. I shared a link to this post in the discussion thread where I had posted my question (above), and hoped that someone would tell me that I was doing it wrong and that Foobar2000 was actually just the tool for audio file verification. In the meantime, however, I went on to look at the three other contenders listed above.
Using the Programs
In this section, I describe what I encountered as I tried to work with MP3-Check, MP3val, and MP3 Diags. The next sections discuss the actual results achieved. As their names suggest, these three programs (unlike Foobar2000) were able to look only at MP3 files; they did not check WAV, WMA, or other audio formats.
I started my comparison with MP3-Check 126.96.36.199. It offered several tests: bit rate, sample rate, channel mode, and gain volume. The idea in each case was that I would specify the desired criteria (e.g., bitrate of at least 160 kbps), and it would tell me whether any of my MP3s failed to meet that criterion. It seemed to require me to choose at least one of these. It would run its test as soon as I clicked its Directory button and selected the folder to be tested. It did not seem to allow accretion of multiple directories into one run: it would start over with a new test each time I selected a different directory.
MP3val was still at version 0.1.8; it had not been updated since June 2009. I tried it by installing the wxMP3val 2.4.3 frontend — which, unlike MP3val itself, was not a portable. That is, it was apparently not necessary to download MP3val; the frontend incorporated it. Hence, the remainder of this post refers specifically to wxMP3val. This frontend seemed a bit friendlier than the older mp3val-frontend.exe (created by Alexey Kuznetsov, creator of MP3val itself, in 2007). But the options were still very limited. Basically, I could add a folder or an entire drive, and its MP3 (but no other format) files would be listed; there was no option to see the folders in which those files were contained; and I could not save a playlist.
Turning to MP3 Diags 1.2.01, I saw that the User’s Guide expressed the developer’s “hope that the interface is intuitive enough to allow most users to easily figure out what can be done and how to do it,” and that was fine with me; I figured I would pore through the manual as needed. Indeed, there were not many ways to go wrong: I pretty much had to check boxes to indicate which drives or directories I wanted to scan, and then click OK: there seemed to be no options or preferences at this starting point. (If I had been a regular user, I probably would have devoted more detail to the Suggested Usage page in particular.)
Assembling Lists of MP3s
Each of these three programs was able to search an entire drive partition for MP3 files. For example, I could tell any of these programs that I wanted it to search drive D, and it would go ahead to provide a seemingly complete list of MP3s on that drive. The only difference among the programs in this regard was that MP3-Check was able to process only one designated folder or partition at a time: it would produce its results for one folder, and then I would have to designate another partition or folder, and it would examine the MP3s in that location. By contrast, wxMP3val and MP3 Diags would construct lists of identified MP3s, and would add to those lists each time I designated another partition or folder to search, unless I told it to clear the list and start over.
I had two partitions that I wanted the programs to search: one contained about 15GB of data; the other contained about 600GB. MP3-Check was very fast in its searches of each of these partitions, producing results within about five minutes, whereas wxMP3val and MP3 Diags took hours, especially when adding MP3s from the large partition to their lists of files. When MP3 Diags finished, however, I would discover that it was not merely constructing its list of files; it was also going ahead with its testing of those files, thus combining the search for MP3s and the identification of MP3 problems into a single step.
During those hours of assembling file lists, I was not sure what wxMP3val was doing. It seemed to have frozen. Mousing over its window yielded an hourglass cursor. Clicking on its window resulted in a Windows “not responding” message. Since wxMP3val did not seem to be doing any actual file examination at this point — I had not yet clicked its Scan button — I was not sure whether its slowness in adding MP3s to its file list was perhaps due to some sort of examination of all files on the partition, to see whether they might be MP3s with the wrong extension. As I say, there was simply no indication of what the program was doing during those hours.
MP3 File Scans
After designating the partition to be searched for MP3 files, and letting the programs assemble file lists if they were so inclined, it was time to scan the listed files, if the program had not already done so. This section describes the general process of scanning files and getting output from the three programs. The next section looks in more detail at the problematic MP3 files identified by each of the three programs.
As noted above, MP3-Check would check MP3s for conformity with predefined criteria. Those criteria did not seem too useful for me: I already knew that my MP3s were all over the map, in terms of bitrates and so forth. I did not mind that, for example, an MP3 containing might have a bitrate of only 20 kbps, if it contained speech rather than music. This was not a search for poor quality; the mission here was to determine whether these MP3s were functional. Thus, the only finding that interested me was what MP3-Check called “Unordinary.” I did not see details explaining what that designation meant. It seemed I would have to examine the Unordinary MP3s manually — I would have to listen to them, one by one — to see if I could figure out why MP3-Check had flagged them.
Meanwhile, once wxMP3val had returned from the land of the dead — that is, once it finished spending hours finding my MP3s — I clicked its Scan button. In this phase, the program was not unresponsive: it provided a constantly updated indication of the numbers of files scanned, time elapsed, and estimated remaining time. Its early estimate was about half the amount of time it actually required; possibly the first files it scanned were smaller than others it encountered later. Its scan proceeded at a rate of about 230 files per minute, though no doubt that would depend on the computer’s workload, speed of the processor, size of the files, and other variables. When wxMP3val finished with that scan, it displayed several items of information for each file: its MP3 version (e.g., MPEG 1 Layer III), the type of tags it contained (e.g., +ID3v1), whether it was encoded in constant or variable bitrate (i.e., CBR or VBR), and its state (either OK or PROBLEM). Files marked as PROBLEM files were shown in red rather than black print. There was no information on exactly what the problem might be, for any individual file. There did not seem to be a way to filter out the OK files, so as to get a condensed list of PROBLEM files. Instead, the user would have to page down through his/her list of hundreds or thousands of MP3s manually. There also did not seem to be a way to export or print a report or save the list of results. Ctrl-A did not work to select all files. Shift-click and Ctrl-click did work to select multiple files; unfortunately, neither Ctrl-C nor right-clicking seemed to copy those selections into the clipboard. That is, I could not copy and paste the results into an editor (e.g., Notepad, Microsoft Word). The only menu options that came up, when I right-clicked on the selected files, were Add Folder, Add Files, Remove Files, and Clear List. So while I was paging down through the list and examining individual files, there would be the risk of losing the results and having to start over if the program or computer crashed.
MP3 Diags had been updated within the past year. The developer’s website provided extensive documentation and otherwise demonstrated an interest in the program. As noted above, the processes of assembling the file list and scanning the files were combined into a single step. At least in the first five minutes, the program seemed to be going at a rate of about 350 files per minute. When the initial scan finished — after running overnight for an unknown amount of time (but definitely more than a couple of hours) — I had an Info window that said this:
Your files are not fully supported by the current version of MP3 Diags. The main reason for this is that the developer is aware of some MP3 features but doesn’t have actual MP3 files to implement support for those features and test the code. You can help improve MP3 Diags by making files with unsupported notes available to the developer. . . . You can identify unsupported notes by the blue color that is used for their labels.
When I clicked through that note, I found myself looking at more information than I had seen in any of the other programs reviewed here. For each file, MP3 Diags identified more than 100 different kinds of problems, with detailed explanations of each problem and information about the file. MP3 Diags referred to the various problems with two-letter codes. To illustrate, one file was presented as having problems an, db, fa, ha, and ib. The meaning of the fa code, for instance (as I could see from the tooltip, when I moused over the fa column heading, and as the program also displayed in one informational pane), was “No ID3V2.3.0 tag found, although this is the most popular tag for storing song information.”
For such reasons, in my previous review, I had characterized MP3 Diags as “very much overkill, in the sense of identifying numerous problems that the help file then advised me to ignore.” The toolbar offered several options for managing this mass of detail, as discussed below. At first, there did not seem to be a way to save the list of results, but clicking on the Configuration icon (showing tools, at the right end of the toolbar) and selecting the Others tab did open the option to show an Export button (which I felt should have been included by default). Clicking on the Export button then offered options to save selected files or “Visible files” (which turned out to mean all listed files) in XML, text, or M3U format. The resulting export, in text format, seemed to include everything that MP3 Diags had detected about each file: path and file name, bitrate, sample rate, errors (verbosely, including the full description of e.g., the fa code illustrated above for each file), and so forth. To me, an option to output in spreadsheet (XLS) format would have been welcome; spreadsheets permit kinds of text manipulation that are not possible in these other formats. I was not sure what purpose an XML export would serve, but I did notice the option to show a Sessions button. When I chose to show that button, its tooltip indicated that it would “Close this window and open the Session editor.” I did not want to lose the listed results and have to rescan my partitions, so I did not explore that option, but possibly it would allow for importing and manipulating saved sessions.
Identifying Problematic MP3s
Upon completing their scans of the designated partitions, each of the three programs had identified MP3s with problems of one kind or another. As noted above, the programs differed greatly in the amount of information provided about those problems. This section discusses the situations I faced when I tried to find out which files were problematic.
Overall, the programs differed somewhat in the total numbers of MP3s identified. In terms of the total numbers of MP3s being examined, wxMP3val identified about 0.2% more MP3s than did MP3-Check. That is, for every 1,000 MP3s that MP3-Check found on my partitions, wxMP3val found 1,002. Unless I missed something in the notes that popped up after scan completion, MP3 Diags did not seem to indicate the total number of MP3s that it detected on those partitions; or, in any event, that number was not evident on the MP3 Diags results screen. Given various shortcomings — including the absence of path information in wxMP3val, the limited export options in wxMP3val and MP3-Check, and the absence of summary reports in all three programs — it was not feasible to sort among thousands of MP3s to determine whether one program had failed to detect (or had good reasons for ignoring) an MP3 that another program had examined.
As indicated earlier, the programs differed in their thresholds for deciding whether a particular MP3 was problematic. At the low end, MP3-Check found a total of only ten “Unordinary” MP3s. wxMP3val did not state a total count of PROBLEM files, and I was not about to go down through its long list of all MP3s to count the number manually, but a quick scan made clear that it had identified large numbers of such files. Among MP3s containing speech, wxMP3val seemed to find few problems; but among music MP3s, a sampling of several random screens taken from its list indicated a PROBLEM rate of about 11%. (When paging down through the list, I saw that (at least on my screen) wxMP3val sometimes provided no information (e.g., tags, CBR/VBR, OK/PROBLEM) for large numbers of files; there was just the file name and otherwise blank space.) Meanwhile, a brief look at the output in MP3 Diags suggested that, in its view, the large majority of MP3s had at least one (usually several) of its 108 types of MP3 error.
A Test of Programs
To get a clearer sense of what was happening in these several programs, I decided to test them on the more limited set of MP3s found on my smaller partition. Also, to provide additional points of reference, I decided to compare results from two other programs briefly vetted in a separate post, namely, AudioTester and MP3Utility.
These several programs agreed that there were 444 MP3s on that partition. Otherwise, however, their results displayed considerable disagreement. MP3-Check decided that six files qualified as Unordinary — four of which were in the Recycle Bin. wxMP3val felt that 32 files qualified as PROBLEM files. MP3 Diags found problems in 440 files — all except the four in the Recycle Bin, which perhaps it did not test. As noted in that other post, AudioTester found problems in 37 of the 444 files, whereas MP3Utility said that there were errors in only 22 of those 444 files. (Note: all of the files on this partition contained dictated (i.e., spoken) audio data, not music. Most if not all were recorded at low bitrates, typically in the range of 20 to 64 kbps.)
Among those MP3s on that partition, I looked at the specific files identified by four of those five programs, with only glancing attention to MP3 Diags for the moment. I began with MP3-Check. In the two non-Recycle files that MP3-Check identified as Unordinary, AudioTester and MP3Utility likewise found errors — though AudioTester said they had a problem of being in an Unrecognised Format, while MP3Utility said the error was that it “Can’t locate first frame header within 5,000 bytes of beginning of file.” By contrast, wxMP3val said that all six of the files labeled Unordinary by MP3-Check were, in fact, OK — even though those were also the only files on which wxMP3val was apparently unable to display data on version, tags, or CBR/VBR state.
To figure out which of these programs was most accurate, I tried playing the two non-Recycle files that MP3-Check had identified as Unordinary. They did not play. IrfanView (the audio player I was using) reported them as having a length of zero seconds. (IrfanView seemed robust. Errors detected by these programs might have affected play in other MP3 players.) Windows Explorer said those two files contained several megabytes of data, so I thought it might be possible to repair them. I concluded that three of the four programs were correct in identifying those two files as problematic, and that wxMP3val was incorrect in failing to do so.
MP3-Check did not flag dozens of other MP3s that the other programs had identified as problematic. But MP3-Check turned out to be correct there, again, at least for purposes of taking the user directly to bad MP3s, without bogging down in all sorts of other problems that did not threaten basic playability. I listened to the start of each of those 50 MP3s. Except for the two flagged by MP3-Check, they all started to play without any problem.
It appeared that the developers of AudioTester, wxMP3val, and MP3Utility had designed their programs to detect a few of the many kinds of possible errors and warnings that MP3 Diags would detect. The reasons for focusing on those particular errors were not entirely clear. But the results were odd. On one hand, almost all of the files flagged by AudioTester were also flagged by wxMP3val, whereas MP3Utility flagged an almost entirely different set of files.
After I had listened to the start of the 50 flagged MP3s as just indicated, I went back and listened to the ends of several that AudioTester had flagged as being Truncated. All seemed to play completely. The explanation appeared to be, not that the files had been truncated, but that most if not all had been recorded within the space of a single week, using an Olympus VN-702PC digital voice recorder that I had purchased, tried out, and then returned to the store. In other words, there was something that AudioTester did not like about that recorder, but it did not appear to relate to the playability of those files.
The only other kind of error that AudioTester found was a Bad Starting Sync error detected in two files. Whatever that problem may have been, it was not noticeable. The same was true for the “First sync error” that MP3Utility saw in virtually all of the files that it flagged: there, again, I detected no problems in playing the flagged files.
These results suggested the tentative conclusion that MP3-Check might be the best of the lot, for purposes of identifying MP3s that would not play properly. MP3 Diags was still hard to understand. AudioTester, wxMP3val, and MP3Utility all seemed to have wasted my time by alerting me to trivial or nonexistent problems in dozens of MP3s that seemed to play OK. I was least impressed with wxMP3val.
Applying the Results
Now I wanted to apply the results of that test to my larger drive partition, containing a greater number of MP3s, many of which were higher-bitrate music files. I decided to defer exploration of the detailed workings of MP3 Diags until later, so the focus here was on verifying that MP3-Check provided superior performance. I did not expect to listen to every MP3 that these various programs might flag on that larger partition; my objective would be just to see if the foregoing observations seemed to apply likewise to this larger and somewhat different set of MP3s.
As before, I started with the results produced by MP3-Check. It rapidly calculated that this partition contained eight Unordinary MP3s (plus five more in the Recycle Bin). Six of those eight were unable to play. The other two played. So it appeared that the Unordinary status in MP3-Check was not a guarantee of nonplayability. I listened completely through the two that were playable. Both did have irregularities (e.g., unusual clicks), but both played all the way through.
Next, I ran AudioTester and MP3Utility on that same partition. I decided not to experiment further with wxMP3val. Not counting those same five Recycle Bin files, AudioTester said that 461 files failed. Among those 461 files, AudioTester flagged all eight of the files that MP3-Check had considered Unordinary. For four of those eight, it said the problem was Unrecognised Format. For three more, the identified problem was Bad Starting Sync; and for one, it was Lost Sync. The other characterizations that AudioTester applied to various files among that total of 461 were Truncated, CRC Error, and Bad ID3v2 Tag. I listened to examples from each of those six statuses. None of these statuses was a guarantee of unplayability. Within the eight files that MP3-Check had flagged as Unordinary, the six that were unplayable were variously characterized as Unrecognised Format, Lost Sync, and Bad Starting Sync. In short, the various AudioTester characterizations seemed to have no clear relationship to playability.
MP3Utility, moving much more slowly, eventually found errors or warnings in 273 files plus those five in the Recycle Bin. Those 273 MP3s included the eight files flagged by MP3-Check. In 267 of the 273, the problem was a “sync error.” The other errors identified by MP3Utility were “Can’t locate first frame header” and “File too short.” As with the AudioTester errors, there was no obvious correlation between these errors and the correct or incorrect identification of unplayable files. Once again, there was striking discontinuity between the findings of AudioTester and MP3Utility: only about 15% of the files flagged by AudioTester were also flagged by MP3Utility.
Double-Checking with a Conversion Process
The foregoing inquiries did not carefully investigate the question of whether there might be other defective MP3s, identified by AudioTester or MP3Utility but not by MP3-Check. It was true that I had listened to at least the start of each of the 50 MP3s flagged on my small partition. But that was not, after all, a very big sample, and it had not come from such a wide variety of sources. It was entirely possible that 3%, 5%, or more of the MP3s in a different collection — such as that found on the large partition — could be defective, for reasons not detected by MP3-Check, and that that fact would not have emerged in my limited testing to this point.
Therefore, I decided to supplement the foregoing inquiries with an attempt to convert these MP3s to WAV format. Another post provides the details of the technique I used for that conversion. As with the MP3 checking tools discussed here, the conversion process flagged many files as invalid when, in fact, they were playable. Moreover, just as the lists of problem files produced by AudioTester and MP3Utility were highly inconsistent with one another (above), the list produced by the conversion process was highly inconsistent with both of those programs’ lists.
Since the situation was so unclear, I decided to listen to the start of every song flagged by the converter, by AudioTester, or by MP3Utility. That was a total of 1,116 MP3s. (The post describing the conversion also suggests a relatively rapid way of performing this quick manual test.)
The results were interesting, and not what I expected. None of these three approaches, or MP3-Check, succeeded in catching all of the nine MP3s that, with further review, I had decided were truly unplayable. MP3-Check caught only seven of them — the same seven that were caught in the conversion approach, but not the same seven or eight as were caught by MP3Utility and AudioTester, respectively. MP3Utility was the only tool that drew my attention to a number of MP3s that I had messed up with a nonworking compression setting. All of the approaches named many MP3s that, as far as I could tell, were playing fine; the chief advantage of MP3-Check was that it divided those into other categories so that they did not distract me from the seemingly crucial Unordinary category.
As described in the other post, further study might have improved the results of the conversion approach. Until then, however, the complexity of the conversion approach made it my least favorite among the several tools discussed here. MP3 Diags was still an unknown, as discussed in another post.
An extensive review of thousands of MP3s demonstrated that AudioTester, MP3Utility, MP3-Check, and a conversion process all flagged MP3s that they deemed problematic. Their lists of flagged MP3s overlapped only partially. That is, each program flagged MP3s that the others considered OK. All of these four tools flagged a majority of the MP3s that really were unplayable, but none of these tools caught them all. MP3-Check had the clearest presentation of unplayable MP3s, in its Unordinary category; the three others all mixed the really unplayable MP3s in with numerous MP3s that were playable. MP3Utility was best at flagging a number of MP3s that were playable but were badly distorted. The complexity of MP3 Diags prompted me to defer discussion of its analysis to another post, where I did not find it very helpful in clearly identifying unplayable MP3s.
These tools were all designed, no doubt, to catch problems that their developers considered important. These were the tools that, in my reasonably thorough search, seemed most likely to be useful for catching unplayable MP3s. Yet none of these tools caught all of my unplayable MP3s, and all except MP3-Check buried the really unplayable MP3s in long lists of playable MP3s that may have had some kind of minor imperfection. At this writing, as far as I could tell, there was no really good free MP3 checker. There may or may not have been a good commercial alternative; this inquiry did not look in that direction.
Incidentally, I was relieved to find that, among those thousands of MP3s, only a handful appeared completely unplayable. But there were caveats on that. I listened to only the start of the 1,116 MP3s that were flagged by any of these approaches. Listening all the way through those MP3s might have revealed that some contained serious flaws partway through, or that they had been oddly truncated. Attempts to play them on less robust software (I used IrfanView) might have revealed further problems. There was some reassurance in the fact that I had used four different tools, but I also had to realize that use of a fifth tool probably would have produced a list of still more MP3s to double-check, and that possibly some of the MP3s on that fifth tool’s list would have been badly flawed. Finally, it would be risky to assume that, because I had few unplayable MP3s, some other user would also have few corrupt MP3s. This study showed that my own editing procedures had produced more than 60 badly corrupted MP3s, at some point along the way. Bad software or hardware (e.g., a flawed memory chip; hard drive corruption; a sketchy drive connection) could result in MP3s that might evade detection for a long time.