<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi, I put the code here:<div class=""><a href="https://github.com/ryanfrancesconi/TaglibWrapper" class="">https://github.com/ryanfrancesconi/TaglibWrapper</a></div><div class=""><br class=""></div><div class="">Hope that is helpful - that is basically the functionality that I needed, and isn’t a complete port or anything. There is a chapter implementation in there though.</div><div class=""><br class=""></div><div class="">Ryan</div><div class=""><br class=""></div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Mar 25, 2020, at 4:34 PM, Nolaine Crusher <<a href="mailto:nolainecrusher@gmail.com" class="">nolainecrusher@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Thank you so much, that would be amazing! If I can help, just let me know!</div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 25, 2020 at 4:33 PM Ryan Francesconi <<a href="mailto:rowingatsea@gmail.com" class="">rowingatsea@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" class="">I created a taglib wrapper for swift. If i can clean it up soon, I will post it for you!<div class=""><br class=""></div><div class="">Ryan<br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Mar 25, 2020, at 3:18 PM, Nolaine Crusher <<a href="mailto:nolainecrusher@gmail.com" target="_blank" class="">nolainecrusher@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hi.<div class=""><br class=""></div><div class="">I've only been coding for about six months, and that's in Swift. Before that, I knew so little about coding that even using command line apps could pose a very daunting challenge for me.</div><div class=""><br class=""></div><div class="">However, the project I'm working on involves using metadata to curate audiobook libraries. For now I'm limiting the formats my app will support to .mp3, .aac(.m4b), and .flac. This is posing a number of challenges.</div><div class=""><br class=""></div><div class="">1) ffmpeg's support for metadata in general, and more obscure metadata tags in particular, is very limited.</div><div class="">2) AVFoundation, while it appears willing to read .mp3 metadata, won't export an .mp3 file on passthrough settings after editing metadata. And it doesn't deal with FLAC at all.</div><div class=""><br class=""></div><div class="">For obvious reasons, TagLib is my best bet. But I don't know C++. Or even Objective-C.</div><div class=""><br class=""></div><div class="">I found this build of TagLib (<a href="https://github.com/Phisto/TagLib" target="_blank" class="">https://github.com/Phisto/TagLib</a>) for MacOS, and I found these Objective-C wrappers (<a href="https://github.com/BTRLabs/TagLibIOS" target="_blank" class="">https://github.com/BTRLabs/TagLibIOS</a>) to make TagLib usable in Swift. (however, the wrappers are for IOS, and the project itself is a CocoaPod and I sort of hate the way CocoaPods takes over your project.) Between the two, I was able to cobble together a sort of Franken-code project that would work for MacOS without relying on CocoPods, which I'm calling TagLibKit:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/NCrusher74/TagLibKit" target="_blank" class="">https://github.com/NCrusher74/TagLibKit</a><br class=""></div><div class=""><br class=""></div><div class="">However, that's about as far as my monkey-see/monkey-do attempt at emulating the code in the wrappers will take me. And unfortunately, it's not far enough, because the TagLibIOS wrappers only wrap the text-based ID3 frames. It will handle Comments, USLT, and IPLS/TIPL frames, but not CHAP and CTOC frames. And since I'm dealing with Audiobooks, chapters would be a good thing to have. Admittedly, most people just separate their chapters by file, but that's because not a lot of apps support chaptered MP3 and that is one of the things I'm hoping to correct with my project.</div><div class=""><br class=""></div><div class="">I'm more than willing to do the work myself, but like I said, I don't know C++ or ObjectiveC, so at the very least I would need a mentor who knows TagLib and would be willing to guide me into figuring out what I need to do.</div><div class=""><br class=""></div><div class="">Could anyone advise me on this?</div></div>
</div></blockquote></div><br class=""></div></div></blockquote></div>
</div></blockquote></div><br class=""></div></body></html>