« Opus format audio files now available at Magnatune | Main | Magnatune unavailable »

September 27, 2013

Comments

Linulin

You said "A" (which is very good news) but I'd also expect to hear "B".

Namely, are you planning to replace incorrectly ripped music in Magnatune library? What if master CD is already lost?

Can those of us who downloaded corrupted albums count on free replacement? What if I'm no longer Magnatune subscriber? (I remember reporting the issue in the past, most likely via web feedback form, but got no reply.)


P.S.
I'm surprised that the artists did not double-check the quality of their distributed songs... Otherwise, they would immediately noticed the glitches.

Ian Z.

Thanks for this, John.

While I don't know of any program that does after the fact checking,
like yours, either, cdparanoia gives you all this information (and more
in its verbose mode) while you're ripping. I use cdparanoia for all my
rips - or I should say I used it when I still had a CD drive :-)

John from Magnatune

I agree that cdparanoia is a great CD ripping program

However, ripcheck is for people who need to test other people's cd rips, or need to test cd rips you yourself did, years ago, with less reliable software than cdparanoia.

-john

John from Magnatune

An addendum --

Below is a list of 90 albums that had defects in them.

If you downloaded these albums before September 2013, these all have small audio defects that have now been repaired. Magnatune members can, of course, redownload any of these albums.

If you bought these albums before Magnatune had a membership plan, you can get a redownload URL to any of your purchases by putting your email address on this page, and you'll receive an email with private download URLs to each album you purchased: http://magnatune.com/info/redownload

Altri Stromenti - Italian Music of the 17th Century
Ambient Teknology - The All Seeing Eye Project
Ambient Teknology - The Devils Toxin - Atek Rebirth Vol 1
American Bach Soloists - JS Bach - CD1 - Mass in B Minor
American Bach Soloists - JS Bach - CD2 - Mass in B Minor
American Bach Soloists - JS Bach Cantatas I - Solo Cantatas
American Bach Soloists - JS Bach Cantatas II - Trauerode
American Bach Soloists - JS Bach Cantatas III - Cantatas from Muehlhausen and Weimar
American Bach Soloists - JS Bach Cantatas IV - Early Cantatas for Holy Week
American Bach Soloists - JS Bach Cantatas V - More Cantatas from Muehlhausen and Weimar
American Bach Soloists - JS Bach Cantatas VI - Favorite Cantatas
Arthur Yoria - Handshake Smiles
Arthur Yoria - Suerte Something
Big Bad Sun - Big Bad Sun
Big Bad Sun - Strange Phenomena
Brad Sucks - CD1 Mixter Two - I Dont Know What Im Doing
Brad Sucks - CD2 Mixter Two - I Dont Know What Im Doing
Claire Fitch - Celocity
DAC Crowell - Sferica
DAC Crowell - Within This Space
DJ Cary - Downtempo Chill 2
DJ Cary - Electromelange
DJ Cary - Power Synths
DJ Cary - Sonic Chill
DJ Markitos - Sequences of Life
Etherfysh - Stasis
Falling You - Human
Five Star Fall - Automatic Ordinary
Four Stones - Chronic Dreams 2
Hans Christian - Cinema of Dreams
Heir to Madness - The Citadel
Human Response - Immortal
Ion - Future Forever
Ivan Ilic - Vitality and Virtuosity - Sonatas by Haydn and Beethoven
Janine Johnson - German Keyboard Masters
Janine Johnson - Suites - Op 22 24 and 29
Jay Kishor - CD2 The Sowebo Concert
Jeffrey Luck Lucas - Hell Then Divine
Jeffrey Luck Lucas - What We Whisper
Jeni Melia - Sister Awake - music only
Jeni Melia - Sister Awake
Jenraytor - A Steady Stream
John Jackson - Bad Things Happen All The Time
Kim Ribeiro - Majestic
LVX Nova - LVX Nova
La Nuova Musica - Il Circolo Di Giulio Caccini
Lara St John - CD1 - Bach - The Six Sonatas and Partitas for Solo Violin
Lara St John - CD2 - Bach - The Six Sonatas and Partitas for Solo Violin
Loops For Licensing - Electronica Loops 1
Loops For Licensing - Rock Loops 2
Loops For Licensing - Rock Loops 3
Magnatune Compilation - Christmas Music
Magnatune Compilation - Electronica
Magnatune Compilation - Magnatune At The CC Salon
Magnatune Compilation - Relaxing Classical
Magnatune Compilation - The 2007 Magnatune Records Sampler
Magnatune Compilation - The Art of Persuasion
Mediva - Viva Mediva
Mountain Mirrors - Dreadnought
Musica Franca - Corrette - Le Phenix - Les Delices de la Solitude
Nova Casa - Leclair - Blow - Matteis - Brescianello
Plunkett - 14 Days
Ralph Rousseau Meulenbroeks - Back with Bach
Ralph Rousseau Meulenbroeks - Christmas Carols
Ralph Rousseau Meulenbroeks - Gambomania
Ralph Rousseau Meulenbroeks - Moved By Marais
Rejuvenescence - Dreamscapes
Richard Savino - Legrenzi - Venice Before Vivaldi
Richard Savino - Murcia - Danza y Diferencias
Robert Rich - Open Window
Robert Rich - Temple of the Invisible
Rocket City Riot - Last Of The Pleasure Seekers
Roots of Rebellion - Surfacing
Seth Carlin - Mozart in the Age of Enlightenment
Shira Kammen - Mistral
SkinMechanix - The Secret Life of Angels
Solace - Moon Moth Mixes
Solace - Nagari
Solar Cycle - Silver Lights
Stephane Potvin and the Con Brio Choir - Goode Christemas Musicke
Strojovna 07 - Switch On - Switch Off
Telemann Trio Berlin - Telemann Trio Berlin
The Headroom Project - Apa Ya
The Sarasa Ensemble - A Baroque Mosaic
The Seldon Plan - Making Circles
The Seldon Plan - The Collective Now
Trip Wamsley - Curve
Yongen - Moonrise
Yongen - Yello Haus
Zilla - Egg

There are another 34 albums that were fixed some time ago, that I'm trying to dig up a list of. Nonetheless, if you suspect you hear a pop at the beginning of an album, you can always redownload if you want to make sure, since all the defects that I have been able to detect have now been repaired.

John from Magnatune

re: Namely, are you planning to replace incorrectly ripped music in Magnatune library? What if master CD is already lost?

Hi Linulin, I updated this blog entry this morning, to indicate that yes, all CDs with defects at Magnatune have been fixed, either by hand or by obtaining new, better master CDs.

re: Can those of us who downloaded corrupted albums count on free replacement? What if I'm no longer Magnatune subscriber? (I remember reporting the issue in the past, most likely via web feedback form, but got no reply.)

If you're a member, yes. If you're not a member, simplest is to sign up for a 7 day free trial, download the replacements and then cancel.

My apologies for the fact that you didn't get a reply when you reported it. Chances are we knew about the problem, and I was in the process of writing a program to automate finding problems (rather than just reripping CDs from user complaints, which wouldn't be as complete and accurate)

re: P.S.
I'm surprised that the artists did not double-check the quality of their distributed songs... Otherwise, they would immediately noticed the glitches.

Yes, that'd be nice, but not all musicians are technical, some are poor and buy really cheap CDR media, and many are quite rushed with the rest of their lives and burn CDs at the highest speed.

-john

Marc

Hi John,

good that you investigated and fixed this problem. While re-downloading some albums i think i found a problem: The album "Future Forever" by Ion now only has 3 songs, it used to be 11 songs long. Maybe a problem with the new re-encoding?

panzi

Awesome! But why do you use Sourceforge? That page really hurts to use. I've taken the liberty and made a GitHub mirror.[1] Will add cmake files, Linux and cross compiled Windows binaries later. Doing it right one can compile this simple software without depending on cygwin.

I also removed several warnings (unused and uninitialized variables - I initialized them with 0) and converted the README to markdown.

[1] https://github.com/panzi/ripcheck

John from Magnatune

Thanks Panzi, for running with the source and improving it.

Removing the cygwin dependency for windows users would be a good thing.

And your nicely formatted version of my documentation is very pretty!

-john

panzi

Btw. I fixed the GitHub repo so it shows you (John) as the initial commiter, making blame work correctly: https://github.com/panzi/ripcheck/blame/master/ripcheckc.c

panzi

Here you read 4 bytes:
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L146

But then you only use 2 of them:
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L152

Is this correct or a bug?

panzi

And this debug code moves the file pointer, so if debug == 1 the program behaves differently:
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L115

panzi

Also fgetc returns int, not char. It returns bytes as unsigned bytes and EOF (-1) on error/file end. On several places in the source the result of fgetc is written into a char.

panzi

And is the duration even correctly calculated? I think that cant be right. It ignores the sample rate and actually just uses the data size of the "RIFF" block. If anything, shouldn't it use the size of the "data" block and use sampling_rate instead of the hard coded 44100.0? Also why use floating point math here and not 44100L?

panzi

Also these lines are wrong:
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L163
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L169

It should be this in both cases:
poploc = count;

John from Magnatune

Hi Panzi -- in response to your comments

1) currently the app is hard coded to 44.1k WAV files at 16 bits

2) the app reads 4 bytes, which represent left and right channels at 16 bits each

3) the app currently only scans the left channel, and ignores the right channel. It'd be better to be checking both channels, but for my uses (CD rip errors) I found that rip errors showed up in both left and right channels. However, if you want to improve the program to test both left and right, that'd be great.

4) it sounds like you've identified several possible bugs with fgetc

5) I believe the duration is correct for the kind of data I'm looking at, which is plain WAV files that don't have multiple blocks, but it's also likely what you're proposing is the right way to do it.

Which is why I open sourced this all... so that clever people like you could improve what I'd started!

-john

John from Magnatune

re: good that you investigated and fixed this problem. While re-downloading some albums i think i found a problem: The album "Future Forever" by Ion now only has 3 songs, it used to be 11 songs long. Maybe a problem with the new re-encoding?

Hi Marc, sorry for the delay, but I wanted to get down to the root cause of what caused the Ion album to lose 8 tracks, and both fix the bug and fix any other albums that might have the problem.

Well, it turned out 3 albums at Magnatune lost some songs when they had their pops removed. I've fixed those 3 albums (which includes the Ion album you mentioned). I found those missing tracks by comparing all the songs on Magnatune post-defect-fixing to a list of songs pre-defect-fixing.

And I found the bug that caused the problem, which happens when I redo an already existing album, but with slightly different file names for some tracks. Some "tidying up" occurs when removes files that look like they aren't part of the album, which then accidentally deletes the new mp3/wavs that are similar-but-different from the old ones.

-john

panzi

I'm currently basically rewriting the C version so that it scans all channels, supports any sample and bit rate and I make all the limits configurable (what is silence, min. value of a pop etc.). Every now and then I like to do lowlevel stuff. To check if what I do is correct, I'd need some example test files that have the kinds of problems it should find. Can you provide any such files? It Won't be before tomorrow that I can test it anyway. Maybe even next week.

panzi

Ah and I guess here it should be x1 != 0 instead of x != 0:
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L176

If it's x1 != 0 it will ignore patches of total silence, if it's x != 0 it ignores dupes before a drop. Which one did you mean?

Hmm, and the same for these lines?
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L177
https://github.com/panzi/ripcheck/blob/master/ripcheckc.c#L179

These two lines overrule the first line anyway.

panzi

I should have linked a certain commit, because I just pushed tiny formatting changes and now all the referenced lines are move down by 3 or so.

Phil

I picked the first album on your list of previously corrupted albums (Altri Stromenti's Italian Music) and pulled down the flac archive again. I then compared it with my previous copy, extracting the wav files from the flac files to eliminate any differences in the compression settings or metadata. To my surprise no two .wav files were identical, or even had the same length; all were slightly different. Did this particular album have that many errors, or did you recreate the new version from an entirely different source? Just curious.

John from Magnatune

Phil, with that album, there as a pop in the silent part before each song started, and it appeared in the CDROM master that we have. I used an audio editor to trim the dozen or so samples out that were the pop. That's why every song now has a slightly different length.

This seemed like the best approach, since the defect was in the master, and this edit made no change to the musical portion of each piece.

-john

Phil

Thanks. BTW, one way I've introduced pops at the beginnings of songs is giving wav files to software expecting raw PCM; the 'pop' is the wav file header. You might look for that as a special case.

Phil

I can see this is a really hard problem. You can use a few heuristics, but without true error detection it'll never be 100% reliable.

I just ran your program on a ripped CD track in my library (The Doobie Brothers' Minute by Minute) with a very audible CD skip. It reported the track was fine.

If a skip is a repeat you might be able to detect it by autocorrelation, but not a skip forward. A program run by an ordinary user could compare the number of samples to the fingerprint in the various metadata databases, but that won't work for a new album you're releasing yourself!

This is really hard.

Martí

A bit off-topic.
Just re-downloaded Magnatune Compilation: The art of persuasion (which I highly recommend) and found out something funny in the artwork. The compilation is sub-titled "a sultry maGAnatune mix" X-DD
That said, I feel like leaving it as it is now ;-)

The comments to this entry are closed.