Max limit of 255 tracks on MP3 CD?
#1
Max limit of 255 tracks on MP3 CD?
I was listening to an audio book that I had burned onto a CD-R and played in the factory Pioneer radio when the book started over from the beginning. I thought it was a strange ending to the book, so at home i investigated I found that it had stopped halfway through. I added up the number of files it played, it was the magic number 255 (2^8-1). The tracks were organized with around 20 per folder.
Any ideas on how to trick it to play the rest of the CD? Or am I going to have to burn another to hear the rest?
Any ideas on how to trick it to play the rest of the CD? Or am I going to have to burn another to hear the rest?
#3
The limitation has to do with the File Allocation Table/Numbering Scheme of 8-bit binary. When a CD is burned, each individual track receives its own unique 8-bit binary number by which the processor recognizes that particular file. This is its identifier. Unfortunately, 8-bit binary maxes out at 255. Here's why. In binary, each bit can either be 0 or 1. Since we are limited to 8 bits, we can only have a series of 8 0's or 1's to represent each track. 255 in binary is 11111111. In order to achieve 256 and beyond, you would need another placeholder or extra bit.
So... to answer your question... for now, you are stuck with 255 tracks per CD-R until the allocation process of files for burned CDs changes. This change may be a while, as all manufacturers would also have to update their internal processing of mp3's and other digital file formats in order to accomodate such a change.
...hope this helps.
So... to answer your question... for now, you are stuck with 255 tracks per CD-R until the allocation process of files for burned CDs changes. This change may be a while, as all manufacturers would also have to update their internal processing of mp3's and other digital file formats in order to accomodate such a change.
...hope this helps.
#4
Do what I do and use a laptop as your "CD" lol... I don't have a single CD in my car - all of my music plays via laptop!
That's one option.
The other option is to recode all your audio so that the quality is less (a little less, maybe go from 190 to 128 when coding)... also, you can combine tracks meaning instead of having chapters 1 to 5 as different mp3s, combine them into a single mp3...
I'm just suggesting work-arounds. ;]
- sh00k
That's one option.
The other option is to recode all your audio so that the quality is less (a little less, maybe go from 190 to 128 when coding)... also, you can combine tracks meaning instead of having chapters 1 to 5 as different mp3s, combine them into a single mp3...
I'm just suggesting work-arounds. ;]
- sh00k
#5
Thanks for all the responses. The CD-R itself has no problems holding more than 255 tracks. It just seems that the Scion won't play them.
Anyhow, I wrote a script to concatenate tracks so that there will be less than 255 and now everything is good.
Anyhow, I wrote a script to concatenate tracks so that there will be less than 255 and now everything is good.
Code:
#! /usr/bin/perl my $outputdir="packed"; mkdir($outputdir); foreach my $f (@ARGV) { push(@list,&findFiles($f)); } my $pf = @list / 255; die scalar(@list)." items less than 255" if ($pf<1); print $pf,"\n"; my $bins = 0; my $leftover = 0; while(@list) { my $f = $list[0]; my @parts = split(/\//,$f); my $fn = pop @parts; my $folder = quotemeta join("/",@parts); my $dn = pop @parts; my $od = $outputdir."/".$dn; mkdir $od unless (-d $od); my $of = $od."/".$fn; open(OF,">$of") or die $of; my $c = scalar(grep(/$folder/,@list)); if ($bins==0) { $bins=int($c/$pf); $leftover = $c % $bins; } my $bc = int($c/($bins--)) + ($leftover-->0?1:0); for(my $i=0;$i<$bc;$i++) { my $cf = shift @list; die "$cf $folder" unless ($cf=~/$folder/); print "copying $cf to $dn/$fn\n"; ©($cf); } close(OF); } sub copy { my $f = shift @_; open(INF,"<$f") || die; while(<INF>) { print OF $_; } close(INF); } sub findFiles { my $f = shift @_; my @fs; if (-d $f) { opendir(D,$f); my @sfs=sort(grep(!/^\.\.?$/,readdir(D))); foreach $sf (@sfs) { push(@fs, &findFiles($f."/".$sf)); } } else { push(@fs,$f); } return @fs; }
Thread
Thread Starter
Forum
Replies
Last Post
carid
Exclusive Sponsored Sales
0
08-31-2015 11:17 AM