5 ms·
Just like the author, I too am quite particular about empty space in my MP3 files. When I was ripping my CD collection, I religiously tagged the MP3 files with
by zxcvgm 5y ago
Just like the author, I too am quite particular about empty space in my MP3 files.
When I was ripping my CD collection, I religiously tagged the MP3 files with ID3v1. Later on, I had some tracks whose titles were just a tad longer than 30 chars so I had to use ID3v2 for those and I noticed the file size grew by _a lot_.
Frustrated by this, I opened them in a hex editor and learnt that ID3v1 was a fixed format of 128 bytes, but v2 was variable. I also found out that the software had added a 4KB zero-byte padding to the v2 tag, which was "necessary" because the tag is now at the front of the file, and this padding allows more tag data to be added easily later on.
I tried various ID3 tagging software at that time and all of them added a padding. So I learned about the tag format and wrote a tagger myself that didn't add any padding. It was a great learning experience, and I managed to shave those useless zero bytes from my MP3s.
- folkrav 5y agoUnless I had a very large library or very limited storage space and no way to expand, I'm having a hard time understanding why this would objectively really matter at the scale of a personal MP3 library. We're talking about a tiny bit under 1GB of additional data per million individual tracks. Must have been pretty fun tracking this down, but I'm curious as to why you'd go through all this trouble. Storage is cheap, my time is not haha.
- tommi 5y agoIt's all about how you value your time. These kind of quests are usually very valuable learning tool and fun. I have learned a lot with hobby projects which didn't create any value as end products but were valuable to me.
- exfascist 5y agoThe underappreciated joy of yack shaving.
- RosanaAnaDana 5y ago>Wait, it's yack shaving all the way down? Always has been..
- tomxor 5y agoThere is also a cumulative value in your knowledge and understanding when hacking on things for such specific personal niggles - which over time makes future efforts more likely to reap some combination of higher rewards, faster execution and less effort... and more often than not what we learn can be applied to our day jobs in unforeseen ways. Having a problem organically emerge in front of us that affects us personally is just a really easy thread to pull on for learning things.
- zxcvgm 5y agoI think I was trying to get my entire music collection to fit onto my iPod, which at that time only had 10GB of space. And also, I love to optimize things, so it made no sense to me why squeezing 1-2 more words in the track title would inflate the file size by 4KB. As a teenager, I probably had more time on my hands back then.
- kevin_thibedeau 5y agoIt would be better to just reencode tracks with VBR capped to 224 or 160 max bitrate.
- cylon13 5y agoIt would certainly not be better to crunch the quality than to remove useless zero bytes.
- megablast 5y agoRencoding is an awful idea.
- mayli 5y agoNot really, if you take A/B/X test and realize modern codec can be transparent at low bitrate (e.g. opus@128kpbs)
- xxpor 5y agoopus didn't exist when people were worried about 10 gb iPods
- RealStickman_ 5y agoAnd also can't be played on said ipods.
- fomine3 5y agoBut AAC than MP3?
- OJFord 5y ago> Must have been pretty fun tracking this down, but I'm curious as to why you'd go through all this trouble. ParseError? You recognise fun but not that it might be a reason to do something?
- folkrav 5y agoWith the limited personal time I get these days, I tend to choose activities that are both fun and useful to me. But maybe that's just me, admittedly. OP answered, and he was a teen back then, which may have played in the "too much time on my hands" part.
- karmakaze 5y agoDumb format. Tags should be allowed after the content data.
- lmz 5y agoEnjoy streaming that "unknown track" if you can't seek.
- karmakaze 5y agoHttp ranges are pretty well supported, otherwise it's a retro radio experience waiting for the announcement at the end of the track.
- gregmac 5y agoImplementing this would be a good learning experience that will greatly increase your understanding of fopen, fseek and how block storage works. It would be an interesting experiment to benchmark reading a million files with tags at the start vs the end, and maybe compare using spinning rust storage to a modern NVMe drive.
- teaearlgraycold 5y agoA life well spent
- AA-BA-94-2A-56 5y agoI'd love to be exactly like this, but I realise by over-optimising my computer and its organisation, I'm under-optimising my time.