I now I should have exported a mp3 or done a backup - unfortunately I didn’t.
Can anything be done to save this? The drive did have space. There is 1 G on the file.
13:58:45: Using internal LAME
14:09:48: sqlite3 message: (11) database corruption at line 67525 of [7ebdfa80be]
14:09:48: sqlite3 message: (11) database disk image is malformed in “PRAGMA main.synchronous = NORMAL;PRAGMA main.journal_mode = WAL;PRAGMA main.wal_autocheckpoint = 0;”
14:09:48: Failed to set mode on /Volumes/Seagate Portabl/ACX/chp4.aup3
Error: database disk image is malformed
SQL: PRAGMA main.busy_timeout = 5000;PRAGMA main.locking_mode = SHARED;PRAGMA main.synchronous = NORMAL;PRAGMA main.journal_mode = WAL;PRAGMA main.wal_autocheckpoint = 0;
14:09:48: DBConnection SetDBError
LastError: Failed to set safe mode on primary connection to /Volumes/Seagate Portabl/ACX/chp4.aup3
LibraryError: database disk image is malformed
I saw your post on the other thread: https://forum.audacityteam.org/t/audacity-failed-to-set-safe-mode/62388/1 , and I have nothing to offer there. sandrecord’s report on this thread and yours look identical, otherwise, I might have separated these posts. These particular error messages look very nasty - it is quite possible there is nothing that can be done. I was interested in sandrecord’s .aup3 file mostly for forensic information (I have not seen this error before). However, if you would like to zip it up and upload it to a public file server, then post or PM me a link, I’ll try to take a look at it early this coming week.
OK, I have been looking at your file. As I said before, “these particular error messages look very nasty - it is quite possible there is nothing that can be done.”
I have looked into your particular .aup3 file with all of the Audacity tools I have at my disposal - none of them will get anywhere with your file. Audacity makes use of an underlying sqlite database where it stores all of your data. In this case, the underlying sqlite process returns an error 11 = Corrupt file, and refuses to do anything else.
I have also explored several sqlite utilities that claim to have some success recovering databases from these errors. None of these utilites have proved fruitful.
However, when I look at the raw data buried within your .aup3 file, I can see what appears to be chunks of audio data interspersed between unintelligible and damaged control data. When I take your .aup3 file and import it as RAW 32-bit float data, Little-endian, I can almost see (and hear) your audio.
I am thinking if we can remove the control data from this result, we may be able to recover some/much of your data.
For this reason, I am asking a Nyquist developer if he can assist with a program that might be able to remove these data points. It may be of general value. Stay tuned.
Thanks. No. Not envelope control points. I mean actual data points or samples. Sorry I didn’t make myself clear. So the file would actually end up a little bit shorter. (It is too long to begin with).
So looking at the screenshot, the invalid data point is not only wrong, it is extra and needs to be removed altogether. The invalid point should be treated as no data, and everything to the right needs to be shifted one sample point to the left. I don’t know if you can do this in nyquist.
If the “invalid data point” is a valid 32-bit float value, then:
It’s unlikely to be a problem
You could force it down into a valid range by clipping the audio to +/- 1.0
A script could probably be written to export as a valid WAV file (with the invalid data points removed)
For short tracks (less than about 30 minutes, mono, @ 44100 Hz) it’s probably not too difficult to remove the “invalid data points” with a conventional Nyquist “Effect” plug-in.
Option 3 is not simple for long tracks, but I think it would be possible.
The bigger problem comes with “invalid data points” that are not valid 32-bit float numbers, aka "NaN"s (https://en.wikipedia.org/wiki/NaN)
I did some work with Nyquist a few years ago to help Nyquist deal with NaNs safely - I’ll need to test to see what the current situation is.
Thank you very much Steve, your program was very helpful and illuminating. I see you found a solution to the NAN issue. I had been hoping we could find a Nyquist solution as this could be something anyone could use easily. Other than what you mentioned, your program has two limitations: (1) It zeroes out the erroneous data, rather than remove it, and (2) it terminates without an error message when a very large section of data is selected.
Nonetheless, there is a distinct flaw in my concept. While the program does remove most of the noise that occurs every 1/3 of a second or so , there is still noise at 14 second intervals that needs to be addressed . Back to the drawing board for me and thanks again for you assistance.
Before running your program:
After running your program:
You can see that a lot of the data has been cleaned up…
It looks like the remaining “bad” data is mostly much higher amplitude than the “good” data.
If you want to see what’s left after removing all samples that have an absolute value > 0.5, change this line in the Nyquist script