Trying to understand TOC track lengths

Hello I was originally going to post a thread asking how I can add a DiscID from this (forget the term for it):
D10C550F+236996+15+150+20029+34577+50362+65107+78995+93723+110639+128426+143609+158368+174421+195068+209105+223477

It appears to have all the needed parts, total tracks, all sectors, lead out and even links to a gnudb ID.

But then I decided to see if I could form an EAC-style cue sheet based on this data as I have the cue sheet of a slightly different release and all of the shared songs match for sectors. Things have not gone well and I am confused by some aspects of an EAC cue sheet.

Here is an example snippet from a different release cue sheet:
Track | Start | Length | Start sector | End sector
11 | 35:09.43 | 3:34.03 | 158218 | 174270
12 | 38:43.46 | 4:35.22 | 174271 | 194917
13 | 43:18.68 | 3:07.12 | 194918 | 208954

Using both data sets and reading how the sectors and discIDs work, I tried to convert the sectors of the initial string I posted to get the times of the tracks, but things are not adding up.

Track | Sectors | Seconds | Length
11 | 16053 | 214.040 | 3:34.040
12 | 20647 | 275.293 | 4:35.293
13 | 14037 | 187.160 | 3:07.160

As you can see calculating the track length using the sectors is very close but slightly off, so I figured something was wrong with my calculations and this was impossible.

Then I decided to look at these tracks in Foobar since it shows the milliseconds of tracks and it shows the length matching my calculations perfectly and not what is in the TOC.

I thought maybe the TOC was accounting for silence in the tracks but the silence in these tracks does not appear to match the length differences from what I see in Audacity.

Can anyone shed some light on this? (Also it would be great if someone could also tell me if the string at the start is usable to add a discID.)

1 Like

I’m not sure if I have understood what you are trying to do, but I think I’ve understood what you are struggling with.

The TOC on the disc consists only of sector numbers, not seconds - the starting position of each track (the index) and the total length in sectors. From these numbers applications build real tables and they calculate values in seconds, but they do this in different ways:
The second table shows track lengths in ms, but the first one has fractions of a second given in 1/75 parts (after .74 follows the next full second). Therefore the track lengths seem to be different.
The first table shows start and end sector while the second only the difference between two index points: 174271 - 158218 = 16053 length of track 11 in sectors - perfectly the same length. You can divide it by 75 to get the track lengths in seconds → 214.04 or 214 seconds and 03 sectors.

3 Likes

I did not even notice that it’s using fractions instead of milliseconds. Thanks for pointing that out.

What I was attempting was to convert the sectors to the length given but the TOC but I was generating milliseconds without realizing the TOC was not the same units.

The step I was missing was multiplying the milliseconds by 0.75.

Basically what I was trying to achieve was 1) Understanding TOC better and 2) converting the top string into an EAC table without a program or directly generating it from a physical medium.

1 Like

https://wiki.musicbrainz.org/Disc_ID_Calculation

3 Likes